java-proguard/java-proguard.spec

209 lines
6.0 KiB
RPMSpec

%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 <puntogil@libero.it>
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 <puntogil@libero.it> 4.5.1-1mamba
- update to 4.5.1
* Wed Jun 02 2010 gil <puntogil@libero.it> 4.4-2mamba
- rebuilt with sun-java 6u20
* Wed Dec 16 2009 gil <puntogil@libero.it> 4.4-1mamba
- update to 4.4
* Wed Apr 15 2009 gil <puntogil@libero.it> 4.3-1mamba
- package created by autospec