Matt Wringe 08dabf
# Copyright (c) 2000-2005, JPackage Project
Matt Wringe 08dabf
# All rights reserved.
Matt Wringe 08dabf
#
Matt Wringe 08dabf
# Redistribution and use in source and binary forms, with or without
Matt Wringe 08dabf
# modification, are permitted provided that the following conditions
Matt Wringe 08dabf
# are met:
Matt Wringe 08dabf
#
Matt Wringe 08dabf
# 1. Redistributions of source code must retain the above copyright
Matt Wringe 08dabf
#    notice, this list of conditions and the following disclaimer.
Matt Wringe 08dabf
# 2. Redistributions in binary form must reproduce the above copyright
Matt Wringe 08dabf
#    notice, this list of conditions and the following disclaimer in the
Matt Wringe 08dabf
#    documentation and/or other materials provided with the
Matt Wringe 08dabf
#    distribution.
Matt Wringe 08dabf
# 3. Neither the name of the JPackage Project nor the names of its
Matt Wringe 08dabf
#    contributors may be used to endorse or promote products derived
Matt Wringe 08dabf
#    from this software without specific prior written permission.
Matt Wringe 08dabf
#
Matt Wringe 08dabf
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Matt Wringe 08dabf
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Matt Wringe 08dabf
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Matt Wringe 08dabf
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Matt Wringe 08dabf
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Matt Wringe 08dabf
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Matt Wringe 08dabf
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Matt Wringe 08dabf
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Matt Wringe 08dabf
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Matt Wringe 08dabf
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Matt Wringe 08dabf
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Matt Wringe 08dabf
#
Matt Wringe 08dabf
Matt Wringe 08dabf
#For fedora, we want a native gcj compilation
Matt Wringe 08dabf
%define _with_gcj_support 1
Matt Wringe 08dabf
#Fedora currently does not support maven
Matt Wringe 08dabf
%define _without_maven 1
Matt Wringe 08dabf
Matt Wringe 08dabf
%define gcj_support %{?_with_gcj_support:1}%{!?_with_gcj_support:%{?_without_gcj_support:0}%{!?_without_gcj_support:%{?_gcj_support:%{_gcj_support}}%{!?_gcj_support:0}}}
Matt Wringe 08dabf
Matt Wringe 08dabf
# If you don't want to build with maven, and use straight ant instead,
Matt Wringe 08dabf
# give rpmbuild option '--without maven'
Matt Wringe 08dabf
Matt Wringe 08dabf
%define with_maven %{!?_without_maven:1}%{?_without_maven:0}
Matt Wringe 08dabf
%define without_maven %{?_without_maven:1}%{!?_without_maven:0}
Matt Wringe 08dabf
cvsdist dd9cdd
%define section free
cvsdist dd9cdd
Matt Wringe 08dabf
Name:           bcel
Matt Wringe 08dabf
Version:        5.1
Matt Wringe 08dabf
Release:        7jpp_1fc
cvsdist dd9cdd
Epoch:          0
cvsdist dd9cdd
Summary:        Byte Code Engineering Library
cvsdist dd9cdd
License:        Apache Software License
Matt Wringe 08dabf
Source0:        bcel-5.1-src-RHCLEAN.tar.gz
Matt Wringe 08dabf
# svn export https://svn.apache.org/repos/asf/jakarta/bcel/tags/BCEL_5_1
Matt Wringe 08dabf
Source1:        pom-maven2jpp-depcat.xsl
Matt Wringe 08dabf
Source2:        pom-maven2jpp-newdepmap.xsl
Matt Wringe 08dabf
Source3:        pom-maven2jpp-mapdeps.xsl
Matt Wringe 08dabf
Source4:        bcel-5.1-jpp-depmap.xml
Matt Wringe 08dabf
Source5:        jakarta-site2.tar.gz
Matt Wringe 08dabf
Matt Wringe 08dabf
Patch0:         bcel-5.1-build.patch
Matt Wringe 08dabf
Patch1:         bcel-5.1-project_xml.patch
cvsdist dd9cdd
URL:            http://jakarta.apache.org/%{name}/
cvsdist dd9cdd
Group:          Development/Libraries/Java
cvsdist dd9cdd
Requires:       regexp
cvsdist dd9cdd
BuildRequires:  ant
Matt Wringe 08dabf
%if %{with_maven}
Matt Wringe 08dabf
BuildRequires:  maven >= 0:1.1
Matt Wringe 08dabf
BuildRequires:  saxon
Matt Wringe 08dabf
BuildRequires:  saxon-scripts
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
#excalibur-avalong-logkit should be used once Maven is supported in Fedora
Matt Wringe 08dabf
BuildRequires: avalon-logkit
Matt Wringe 08dabf
#BuildRequires:  excalibur-avalon-logkit
Matt Wringe 08dabf
BuildRequires:  jakarta-commons-collections
Matt Wringe 08dabf
BuildRequires:  jdom
Matt Wringe 08dabf
BuildRequires:  velocity
cvsdist dd9cdd
BuildRequires:  regexp
Matt Wringe 08dabf
BuildRequires:  jpackage-utils >= 0:1.6
Matt Wringe 08dabf
BuildRequires:  werken.xpath
Matt Wringe 08dabf
%if ! %{gcj_support}
cvsdist dd9cdd
BuildArch:      noarch
Matt Wringe 08dabf
%endif
cvsdist dd9cdd
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
cvsdist 2287bf
Matt Wringe 08dabf
%if %{gcj_support}
Matt Wringe 08dabf
BuildRequires:		java-gcj-compat-devel
Matt Wringe 08dabf
Requires(post):		java-gcj-compat
Matt Wringe 08dabf
Requires(postun):	java-gcj-compat
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
cvsdist 2287bf
%description
cvsdist 2287bf
The Byte Code Engineering Library (formerly known as JavaClass) is
cvsdist dd9cdd
intended to give users a convenient possibility to analyze, create, and
cvsdist dd9cdd
manipulate (binary) Java class files (those ending with .class). Classes
cvsdist dd9cdd
are represented by objects which contain all the symbolic information of
cvsdist dd9cdd
the given class: methods, fields and byte code instructions, in
cvsdist dd9cdd
particular.  Such objects can be read from an existing file, be
cvsdist dd9cdd
transformed by a program (e.g. a class loader at run-time) and dumped to
cvsdist dd9cdd
a file again. An even more interesting application is the creation of
cvsdist dd9cdd
classes from scratch at run-time. The Byte Code Engineering Library
cvsdist dd9cdd
(BCEL) may be also useful if you want to learn about the Java Virtual
cvsdist dd9cdd
Machine (JVM) and the format of Java .class files.  BCEL is already
cvsdist dd9cdd
being used successfully in several projects such as compilers,
cvsdist dd9cdd
optimizers, obsfuscators and analysis tools, the most popular probably
cvsdist dd9cdd
being the Xalan XSLT processor at Apache.
cvsdist dd9cdd
cvsdist dd9cdd
%package javadoc
cvsdist dd9cdd
Summary:        Javadoc for %{name}
cvsdist dd9cdd
Group:          Development/Documentation
cvsdist dd9cdd
cvsdist dd9cdd
%description javadoc
Matt Wringe 08dabf
%{summary}.
cvsdist dd9cdd
cvsdist dd9cdd
%package manual
cvsdist dd9cdd
Summary:        Manual for %{name}
cvsdist dd9cdd
Group:          Development/Libraries/Java
cvsdist dd9cdd
cvsdist dd9cdd
%description manual
Matt Wringe 08dabf
%{summary}.
Matt Wringe 08dabf
Matt Wringe 08dabf
%package demo
Matt Wringe 08dabf
Summary:        Examples for %{name}
Matt Wringe 08dabf
Group:          Development/Libraries/Java
Matt Wringe 08dabf
Matt Wringe 08dabf
%description demo
Matt Wringe 08dabf
%{summary}.
Matt Wringe 08dabf
Matt Wringe 08dabf
#%prep
Matt Wringe 08dabf
#cat <
Matt Wringe 08dabf
#
Matt Wringe 08dabf
#                If you dont want to build with maven,
Matt Wringe 08dabf
#                give rpmbuild option '--without maven'
Matt Wringe 08dabf
#
Matt Wringe 08dabf
#EOT
cvsdist 2287bf
Matt Wringe 08dabf
%setup -q -n BCEL_5_1
cvsdist dd9cdd
# remove all binary libs
Matt Wringe 08dabf
#find . -name "*.jar" -exec rm -f {} \;
Matt Wringe 08dabf
for j in $(find . -name "*.jar"); do
Matt Wringe 08dabf
    mv $j $j.no
