diff --git a/README.md b/README.md index b76b9dd..8bc9ff9 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # java-proguard +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. + diff --git a/java-proguard-4.3-homedir.patch b/java-proguard-4.3-homedir.patch new file mode 100644 index 0000000..00aa459 --- /dev/null +++ b/java-proguard-4.3-homedir.patch @@ -0,0 +1,27 @@ +diff -Nru proguard4.3/bin/proguardgui.sh proguard4.3/bin-gil/proguardgui.sh +--- proguard4.3/bin/proguardgui.sh 2008-08-06 23:53:51.000000000 +0200 ++++ proguard4.3/bin-gil/proguardgui.sh 2009-04-15 03:19:34.000000000 +0200 +@@ -6,4 +6,4 @@ + PROGUARD_HOME=`dirname "$0"` + PROGUARD_HOME=`dirname "$PROGUARD_HOME"` + +-java -jar $PROGUARD_HOME/lib/proguardgui.jar "$@" ++java -jar _PROGUARD_HOME_/lib/proguardgui.jar "$@" +diff -Nru proguard4.3/bin/proguard.sh proguard4.3/bin-gil/proguard.sh +--- proguard4.3/bin/proguard.sh 2008-08-06 22:18:59.000000000 +0200 ++++ proguard4.3/bin-gil/proguard.sh 2009-04-15 03:19:07.000000000 +0200 +@@ -6,4 +6,4 @@ + PROGUARD_HOME=`dirname "$0"` + PROGUARD_HOME=`dirname "$PROGUARD_HOME"` + +-java -jar $PROGUARD_HOME/lib/proguard.jar "$@" ++java -jar _PROGUARD_HOME_/lib/proguard.jar "$@" +diff -Nru proguard4.3/bin/retrace.sh proguard4.3/bin-gil/retrace.sh +--- proguard4.3/bin/retrace.sh 2008-08-06 22:22:41.000000000 +0200 ++++ proguard4.3/bin-gil/retrace.sh 2009-04-15 03:18:49.000000000 +0200 +@@ -6,4 +6,4 @@ + PROGUARD_HOME=`dirname "$0"` + PROGUARD_HOME=`dirname "$PROGUARD_HOME"` + +-java -jar $PROGUARD_HOME/lib/retrace.jar "$@" ++java -jar _PROGUARD_HOME_/lib/retrace.jar "$@" diff --git a/java-proguard-4.3-nowtkplugin.patch b/java-proguard-4.3-nowtkplugin.patch new file mode 100644 index 0000000..8ac72d2 --- /dev/null +++ b/java-proguard-4.3-nowtkplugin.patch @@ -0,0 +1,11 @@ +--- proguard4.3/build/build.xml 2008-08-12 23:45:59.000000000 +0200 ++++ proguard4.3/build/build.xml-gil 2009-04-15 01:59:47.000000000 +0200 +@@ -14,7 +14,7 @@ + + + +- ++ + + + +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 diff --git a/proguard-gui-script b/proguard-gui-script new file mode 100644 index 0000000..15afc12 --- /dev/null +++ b/proguard-gui-script @@ -0,0 +1,15 @@ +#!/bin/bash +#. /usr/share/java-utils/java-functions + +unset JAVA_HOME +export JAVA_HOME=/usr/lib/jvm/jdk-openjdk +JAVA=$JAVA_HOME/bin/java + +MAIN_CLASS=proguard.gui.ProGuardGUI + +#set_classpath "proguard" + +#run "$@" + +CP=$(build-classpath proguard) +$JAVA -cp $CP $MAIN_CLASS diff --git a/proguard-retrace-script b/proguard-retrace-script new file mode 100644 index 0000000..53d0ff9 --- /dev/null +++ b/proguard-retrace-script @@ -0,0 +1,15 @@ +#!/bin/bash +#. /usr/share/java-utils/java-functions + +unset JAVA_HOME +export JAVA_HOME=/usr/lib/jvm/jdk-openjdk +JAVA=$JAVA_HOME/bin/java + +MAIN_CLASS=proguard.retrace.ReTrace + +#set_classpath "proguard" + +#run "$@" + +CP=$(build-classpath proguard) +$JAVA -cp $CP $MAIN_CLASS \ No newline at end of file diff --git a/proguard-script b/proguard-script new file mode 100644 index 0000000..d3322af --- /dev/null +++ b/proguard-script @@ -0,0 +1,15 @@ +#!/bin/bash +#. /usr/share/java-utils/java-functions + +unset JAVA_HOME +export JAVA_HOME=/usr/lib/jvm/jdk-openjdk +JAVA=$JAVA_HOME/bin/java + +MAIN_CLASS=proguard.ProGuard + +#set_classpath "proguard" + +#run "$@" + +CP=$(build-classpath proguard) +$JAVA -cp $CP $MAIN_CLASS \ No newline at end of file diff --git a/proguard.png b/proguard.png new file mode 100644 index 0000000..138e187 Binary files /dev/null and b/proguard.png differ diff --git a/proguardgui.png b/proguardgui.png new file mode 100644 index 0000000..5fbd8d0 Binary files /dev/null and b/proguardgui.png differ diff --git a/retrace.png b/retrace.png new file mode 100644 index 0000000..20ba88b Binary files /dev/null and b/retrace.png differ