Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Release of CDT 11.0 breaks product already released by downstream vendors
  • From: Torbjorn SVENSSON <torbjorn.svensson@xxxxxx>
  • Date: Thu, 22 Dec 2022 13:36:49 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=st.com; dmarc=pass action=none header.from=st.com; dkim=pass header.d=st.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JC9V2WRqLIOdnTCk6ERlaEOUD5+Z+SHeExU9cxZD1uE=; b=KR5r7/JxJlBBbI+TxT0M9drWgi5zbOIJHcHMKGSdh5l+Xm+AtSbZBGRULosQ028g7bAEHZ3EGbxJSCssyNHmd132tQZi/izlDKKX8GCbObx1WDK5kc0+8aK7pUR1iwbzOOasEPrvjIv84TFsD/h1o06mGavDnyqejsjY2qjiUdT9L1UubOfJRmH8tIdtBK/MRPfxOY6PVaerOB+swag+h43wQUN/UH5u/P2LiPFNrnYmfUaMt4mSsDxri9HnZxbJ1aiAhO+YrHzOKUjAY3k4v6EwE/h956fn4kkXptlv8+NPzvCcxIM7rRTVLtWmRleS0/NBc/w/X0OC9lrAx3+2vA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GVZURPvvhMO9HaYV6NgDJXy5cGA0WDqv785MqQFo2i7iLbpKQkWjJd9QO4bI4phZdX75P5OJ002qFMbCoQYgfS+TS7U25n3Jb5lb9zqG6S+vRLmm6tvx26DAt83ay3WlPwHFvY7FswJI/KupTrAMAXTbaJX76QtTgyWLZQK4yg4c9VcrZLmTKQk8Cf6VDoMwivkn5PtZQLWe2Xm/2HjNMhup+q9/Wda7J9OUPti/GTTF9P9q5P9eD6Fmik1YbAnTFu9cWMloUkXfyRWF47KeBebFKWCUCAobcrZjQX0U5mlCm/ySVk4556cOUf7Yj5Q8LEY7UJEUU6/kv+z29tGKRg==
  • Delivered-to: cdt-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/cdt-dev/>
  • List-help: <mailto:cdt-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/cdt-dev>, <mailto:cdt-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/cdt-dev>, <mailto:cdt-dev-request@eclipse.org?subject=unsubscribe>
  • Msip_labels: MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_Enabled=true; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_SetDate=2022-12-22T13:25:49Z; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_Method=Privileged; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_Name=cf8c7287-838c-46dd-b281-b1140229e67a; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_SiteId=75e027c9-20d5-47d5-b82f-77d7cd041e8f; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_ActionId=3822c0e5-b911-48f9-a436-af3700566219; MSIP_Label_cf8c7287-838c-46dd-b281-b1140229e67a_ContentBits=0
  • Thread-index: AdkP5v6U6z/l6xXhRY+JjHPCOKPKOgFi3JmAACWckbA=
  • Thread-topic: [cdt-dev] Release of CDT 11.0 breaks product already released by downstream vendors

Hi Jonah,

 

Yes, the I suppose the main problem is that p2 is allowing to install things that will simply not be possible to run after the restart of Eclipse.

 

While the problem in p2 is not that obvious without big changes like the BREE change, the secondary problem is that the org.eclipse.cdt-feature always adds the update site, and enables it. For downstream vendors, there is no way to deactivate the update site, or even remove it…

I understand that the CDT project want something like what is implemented, but at the same time, it causes a lot of problems for downstream vendors/consumers. Is there any way the addition, or enablement, of the update site can be optional?

 

We’ve tried to use a feature patch in order to replace the p2.inf file, but it appears that a feature patch is not the antidote here. For plugins, a simple fragment would have worked, but apparently not for features.

 

The product that we build should contain the https://download.eclipse.org/release/2022-03 + our own update site.

In addition to these 2 update sites, the org.eclipse.cdt-feature adds the https://download.eclipse.org/tools/cdt/releases/latest to the list, but as you said, there is no way to turn this off/remove it.

 

 

Kind regards,

Torbjörn

 

From: Jonah Graham <jonah@xxxxxxxxxxxxxxxx>
Sent: den 21 december 2022 20:29
To: CDT General developers list. <cdt-dev@xxxxxxxxxxx>
Cc: Torbjorn SVENSSON <torbjorn.svensson@xxxxxx>
Subject: Re: [cdt-dev] Release of CDT 11.0 breaks product already released by downstream vendors

 

Hi Torbjörn,

 

I think https://github.com/eclipse-cdt/cdt/issues/223 is a partial discussion on this.

 

To me there are two issues here:

 

