[eclipse/f18] prepare spec for building without circular deps.

Krzysztof Daniel kdaniel at fedoraproject.org
Fri Oct 19 15:17:32 UTC 2012


commit 63bd83c628282f4af7a6933a88e6f4fdc940e7a8
Author: Krzysztof Daniel <kdaniel at redhat.com>
Date:   Fri Oct 19 17:14:43 2012 +0200

    prepare spec for building without circular deps.
    
    Conflicts:
    	eclipse.spec

 .gitignore   |    4 +
 eclipse.spec |  194 ++++++++++++++++++++++++++++++++++++++++++++-------------
 sources      |    2 +-
 3 files changed, 154 insertions(+), 46 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 6e11fad..b71b0a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,7 @@ eclipse-build-bbaaeebc6916cc28848e3f7f8f2ae5b8390c2ee3.tar.xz
 /eclipse-jdtpdeupdatesite.tar.bz2
 /x86_64
 /org.eclipse.linuxtools.eclipse-build-701400b0ca475ea73bd828c66b00fb63c5ec2c8c.tar.bz2
+/eclipse-build-621c5c36be5ab2d5f36b2b1434164532b74f779f.tar.xz
+/results_eclipse
+/eclipse-build-06227d455145aad68156ca408ce96a26beae4714.tar.xz
+/eclipse-build-264db10bec789532541d16baaa8889e4db52298d.tar.xz
diff --git a/eclipse.spec b/eclipse.spec
index b42cc0d..b1aa32a 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -9,11 +9,32 @@ Epoch:                  1
 %global eclipse_majmin  %{eclipse_major}.%{eclipse_minor}
 %global eclipse_micro   1
 %global initialize      1
-%global eb_commit       701400b0ca475ea73bd828c66b00fb63c5ec2c8c
+%global eb_commit       264db10bec789532541d16baaa8889e4db52298d
 %global build_id        I20120608-1400
 %global eclipse_version %{eclipse_majmin}.%{eclipse_micro}
 %global installation_loc %{_libdir}/%{name}
 
+
+%ifarch %{arm}
+    %define eclipse_arch arm
+%else %ifarch %{power64} 
+    %define eclipse_arch ppc64
+%else %ifarch %{sparc}
+    %define eclipse_arch sparc
+%else %ifarch x86_64
+    %define eclipse_arch x86_64
+%else %ifarch %{ix86}
+    %define  eclipse_arch %{arch}
+%endif %endif %endif %endif %endif
+
+
+
+
+# Set this flag to 1 if you want to build Eclipse without dependency to eclipse-pde
+# Some parts (help) will not be built, and second run will be required, but this
+# is a way to bootstrap Eclipse on secondary archs.
+%global bootstrap       1
+
 # FIXME:  update java packaging guidelines for this.  See
 # fedora-devel-java-list discussion in September 2008.
 #
@@ -37,14 +58,14 @@ ln -s %{_javadir}/%{2} ${_f}
 Summary:        An open, extensible IDE
 Name:           eclipse
 Version:        %{eclipse_version}
-Release:        2%{?dist}
+Release:        3%{?dist}
 License:        EPL
 Group:          Development/Tools
 URL:            http://www.eclipse.org/
 #get-eclipse.sh
 Source0:        eclipse-source.tar.bz2
 #http://git.eclipse.org/c/linuxtools/org.eclipse.linuxtools.eclipse-build.git/snapshot/org.eclipse.linuxtools.eclipse-build-701400b0ca475ea73bd828c66b00fb63c5ec2c8c.tar.bz2
-Source1:        org.eclipse.linuxtools.eclipse-build-%{eb_commit}.tar.bz2
+Source1:        eclipse-build-%{eb_commit}.tar.xz
 Source2:        macros.%{name}
 
 # -com.sun.el
@@ -246,8 +267,10 @@ BuildRequires: eclipse-ecf-core
 BuildRequires: tomcat-servlet-3.0-api
 BuildRequires: tomcat-jsp-2.2-api
 BuildRequires: cglib
