%define javahome /usr/lib/jvm/jdk-openjdk %define javadoc_bin %{javahome}/bin/javadoc %define majver %(echo %version | cut -d. -f 1-2) Name: java-proguard Version: 4.5.1 Release: 1mamba Summary: ProGuard Java Optimizer and Obfuscator Group: Development/Libraries/Java Vendor: openmamba Distribution: openmamba Packager: gil URL: http://proguard.sourceforge.net/ Source0: http://downloads.sourceforge.net/project/proguard/proguard/%{majver}/proguard%{version}.tar.gz Source1: proguard.png Source2: proguardgui.png Source3: retrace.png Source4: proguard-script Source5: proguard-gui-script Source6: proguard-retrace-script Patch0: java-proguard-4.3-nowtkplugin.patch Patch1: java-proguard-4.3-homedir.patch License: GPL BuildRequires: apache-ant BuildRequires: desktop-file-utils BuildRequires: ImageMagick BuildRequires: jpackage-utils BuildRequires: java-openjdk Requires: jpackage-utils BuildRoot: %{_tmppath}/%{name}-%{version}-root %description ProGuard is a free Java class file shrinker, optimizer, and obfuscator. It removes unused classes, fields, methods, and attributes. It then optimizes the bytecode. It then renames the remaining classes, fields, and methods using short meaningless names. %package gui Group: Development/Tools Summary: GUI for ProGuard Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: jpackage-utils %description gui ProGuard, Java class file shrinker, optimizer, obfuscator, and preverifier. This package contains a GUI for ProGuard. %package javadoc Group: Documentation Summary: Javadoc for %{name} %description javadoc ProGuard, Java class file shrinker, optimizer, obfuscator, and preverifier. This package contains javadoc for %{name}. %package manual Group: Documentation Summary: Manual for %{name} %description manual ProGuard, Java class file shrinker, optimizer, obfuscator, and preverifier. This package contains documentation for %{name}. %prep %setup -q -n proguard%{version} for j in $(find . -name "*.jar"); do rm -rf $j done for c in $(find . -name "*.class"); do rm -rf $c done sed -i '/class-path/I d' src/proguard/gui/MANIFEST.MF sed -i '/class-path/I d' src/proguard/retrace/MANIFEST.MF %build pushd build unset JAVA_HOME export JAVA_HOME=%{javahome} export ANT_HOME=%{_datadir}/ant ant -Dant.jar=%{_javadir}/ant.jar basic anttask # target all require Sun Java Wireless Toolkit popd %{javadoc_bin} -d apidocs \ -source 1.5 \ -classpath classes \ -encoding iso-8859-1 \ $(find src -name '*.java') %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" mkdir -p %{buildroot}%{_javadir}/proguard install -p -m 644 lib/proguard.jar \ %{buildroot}%{_javadir}/proguard/proguard-%{version}.jar install -p -m 644 lib/proguardgui.jar \ %{buildroot}%{_javadir}/proguard/proguardgui-%{version}.jar install -p -m 644 lib/retrace.jar \ %{buildroot}%{_javadir}/proguard/retrace-%{version}.jar ( cd %{buildroot}%{_javadir}/proguard for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` done ) mkdir -p %{buildroot}%{_bindir} install -m 755 %{SOURCE4} %{buildroot}%{_bindir}/proguard install -m 755 %{SOURCE5} %{buildroot}%{_bindir}/proguard-gui install -m 755 %{SOURCE6} %{buildroot}%{_bindir}/retrace mkdir -p %{buildroot}%{_javadocdir}/proguard-%{version} cp -pr apidocs/* %{buildroot}%{_javadocdir}/proguard-%{version} ln -sf proguard-%{version} %{buildroot}%{_javadocdir}/proguard mkdir -p %{buildroot}%{_datadir}/applications cat > proguard-gui.desktop << _GIL [Desktop Entry] Name=ProGuard Comment=Java class file shrinker, optimizer, obfuscator and preverifier Exec=proguard-gui Terminal=false Type=Application Icon=proguard Categories=Development;Java; _GIL desktop-file-install --mode=644 --dir=%{buildroot}%{_datadir}/applications proguard-gui.desktop convert docs/favicon.ico proguard.png mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps install -pm 644 proguard-0.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/proguard.png mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps install -pm 644 proguard-1.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/proguard.png mkdir -p %{buildroot}%{_datadir}/icons/hicolor/16x16/apps install -pm 644 proguard-2.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/proguard.png mkdir -p %{buildroot}%{_datadir}/pixmaps ln -sf ../icons/hicolor/32x32/apps/proguard.png \ %{buildroot}%{_datadir}/pixmaps/proguard.png %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %files %defattr(-,root,root) %{_bindir}/proguard %{_bindir}/retrace %dir %{_javadir}/proguard %{_javadir}/proguard/proguard-%{version}.jar %{_javadir}/proguard/proguard.jar %{_javadir}/proguard/retrace-%{version}.jar %{_javadir}/proguard/retrace.jar %doc README docs/license.html %post gui 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 gui touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi %files gui %defattr(-,root,root) %{_bindir}/proguard-gui %{_javadir}/proguard/proguardgui-%{version}.jar %{_javadir}/proguard/proguardgui.jar %{_datadir}/applications/proguard-gui.desktop %{_datadir}/icons/hicolor/*x*/apps/proguard.png %{_datadir}/pixmaps/proguard.png %files javadoc %defattr(-,root,root) %{_javadocdir}/proguard-%{version} %{_javadocdir}/proguard %files manual %defattr(-,root,root) %doc docs examples %changelog * Mon Jan 17 2011 gil 4.5.1-1mamba - update to 4.5.1 * Wed Jun 02 2010 gil 4.4-2mamba - rebuilt with sun-java 6u20 * Wed Dec 16 2009 gil 4.4-1mamba - update to 4.4 * Wed Apr 15 2009 gil 4.3-1mamba - package created by autospec