File proguard.spec of Package proguard
#
# spec file for package proguard (Version 4.2)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: proguard
Summary: Java class file shrinker, optimizer, obfuscator, and preverifier
License: GPL v2 only
Version: 4.2
Release: 18
Url: http://proguard.sourceforge.net/
Group: Development/Languages/Java
Source0: %{name}%{version}.tar.bz2
Source1: %{name}.manifest
Source2: %{name}gui.manifest
Source3: %{name}.sh
Source4: %{name}gui.sh
Requires: jre >= 1.5.0
BuildRequires: java-devel
BuildRequires: ant
BuildRequires: jpackage-utils
Requires: ant
PreReq: jpackage-utils
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%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. Some
uses of ProGuard are: - Creating more compact code, for smaller
code archives, faster transfer across networks, faster loading,
and smaller memory footprints.
- Making programs and libraries harder to reverse-engineer.
- Listing dead code, so it can be removed from the source code.
- Retargeting and preverifying existing class files for Java 6, to
take full advantage of Java 6's faster class loading.
- ProGuard's main advantage compared to other Java obfuscators is
probably its compact template-based configuration. A few
intuitive command line options or a simple configuration file are
usually sufficient. For instance, the following configuration
option preserves all applets in a jar: -keep public class *
extends java.applet.Applet
The user manual explains all available options and shows more examples
of this powerful configuration style. ProGuard is fast. It only takes
seconds to process programs and libraries of several megabytes. The
results section presents actual figures for a number of applications.
ProGuard is a command-line tool with an optional graphical user
interface.
%package gui
License: GPL v2 only
Summary: Java class file shrinker, optimizer, obfuscator, and preverifier
Group: Development/Languages/Java
Requires: %{name} = %{version}
%description gui
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. Some
uses of ProGuard are: - Creating more compact code, for smaller
code archives, faster transfer across networks, faster loading,
and smaller memory footprints.
- Making programs and libraries harder to reverse-engineer.
- Listing dead code, so it can be removed from the source code.
- Retargeting and preverifying existing class files for Java 6, to
take full advantage of Java 6's faster class loading.
- ProGuard's main advantage compared to other Java obfuscators is
probably its compact template-based configuration. A few
intuitive command line options or a simple configuration file are
usually sufficient. For instance, the following configuration
option preserves all applets in a jar: -keep public class *
extends java.applet.Applet
The user manual explains all available options and shows more examples
of this powerful configuration style. ProGuard is fast. It only takes
seconds to process programs and libraries of several megabytes. The
results section presents actual figures for a number of applications.
ProGuard is a command-line tool with an optional graphical user
interface.
%package doc
License: GPL v2 only
Summary: Java class file shrinker, optimizer, obfuscator, and preverifier
Group: Development/Languages/Java
%description doc
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. Some
uses of ProGuard are: - Creating more compact code, for smaller
code archives, faster transfer across networks, faster loading,
and smaller memory footprints.
- Making programs and libraries harder to reverse-engineer.
- Listing dead code, so it can be removed from the source code.
- Retargeting and preverifying existing class files for Java 6, to
take full advantage of Java 6's faster class loading.
- ProGuard's main advantage compared to other Java obfuscators is
probably its compact template-based configuration. A few
intuitive command line options or a simple configuration file are
usually sufficient. For instance, the following configuration
option preserves all applets in a jar: -keep public class *
extends java.applet.Applet
The user manual explains all available options and shows more examples
of this powerful configuration style. ProGuard is fast. It only takes
seconds to process programs and libraries of several megabytes. The
results section presents actual figures for a number of applications.
ProGuard is a command-line tool with an optional graphical user
interface.
%package javadoc
License: GPL v2 only
Summary: Java class file shrinker, optimizer, obfuscator, and preverifier
Group: Development/Languages/Java
%description javadoc
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. Some
uses of ProGuard are: - Creating more compact code, for smaller
code archives, faster transfer across networks, faster loading,
and smaller memory footprints.
- Making programs and libraries harder to reverse-engineer.
- Listing dead code, so it can be removed from the source code.
- Retargeting and preverifying existing class files for Java 6, to
take full advantage of Java 6's faster class loading.
- ProGuard's main advantage compared to other Java obfuscators is
probably its compact template-based configuration. A few
intuitive command line options or a simple configuration file are
usually sufficient. For instance, the following configuration
option preserves all applets in a jar: -keep public class *
extends java.applet.Applet
The user manual explains all available options and shows more examples
of this powerful configuration style. ProGuard is fast. It only takes
seconds to process programs and libraries of several megabytes. The
results section presents actual figures for a number of applications.
ProGuard is a command-line tool with an optional graphical user
interface.
%prep
%setup -q -n %{name}%{version}
cp -a %{SOURCE1} %{SOURCE2} .
%build
# create jars
mkdir dist
#proguard.jar
mkdir -p build/proguard/classes
javac -source 1.5 -target 1.5 -sourcepath src -d build/proguard/classes src/proguard/ProGuard.java
javac -source 1.5 -target 1.5 -sourcepath src -classpath $(build-classpath ant) \
-d build/proguard/classes src/proguard/ant/ProGuardTask.java
cp src/proguard/ant/task.properties build/proguard/classes/proguard/ant/
jar -cfm dist/%{name}-%{version}.jar proguard.manifest -C build/proguard/classes proguard
#proguardgui.jar
mkdir -p build/proguardgui/classes
javac -source 1.5 -target 1.5 -sourcepath src -d build/proguardgui/classes src/proguard/gui/ProGuardGUI.java
jar -cfm dist/%{name}gui-%{version}.jar proguardgui.manifest -C build/proguardgui/classes proguard
#retrace.jar
mkdir -p build/retrace/classes
javac -source 1.5 -target 1.5 -sourcepath src -d build/retrace/classes src/proguard/retrace/ReTrace.java
jar -cf dist/retrace-%{version}.jar -C build/retrace/classes proguard
#proguard-ant.jar
#mkdir -p build/ant/classes
#jar -cf dist/%{name}-ant-%{version}.jar -C build/ant/classes proguard
#javadoc
mkdir javadoc
javadoc -d javadoc -sourcepath src -classpath $(build-classpath ant) -subpackages proguard
%install
#jars
install -d -m 755 $RPM_BUILD_ROOT/%{_javadir}
install -m 644 dist/*.jar $RPM_BUILD_ROOT/%{_javadir}
#jars
install -d -m 755 $RPM_BUILD_ROOT/%{_bindir}
install -m 755 %{SOURCE3} $RPM_BUILD_ROOT/%{_bindir}/%{name}
install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/%{_bindir}/%{name}gui
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
#doc
install -d -m 755 $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name}-%{version}
cp -ar docs/* examples $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name}-%{version}/
#javadoc
install -d -m 755 $RPM_BUILD_ROOT/%{_javadocdir}/%{name}-%{version}
cp -ar javadoc/* $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name}-%{version}/
%files
%defattr(-,root,root)
%doc README
%{_bindir}/%{name}
%{_javadir}/%{name}.jar
%{_javadir}/%{name}-%{version}.jar
%{_javadir}/retrace.jar
%{_javadir}/retrace-%{version}.jar
%files gui
%defattr(-,root,root)
%doc README
%{_bindir}/%{name}gui
%{_javadir}/%{name}gui.jar
%{_javadir}/%{name}gui-%{version}.jar
%files doc
%defattr(-,root,root)
%doc %{_defaultdocdir}/%{name}-%{version}
%files javadoc
%defattr(-,root,root)
%{_javadocdir}/%{name}-%{version}
#%files -n ant-%{name}
#%defattr(-,root,root)
#%{_javadir}/%{name}-ant.jar
#%{_javadir}/%{name}-ant-%{version}.jar
%changelog
* Wed Sep 10 2008 mvyskocil@suse.cz
- Add a manifest files to jar
* Fri Aug 29 2008 mvyskocil@suse.cz
- target=1.5 source=1.5
* Mon Aug 11 2008 mvyskocil@suse.cz
- Initial packaging in SUSE version 4.2