Update tycho snapshot and simplify bootstrapping

This commit is contained in:
Mat Booth 2018-05-02 17:51:29 +01:00
parent 3440b43814
commit e182d67090
7 changed files with 117 additions and 248 deletions

5
.gitignore vendored
View File

@ -2,15 +2,14 @@
/org.eclipse.tycho-* /org.eclipse.tycho-*
/tycho-*.xz /tycho-*.xz
/tycho-*.bz2 /tycho-*.bz2
/tycho-*.gz
/tycho-*/ /tycho-*/
maven-repo.tar.xz maven-repo.tar.xz
*.src.rpm *.src.rpm
/noarch /noarch
/.project /.project
/eclipse-bootstrap.tar.xz
/fedoraproject-p2-*.tar.xz /fedoraproject-p2-*.tar.xz
/fedoraproject-p2-*.tar.gz
/eclipse-bootstrap-neon.tar.xz /eclipse-bootstrap-neon.tar.xz
/eclipse-bootstrap-oxygen.tar.xz /eclipse-bootstrap-oxygen.tar.xz
/fedoraproject-p2-290f67a4c717599b2f5166ea89aa5365571314b1.tar.gz
/tycho-d9ce75d316caae823be78527b7b690182b602895.tar.gz
/eclipse-bootstrap-photon.tar.xz /eclipse-bootstrap-photon.tar.xz

View File

@ -1,3 +1,3 @@
SHA512 (fedoraproject-p2-290f67a4c717599b2f5166ea89aa5365571314b1.tar.gz) = 5ddfa3e7c1dc3d64335d836d74d7325904f294e0ab1782de41a8815b09ddf42f0c47a263c3a6217626aaf293a17788d01174c327e17b192a0f451d07d5655c49 SHA512 (fedoraproject-p2-290f67a4c717599b2f5166ea89aa5365571314b1.tar.gz) = 5ddfa3e7c1dc3d64335d836d74d7325904f294e0ab1782de41a8815b09ddf42f0c47a263c3a6217626aaf293a17788d01174c327e17b192a0f451d07d5655c49
SHA512 (tycho-d9ce75d316caae823be78527b7b690182b602895.tar.gz) = 7522ecb017e8c0fac93454386f41b34751462fb26238d2e5047ecc191254d2356b70a94f5f726f547b1631a678ce310b272bf33121a756385297dfd3190059e8 SHA512 (tycho-5d018bb7d0c2d09275a00b4863e8ac6d5fa04541.tar.gz) = c307d13d8edbe7aafc8ee489d76ef1fc9c60db668fba1ca99a9970e1aceb18154071256f24ebdeba47dd707795ba4a797b10f4c45b9c95228eb77b1afee981c4
SHA512 (eclipse-bootstrap-photon.tar.xz) = c18687eecd7d79bbd0722e8effc89d32a8fe31f2c9fe978cc73cfe9679d5a7fd01d8e12483404e3257d86817b7a12b4dcdfbd88316855a06d8f43da71a3c49a8 SHA512 (eclipse-bootstrap-photon.tar.xz) = c18687eecd7d79bbd0722e8effc89d32a8fe31f2c9fe978cc73cfe9679d5a7fd01d8e12483404e3257d86817b7a12b4dcdfbd88316855a06d8f43da71a3c49a8

View File

