packages java-proguard.spec
      Pages: < 1 >  DOWNLOAD      
%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@...>
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@...> 4.5.1-1mamba
- update to 4.5.1

* Wed Jun 02 2010 gil <puntogil@...> 4.4-2mamba
- rebuilt with sun-java 6u20

* Wed Dec 16 2009 gil <puntogil@...> 4.4-1mamba
- update to 4.4

* Wed Apr 15 2009 gil <puntogil@...> 4.3-1mamba
- package created by autospec