%define antlib %(echo $ANT_HOME/lib) %define gcjbootstrap 0 %define javahome /usr/lib/jvm/jdk-gcj Name: eclipse-ecj Version: 3.6 Release: 6mamba Summary: Eclipse Compiler for Java Group: Development/Languages Vendor: openmamba Distribution: openmamba Packager: gil URL: http://www.eclipse.org Source0: ftp://rm.mirror.garr.it/mirrors/eclipse/eclipse/downloads/drops/R-%{version}-201006080911/ecjsrc-%{version}.zip #Source0: http://download.eclipse.org/eclipse/downloads/drops/R-%{version}-200902111700/ecjsrc-%{version}.zip Source1: java-ecj.sh.in # cvs -d:pserver:anonymous@sourceware.org:/cvs/rhug export -r eclipse_r34_1 eclipse-gcj # tar cjf java-ecj-gcj.tar.bz2 eclipse-gcj Source2: java-ecj-gcj.tar.bz2 Source3: jdtcoresrc.tar.gz Source4: eclipse-ecj-%{version}-OSGi_MANIFEST.tar.gz # from http://repo1.maven.org/maven2/org/eclipse/jdt/core/compiler/ecj/3.5.1/ecj-3.5.1.pom Source5: eclipse-ecj-%{version}.pom Source6: eclipse-ecj.sh.in Patch0: java-ecj-3.4.2-rpmdebuginfo.patch Patch1: java-ecj-3.4.2-defaultto1.5.patch Patch2: java-ecj-3.4.2-generatedebuginfo.patch License: Eclipse Public License Version 1.0 BuildRequires: apache-ant %if %gcjbootstrap BuildRequires: fastjar BuildRequires: gcc-java %endif BuildRequires: java-gcj-compat BuildRequires: java-junit3 BuildRequires: jpackage-utils BuildRequires: zip BuildRoot: %{_tmppath}/%{name}-%{version}-root %description ECJ is the Java bytecode compiler of the Eclipse Platform. It is also known as the JDT Core batch compiler. %package gcj Summary: GCJ %{name} support Group: System/Libraries/Java BuildRequires: java-gcj-compat BuildRequires: libgcj4-devel Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Requires: java-gcj-compat Requires: jpackage-utils %description gcj Eclipse Compiler for Java. This package contains GCJ %{name} support. %prep %setup -q -c -n %{name}-%{version} %patch0 -p1 #%patch1 -p1 %patch2 -p1 tar jxf %{S:2} tar zxf %{S:3} # Use ECJ for GCJ's bytecode compiler cp -pr eclipse-gcj/org/eclipse/jdt/internal/compiler/batch/GCCMain.java org/eclipse/jdt/internal/compiler/batch/ mkdir -p jdtcoresrc/src/org/eclipse/jdt/internal/compiler/batch/ mv eclipse-gcj/org/eclipse/jdt/internal/compiler/batch/GCCMain.java jdtcoresrc/src/org/eclipse/jdt/internal/compiler/batch/ cat eclipse-gcj/gcc.properties >> org/eclipse/jdt/internal/compiler/batch/messages.properties rm -rf eclipse-gcj # JDTCompilerAdapter isn't used by the batch compiler rm -f org/eclipse/jdt/core/JDTCompilerAdapter.java %build unset JAVA_HOME export JAVA_HOME=%javahome %if %gcjbootstrap for f in `find -name '*.java' | cut -c 3- | LC_ALL=C sort`; do gcj -Wno-deprecated -C $f done find -name '*.class' -or -name '*.properties' -or -name '*.rsc' | xargs fastjar cf ecj-%{version}.jar %else ORIGCLASSPATH=$CLASSPATH ant -DcompilerArg="-encoding ISO-8859-1 -nowarn" -buildfile jdtcoresrc/compilejdtcorewithjavac.xml # 2. Use this ecj to rebuild itself export CLASSPATH=`pwd`/jdtcoresrc/ecj.jar:$ORIGCLASSPATH ant -DcompilerArg="-encoding ISO-8859-1 -nowarn" -buildfile jdtcoresrc/compilejdtcore.xml %endif mkdir temp cd temp %javahome/bin/jar -xf ../ecj.jar rm -rf ../ecj.jar META-INF cp -pr ../org/eclipse/jdt/internal/compiler/batch/messages.properties org/eclipse/jdt/internal/compiler/batch/ %javahome/bin/jar -cMf ../ecj.jar * cd .. tar -xf %{S:4} touch META-INF/MANIFEST.MF touch META-INF/services/javax.tools.JavaCompiler zip -u ecj.jar META-INF/MANIFEST.MF META-INF/services/javax.tools.JavaCompiler %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" mkdir -p %{buildroot}%{_javadir} install -m 644 ecj.jar %{buildroot}%{_javadir}/ecj-%{version}.jar mkdir -p %{buildroot}%{antlib} pushd %{buildroot}%{_javadir} # ln -s ecj-%{version}.jar ecj.jar ln -s ecj-%{version}.jar eclipse-ecj-%{version}.jar ln -s eclipse-ecj-%{version}.jar eclipse-ecj.jar ln -s ecj-%{version}.jar jdtcore.jar ln -s ../../java/ecj-%{version}.jar %{buildroot}%{antlib}/ecj-%{version}.jar popd mkdir -p %{buildroot}%{_bindir} install -pm 755 %{S:6} %{buildroot}%{_bindir}/ecj sed -i "s:@JAVADIR@:%{_javadir}:" %{buildroot}%{_bindir}/ecj mkdir -p %{buildroot}%{_datadir}/maven2/poms install -m 644 %{S:5} %{buildroot}%{_datadir}/maven2/poms/JPP-eclipse-ecj.pom %add_to_maven_depmap org.eclipse.jdt.core.compiler ecj %{version} JPP eclipse-ecj %{_bindir}/aot-compile-rpm %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %files %defattr(-,root,root) %{_bindir}/ecj %{_javadir}/ecj-%{version}.jar #%{_javadir}/ecj.jar %{_javadir}/eclipse-ecj-%{version}.jar %{_javadir}/eclipse-ecj.jar %{_javadir}/jdtcore.jar %{antlib}/ecj-%{version}.jar %{_mavendepmapfragdir} %{_datadir}/maven2/poms %doc about.html %post gcj /sbin/ldconfig if [ -x %{_bindir}/rebuild-gcj-db ]; then %{_bindir}/rebuild-gcj-db fi %postun gcj /sbin/ldconfig if [ -x %{_bindir}/rebuild-gcj-db ]; then %{_bindir}/rebuild-gcj-db fi %files gcj %defattr(-,root,root) %{_libdir}/gcj/eclipse-ecj/ecj-*.jar.db %{_libdir}/gcj/eclipse-ecj/ecj-*.jar.so %changelog * Fri Feb 25 2011 gil 3.6-6mamba - rebuilt with java-gcj-compat 1.0.80-20mamba support * Thu Jan 06 2011 gil 3.6-5mamba - rebuilt * Thu Jan 06 2011 gil 3.6-4mamba - edit spec file * Thu Jan 06 2011 gil 3.6-3mamba - edit eclipse-ecj.sh.in * Sun Nov 28 2010 gil 3.6-2mamba - rebuilt devel * Sat Jul 10 2010 gil 3.6-1mamba - update to 3.6 * Wed May 19 2010 gil 3.5.2-4mamba - edit script * Wed May 19 2010 gil 3.5.2-3mamba - added: maven pom * Thu Apr 22 2010 gil 3.5.2-2mamba - added: OSGi MANIFEST * Wed Mar 17 2010 gil 3.5.2-1mamba - update to 3.5.2 * Sun Sep 13 2009 gil 3.5-1mamba - update to 3.5 * Sat Apr 04 2009 gil 3.4.2-2mamba - rebuilt * Fri Mar 13 2009 gil 3.4.2-1mamba - renamed eclipse-ecj * Fri Mar 13 2009 gil 3.4.2-1mamba - package created by autospec