-BuildRequires: glassfish-jsp >= 2.2.5
-BuildRequires: eclipse-pde
+BuildRequires: glassfish-jsp >= 2.2.6
+%if %{bootstrap} != 1
+    BuildRequires: eclipse-pde
+%endif
 %if 0%{?rhel} >= 6
 ExclusiveArch: %{ix86} x86_64
 %endif
@@ -327,7 +350,6 @@ Provides:       osgi(system.bundle) = %{epoch}:%{eclipse_version}
 The Eclipse Platform is the base of all IDE plugins.  This does not include the
 Java Development Tools or the Plugin Development Environment.
 
-
 %package        jdt
 Version:        %{eclipse_version}
 Summary:        Eclipse Java Development Tools
@@ -376,9 +398,6 @@ Eclipse Tests.
 
 %prep
 
-ARCH=%{_arch}
-ARCH=${ARCH/i386/x86}
-
 %setup -q %{SOURCE0} -n R4_platform-aggregator
 
 tar --strip-components=1 -xf %{SOURCE1}
@@ -410,7 +429,9 @@ tar --strip-components=1 -xf %{SOURCE1}
 %patch25
 %patch26
 %patch27
-%patch28
+%if %{bootstrap} != 1
+    %patch28
+%endif
 %patch29
 %patch30
 %patch31
@@ -450,13 +471,13 @@ sed -i -e "s|http://download.oracle.com/javase/6/docs/api|%{_datadir}/javadoc/ja
    -e "s|-breakiterator|;../org.eclipse.equinox.util/@dot\n;../org.eclipse.ecf.filetransfer_3.0.0.v20090302-0803.jar\n;../org.eclipse.ecf_3.0.0.v20090302-0803.jar\n-breakiterator|" \
     eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/platformOptions.txt
 sed -i -e "s|http://download.oracle.com/javase/6/docs/api|%{_datadir}/javadoc/java|" \
-   -e "s/win32.win32.x86/gtk.linux.${ARCH}/" \
+   -e "s/win32.win32.x86/gtk.linux.%{eclipse_arch}/" \
    eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt
 sed -i -e "s|http://download.oracle.com/javase/6/docs/api|%{_datadir}/javadoc/java|" \
    -e "/osgi\.org/d" \
    eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt
 sed -i -e "s|http://download.oracle.com/javase/1.4.2/docs/api|%{_datadir}/javadoc/java|" \
-   -e "s/motif.linux.x86/gtk.linux.${ARCH}/" \
+   -e "s/motif.linux.x86/gtk.linux.%{eclipse_arch}/" \
    -e "/osgi\.org/d" \
    eclipse.platform.common/bundles/org.eclipse.pde.doc.user/pdeOptions.txt \
    eclipse.platform.common/bundles/org.eclipse.pde.doc.user/pdeOptions.txt
@@ -489,7 +510,7 @@ sed -i -e "s/ctxt.getBundleContext().registerService(PropertiesProvider.class.ge
 
 # Partially covered by https://bugs.eclipse.org/bugs/show_bug.cgi?id=386377
 sed -i -e "s/1407/1503/" rt.equinox.framework/launcher-binary-parent/pom.xml
-sed -i -e "s/1500/1503/" rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.${ARCH}/pom.xml
+sed -i -e "s/1500/1503/" rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.%{eclipse_arch}/pom.xml
 
 
 # remove git from cbi build. It was explained earlier why.
