From 71615b111b1a1d693e0cf8c4ed624dcb0b3f3d6a Mon Sep 17 00:00:00 2001 From: Krzysztof Daniel Date: Thu, 18 Oct 2012 09:00:58 +0200 Subject: [PATCH] prepare spec for building without circular deps. --- .gitignore | 4 ++ eclipse.spec | 192 +++++++++++++++++++++++++++++++++++++++------------ sources | 2 +- 3 files changed, 153 insertions(+), 45 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 3da68de..b3a25e9 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 @@ -247,7 +268,9 @@ BuildRequires: tomcat-servlet-3.0-api BuildRequires: tomcat-jsp-2.2-api BuildRequires: cglib BuildRequires: glassfish-jsp >= 2.2.6 -BuildRequires: eclipse-pde +%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@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@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,@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 1:4.2.1-3 +- Add ability to exclude platform-pde from build . + * Tue Oct 2 2012 Krzysztof Daniel 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