# # spec file for package cglib (Version 2.1.3) # # Copyright (c) 2009 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/ # %define _with_repolib 1 %define _without_hook 1 %define with_repolib %{?_with_repolib:1}%{!?_with_repolib:0} %define without_repolib %{!?_with_repolib:1}%{?_with_repolib:0} %define repodir %{_javadir}/repository.jboss.com/cglib/%{version}-brew %define repodirlib %{repodir}/lib %define repodirsrc %{repodir}/src # If you don't want to build the aspectwerkz hook, # while aspectwerkz isn't available yet, # give rpmbuild option '--without hook' # A cglib without net.sf.cglib.transform.hook.* is useful to # build jmock which is an indirect dependency of cglib itself (through # aspectwerkz). %define with_hook %{!?_without_hook:1}%{?_without_hook:0} %define without_hook %{?_without_hook:1}%{!?_without_hook:0} %define section free %define uscver 2.1_3 Summary: Code Generation Library Name: cglib Version: 2.1.3 Release: 2 License: The Apache Software License Url: http://cglib.sourceforge.net/ Group: Development/Libraries/Java Source0: cglib-src-2.1_3.jar Source1: cglib-missing-words.txt Patch0: cglib-2.1.3-build_xml.patch Patch1: cglib-ExamplePreProcessor.patch # FIXME # Testcase "testFailOnMemoryLeak" fails with java-1.4.2-bea-1.4.2.08-2jpp # producing a LinkageError. # Testcase "testRegisterCallbacks" also fails. # java-1.4.2-sun-1.4.2.10-1jpp and # java-1.4.2-ibm-1.4.2.3-1jpp don't Patch2: cglib-2.1.3-TestEnhancer.patch #Patch3: cglib-2.1.3-TestAll.patch Source2: cglib-component-info.xml BuildRequires: jpackage-utils >= 1.6 BuildRequires: ant >= 1.6 BuildRequires: ant-junit >= 1.6 BuildRequires: jarjar BuildRequires: junit BuildRequires: asm >= 1.5.3 BuildRequires: asm2 %if %{with_hook} BuildRequires: aspectwerkz >= 1.0 %endif BuildRequires: unzip BuildRequires: java-devel Requires: asm >= 1.5.3 %if %{with_hook} #Optional: aspectwerkz >= 0:1.0 %endif Provides: %{name}-nohook = %{version}-%{release} BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime. NOTE: To use the Aspectwerks hook (net.sf.cglib.transform.hook.*), make sure aspectwerks.jar is in the Classpath (from the 'aspectwerks' RPM) NOTE: If you use the cglib.jar you may need to add asm.jar to your ClassPath (from the 'asm' RPM). The cglib-nodep.jar includes the ASM classes already. %if %{with_repolib} %package repolib License: The Apache Software License Summary: Code Generation Library Group: Development/Libraries/Java %description repolib cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime. NOTE: To use the Aspectwerks hook (net.sf.cglib.transform.hook.*), make sure aspectwerks.jar is in the Classpath (from the 'aspectwerks' RPM) NOTE: If you use the cglib.jar you may need to add asm.jar to your ClassPath (from the 'asm' RPM). The cglib-nodep.jar includes the ASM classes already. %endif %package nohook License: The Apache Software License Summary: Code Generation Library Group: Development/Libraries/Java Requires: asm >= 1.5.3 %if ! %{with_hook} Provides: %{name} = %{version}-%{release} %endif %description nohook cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime. NOTE: To use the Aspectwerks hook (net.sf.cglib.transform.hook.*), make sure aspectwerks.jar is in the Classpath (from the 'aspectwerks' RPM) NOTE: If you use the cglib.jar you may need to add asm.jar to your ClassPath (from the 'asm' RPM). The cglib-nodep.jar includes the ASM classes already. %package javadoc License: The Apache Software License Summary: Code Generation Library Group: Development/Libraries/Java %description javadoc cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime. NOTE: To use the Aspectwerks hook (net.sf.cglib.transform.hook.*), make sure aspectwerks.jar is in the Classpath (from the 'aspectwerks' RPM) NOTE: If you use the cglib.jar you may need to add asm.jar to your ClassPath (from the 'asm' RPM). The cglib-nodep.jar includes the ASM classes already. %package demo License: The Apache Software License Summary: Code Generation Library Group: Development/Libraries/Java %description demo cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime. NOTE: To use the Aspectwerks hook (net.sf.cglib.transform.hook.*), make sure aspectwerks.jar is in the Classpath (from the 'aspectwerks' RPM) NOTE: If you use the cglib.jar you may need to add asm.jar to your ClassPath (from the 'asm' RPM). The cglib-nodep.jar includes the ASM classes already. %prep cat < java.policy # add missing test input file cp %{SOURCE1} src/test/net/sf/cglib/util/words.txt %if %{without_hook} rm src/proxy/net/sf/cglib/transform/hook/* rm src/test/net/sf/cglib/transform/hook/* %endif %patch0 -b .sav #test %if %{with_hook} %patch1 -b .sav %endif %patch2 -b .sav #%patch3 -p1 %build build-jar-repository -s -p lib \ ant \ asm/asm-attrs \ asm/asm \ asm2/asm2 \ asm/asm-util \ jarjar \ junit %if %{with_hook} build-jar-repository -s -p lib aspectwerkz-core %endif export CLASSPATH= export OPT_JAR_LIST=: ant jar javadoc test %if %{with_hook} mkdir _tmp pushd _tmp jar xf ../dist/%{name}-%{uscver}.jar rm -rf net/sf/cglib/transform/hook jar cmf META-INF/MANIFEST.MF ../dist/%{name}-nohook-%{uscver}.jar net popd rm -rf _tmp %else cp dist/%{name}-%{uscver}.jar dist/%{name}-nohook-%{uscver}.jar %endif %install # jars mkdir -p $RPM_BUILD_ROOT%{_javadir} cp -p dist/%{name}-nohook-%{uscver}.jar \ $RPM_BUILD_ROOT%{_javadir}/%{name}-nohook-%{version}.jar %if %{with_hook} cp -p dist/%{name}-%{uscver}.jar \ $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar cp -p dist/%{name}-nodep-%{uscver}.jar \ $RPM_BUILD_ROOT%{_javadir}/%{name}-nodep-%{version}.jar %else # avoid conflicts between cglib and cglib-nohook cp -p dist/%{name}-nodep-%{uscver}.jar \ $RPM_BUILD_ROOT%{_javadir}/%{name}-nohook-nodep-%{version}.jar %endif (cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) # javadoc mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} rmdir docs/api cp -pr docs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink #demo mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version} cp -pr src/proxy/samples $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version} %if %{with_repolib} install -d -m 755 $RPM_BUILD_ROOT%{repodir} install -d -m 755 $RPM_BUILD_ROOT%{repodirlib} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{repodir}/component-info.xml sed -i "s/@VERSION@/%{version}-brew/g" $RPM_BUILD_ROOT%{repodir}/component-info.xml tag=`echo %{name}-%{version}-%{release} | sed 's|\.|_|g'` sed -i "s/@TAG@/$tag/g" $RPM_BUILD_ROOT%{repodir}/component-info.xml install -d -m 755 $RPM_BUILD_ROOT%{repodirsrc} install -p -m 644 %{PATCH0} $RPM_BUILD_ROOT%{repodirsrc} install -p -m 644 %{PATCH1} $RPM_BUILD_ROOT%{repodirsrc} install -p -m 644 %{SOURCE0} $RPM_BUILD_ROOT%{repodirsrc} install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{repodirsrc} install -p -m 644 %{PATCH2} $RPM_BUILD_ROOT%{repodirsrc} # Deploy cglib-nodeps.jar as cglib.jar to conform to the existing usage in JBoss %if %{with_hook} cp -p $RPM_BUILD_ROOT%{_javadir}/cglib-nodep.jar $RPM_BUILD_ROOT%{repodirlib}/cglib.jar %else cp -p $RPM_BUILD_ROOT%{_javadir}/cglib-nohook.jar $RPM_BUILD_ROOT%{repodirlib}/cglib.jar %endif %endif %clean rm -rf $RPM_BUILD_ROOT %if %{with_hook} %files %defattr(0644,root,root,0755) %doc LICENSE %{_javadir}/%{name}-%{version}.jar %{_javadir}/%{name}.jar %{_javadir}/%{name}-nodep-%{version}.jar %{_javadir}/%{name}-nodep.jar %endif %files nohook %defattr(0644,root,root,0755) %doc LICENSE %{_javadir}/%{name}-nohook-%{version}.jar %{_javadir}/%{name}-nohook.jar %if ! %{with_hook} %{_javadir}/%{name}-nohook-nodep*.jar %endif %files javadoc %defattr(0644,root,root,0755) %{_javadocdir}/%{name}-%{version} %{_javadocdir}/%{name} %files demo %defattr(0644,root,root,0755) %{_datadir}/%{name}-%{version} %if %{with_repolib} %files repolib %defattr(0644,root,root,0755) %{_javadir}/repository.jboss.com %endif %changelog * Tue Apr 28 2009 mvyskocil@suse.cz - Fixed package descriptions * Thu Apr 23 2009 mvyskocil@suse.cz - Initial packaging of cglib-nohooks in SUSE (2.1.3 from jpp5)