@@ -499,55 +520,137 @@ sed -i -e "s@ org.eclipse.jgit;bundle-version=\"1.3.0\";resolution:=optional,@ o
 rm eclipse.platform.releng/bundles/org.eclipse.releng.tools/src/org/eclipse/releng/tools/git/*
 
 %build
-ARCH=%{_arch}
-ARCH=${ARCH/i386/x86}
 
-mkdir -p repo
+export MAVEN_OPTS=-Xmx2048m
+
+mkdir -p .m2/p2/repo-sdk/plugins
+mkdir -p .m2/p2/repo-sdk/features
+
+%if %{bootstrap} == 1
+currentDir=`pwd`
+
+pushd repo/emf/eclipse/plugins
+    ln -s %{_javadir}/hamcrest/core.jar
+    cd org.junit_3.8.2.v3_8_2_v20100427-1100
+    ln -s %{_javadir}/junit.jar
+    cd ..
+    zip -r org.junit_3.8.2.v3_8_2_v20100427-1100.jar org.junit_3.8.2.v3_8_2_v20100427-1100
+
+cd org.apache.ant_1.8.3.v20120321-1730
+  mkdir -p lib
+    pushd lib
+        #rm *
+        ln -s %{_javadir}/ant/ant-antlr.jar
+        ln -s %{_javadir}/ant/ant-apache-bcel.jar
+        ln -s %{_javadir}/ant/ant-apache-bsf.jar
+        ln -s %{_javadir}/ant/ant-apache-log4j.jar
+        ln -s %{_javadir}/ant/ant-apache-oro.jar
+        ln -s %{_javadir}/ant/ant-apache-regexp.jar
+        ln -s %{_javadir}/ant/ant-apache-resolver.jar
+        ln -s %{_javadir}/ant/ant-apache-xalan2.jar
+        ln -s %{_javadir}/ant/ant-commons-logging.jar
+        ln -s %{_javadir}/ant/ant-commons-net.jar
+        ln -s %{_javadir}/ant/ant-javamail.jar
+        ln -s %{_javadir}/ant/ant-jdepend.jar
+        ln -s %{_javadir}/ant/ant-jmf.jar
+        ln -s %{_javadir}/ant/ant-jsch.jar
+        ln -s %{_javadir}/ant/ant-junit.jar
+        ln -s %{_javadir}/ant/ant-junit.jar junit4.jar
+        ln -s %{_javadir}/ant-launcher.jar
+        ln -s %{_javadir}/ant/ant-swing.jar
+        ln -s %{_javadir}/ant/ant-testutil.jar
+        ln -s %{_javadir}/ant.jar
+    popd
+mkdir -p bin
+    pushd bin
+        #rm *
+        ln -s /usr/bin/ant ant
+        ln -s /usr/bin/antRun antRun
+        ln -s /usr/bin/antRun.pl antRun.pl
+        ln -s /usr/bin/runant.pl runant.pl
+        ln -s /usr/bin/runant.py runant.py
+        ln -s /usr/bin/complete-ant-cmd.pl complete-and-cmd.pl
+    popd
+cd ..
+zip -r org.apache.ant_1.8.3.v20120321-1730.jar org.apache.ant_1.8.3.v20120321-1730
+cd ../..
+unzip %{_javadir}/tycho/tycho-bundles-external.zip
+popd
+
 cp -r /usr/share/java/emf repo
-eclipse  -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
-   -metadataRepository file:/`pwd`/repo \
-   -artifactRepository file:/`pwd`/repo \
-   -source `pwd`/repo/emf/eclipse \
-   -configs gtk.linux.${ARCH} \
-   -compress \
-   -publishArtifacts
 
+cp -r repo/emf/eclipse/plugins/* .m2/p2/repo-sdk/plugins/
+cp -r repo/emf/eclipse/features/* .m2/p2/repo-sdk/features/
+
+pushd repo/emf/eclipse/plugins/
+mvn-rpmbuild install:install-file -DgroupId=org.eclipse.tycho  \
+-DartifactId=org.eclipse.osgi  \
+-Dversion=3.8.0.v20120529-1548  \
+-Dfile=org.eclipse.osgi_3.8.1.v20121002-1112.jar  \
+-Dpackaging=jar \
+-DgeneratePom=true -Dmaven.local.mode=true -DskipTychoVersionCheck -DlocalRepositoryPath=../../../../.m2
+
+mvn-rpmbuild install:install-file -DgroupId=org.eclipse.tycho  \
+-DartifactId=org.eclipse.jdt.core  \
+-Dversion=3.8.1.v20120531-0637  \
+-Dfile=%{_javadir}/eclipse-ecj.jar  \
+-Dpackaging=jar \
+-DgeneratePom=true -Dmaven.local.mode=true -DskipTychoVersionCheck -DlocalRepositoryPath=../../../../.m2
+
+
+id=1
+for p in $(find /usr/share/java -name "*.jar"); do
+   ((unzip -p $p 'META-INF/MANIFEST.MF' | grep -q 'Bundle-SymbolicName') && (plugin=${id}-$(basename $p) ; [ ! -e $plugin ] && ln -s $p $plugin ; id=$((${id} + 1)) ;)) || true;
+done
+
+cd ..
+
+java -jar plugins/org.eclipse.equinox.launcher_*.jar -nosplash -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
+-metadataRepository file:${currentDir}/.m2/p2/repo/ \
+-artifactRepository file:${currentDir}/.m2/p2/repo/ \
+-source `pwd` \
+-compress -append -publishArtifacts
+
+popd
+%endif
 
 mvn-rpmbuild -f eclipse-parent/pom.xml \
    clean install \
-   -Dmaven.local.mode=true -Dtycho.local.keepTarget -Demf-repo.url=file:/`pwd`/repo
+   -Dmaven.local.mode=true -Dtycho.local.keepTarget -DskipTychoVersionCheck
 
 mvn-rpmbuild -f maven-cbi-plugin/pom.xml \
    clean install \
-   -Dmaven.local.mode=true -Dtycho.local.keepTarget -Demf-repo.url=file:/`pwd`/repo
+   -Dmaven.local.mode=true -Dtycho.local.keepTarget -DskipTychoVersionCheck
 
 # workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=386377
 # pushd rt.equinox.framework/bundles/org.eclipse.equinox.executable
 mvn-rpmbuild clean install \
-   -Dmaven.test.skip=true -Dnative=gtk.linux.${ARCH}  \
-   -Dmaven.local.mode=true -Dtycho.local.keepTarget -Demf-repo.url=file:/`pwd`/repo
+   -Dmaven.test.skip=true -Dnative=gtk.linux.%{eclipse_arch} -DskipTychoVersionCheck \
+   -Dmaven.local.mode=true -Dtycho.local.keepTarget 
 # popd
 
+%if %{bootstrap} != 1
 pushd eclipse.platform.common/bundles/org.eclipse.platform.doc.user
-    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true
+    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true -DskipTychoVersionCheck
 popd
 pushd eclipse.platform.common/bundles/org.eclipse.platform.doc.isv
-    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true
+    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true -DskipTychoVersionCheck
 popd
 pushd eclipse.platform.common/bundles/org.eclipse.jdt.doc.user
-    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true
+    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true -DskipTychoVersionCheck
 popd
 pushd eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv
-    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true
+    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true -DskipTychoVersionCheck
 popd
 pushd eclipse.platform.common/bundles/org.eclipse.pde.doc.user
-    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true
+    mvn-rpmbuild install -Dmaven.test.skip=true -Dmaven.local.mode=true -DskipTychoVersionCheck
 popd 
+%endif
 mvn-rpmbuild clean install \
-   -Dmaven.test.skip=true -Dnative=linux.gtk.${ARCH}  \
-   -Dmaven.local.mode=true -Dtycho.local.keepTarget -Demf-repo.url=file:/`pwd`/repo
+   -Dmaven.test.skip=true -Dnative=linux.gtk.%{eclipse_arch}  -DskipTychoVersionCheck \
+   -Dmaven.local.mode=true -Dtycho.local.keepTarget 
 
-pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}
+pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}
 
 ######################
 # Extract jdt and pde to dropins
@@ -728,7 +831,7 @@ pushd dropins/jdt/plugins
  ln -s %{_javadir}/hamcrest/core.jar $f
 
  cd org.junit_3.8.2.*
- rm junit.jar
+ rm -f junit.jar
  ln -s /usr/share/java/junit.jar
  cd ..
 
@@ -750,8 +853,6 @@ popd
 popd
 
 %install
-ARCH=%{_arch}
-ARCH=${ARCH/i386/x86}
 # We don't need icon.xpm
 # https://bugs.eclipse.org/292472
 rm -f $RPM_BUILD_ROOT/%{_libdir}/%{name}/icon.xpm
@@ -778,11 +879,11 @@ install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
 #################################
 LOCAL_PWD=`pwd`
 #change the installation p2 files
-pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/
+pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/
 for i in `ls | grep "profile.gz"` ; do  \
         echo $i ; \
         gunzip $i ; \
-        sed -i -e "s@${LOCAL_PWD}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse@%{_libdir}/eclipse at g" *.profile ; \
+        sed -i -e "s@${LOCAL_PWD}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse@%{_libdir}/eclipse at g" *.profile ; \
         gzip *.profile ; \
     done 
 
@@ -792,18 +893,18 @@ for i in `ls | grep "profile.gz"` ; do  \
 popd 
 
 #delete all local repositories. We want to have only "original" by default.
-pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse/p2/org.eclipse.equinox.p2.engine/.settings
+pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse/p2/org.eclipse.equinox.p2.engine/.settings
     sed -i "/repositories\/file/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs
     sed -i "/repositories\/memory/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs
 popd
 
 #clean cache
-pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse/p2/org.eclipse.equinox.p2.core/cache
+pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse/p2/org.eclipse.equinox.p2.core/cache
     rm -rf *
 popd
 
 #installation itself - copy it into right location
-rsync -vrpl eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse \
+rsync -vrpl eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse \
     $RPM_BUILD_ROOT%{_libdir}
 
 #desktop file
@@ -813,7 +914,7 @@ install -D desktopintegration/eclipse.desktop $RPM_BUILD_ROOT/usr/share/applicat
 chmod ugo+rx jdtcompilatorscript/efj.sh
 mkdir -p $RPM_BUILD_ROOT/usr/bin
 install jdtcompilatorscript/efj.sh $RPM_BUILD_ROOT/usr/bin/efj
-TARGET_LAUNCHER=%{installation_loc}\/plugins/`ls eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/${ARCH}/eclipse/plugins | grep launcher_[0-9]*`
+TARGET_LAUNCHER=%{installation_loc}\/plugins/`ls eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.fedoraproject.eclipse.platform/linux/gtk/%{eclipse_arch}/eclipse/plugins | grep launcher_[0-9]*`
 sed -i -e "s, at LAUNCHER@,${TARGET_LAUNCHER}," $RPM_BUILD_ROOT/usr/bin/efj
 
 #eclipse binary
@@ -967,7 +1068,7 @@ touch $RPM_BUILD_ROOT%{_bindir}/%{name}-runEclipsePackageTests
 chmod a+x  $RPM_BUILD_ROOT/%{_bindir}/%{name}-runEclipsePackageTests
 echo '#!/bin/sh' >>  $RPM_BUILD_ROOT/%{_bindir}/%{name}-runEclipsePackageTests
 echo 'echo "results in /tmp/eclipse-tests-directory/results/"' >>  $RPM_BUILD_ROOT/%{_bindir}/%{name}-runEclipsePackageTests
-echo "pushd %{_javadir}/eclipse-tests;./runtests.sh -os linux -ws gtk -arch ${ARCH} ; popd;" >>  $RPM_BUILD_ROOT/%{_bindir}/%{name}-runEclipsePackageTests
+echo "pushd %{_javadir}/eclipse-tests;./runtests.sh -os linux -ws gtk -arch %{eclipse_arch} ; popd;" >>  $RPM_BUILD_ROOT/%{_bindir}/%{name}-runEclipsePackageTests
 
 
 %post platform
@@ -1258,6 +1359,9 @@ rm -rf %{_bindir}/efj/
 %{_mavendepmapfragdir}/%{name}-equinox-osgi
 
 %changelog
+* Fri Oct 5 2012 Krzysztof Daniel <kdaniel at redhat.com> 1:4.2.1-3
+- Add ability to exclude platform-pde from build .
+
 * Tue Oct 2 2012 Krzysztof Daniel <kdaniel at redhat.com> 1:4.2.1-2
 - Bump emf version to 2.8.1.
 
diff --git a/sources b/sources
index 5fcad48..1532505 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
+862f674def739b7ab7abdf068d3e4c7b  eclipse-build-264db10bec789532541d16baaa8889e4db52298d.tar.xz
 e0410f4224b0e4390b553e092e400439  eclipse-source.tar.bz2
-0caade338914415a37f767b7758148ea  org.eclipse.linuxtools.eclipse-build-701400b0ca475ea73bd828c66b00fb63c5ec2c8c.tar.bz2


More information about the scm-commits mailing list