Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > 8eb3656042c58cd734164263c90ff62d > files > 6

proguard-4.5-3.fc13.src.rpm

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