OK,
I've just changed SWT <forceContextQualifier> to some timestamp in the near future:
<forceContextQualifier>v20170216-0945</forceContextQualifier>
and it did *not* work, the build failed later with some really lenghty p2 errors (without any useful content) starting with this:
[INFO] org.eclipse.equinox.p2.tests.reconciler.product .... FAILURE [ 16.869 s]
...
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-p2-director-plugin:0.25.0:materialize-products (materialize-products) on project org.eclipse.equinox.p2.tests.reconciler.product: Installation of product org.eclipse.equinox.p2.reconciler for environment linux/gtk/x86 failed: Call to p2 director application failed with exit code 13.
So I undid this change in SWT pom and changed instead /eclipse.platform.releng.aggregator/eclipse-platform-parent/pom.xml to *NOT* replace my artifacts with baseline version: <baselineReplace>none</baselineReplace>
*THIS* build succeeded and included *my* SWT patch with *old* qualifier <forceContextQualifier>v20170213-0616</forceContextQualifier>.
This is obviously not nice but at least it works *for me*.
Still the question: *what* should be inside <forceContextQualifier> for SWT, so that p2 director will be happy? Are there some other places where the magic number must be updated? Should the native builds qualifier match the non-native SWT bits? Is this the problem?
For the record, the mistery seem to be caused by the tycho arguments we set in the /eclipse.platform.releng.aggregator/eclipse-platform-parent/pom.xml
<configuration>
<baselineMode>warn</baselineMode>
<baselineReplace>all</baselineReplace>
<baselineRepositories>
<repository>
<url>${comparator.repo}</url>
</repository>
</baselineRepositories>
</configuration>
and, as pointed by Sravan, additionally by /eclipse.platform.releng.aggregator/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml
<properties>
<forceContextQualifier>v20170216-0945</forceContextQualifier>
</properties>
In my first build, without the magic forceContextQualifier change, I saw this (after "Building org.eclipse.swt 3.105.3-SNAPSHOT" was done):
BUILD SUCCESSFUL
Total time: 0 seconds
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ org.eclipse.swt ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /data/4x_platform/eclipse.platform.releng.aggregator/eclipse.platform.swt/bundles/org.eclipse.swt/src/test/resources
[INFO]
[INFO] --- tycho-source-plugin:0.25.0:plugin-source (plugin-source) @ org.eclipse.swt ---
[INFO]
[INFO] --- target-platform-configuration:0.25.0:target-platform (default-target-platform) @ org.eclipse.swt ---
[INFO]
[INFO] --- tycho-packaging-plugin:0.25.0:package-plugin (default-package-plugin) @ org.eclipse.swt ---
[INFO] Building jar: /data/4x_platform/eclipse.platform.releng.aggregator/eclipse.platform.swt/bundles/org.eclipse.swt/target/org.eclipse.swt-3.105.3-SNAPSHOT.jar
[INFO]
[INFO] --- tycho-p2-plugin:0.25.0:p2-metadata-default (default-p2-metadata-default) @ org.eclipse.swt ---
[WARNING] MavenProject: org.eclipse.swt:org.eclipse.swt:3.105.3-SNAPSHOT @ /data/4x_platform/eclipse.platform.releng.aggregator/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml: baseline and build artifacts have same version but different contents
[INFO] MavenProject: org.eclipse.swt:org.eclipse.swt:3.105.3-SNAPSHOT @ /data/4x_platform/eclipse.platform.releng.aggregator/eclipse.platform.swt/bundles/org.eclipse.swt/pom.xml
The main artifact has been replaced with the baseline version.
So this is probably because of [3] the SWT artifact I built was had same version as a baseline, and due [1] and [2] it was replaced by the baseline build.
What I don't get is: why do we need forceContextQualifier at all and which magic number should be there to make sure my local SWT version is used?
Gesendet: Donnerstag, 16. Februar 2017 um 09:44 Uhr
Von: "Andrey Loskutov" <loskutov@xxxxxx>
An: platform-swt-dev@xxxxxxxxxxx
Betreff: Re: [platform-swt-dev] SDK with a custom SWT version
Interesting.
The commit you are referring to changes this:
- <forceContextQualifier>v20170214-1901</forceContextQualifier>
+ <forceContextQualifier>v20170216-0134</forceContextQualifier>
But if I'm building SWT "now" from scratch, how do I know which qualifier I should use? Just use any reasonable date/time quilifier in the future?
Gesendet: Donnerstag, 16. Februar 2017 um 09:40 Uhr
Von: "Sravan K Lakkimsetti" <sravankumarl@xxxxxxxxxx>
An: "Eclipse Platform SWT component developers list." <platform-swt-dev@xxxxxxxxxxx>
Betreff: Re: [platform-swt-dev] SDK with a custom SWT version
Hi,
You may need to do a qualifier update for SWT similar to https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=2ac039d764313b3a3e5665602468c11db274d599 otherwise comparator will discard your new changes. SWT uses a different strategy for updating qualifiers. Probably tou are encountering that.
Hope this helps
Thanks
Sravan
From: Lars Vogel [mailto:lars.vogel@xxxxxxxxxxx]
Sent: Thursday, February 16, 2017 1:36 PM
To: Eclipse Platform SWT component developers list. <platform-swt-dev@xxxxxxxxxxx>
Subject: Re: [platform-swt-dev] SDK with a custom SWT version
Hi Andrey,
I'm currently trying the same. Please share if you are successful.
Am 16.02.2017 8:55 vorm. schrieb "Andrey Loskutov" <loskutov@xxxxxx>:
Hi,
I'm trying to create a 4.6.3 SDK build for Linux GTK 64 with a particular SWT patch applied (not native, just plain Java).
The SDK build succeeds, but *all* SWT plugins have not *my* version qualifier, but seem to be fetched from latest eclipse.org build (org.eclipse.swt_3.105.3.v20170213-0616).
How I can enforce SWT to build itself during SDK build and *not* to fetch pre-built SWT artifacts from eclipse.org (it *is* OK to use natives from eclipse.org)?
I guess there is some magic maven system property I have to use?
Kind regards,
Andrey Loskutov
http://google.com/+AndreyLoskutov
_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
_______________________________________________ platform-swt-dev mailing list platform-swt-dev@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
_______________________________________________ platform-swt-dev mailing list platform-swt-dev@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev