Allow for building SWT fragments (BZ #380934).
This commit is contained in:
parent
8a282a1729
commit
ed7b67b58d
129
tycho-fix-swt.patch
Normal file
129
tycho-fix-swt.patch
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
From 198ef97930794f59230035f350f286255ea63c61 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Igor Fedorenko <igor@ifedorenko.com>
|
||||||
|
Date: Wed, 30 May 2012 10:01:36 -0400
|
||||||
|
Subject: [PATCH] 380934 do not 'fixSWT' for swt fragment projects
|
||||||
|
|
||||||
|
Change-Id: I2990ff68acfe14e104480ba85ce30c2138d74e45
|
||||||
|
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
|
||||||
|
---
|
||||||
|
.../swt/org.eclipse.swt/META-INF/MANIFEST.MF | 4 ++
|
||||||
|
.../resolver/swt/swtFragment/META-INF/MANIFEST.MF | 6 ++
|
||||||
|
.../tycho/p2/impl/resolver/P2ResolverTest.java | 54 ++++++++++++++++++++
|
||||||
|
.../impl/resolver/ProjectorResolutionStrategy.java | 12 ++++
|
||||||
|
4 files changed, 76 insertions(+), 0 deletions(-)
|
||||||
|
create mode 100644 tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/org.eclipse.swt/META-INF/MANIFEST.MF
|
||||||
|
create mode 100644 tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/swtFragment/META-INF/MANIFEST.MF
|
||||||
|
|
||||||
|
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/org.eclipse.swt/META-INF/MANIFEST.MF b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/org.eclipse.swt/META-INF/MANIFEST.MF
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b2eda0d
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/org.eclipse.swt/META-INF/MANIFEST.MF
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+Manifest-Version: 1.0
|
||||||
|
+Bundle-ManifestVersion: 2
|
||||||
|
+Bundle-SymbolicName: org.eclipse.swt
|
||||||
|
+Bundle-Version: 3.0.0.qualifier
|
||||||
|
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/swtFragment/META-INF/MANIFEST.MF b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/swtFragment/META-INF/MANIFEST.MF
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..380c312
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/resources/resolver/swt/swtFragment/META-INF/MANIFEST.MF
|
||||||
|
@@ -0,0 +1,6 @@
|
||||||
|
+Manifest-Version: 1.0
|
||||||
|
+Bundle-ManifestVersion: 2
|
||||||
|
+Bundle-Name: org.eclipse.tycho.p2.impl.resolver.test.swtFragment
|
||||||
|
+Bundle-SymbolicName: org.eclipse.tycho.p2.impl.resolver.swtFragment
|
||||||
|
+Bundle-Version: 1.0.0.qualifier
|
||||||
|
+Fragment-Host: org.eclipse.swt; bundle-version="[3.0.0,4.0.0)"
|
||||||
|
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/impl/resolver/P2ResolverTest.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/impl/resolver/P2ResolverTest.java
|
||||||
|
index 7d5ea2d..cc7baf4 100644
|
||||||
|
--- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/impl/resolver/P2ResolverTest.java
|
||||||
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/impl/resolver/P2ResolverTest.java
|
||||||
|
@@ -222,6 +222,60 @@ public class P2ResolverTest extends P2ResolverTestBase {
|
||||||
|
assertContainsUnit("org.eclipse.swt.gtk.linux.x86_64", result.getNonReactorUnits());
|
||||||
|
}
|
||||||
|
|
||||||
|
+ @Test
|
||||||
|
+ public void swt() throws Exception {
|
||||||
|
+ File swt = resourceFile("resolver/swt/org.eclipse.swt");
|
||||||
|
+ addReactorProject(swt, TYPE_ECLIPSE_PLUGIN, "org.eclipse.swt");
|
||||||
|
+ File swtFragment = resourceFile("resolver/swt/swtFragment");
|
||||||
|
+ addReactorProject(swtFragment, TYPE_ECLIPSE_PLUGIN, "org.eclipse.tycho.p2.impl.resolver.test.swtFragment");
|
||||||
|
+
|
||||||
|
+ List<P2ResolutionResult> results = impl.resolveProject(context.buildTargetPlatform(), swt);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(1, results.size());
|
||||||
|
+ P2ResolutionResult result = results.get(0);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(1, result.getArtifacts().size());
|
||||||
|
+ assertContainLocation(result, swt);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Test
|
||||||
|
+ public void swtFragment() throws Exception {
|
||||||
|
+ File swt = resourceFile("resolver/swt/org.eclipse.swt");
|
||||||
|
+ addReactorProject(swt, TYPE_ECLIPSE_PLUGIN, "org.eclipse.swt");
|
||||||
|
+ File swtFragment = resourceFile("resolver/swt/swtFragment");
|
||||||
|
+ addReactorProject(swtFragment, TYPE_ECLIPSE_PLUGIN, "org.eclipse.tycho.p2.impl.resolver.test.swtFragment");
|
||||||
|
+
|
||||||
|
+ List<P2ResolutionResult> results = impl.resolveProject(context.buildTargetPlatform(), swtFragment);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(1, results.size());
|
||||||
|
+ P2ResolutionResult result = results.get(0);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(2, result.getArtifacts().size());
|
||||||
|
+ Assert.assertEquals(0, result.getNonReactorUnits().size());
|
||||||
|
+
|
||||||
|
+ assertContainLocation(result, swtFragment);
|
||||||
|
+ assertContainLocation(result, swt);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Test
|
||||||
|
+ public void swtFragmentWithRemoteSWT() throws Exception {
|
||||||
|
+ context.addP2Repository(resourceFile("repositories/e361").toURI());
|
||||||
|
+
|
||||||
|
+ File swtFragment = resourceFile("resolver/swt/swtFragment");
|
||||||
|
+ addReactorProject(swtFragment, TYPE_ECLIPSE_PLUGIN, "org.eclipse.tycho.p2.impl.resolver.test.swtFragment");
|
||||||
|
+
|
||||||
|
+ List<P2ResolutionResult> results = impl.resolveProject(context.buildTargetPlatform(), swtFragment);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(1, results.size());
|
||||||
|
+ P2ResolutionResult result = results.get(0);
|
||||||
|
+
|
||||||
|
+ Assert.assertEquals(2, result.getArtifacts().size());
|
||||||
|
+ Assert.assertEquals(1, result.getNonReactorUnits().size());
|
||||||
|
+
|
||||||
|
+ assertContainLocation(result, swtFragment);
|
||||||
|
+ assertContainsUnit("org.eclipse.swt", result.getNonReactorUnits());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
private static void assertContainsUnit(String unitID, Set<?> units) {
|
||||||
|
Assert.assertFalse("Unit " + unitID + " not found", getInstallableUnits(unitID, units).isEmpty());
|
||||||
|
}
|
||||||
|
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/resolver/ProjectorResolutionStrategy.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/resolver/ProjectorResolutionStrategy.java
|
||||||
|
index 3d0f3db..c5bf797 100644
|
||||||
|
--- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/resolver/ProjectorResolutionStrategy.java
|
||||||
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/resolver/ProjectorResolutionStrategy.java
|
||||||
|
@@ -110,6 +110,18 @@ public class ProjectorResolutionStrategy extends AbstractSlicerResolutionStrateg
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // 380934 one of rootIUs can be SWT or an SWT fragment
|
||||||
|
+ for (IInstallableUnit iu : rootIUs) {
|
||||||
|
+ if ("org.eclipse.swt".equals(iu.getId())) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ for (IProvidedCapability provided : iu.getProvidedCapabilities()) {
|
||||||
|
+ if ("osgi.fragment".equals(provided.getNamespace()) && "org.eclipse.swt".equals(provided.getName())) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
IInstallableUnit swtFragment = null;
|
||||||
|
|
||||||
|
all_ius: for (Iterator<IInstallableUnit> iter = availableIUs.query(QueryUtil.ALL_UNITS, monitor).iterator(); iter
|
||||||
|
--
|
||||||
|
1.7.7.6
|
||||||
|
|
@ -31,11 +31,12 @@ Patch1: %{name}-fix-surefire.patch
|
|||||||
# Upstream builds against maven-surefire 2.10 but in rawhide we have 2.12
|
# Upstream builds against maven-surefire 2.10 but in rawhide we have 2.12
|
||||||
Patch2: %{name}-maven-surefire.patch
|
Patch2: %{name}-maven-surefire.patch
|
||||||
Patch3: %{name}-use-custom-resolver.patch
|
Patch3: %{name}-use-custom-resolver.patch
|
||||||
|
Patch4: %{name}-fix-swt.patch
|
||||||
# Set some temporary build version so that the bootstrapped build has
|
# Set some temporary build version so that the bootstrapped build has
|
||||||
# a different version from the nonbootstrapped. Otherwise there will
|
# a different version from the nonbootstrapped. Otherwise there will
|
||||||
# be cyclic dependencies.
|
# be cyclic dependencies.
|
||||||
%if %{bootstrap}
|
%if %{bootstrap}
|
||||||
Patch4: %{name}-bootstrap.patch
|
Patch5: %{name}-bootstrap.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -114,8 +115,9 @@ This package contains the API documentation for %{name}.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p2
|
%patch2 -p2
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%if %{bootstrap}
|
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
|
%if %{bootstrap}
|
||||||
|
%patch5 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
find tycho-core -iname '*html' -delete
|
find tycho-core -iname '*html' -delete
|
||||||
@ -200,6 +202,7 @@ install -pm 755 %{SOURCE3} %{buildroot}%{_javadir}/%{name}/copy-platform-all
|
|||||||
* Tue May 29 2012 Roland Grunberg <rgrunber@redhat.com> 0.14.1-4.1
|
* Tue May 29 2012 Roland Grunberg <rgrunber@redhat.com> 0.14.1-4.1
|
||||||
- Fix Tycho Surfire to run Eclipse test bundles.
|
- Fix Tycho Surfire to run Eclipse test bundles.
|
||||||
- Implement automatic creation of a system p2 repository.
|
- Implement automatic creation of a system p2 repository.
|
||||||
|
- Allow building SWT fragments (BZ #380934).
|
||||||
|
|
||||||
* Wed May 23 2012 Roland Grunberg <rgrunber@redhat.com> 0.14.1-4
|
* Wed May 23 2012 Roland Grunberg <rgrunber@redhat.com> 0.14.1-4
|
||||||
- Non-bootstrap build.
|
- Non-bootstrap build.
|
||||||
|
Loading…
Reference in New Issue
Block a user