%define repodir %{_javadir}/repository.jboss.com/javassist/%{version}%{rel}-brew %define repodirlib %{repodir}/lib %define repodirsrc %{repodir}/src %define pkgver %(echo %version | cut -d. -f 1-2) %define javahome %{_jvmdir}/jdk %define rel .GA Name: javassist Version: 3.9.0 Release: 3mamba Summary: Java Programming Assistant: bytecode manipulation Group: Development/Libraries/Java Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco URL: http://www.javassist.org/ Source0: http://downloads.sourceforge.net/sourceforge/jboss/javassist%{pkgver}%{rel}.zip Source1: java-component-info4.xml Patch0: javassist-3.9.0-buildfile-nosource1.4-nosrcjar.patch License: LGPL, MPL BuildRequires: apache-ant BuildRequires: jpackage-utils BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides two levels of API: source level and bytecode level. If the users use the source-level API, they can edit a class file without knowledge of the specifications of the Java bytecode. The whole API is designed with only the vocabulary of the Java language. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors. %package javadoc Group: Documentation Summary: Javadoc for %{name} %description javadoc Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. This package contains javadoc for %{name}. %package demo Group: Documentation Summary: Samples for %{name} %description demo Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. This package contains demonstrations and samples for %{name}. %package manual Group: Documentation Summary: Tutorial for %{name} %description manual Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. This package contains manual for %{name}. %package repolib Group: Development/Libraries/Java Summary: Artifacts to be uploaded to a repository library %description repolib Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. This package contains artifacts to be uploaded to a repository library. This package is not meant to be installed but so its contents can be extracted through rpm2cpio %prep %setup -q -n %{name}-%{version} # % patch0 -p0 for j in $(find . -name "*.jar"); do mv $j ${j}.no done %build export JAVA_HOME=%javahome ant dist %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" mkdir -p %{buildroot}%{_javadir} mkdir -p %{buildroot}%{_datadir}/maven2/poms install -pm 644 javassist.jar \ %{buildroot}%{_javadir}/javassist-%{version}.jar install -m 644 pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP-javassist.pom %add_to_maven_depmap javassist javassist %{version}%{rel} JPP javassist ( cd %{buildroot}%{_javadir} for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` done ) mkdir -p %{buildroot}%{_javadocdir}/javassist-%{version} cp -rp html/* %{buildroot}%{_javadocdir}/javassist-%{version} ln -s javassist-%{version} %{buildroot}%{_javadocdir}/javassist mkdir -p %{buildroot}%{_datadir}/javassist-%{version} cp -pr sample/* %{buildroot}%{_datadir}/javassist-%{version} mkdir -p %{buildroot}%{repodir} mkdir -p %{buildroot}%{repodirlib} install -m 644 %{SOURCE1} %{buildroot}%{repodir}/component-info.xml tag=`echo javassist-%{version}-%{release} | sed 's|\.|_|g'` sed -i "s/@NAME@/javassist-component-info/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@ID@/javassist/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@TAG@/$tag/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@VERSION@/%{version}%{rel}-brew/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@LICENSE@/%{license}/g" %{buildroot}%{repodir}/component-info.xml sed -i "s|@PROJECTHOME@|%{url}|g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@DESCRIPTION@/Simple Java bytecode manipulation/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@ARTIFACTID1@/javassist.jar/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@ARTIFACTID2@/javassist-src.jar/g" %{buildroot}%{repodir}/component-info.xml sed -i "s/@INCLUDEINPUT@/javassist.jar/g" %{buildroot}%{repodir}/component-info.xml mkdir -p %{buildroot}%{repodirsrc} install -m 644 %{SOURCE0} %{buildroot}%{repodirsrc} install -m 644 %{PATCH0} %{buildroot}%{repodirsrc} cp %{buildroot}%{_javadir}/javassist-%{version}.jar %{buildroot}%{repodirlib}/javassist.jar cp javassist-src.jar %{buildroot}%{repodirlib} %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %post %update_maven_depmap %postun %update_maven_depmap %files %defattr(-,root,root) %defattr(-,root,root) %{_javadir}/javassist-%{version}.jar %{_javadir}/javassist.jar %{_datadir}/maven2/poms %{_mavendepmapfragdir} %doc License.html Readme.html %files javadoc %defattr(-,root,root) %{_javadocdir}/javassist-%{version} %{_javadocdir}/javassist %files demo %defattr(-,root,root) %{_datadir}/javassist-%{version} %files manual %defattr(-,root,root) %doc tutorial %files repolib %defattr(-,root,root) %{repodir} %changelog * Wed Mar 23 2011 gil 3.9.0-3mamba - rebuilt with java-openjdk support * Wed Oct 21 2009 gil 3.9.0-2mamba - add maven 2 pom * Sun Mar 01 2009 gil 3.9.0-1mamba - package created by autospec