prepare spec for building without circular deps.

This commit is contained in:
Krzysztof Daniel 2012-10-18 09:00:58 +02:00
parent 9dfcba9814
commit 71615b111b
3 changed files with 153 additions and 45 deletions

4
.gitignore vendored
View File

@ -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

View File

@ -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 <kdaniel@redhat.com> 1:4.2.1-3
- Add ability to exclude platform-pde from build .
* Tue Oct 2 2012 Krzysztof Daniel <kdaniel@redhat.com> 1:4.2.1-2
- Bump emf version to 2.8.1.

View File

@ -1,2 +1,2 @@
862f674def739b7ab7abdf068d3e4c7b eclipse-build-264db10bec789532541d16baaa8889e4db52298d.tar.xz
e0410f4224b0e4390b553e092e400439 eclipse-source.tar.bz2
0caade338914415a37f767b7758148ea org.eclipse.linuxtools.eclipse-build-701400b0ca475ea73bd828c66b00fb63c5ec2c8c.tar.bz2