@ -2,8 +2,7 @@
. $(pwd)/tycho-scripts.sh . $(pwd)/tycho-scripts.sh
eclipse_bootstrap=$1 preV=$1
preV=$2
v="$preV-SNAPSHOT" v="$preV-SNAPSHOT"
osgiV='3.13.0.v20180428-1222' osgiV='3.13.0.v20180428-1222'
osgiCompatV='1.1.100.v20180428-1222' osgiCompatV='1.1.100.v20180428-1222'
@ -60,32 +59,6 @@ for ((i=0; i < ${#bundles[@]}; i++)) ;do
unifyProject ${bundles[${i}]} unifyProject ${bundles[${i}]}
done done
# Can't have empty mojo project
mkdir -p 'tycho-maven-plugin/src/main/java/org/fedoraproject'
pushd 'tycho-maven-plugin/src/main/java/org/fedoraproject'
echo '
package org.fedoraproject;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.AbstractMojo;
/**
* Empty goal to fix
* @goal empty
* @phase clean
*/
public class EmptyMojo
extends AbstractMojo
{
public void execute()
throws MojoExecutionException, MojoFailureException
{
}
}
' > EmptyMojo.java
popd
# Run the build on this maven reactor project # Run the build on this maven reactor project
for proj in ${reactorprojs[@]} ; do for proj in ${reactorprojs[@]} ; do
isolateProject ${proj} isolateProject ${proj}

View File

@ -1,119 +0,0 @@
diff --git a/tycho-compiler-plugin/pom.xml b/tycho-compiler-plugin/pom.xml
index 923405d..33ce36d 100644
--- a/tycho-compiler-plugin/pom.xml
+++ b/tycho-compiler-plugin/pom.xml
@@ -63,19 +63,6 @@
</dependency>
<dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-core</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <classifier>tests</classifier>
- </dependency>
- <dependency>
<groupId>bcel</groupId>
<artifactId>bcel</artifactId>
<scope>test</scope>
diff --git a/tycho-core/pom.xml b/tycho-core/pom.xml
index 9f79a46..10628cf 100644
--- a/tycho-core/pom.xml
+++ b/tycho-core/pom.xml
@@ -148,12 +148,6 @@
</dependency>
<dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
</dependency>
diff --git a/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml
index 040a199..8fb2005 100644
--- a/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml
+++ b/tycho-maven-plugin/src/main/resources/META-INF/plexus/components.xml
@@ -94,9 +94,6 @@
org.eclipse.tycho:tycho-packaging-plugin:${project.version}:package-plugin,
org.eclipse.tycho:tycho-p2-plugin:${project.version}:p2-metadata-default
</package>
- <integration-test>
- org.eclipse.tycho:tycho-surefire-plugin:${project.version}:test
- </integration-test>
<install>
org.apache.maven.plugins:maven-install-plugin:${install-plugin.version}:install,
org.eclipse.tycho:tycho-p2-plugin:${project.version}:update-local-index
diff --git a/tycho-p2/tycho-p2-plugin/pom.xml b/tycho-p2/tycho-p2-plugin/pom.xml
index e25b6d9..7e8a7f2 100644
--- a/tycho-p2/tycho-p2-plugin/pom.xml
+++ b/tycho-p2/tycho-p2-plugin/pom.xml
@@ -53,13 +53,6 @@
<artifactId>tycho-artifactcomparator</artifactId>
<version>${project.version}</version>
</dependency>
-
- <dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
diff --git a/tycho-p2/tycho-p2-publisher-plugin/pom.xml b/tycho-p2/tycho-p2-publisher-plugin/pom.xml
index e52cf18..bcd8c91 100644
--- a/tycho-p2/tycho-p2-publisher-plugin/pom.xml
+++ b/tycho-p2/tycho-p2-publisher-plugin/pom.xml
@@ -53,17 +53,6 @@
<version>${project.version}</version>
<type>maven-plugin</type>
</dependency>
- <dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/tycho-packaging-plugin/pom.xml b/tycho-packaging-plugin/pom.xml
index 0990b2d..7dd1d68 100644
--- a/tycho-packaging-plugin/pom.xml
+++ b/tycho-packaging-plugin/pom.xml
@@ -33,19 +33,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-testing-harness</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-core</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- <classifier>tests</classifier>
- </dependency>
- <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>

View File

@ -7,6 +7,21 @@ Minor fixes of limited scope needed to have Tycho building on Fedora.
Change-Id: Ic8c0514c1fa10ee53580d2654ac6a363ccd66814 Change-Id: Ic8c0514c1fa10ee53580d2654ac6a363ccd66814
--- ---
diff --git a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java
index b00c344..bc05c2d 100644
--- a/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java
+++ b/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java
@@ -102,7 +102,9 @@ public class TychoMavenLifecycleParticipant extends AbstractMavenLifecyclePartic
}
private void validate(List<MavenProject> projects) throws MavenExecutionException {
- validateConsistentTychoVersion(projects);
+ if (System.getProperty("tycho.enableVersionCheck") != null) {
+ validateConsistentTychoVersion(projects);
+ }
validateUniqueBaseDirs(projects);
}
diff --git a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java diff --git a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java b/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java
index 097bdeb..f90b10c 100644 index 097bdeb..f90b10c 100644
--- a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java --- a/tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java

View File

@ -64,12 +64,10 @@ for scl in ${scls} ; do
osgiLocations=( ${baseLocations[@]/#//opt/rh/${scl}/root} ${osgiLocations[@]} ) osgiLocations=( ${baseLocations[@]/#//opt/rh/${scl}/root} ${osgiLocations[@]} )
done done
if [ ${eclipse_bootstrap} -eq 1 ]; then
prefix="$(pwd)/bootstrap" prefix="$(pwd)/bootstrap"
osgiLocations=( ${osgiLocations[@]/#/${prefix}} ) osgiLocations=( ${osgiLocations[@]/#/${prefix}} )
osgiLocations+=( ${osgiLocations[@]/${prefix}/} ) osgiLocations+=( ${osgiLocations[@]/${prefix}/} )
osgiLocations=( ${prefix}/extras ${osgiLocations[@]} ) osgiLocations=( ${prefix}/extras ${osgiLocations[@]} )
fi
wantedBundles=`echo $1 | tr ',' ' '` wantedBundles=`echo $1 | tr ',' ' '`
destDir=$2 destDir=$2

View File

@ -1,18 +1,18 @@
# Bootstrap build # Tycho depends on itself, and Eclipse to build but in certain cases these
# Tycho depends on itself, and Eclipse to build but in certain cases # requirements may not be satisfiable then building Tycho becomes problematic.
# these requirements may not be satisfiable. # For example:
# * A library (in Fedora) used by Tycho's runtime broke API and so Tycho
# from the buildroot is broken
# * Building into a new distro or buildroot, where neither Tycho nor Eclipse
# is available yet and we need to build Tycho before building Eclipse
# In bootstrap mode, javac and plain xmvn are used to build a subset of
# Tycho such that it can build a bootstrap mode Eclipse and subsequently
# fully rebuild itself. In this mode, there may be reduced functionality,
# so a full non-bootstrap mode build should always be done afterwards.
%bcond_with bootstrap
# Set 'tycho_bootstrap' if Tycho from buildroot is broken or non-existent # Release tags or git SHAs
# This basically uses javac + xmvn to build only the Tycho components %global git_tag 5d018bb7d0c2d09275a00b4863e8ac6d5fa04541
# required to perform a full Tycho build
# Most common usage : A library (in Fedora) used by Tycho's runtime broke API
%global tycho_bootstrap 0
# Set 'eclipse_bootstrap' if Eclipse from buildroot cannot help build Tycho
# This basically provides a location for usage of pre-bundled Eclipse
# Possible uses : Need to build Tycho before Eclipse in fresh buildroot
%global eclipse_bootstrap 0
%global git_tag d9ce75d316caae823be78527b7b690182b602895
%global fp_p2_git_tag 290f67a4c717599b2f5166ea89aa5365571314b1 %global fp_p2_git_tag 290f67a4c717599b2f5166ea89aa5365571314b1
%global fp_p2_version 0.0.1 %global fp_p2_version 0.0.1
@ -22,7 +22,7 @@
Name: tycho Name: tycho
Version: 1.2.0 Version: 1.2.0
Release: 0.2.gitd9ce75d%{?dist} Release: 0.3.git5d018bb%{?dist}
Summary: Plugins and extensions for building Eclipse plugins and OSGI bundles with Maven Summary: Plugins and extensions for building Eclipse plugins and OSGI bundles with Maven
# license file is missing but all files having some licensing information are ASL 2.0 # license file is missing but all files having some licensing information are ASL 2.0
@ -44,9 +44,10 @@ Source5: tycho-debundle.sh
# Script that can be used to install or simulate installation of P2 # Script that can be used to install or simulate installation of P2
# artifacts. It is used in OSGi requires generation. # artifacts. It is used in OSGi requires generation.
Source6: p2-install.sh Source6: p2-install.sh
# Fedora Eclipse bundles needed to build Tycho when Eclipse is not present # Fedora Eclipse bundles needed to build Tycho when Eclipse is not present
# or when the Eclipse that is present is not compatible # or when the Eclipse that is present is not compatible
%if %{eclipse_bootstrap} %if %{with bootstrap}
Source10: eclipse-bootstrap-photon.tar.xz Source10: eclipse-bootstrap-photon.tar.xz
%endif %endif
@ -58,65 +59,75 @@ Patch3: %{name}-maven-delegation.patch
Patch4: build-against-photon-equinox.patch Patch4: build-against-photon-equinox.patch
# Changes needed for building against latest surefire # Changes needed for building against latest surefire
Patch5: build-against-surefire-2.21.patch Patch5: build-against-surefire-2.21.patch
# Additional changes needed just for bootstrap build
Patch10: %{name}-fix-bootstrap-build.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: maven-local BuildRequires: maven-local
BuildRequires: xmvn-minimal >= 3 BuildRequires: mvn(biz.aQute.bnd:bnd-maven-plugin)
BuildRequires: maven-clean-plugin BuildRequires: mvn(com.beust:jcommander)
BuildRequires: maven-dependency-plugin BuildRequires: mvn(de.pdark:decentxml)
BuildRequires: maven-install-plugin BuildRequires: mvn(junit:junit)
BuildRequires: maven-release-plugin BuildRequires: mvn(org.apache.commons:commons-compress)
BuildRequires: maven-verifier BuildRequires: mvn(org.apache.commons:commons-exec)
BuildRequires: objectweb-asm BuildRequires: mvn(org.apache.commons:commons-lang3)
BuildRequires: plexus-containers-component-metadata BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: apache-commons-exec BuildRequires: mvn(org.apache.maven:maven-archiver)
BuildRequires: bcel BuildRequires: mvn(org.apache.maven:maven-compat)
BuildRequires: decentxml BuildRequires: mvn(org.apache.maven:maven-core)
BuildRequires: easymock BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: junit BuildRequires: mvn(org.apache.maven.plugins:maven-clean-plugin)
BuildRequires: junit5 BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires: apiguardian BuildRequires: mvn(org.apache.maven.plugins:maven-deploy-plugin)
BuildRequires: ecj >= 1:4.7.3a-1 BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin)
BuildRequires: bnd-maven-plugin BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires: maven-plugin-testing-harness BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin)
BuildRequires: xmvn-parent-pom BuildRequires: mvn(org.apache.maven.plugin-testing:maven-plugin-testing-harness)
BuildRequires: maven-plugin-bundle BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: maven-plugin-plugin BuildRequires: mvn(org.apache.maven.shared:maven-verifier)
BuildRequires: maven-source-plugin BuildRequires: mvn(org.apache.maven.surefire:maven-surefire-common)
%if %{tycho_bootstrap} BuildRequires: mvn(org.apache.maven.surefire:surefire-api)
BuildRequires: maven-deploy-plugin BuildRequires: mvn(org.apiguardian:apiguardian-api)
BuildRequires: maven-site-plugin BuildRequires: mvn(org.codehaus.plexus:plexus-archiver)
%else BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-api)
BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-manager)
BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations)
BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata)
BuildRequires: mvn(org.codehaus.plexus:plexus-container-default)
BuildRequires: mvn(org.codehaus.plexus:plexus-utils)
BuildRequires: mvn(org.eclipse.tycho:org.eclipse.jdt.compiler.apt)
BuildRequires: mvn(org.eclipse.tycho:org.eclipse.jdt.core)
BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-api)
BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-core)
BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-install)
BuildRequires: mvn(org.fedoraproject.xmvn:xmvn-parent:pom:)
BuildRequires: mvn(org.hamcrest:hamcrest-core)
BuildRequires: mvn(org.junit.platform:junit-platform-surefire-provider)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.opentest4j:opentest4j)
BuildRequires: mvn(org.ow2.asm:asm-debug-all)
BuildRequires: mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.slf4j:slf4j-simple)
%if ! %{with bootstrap}
# Ordinarily Tycho additionally requires itself and Eclipse to build
BuildRequires: %{name} BuildRequires: %{name}
%endif BuildRequires: eclipse-platform >= 1:4.8.0
%if %{eclipse_bootstrap}
# Dependencies for Eclipse bundles we use
BuildRequires: apache-commons-jxpath
BuildRequires: felix-scr
BuildRequires: glassfish-jsp-api
BuildRequires: icu4j
BuildRequires: sac
BuildRequires: sat4j
BuildRequires: xz-java
%else %else
BuildRequires: eclipse-platform >= 1:4.7.0 # For bootstrapping, we just need the dependencies of the Eclipse bundles we use
BuildRequires: osgi(com.ibm.icu)
BuildRequires: osgi(org.apache.commons.jxpath)
BuildRequires: osgi(org.apache.felix.scr)
BuildRequires: osgi(org.sat4j.core)
BuildRequires: osgi(org.sat4j.pb)
BuildRequires: osgi(org.w3c.css.sac)
%endif %endif
BuildRequires: jetty-http
BuildRequires: jetty-util
BuildRequires: jetty-security
BuildRequires: jetty-server
BuildRequires: jetty-servlet
BuildRequires: maven-shared-utils
BuildRequires: mockito
Requires: maven-local Requires: maven-local
Requires: xmvn-minimal >= 3 Requires: xmvn-minimal >= 3
Requires: ecj >= 1:4.7.3a-1 Requires: ecj >= 1:4.7.3a-1
%if ! %{eclipse_bootstrap}
Requires: eclipse-platform >= 1:4.7.0 %if ! %{with bootstrap}
Requires: eclipse-platform >= 1:4.8.0
%endif %endif
# maven-clean-plugin is bound to "initialize" Maven phase for # maven-clean-plugin is bound to "initialize" Maven phase for
@ -148,7 +159,6 @@ types supported by PDE and will use PDE/JDT project metadata where
possible. One important design goal in Tycho is to make sure there is possible. One important design goal in Tycho is to make sure there is
no duplication of metadata between POM and OSGi metadata. no duplication of metadata between POM and OSGi metadata.
%package javadoc %package javadoc
Summary: Javadocs for %{name} Summary: Javadocs for %{name}
@ -166,12 +176,12 @@ mv fedoraproject-p2-%{fp_p2_git_tag} fedoraproject-p2
%patch4 %patch4
%patch5 -p1 %patch5 -p1
# Unneeded for RPM builds
%pom_remove_plugin :maven-site-plugin
sed -i -e 's/>%{version}-SNAPSHOT</>%{version}</' $(grep -rl '>%{version}-SNAPSHOT<' --include=pom.xml) sed -i -e 's/>%{version}-SNAPSHOT</>%{version}</' $(grep -rl '>%{version}-SNAPSHOT<' --include=pom.xml)
sed -i -e 's/\.qualifier//' $(find tycho-{surefire,bundles} -maxdepth 3 -name MANIFEST.MF) sed -i -e 's/\.qualifier//' $(find tycho-{surefire,bundles} -maxdepth 3 -name MANIFEST.MF)
# This is submitted upstream: https://bugs.eclipse.org/bugs/show_bug.cgi?id=534248
sed -i -e 's/org.apache.maven.it.util.DirectoryScanner/org.apache.maven.shared.utils.io.DirectoryScanner/g' tycho-testing-harness/src/main/java/org/eclipse/tycho/test/AbstractTychoIntegrationTest.java
# Move from org.sonatype.aether to org.eclipse.aether # Move from org.sonatype.aether to org.eclipse.aether
find . -name "*.java" | xargs sed -i 's/org.sonatype.aether/org.eclipse.aether/g' find . -name "*.java" | xargs sed -i 's/org.sonatype.aether/org.eclipse.aether/g'
find . -name "*.java" | xargs sed -i 's/org.eclipse.aether.util.DefaultRepositorySystemSession/org.eclipse.aether.DefaultRepositorySystemSession/g' find . -name "*.java" | xargs sed -i 's/org.eclipse.aether.util.DefaultRepositorySystemSession/org.eclipse.aether.DefaultRepositorySystemSession/g'
@ -205,30 +215,30 @@ sed -i -e 's/org\.mockito/org.mockito.mockito-core/' \
tycho-bundles/org.eclipse.tycho.p2.resolver.shared.tests/META-INF/MANIFEST.MF tycho-bundles/org.eclipse.tycho.p2.resolver.shared.tests/META-INF/MANIFEST.MF
# Bootstrap Build # Bootstrap Build
%if %{eclipse_bootstrap} %if %{with bootstrap}
# Don't build tests when bootstrapping
for b in core.shared.tests p2.resolver.impl.test p2.resolver.shared.tests p2.maven.repository.tests p2.tools.tests test.utils ; do
%pom_disable_module org.eclipse.tycho.$b tycho-bundles
done
%pom_disable_module org.fedoraproject.p2.tests fedoraproject-p2
%pom_remove_dep -r :::test
# Unpack a compatible version of Eclipse we can use to build against # Unpack a compatible version of Eclipse we can use to build against
tar -xf %{SOURCE10} tar -xf %{SOURCE10}
# Install OSGi bundles into local repo to override any incompatible system version # Install OSGi bundles into local repo to override any incompatible system version
# that may be already installed # that may be already installed
pushd bootstrap pushd bootstrap
for f in usr/lib/eclipse/plugins/org.eclipse.osgi.compatibility.state_*.jar \ for f in usr/lib/eclipse/plugins/org.eclipse.osgi.compatibility.state_*.jar \
usr/lib/eclipse/plugins/org.eclipse.osgi.services_*.jar \
usr/lib/eclipse/plugins/org.eclipse.osgi_*.jar ; do usr/lib/eclipse/plugins/org.eclipse.osgi_*.jar ; do
xmvn -o install:install-file -Dfile=$f -Dpackaging=jar -DgroupId=org.eclipse.tycho -Dmaven.repo.local=$(pwd)/../.m2 \ xmvn -o install:install-file -Dfile=$f -Dpackaging=jar -DgroupId=org.eclipse.tycho -Dmaven.repo.local=$(pwd)/../.m2 \
-DartifactId=$(echo $(basename $f) | cut -d_ -f1) -Dversion=$(echo "${f%.jar}" | cut -d_ -f2) -DartifactId=$(echo $(basename $f) | cut -d_ -f1) -Dversion=$(echo "${f%.jar}" | cut -d_ -f2)
done done
popd popd
%endif
%if %{tycho_bootstrap}
%patch10 -p1
# Perform the 'minimal' (bootstrap) build of Tycho # Perform the 'minimal' (bootstrap) build of Tycho
cp %{SOURCE3} %{SOURCE4} . cp %{SOURCE3} %{SOURCE4} .
./tycho-bootstrap.sh %{eclipse_bootstrap} %{version} ./tycho-bootstrap.sh %{version}
%patch10 -p1 -R
# Non-Bootstrap Build # Non-Bootstrap Build
%else %else
@ -260,13 +270,8 @@ sed -i '
s|%{_javadir}/tycho/tycho-maven-plugin.jar|'$PWD'/boot/tycho-maven-plugin.jar| s|%{_javadir}/tycho/tycho-maven-plugin.jar|'$PWD'/boot/tycho-maven-plugin.jar|
' boot/tycho-metadata.xml ' boot/tycho-metadata.xml
%mvn_config resolverSettings/metadataRepositories/repository $PWD/boot/tycho-metadata.xml %mvn_config resolverSettings/metadataRepositories/repository $PWD/boot/tycho-metadata.xml
%endif %endif
# Tests are skipped anyways, so remove some test dependencies
%pom_xpath_remove "pom:dependency[pom:classifier='tests']" tycho-compiler-plugin
%pom_xpath_remove "pom:dependency[pom:classifier='tests']" tycho-packaging-plugin
# Avoid duplicate execution of clean when generating javadocs, see ebz#399756 # Avoid duplicate execution of clean when generating javadocs, see ebz#399756
%pom_add_plugin :maven-clean-plugin tycho-bundles/tycho-standalone-p2-director " %pom_add_plugin :maven-clean-plugin tycho-bundles/tycho-standalone-p2-director "
<executions> <executions>
@ -281,12 +286,6 @@ sed -i '
# Add fp-p2 to main build # Add fp-p2 to main build
%pom_xpath_inject "pom:modules" "<module>fedoraproject-p2</module>" %pom_xpath_inject "pom:modules" "<module>fedoraproject-p2</module>"
%mvn_package ":org.fedoraproject.p2.tests" __noinstall
# Don't build fp-p2 tests when bootstrapping
%if %{eclipse_bootstrap}
%pom_disable_module org.fedoraproject.p2.tests fedoraproject-p2
%endif
%build %build
%mvn_build -f -- \ %mvn_build -f -- \
@ -301,12 +300,14 @@ sed -i -e 's|type>eclipse.*<|type>jar<|' .xmvn-reactor
# Don't package target platform definition files # Don't package target platform definition files
%mvn_package "::target::" __noinstall %mvn_package "::target::" __noinstall
# Don't package fp-p2 tests
%mvn_package ":org.fedoraproject.p2.tests" __noinstall
%install %install
# Get debundling scripts # Get debundling scripts
cp %{SOURCE3} %{SOURCE5} . cp %{SOURCE3} %{SOURCE5} .
%if ! %{eclipse_bootstrap} %if ! %{with bootstrap}
# Debundle p2 runtime # Debundle p2 runtime
./tycho-debundle.sh $(pwd)/tycho-bundles/tycho-bundles-external \ ./tycho-debundle.sh $(pwd)/tycho-bundles/tycho-bundles-external \
$(pwd)/tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt $(pwd)/tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt
@ -316,10 +317,9 @@ cp %{SOURCE3} %{SOURCE5} .
%endif %endif
# Install our own copy of OSGi runtime when bootstrapping to avoid external dep on Eclipse # Install our own copy of OSGi runtime when bootstrapping to avoid external dep on Eclipse
%if %{eclipse_bootstrap} %if %{with bootstrap}
for b in org.eclipse.osgi \ for b in org.eclipse.osgi \
org.eclipse.osgi.compatibility.state \ org.eclipse.osgi.compatibility.state ; do
org.eclipse.osgi.services ; do
osgiJarPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.jar") osgiJarPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.jar")
osgiPomPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.pom") osgiPomPath=$(find .m2/org/eclipse/tycho/$b/*/ -name "*.pom")
%mvn_artifact $osgiPomPath $osgiJarPath %mvn_artifact $osgiPomPath $osgiJarPath
@ -329,7 +329,7 @@ done
%mvn_install %mvn_install
%if ! %{eclipse_bootstrap} %if ! %{with bootstrap}
install -pm 644 tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt %{buildroot}%{_javadir}/tycho install -pm 644 tycho-bundles/tycho-bundles-external/target/tycho-bundles-external-manifest.txt %{buildroot}%{_javadir}/tycho
%add_maven_depmap org.eclipse.tycho:tycho-bundles-external:txt:manifest:%{version} tycho/tycho-bundles-external-manifest.txt %add_maven_depmap org.eclipse.tycho:tycho-bundles-external:txt:manifest:%{version} tycho/tycho-bundles-external-manifest.txt
%endif %endif
@ -345,7 +345,7 @@ install -pm 755 %{SOURCE6} %{buildroot}%{_javadir}-utils/
# Symlink XMvn P2 plugin with all dependencies so that it can be loaded by XMvn # Symlink XMvn P2 plugin with all dependencies so that it can be loaded by XMvn
xmvn_libdir=$(realpath $(dirname $(readlink -f $(which xmvn)))/../lib) xmvn_libdir=$(realpath $(dirname $(readlink -f $(which xmvn)))/../lib)
install -dm 755 %{buildroot}${xmvn_libdir}/installer/ install -dm 755 %{buildroot}${xmvn_libdir}/installer/
%if %{eclipse_bootstrap} %if %{with bootstrap}
ln -s %{_javadir}/tycho/org.eclipse.osgi.jar %{buildroot}${xmvn_libdir}/installer/ ln -s %{_javadir}/tycho/org.eclipse.osgi.jar %{buildroot}${xmvn_libdir}/installer/
%else %else
ln -s %{_javadir}/eclipse/osgi.jar %{buildroot}${xmvn_libdir}/installer/ ln -s %{_javadir}/eclipse/osgi.jar %{buildroot}${xmvn_libdir}/installer/
@ -361,6 +361,9 @@ ln -s %{_javadir}/tycho/org.fedoraproject.p2.jar %{buildroot}${xmvn_libdir}/inst
%files javadoc -f .mfiles-javadoc %files javadoc -f .mfiles-javadoc
%changelog %changelog
* Wed May 02 2018 Mat Booth <mat.booth@redhat.com> - 1.2.0-0.3.git5d018bb
- Update tycho snapshot and simplify bootstrapping
* Wed May 02 2018 Mat Booth <mat.booth@redhat.com> - 1.2.0-0.2.gitd9ce75d * Wed May 02 2018 Mat Booth <mat.booth@redhat.com> - 1.2.0-0.2.gitd9ce75d
- Non-bootstrap build - Non-bootstrap build