Matt Wringe 08dabf
done
Matt Wringe 08dabf
gzip -dc %{SOURCE5} | tar xf -
Matt Wringe 08dabf
mkdir jakarta-site2/lib
Matt Wringe 08dabf
pushd jakarta-site2/lib/
Matt Wringe 08dabf
  build-jar-repository -s -p . jdom
Matt Wringe 08dabf
  build-jar-repository -s -p . velocity
Matt Wringe 08dabf
  build-jar-repository -s -p . commons-collections
Matt Wringe 08dabf
  build-jar-repository -s -p . avalon-logkit
Matt Wringe 08dabf
  build-jar-repository -s -p . werken.xpath
Matt Wringe 08dabf
popd
Matt Wringe 08dabf
pushd lib
Matt Wringe 08dabf
  ln -sf $(build-classpath regexp) Regexp.jar
Matt Wringe 08dabf
popd
Matt Wringe 08dabf
%patch0 -p1
Matt Wringe 08dabf
%patch1 -b .sav
cvsdist 2287bf
cvsdist dd9cdd
# very broken build
cvsdist dd9cdd
perl -p -i -e 's| depends=\"examples\"||g;' build.xml
cvsdist dd9cdd
touch manifest.txt
cvsdist 855755
cvsdist dd9cdd
%build
Matt Wringe 08dabf
%if %{with_maven}
Matt Wringe 08dabf
export DEPCAT=$(pwd)/bcel-5.1-depcat.new.xml
Matt Wringe 08dabf
echo '' > $DEPCAT
Matt Wringe 08dabf
echo '<depset>' >> $DEPCAT
Matt Wringe 08dabf
for p in $(find . -name project.xml); do
Matt Wringe 08dabf
    pushd $(dirname $p)
