%global majversion %(echo %version | cut -d. -f 1-2) Name: aspectjtools Version: 1.6.12 Release: 1%{?dist} Summary: Tools from the AspectJ project Group: Development/Libraries License: EPL URL: http://eclipse.org/aspectj/ # wget -nd http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.6.12-src.jar # jar xf aspectj-1.6.12-src.jar aspectjtools1.6.12-src.jar Source0: aspectjtools%{version}-src.jar # cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/tools/ login # cvs -d:pserver:anonymous@dev.eclipse.org:/cvsroot/tools/ export -r V1_6_12 org.aspectj/modules/ajbrowser # cd org.aspectj/modules/ajbrowser # tar -czf aspectjtools-%{version}-ajbrowser.tar.gz src Source1: aspectjtools-%{version}-ajbrowser.tar.gz Source2: aspectjtools-%{version}-00-build.xml # require for bootstrap Source3: http://repo2.maven.org/maven2/org/aspectj/aspectjtools/%{version}/aspectjtools-%{version}.jar Source4: http://repo1.maven.org/maven2/org/aspectj/aspectjtools/%{version}/aspectjtools-%{version}.pom Source5: aspectjtools-1.6.12-script-ajbrowser Source6: aspectjtools-1.6.12-script-ajdoc # TODO # script-aj Error: Can not find or load the main class # script-ajc NoClassDefFoundError: org/eclipse/core/runtime/OperationCanceledException # script-aj5 Failed to find Premain-Class manifest attribute in /usr/share/java/aspectjweaver.jar # add some available build deps Patch0: aspectjtools-%{version}-pom.patch BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: ant BuildRequires: apache-commons-logging BuildRequires: aspectjweaver BuildRequires: eclipse-platform BuildRequires: eclipse-rcp BuildRequires: felix-osgi-compendium BuildRequires: objectweb-asm BuildRequires: regexp # Require org/eclipse/core/runtime/OperationCanceledException Requires: ant Requires: apache-commons-logging Requires: aspectjweaver #Requires: eclipse-platform #Requires: eclipse-rcp Requires: felix-osgi-compendium Requires: objectweb-asm Requires: regexp Requires: java Requires: jpackage-utils BuildArch: noarch %description The AspectJ tools include: - ajc, the compiler/weaver - ajdoc, a documentation tool - ajbrowser, a crosscutting code viewer - Ant support for ajc and load-time weaving support. %package javadoc Group: Documentation Summary: Javadoc for %{name} Requires: jpackage-utils %description javadoc This package contains javadoc for %{name}. %prep %setup -T -q -c # prepare source structure mkdir -p src resources ( cd src %jar -xf %{SOURCE0} rm -r META-INF # already in aspectjweaver library rm -r org/aspectj/apache rm -r org/aspectj/asm # DO NOT REMOVE rm -r org/aspectj/bridge rm -r org/aspectj/lang rm -r org/aspectj/runtime rm -r org/aspectj/util rm -r org/aspectj/weaver ) tar -xf %{SOURCE1} # clone source directory structure find src/ -type d | while read dirname ; do newdirname=`echo $dirname | sed "s:src:resources:g"` mkdir -p $newdirname done # copy everything except *.java sources find src/ -type f | grep -v "\.java" | while read cpfrom ; do cpto=`echo $cpfrom | sed "s:src:resources:g"` cp $cpfrom $cpto done cp -p %{SOURCE2} build.xml sed -i "s|/usr/lib|%{_libdir}|" build.xml cp -p %{SOURCE3} aspectjtools-bootstrap.jar cp -p %{SOURCE4} pom.xml %patch0 -p0 # fix non ASCII chars for s in src/org/aspectj/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier15.java;do native2ascii -encoding UTF8 ${s} ${s} done # TODO sed -i "s|sb.append((String) node.getParameterTypes().get(i));|sb.append((String) node.getParameterTypes().get(i).toString());|" src/org/aspectj/tools/ajdoc/StructureUtil.java sed -i "s|sb.append((String) node.getParameterNames().get(i));|sb.append((String) node.getParameterNames().get(i).toString());|" src/org/aspectj/tools/ajdoc/StructureUtil.java # required for build aspectjtools # build problems with MANIFEST.MF default headers # es. # Ant-Version: Apache Ant 1.8.2 # Created-By: 1.7.0_b147-icedtea-mockbuild_2012_02_24_21_58-b00 (Oracle Corporation) # breaks the build #mkdir -p tools/META-INF #cat > tools/META-INF/MANIFEST.MF << EOF #Manifest-Version: 1.0 #Main-Class: org.aspectj.tools.ajbrowser.Main #Name: org/aspectj/tools/ #Specification-Title: AspectJ Tools Classes #Specification-Version: %{namedversion} #Specification-Vendor: aspectj.org #Implementation-Title: org.aspectj.tools #Implementation-Version: %{namedversion} #Implementation-Vendor: aspectj.org #EOF %build # bootstrap LANG=en_US.ISO8859-1 ant # rebuild itself LANG=en_US.ISO8859-1 ant clean dist ant javadoc %install mkdir -p %{buildroot}%{_javadir} install -m 644 dist/%{name}.jar %{buildroot}%{_javadir}/%{name}.jar mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom %add_maven_depmap JPP-%{name}.pom %{name}.jar mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -rp apidocs/* %{buildroot}%{_javadocdir}/%{name} %files %{_javadir}/%{name}.jar %{_mavenpomdir}/JPP-%{name}.pom %{_mavendepmapfragdir}/%{name} %files javadoc %{_javadocdir}/%{name} %changelog * Tue Apr 24 2012 gil cattaneo 1.6.12-1 - initial rpm