1- p2 is making a mistake considering versions of bundles that depend on Java 17 when no Java 17 is available. This should be reported/fixed in equinox/p2.

 

2- You are shipping a product with  https://download.eclipse.org/tools/cdt/releases/latest enabled. Eclipse EPP ships products with https://download.eclipse.org/releases/latest which would have the same problem. Presumably you don't have https://download.eclipse.org/releases/latest in your available p2 sites? For this issue, is the problem that you can't remove https://download.eclipse.org/tools/cdt/releases/latest from available p2 sites in your product? 

 

Jonah

 

 

 

~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com

 

 

On Wed, 14 Dec 2022 at 13:40, Torbjorn SVENSSON via cdt-dev <cdt-dev@xxxxxxxxxxx> wrote:

Hi list,

In ticket https://bugs.eclipse.org/bugs/show_bug.cgi?id=575046, we switched for explicit versions in the update site URL to the more generic "latest".
While you wouldn't notice too much difference as long as it's the same BREE of the 2 versions (your current installed version and the latest CDT release), it does make a big difference when the BREE is newer than the JRE used.

As part of the CDT 11.0 release, the latest update site was repointed to the ../cdt-11.0/ sub-repository.
This works fine for product that already rely on a JAVA17 compatible JRE, but for those that are stuck on a JAVA11 JRE, this will break the Eclipse environment, as some of the plugins might be fetched from this newly released version of CDT rather than from the SimRel repository that is also defined in the installation.

An example of the problem would be to have a product based on the 2022-03 SimRel with the core CDT parts included. In the product, the CDT features are version locked in the product definition. The product is also shipped using a JAVA11 JRE with no option to switch to JustJ 17 or similar.
In this product, you install one of the optional CDT features.
From my point of view, the optional feature (and plugins) should be fetched from the 2022-03 SimRel repository as they are the only one available that are compatible with the JRE11 that is used.
What will really happen is that part of the update will be fetched from https://download.eclipse.org/tools/cdt/releases/latest that happens to be CDT11 right now, and part will be fetched for 2022-03 SimRel.


An example of the problem would be to download the 2022-03 SimRel, replace the included JustJ with a JRE11 instance and then try to install any feature from CDT that is not installed by default. It's likely that this new feature (I would expect it to be fetched from the 2022-03 SimRel repository, as that's the only compatible feature available) would actually be fetched from CDT11 and you would have a mix of JAVA11 and JAVA17 plugins. There would be no indication that this would be a problem and if you have some other feature that is blocking the entire CDT to be upgraded, you could be even more confused as the CDT release does not appear to have a feature for all plugins (so they can't even be version locked; https://github.com/eclipse-cdt/cdt/issues/222).

In the product I'm working on, we have locked the CDT version, but even after locking everything we depend on from CDT (feature based lock), we still end up with a situation that the following plugins are fetched from CDT 11.0 (though the https://download.eclipse.org/tools/cdt/releases/latest repository):

com.google.gson_2.9.1.v20220915-1632.jar
com.sun.xml.bind_2.3.3.v20221112-0806.jar
jakarta.xml.bind_2.3.3.v20221112-0806.jar
javax.activation_1.2.2.v20221112-0806.jar
javax.xml_1.4.1.v20220503-2331.jar
org.eclipse.launchbar.core_2.5.0.202211062329.jar
org.eclipse.tools.templates.core_1.3.0.202211062329.jar
org.eclipse.tools.templates.freemarker_1.3.0.202211062329.jar
org.eclipse.tools.templates.ui_1.4.0.202211062329.jar

Some of theses plugins are fine to run in a JAVA11 JRE, but others are not.
After installing a simple extra feature in our product (that has nothing to do with CDT itself), the entire CDT refuses to load due to that one or more of the listed plugins have BREE=17.


So, to avoid this mess, I see a few possibilities.

1. Do not advertise anything under the "latest" repository to avoid breaking 3rd party products.
2. Respin the CDT 10.6 and 10.7 releases to not use to the "latest" update site.


If you have any other suggestions on how to resolve this, please let me know.


For completeness; the CDT provided features that our product has locked down are:
org.eclipse.cdt
org.eclipse.cdt.build.crossgcc
org.eclipse.cdt.debug.gdbjtag
org.eclipse.cdt.debug.ui.memory
org.eclipse.cdt.gdb
org.eclipse.cdt.gnu.build
org.eclipse.cdt.gnu.debug
org.eclipse.cdt.gnu.dsf
org.eclipse.cdt.launch.remote
org.eclipse.cdt.native
org.eclipse.cdt.platform

Kind regards,
Torbjörn
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/cdt-dev


Back to the top