Matt Wringe 08dabf
    /usr/bin/saxon project.xml %{SOURCE1} >> $DEPCAT
Matt Wringe 08dabf
    popd
Matt Wringe 08dabf
done
Matt Wringe 08dabf
echo >> $DEPCAT
Matt Wringe 08dabf
echo '</depset>' >> $DEPCAT
Matt Wringe 08dabf
/usr/bin/saxon $DEPCAT %{SOURCE2} > bcel-5.1-depmap.new.xml
Matt Wringe 08dabf
Matt Wringe 08dabf
for p in $(find . -name project.xml); do
Matt Wringe 08dabf
    pushd $(dirname $p)
Matt Wringe 08dabf
    cp project.xml project.xml.orig
Matt Wringe 08dabf
    /usr/bin/saxon -o project.xml project.xml.orig %{SOURCE3} map=%{SOURCE4}
Matt Wringe 08dabf
    popd
Matt Wringe 08dabf
done
Matt Wringe 08dabf
Matt Wringe 08dabf
export MAVEN_HOME_LOCAL=$(pwd)/.maven
Matt Wringe 08dabf
Matt Wringe 08dabf
maven \
Matt Wringe 08dabf
        -Dmaven.repo.remote=file:/usr/share/maven/repository \
Matt Wringe 08dabf
        -Dmaven.home.local=${MAVEN_HOME_LOCAL} \
Matt Wringe 08dabf
        jar:jar javadoc:generate xdoc:transform
Matt Wringe 08dabf
%else
Matt Wringe 08dabf
ant 	-d -Dbuild.dest=build/classes -Dbuild.dir=build \
Matt Wringe 08dabf
	-Ddocs.src=xdocs -Djakarta.site2=jakarta-site2 -Djdom.jar=jdom.jar \
Matt Wringe 08dabf
	compile jar apidocs xdocs
