Name: proguard Version: 4.5 Release: 3%{?dist} Summary: Java class file shrinker, optimizer, obfuscator and preverifier Group: Development/Tools License: GPLv2+ URL: http://proguard.sourceforge.net Source0: http://downloads.sourceforge.net/%{name}/%{name}%{version}.tar.gz # source1 through 3 are the launch scripts, there are already launch scripts # included with ProGuard, but they don't follow Fedora practices as described # in Packaging:Java on the wiki Source1: proguard Source2: proguard-gui Source3: proguard-retrace Source4: %{name}.desktop Source5: README.dist BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: jpackage-utils BuildRequires: java-devel >= 1:1.6.0 BuildRequires: ant Requires: jpackage-utils Requires: java >= 1:1.6.0 BuildArch: noarch %description ProGuard is a free Java class file shrinker, optimizer, obfuscator and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or for Java Micro Edition. %package manual Summary: Manual for %{name} Group: Documentation Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description manual The manual for %{name}. %package gui Summary: GUI for %{name} Group: Development/Tools # we convert the favicon.ico to png files of different sizes, so we require # ImageMagick BuildRequires: ImageMagick BuildRequires: desktop-file-utils Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description gui A GUI for %{name}. %prep %setup -qn %{name}%{version} # remove all jar and class files, the snippet from Packaging:Java does # not work find -name '*.jar' -exec rm -f '{}' \; find -name '*.class' -exec rm -f '{}' \; # remove the Class-Path from MANIFESTs sed -i '/class-path/I d' src/%{name}/gui/MANIFEST.MF sed -i '/class-path/I d' src/%{name}/retrace/MANIFEST.MF # this will create three png files from the favicon that contains multiple size # icons: 0: 48x48, 1: 32x32, 2: 16x16 convert docs/favicon.ico %{name}.png cp -p %{name}-0.png %{name}48.png cp -p %{name}-1.png %{name}32.png cp -p %{name}-2.png %{name}16.png # add README.dist cp -p %{SOURCE5} . %build cd build/ # build ProGuard, ProGuardGUI, retrace and anttask ant -Dant.jar=%{_javadir}/ant.jar basic anttask %install rm -rf ${RPM_BUILD_ROOT} mkdir -p ${RPM_BUILD_ROOT}%{_javadir}/%{name}/ cp -p lib/%{name}.jar ${RPM_BUILD_ROOT}%{_javadir}/%{name}/%{name}-%{version}.jar (cd ${RPM_BUILD_ROOT}%{_javadir}/%{name}/ && ln -sf %{name}-%{version}.jar %{name}.jar) cp -p lib/%{name}gui.jar ${RPM_BUILD_ROOT}%{_javadir}/%{name}/%{name}gui-%{version}.jar (cd ${RPM_BUILD_ROOT}%{_javadir}/%{name}/ && ln -sf %{name}gui-%{version}.jar %{name}gui.jar) cp -p lib/retrace.jar ${RPM_BUILD_ROOT}%{_javadir}/%{name}/retrace-%{version}.jar (cd ${RPM_BUILD_ROOT}%{_javadir}/%{name}/ && ln -sf retrace-%{version}.jar retrace.jar) mkdir -p ${RPM_BUILD_ROOT}%{_bindir} cp -p %{SOURCE1} ${RPM_BUILD_ROOT}%{_bindir}/ cp -p %{SOURCE2} ${RPM_BUILD_ROOT}%{_bindir}/ cp -p %{SOURCE3} ${RPM_BUILD_ROOT}%{_bindir}/ chmod 0755 ${RPM_BUILD_ROOT}%{_bindir}/* #install the desktop file for proguard-gui desktop-file-install --dir=${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE4} #copy icons mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps cp -p %{name}48.png ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/32x32/apps cp -p %{name}32.png ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/16x16/apps cp -p %{name}16.png ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png %post # update icon cache touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi %postun # update icon cache touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi %clean rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root,-) %dir %{_javadir}/%{name} %{_javadir}/%{name}/proguard.jar %{_javadir}/%{name}/proguard-%{version}.jar %{_javadir}/%{name}/retrace.jar %{_javadir}/%{name}/retrace-%{version}.jar %{_bindir}/proguard %{_bindir}/proguard-retrace %doc README examples/ README.dist %files manual %defattr(-,root,root,-) %doc docs/* %files gui %defattr(-,root,root,-) %{_bindir}/%{name}-gui %{_javadir}/%{name}/proguardgui.jar %{_javadir}/%{name}/proguardgui-%{version}.jar %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/*/*/apps/* %changelog * Fri Jun 11 2010 François Kooman <fkooman@tuxed.net> - 4.5-3 - rename proguardgui to proguard-gui (and update .desktop file) - rename retrace to proguard-retrace - update README.dist to reflect these changes * Tue Jun 08 2010 François Kooman <fkooman@tuxed.net> - 4.5-2 - permission fix no longer needed * Mon Jun 7 2010 François Kooman <fkooman@tuxed.net> - 4.5-1 - update to 4.5 (see http://proguard.sourceforge.net/downloads.html) - remove GCJ bits as GUI doesn't work with GCJ * Sun Jan 10 2010 François Kooman <fkooman@tuxed.net> - 4.4-5 - own directory /usr/share/java/proguard - don't include proguardgui.jar in proguard main package * Thu Sep 3 2009 François Kooman <fkooman@tuxed.net> - 4.4-4 - create a subpackage for the GUI * Wed Jul 29 2009 François Kooman <fkooman@tuxed.net> - 4.4-3 - put the manual in a sub package - fix permissions of launch scripts to 0755 instead of +x to fix rpmlint warning * Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Tue Jul 21 2009 François Kooman <fkooman@tuxed.net> - 4.4-1 - update to ProGuard 4.4 * Mon Jun 10 2009 François Kooman <fkooman@tuxed.net> - 4.3-4 - move creation of icon inside spec - add GenericName key in .desktop file for KDE users - make the jar files versioned and create unversioned symlinks to them * Mon Jun 9 2009 François Kooman <fkooman@tuxed.net> - 4.3-3 - more consistent use of name macro, consistent RPM_BUILD_ROOT variable naming - indicate that proguard is a directory in files section - remove redundant attr macro for gcj in files section - require Java >=1.5 - Use favicon as icon for ProGuard - keep timestamps when copying files * Mon Jun 8 2009 François Kooman <fkooman@tuxed.net> - 4.3-2 - add .desktop file + requires - describe why there are launch scripts included - add a README.dist describing how to use ProGuard now that it is packaged - add GCJ AOT stuff * Sat Jun 6 2009 François Kooman <fkooman@tuxed.net> - 4.3-1 - Initial Fedora package