Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] SDK with a custom SWT version

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?
 
[1] https://eclipse.org/tycho/sitedocs/tycho-p2/tycho-p2-plugin/p2-metadata-mojo.html#baselineReplace
[2] https://wiki.eclipse.org/Tycho/Reproducible_Version_Qualifiers
[3] https://www.eclipse.org/tycho/sitedocs/tycho-packaging-plugin/build-qualifier-mojo.html
 
 
Kind regards,
Andrey Loskutov

http://google.com/+AndreyLoskutov
 
 
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?
 
Kind regards,
Andrey Loskutov

http://google.com/+AndreyLoskutov
 
 
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.

 

Best regards, Lars

 

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

Back to the top