Matt Wringe 08dabf
%endif
cvsdist 2287bf
cvsdist 2287bf
%install
cvsdist dd9cdd
# jars
Matt Wringe 08dabf
%__mkdir_p %{buildroot}%{_javadir}
Matt Wringe 08dabf
%if %{with_maven}
Matt Wringe 08dabf
%__install -m 644 target/%{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
Matt Wringe 08dabf
%else
Matt Wringe 08dabf
%__install -m 644 build/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
(cd %{buildroot}%{_javadir} && for jar in *-%{version}*; do %__ln_s ${jar} `echo $jar| sed  "s|-%{version}||g"`; done)
cvsdist dd9cdd
# javadoc
Matt Wringe 08dabf
%__mkdir_p %{buildroot}%{_javadocdir}/%{name}-%{version}
Matt Wringe 08dabf
%if %{with_maven}
Matt Wringe 08dabf
%__cp -pr target/docs/apidocs/* %{buildroot}%{_javadocdir}/%{name}-%{version}
Matt Wringe 08dabf
%__rm -rf target/docs/apidocs
Matt Wringe 08dabf
%else
Matt Wringe 08dabf
%__cp -pr docs/api/* %{buildroot}%{_javadocdir}/%{name}-%{version}
Matt Wringe 08dabf
%__rm -rf docs/api
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
# samples
Matt Wringe 08dabf
%__mkdir_p %{buildroot}%{_datadir}/%{name}-%{version}
Matt Wringe 08dabf
%__cp -pr examples/* %{buildroot}%{_datadir}/%{name}-%{version}
Matt Wringe 08dabf
# manual
Matt Wringe 08dabf
%__mkdir_p %{buildroot}%{_docdir}/%{name}-%{version}
Matt Wringe 08dabf
%if %{with_maven}
Matt Wringe 08dabf
%__cp -pr target/docs/* %{buildroot}%{_docdir}/%{name}-%{version}
Matt Wringe 08dabf
%else
Matt Wringe 08dabf
%__cp -pr docs/* %{buildroot}%{_docdir}/%{name}-%{version}
Matt Wringe 08dabf
%endif
cvsdist 2287bf
Matt Wringe 08dabf
%if %{gcj_support}
Matt Wringe 08dabf
%{_bindir}/aot-compile-rpm
Matt Wringe 08dabf
%endif
cvsdist 855755
Matt Wringe 08dabf
%clean
Matt Wringe 08dabf
%__rm -rf %{buildroot}
cvsdist dc67ad
cvsdist dd9cdd
%post javadoc
Matt Wringe 08dabf
%__rm -f %{_javadocdir}/%{name}
Matt Wringe 08dabf
%__ln_s %{name}-%{version} %{_javadocdir}/%{name}
cvsdist dc67ad
cvsdist dd9cdd
%postun javadoc
cvsdist dd9cdd
if [ "$1" = "0" ]; then
Matt Wringe 08dabf
    %__rm -f %{_javadocdir}/%{name}
Matt Wringe 08dabf
fi
Matt Wringe 08dabf
Matt Wringe 08dabf
%post
Matt Wringe 08dabf
%if %{gcj_support}
Matt Wringe 08dabf
if [ -x %{_bindir}/rebuild-gcj-db ]
Matt Wringe 08dabf
then
Matt Wringe 08dabf
  %{_bindir}/rebuild-gcj-db
cvsdist dd9cdd
fi
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
Matt Wringe 08dabf
%postun
Matt Wringe 08dabf
%if %{gcj_support}
Matt Wringe 08dabf
if [ -x %{_bindir}/rebuild-gcj-db ]
Matt Wringe 08dabf
then
Matt Wringe 08dabf
  %{_bindir}/rebuild-gcj-db
Matt Wringe 08dabf
fi
Matt Wringe 08dabf
%endif
cvsdist eff16b
cvsdist dd9cdd
%files
cvsdist dd9cdd
%defattr(0644,root,root,0755)
cvsdist dd9cdd
%doc LICENSE.txt 
cvsdist dd9cdd
%{_javadir}/*
cvsdist eff16b
Matt Wringe 08dabf
%if %{gcj_support}
Matt Wringe 08dabf
%attr(-,root,root) %{_libdir}/gcj/%{name}/bcel-5.1.jar.*
Matt Wringe 08dabf
%endif
Matt Wringe 08dabf
cvsdist dd9cdd
%files javadoc
cvsdist dd9cdd
%defattr(0644,root,root,0755)
cvsdist dd9cdd
%{_javadocdir}/%{name}-%{version}
cvsdist eff16b
cvsdist dd9cdd
%files manual
cvsdist dd9cdd
%defattr(0644,root,root,0755)
Matt Wringe 08dabf
%doc %{_docdir}/%{name}-%{version}
Matt Wringe 08dabf
Matt Wringe 08dabf
%files demo
Matt Wringe 08dabf
%defattr(0644,root,root,0755)
Matt Wringe 08dabf
%{_datadir}/%{name}-%{version}
cvsdist eff16b
cvsdist dd9cdd
# -----------------------------------------------------------------------------
cvsdist 2287bf
cvsdist dd9cdd
%changelog
Matt Wringe 08dabf
* Thu Jul 20 2006 Matt Wringe <mwringe at redhat.com> 0:5.1-7jpp_1fc
Matt Wringe 08dabf
- Merged with upstream version
Matt Wringe 08dabf
- set to build with Ant instead of Maven
Matt Wringe 08dabf
Matt Wringe 08dabf
* Thu Jul 20 2006 Matt Wringe <mwringe at redhat.com> 0:5.1-7jpp
Matt Wringe 08dabf
- Add missing werken.xpath to the build requires
Matt Wringe 08dabf
- Added conditional native compilation
Matt Wringe 08dabf
- Changed spec file encoding from ISO-8859-1 to UTF-8 
Matt Wringe 08dabf
Matt Wringe 08dabf
* Tue Apr 11 2006 Ralph Apel <r.apel@r-apel.de> 0:5.1-6jpp
Matt Wringe 08dabf
- First JPP-1.7 release
Matt Wringe 08dabf
- Use tidyed sources from svn
Matt Wringe 08dabf
- Add resources to build the manual
Matt Wringe 08dabf
- Add examples to -demo subpackage
Matt Wringe 08dabf
- Build with maven by default
Matt Wringe 08dabf
- Add option to build with straight ant
Matt Wringe 08dabf
Matt Wringe 08dabf
* Fri Nov 19 2004 David Walluck <david@jpackage.org> 0:5.1-5jpp
Matt Wringe 08dabf
- rebuild to fix packager
Matt Wringe 08dabf
Matt Wringe 08dabf
* Sat Nov 06 2004 David Walluck <david@jpackage.org> 0:5.1-4jpp
Matt Wringe 08dabf
- rebuild with javac 1.4.2
Matt Wringe 08dabf
Matt Wringe 08dabf
* Sat Oct 16 2004 David Walluck <david@jpackage.org> 0:5.1-3jpp
Matt Wringe 08dabf
- rebuild for JPackage 1.6
Matt Wringe 08dabf
Matt Wringe 08dabf
* Fri Aug 20 2004 Ralph Apel <r.apel at r-apel.de> 0:5.1-2jpp
Matt Wringe 08dabf
- Build with ant-1.6.2
cvsdist 2287bf
cvsdist dd9cdd
* Sun May 11 2003 David Walluck <david@anti-microsoft.org> 0:5.1-1jpp
cvsdist dd9cdd
- 5.1
cvsdist dd9cdd
- update for JPackage 1.5
cvsdist 2287bf
cvsdist dd9cdd
* Mon Mar 24 2003 Nicolas Mailhot <Nicolas.Mailhot (at) JPackage.org> - 5.0-6jpp
cvsdist dd9cdd
- For jpackage-utils 1.5
cvsdist 2287bf
vadimn df66eb
* Tue Feb 25 2003 Ville Skyttä <ville.skytta at iki.fi> - 5.0-5jpp
cvsdist dd9cdd
- Rebuild to get docdir right on modern distros.
cvsdist dd9cdd
- Fix License tag and source file perms.
cvsdist dd9cdd
- Built with IBM's 1.3.1SR3 (doesn't build with Sun's 1.4.1_01).
cvsdist 2287bf
cvsdist dd9cdd
* Tue Jun 11 2002 Henri Gomez <hgomez@slib.fr> 5.0-4jpp
cvsdist dd9cdd
- use sed instead of bash 2.x extension in link area to make spec compatible
cvsdist dd9cdd
  with distro using bash 1.1x
cvsdist 2287bf
cvsdist dd9cdd
* Tue May 07 2002 Guillaume Rousse <guillomovitch@users.sourceforge.net> 5.0-3jpp 
cvsdist dd9cdd
- vendor, distribution, group tags
cvsdist 2287bf
cvsdist dd9cdd
* Wed Jan 23 2002 Guillaume Rousse <guillomovitch@users.sourceforge.net> 5.0-2jpp 
cvsdist dd9cdd
- section macro
cvsdist dd9cdd
- no dependencies for manual and javadoc package
cvsdist 2287bf
cvsdist dd9cdd
* Tue Jan 22 2002 Henri Gomez <hgomez@slib.fr> 5.0-1jpp
cvsdist dd9cdd
- bcel is now a jakarta apache project
cvsdist dd9cdd
- dependency on jakarta-regexp instead of gnu.regexp 
cvsdist dd9cdd
- created manual package
cvsdist 2287bf
cvsdist dd9cdd
* Sat Dec 8 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 4.4.1-2jpp
cvsdist dd9cdd
- javadoc into javadoc package
cvsdist dd9cdd
- Requires: and BuildRequires: gnu.regexp
cvsdist 2287bf
cvsdist dd9cdd
* Wed Nov 21 2001 Christian Zoffoli <czoffoli@littlepenguin.org> 4.4.1-1jpp
cvsdist dd9cdd
- removed packager tag
cvsdist dd9cdd
- new jpp extension
cvsdist dd9cdd
- 4.4.1
cvsdist 2287bf
cvsdist dd9cdd
* Thu Oct 11 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 4.4.0-2jpp
cvsdist dd9cdd
- first unified release
cvsdist dd9cdd
- used lower case for name
cvsdist dd9cdd
- used original tarball
cvsdist dd9cdd
- s/jPackage/JPackage
cvsdist 2287bf
cvsdist dd9cdd
* Mon Aug 27 2001 Guillaume Rousse <guillomovitch@users.sourceforge.net> 4.4.0-1mdk
cvsdist dd9cdd
- first Mandrake release