[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [mdt-papyrus.dev] Moving to GMF Runtime 1.14 and Batik 1.14 for 2022-03? | 
Hi Papyrus team,
As you may know, for a long time GMF Runtime has depended on very old 
versions of Apache Batik (1.6) for its SVG support.
This is a problem for several reasons:
* we don't get the benefits from new features and bug fixes (even though 
Batik is not the most active project, there are some, including changes 
to support more "recent" versions of Java);
* Batik 1.6 is no longer available in current Orbits, which means 
projects like GMF Runtime (and transitively Sirius and Papyrus) which 
depend on it have to pull it from very old Orbit repositories. The 
platform itself (via e4 which uses Batik's CSS parser) contributes some 
Batik JARs from the most recent version into the SimRel. This leads to 
duplicate versions of the same bundles in the main repository, never a 
good thing.
* there are known CVEs which affect all versions of Batik until the most 
recent, v1.14.0.
We've made some efforts in previous years to move to more recent 
versions (1.9 at the time), but they failed, mostly because the way 
Batik was built/bundled was not OSGi-friendly (split packages, etc.).
Last year, Shiheng Guan (guans@xxxxxxxxxxxx) contributed Batik 1.13 to 
Orbit and then Michael Istria moved that to 1.14 (to address 
CVE-2020-11987).
In July 2021 I released GMF Runtime 1.14 [1] which used that to finally 
move GMF to Batik 1.14.
I did not contribute that to the SimRel for the moment, because it needs 
downstream projects (Sirius, Ecore Tools which is based on Sirius and 
Papyrus) to adapt to that version.
We've made the required changes in Sirius last summer [2] and have not 
noticed any regression since then (well, except a known one: GMF Runtime 
1.14 no longer supports exporting to PDFs, as Batik PDF 1.14 is not 
available in Orbit).
We will soon release Sirius 7.0 which moves to GMF Runtime and Batik 
1.14, and would like to contribute that to the SimRel for 2022-03.
This currently fails [3] because:
   [0]Missing requirement: Papyrus GMF Diagrams Support 
4.2.0.202201120934 (org.eclipse.papyrus.infra.gmfdiag.common 
4.2.0.202201120934) requires 'osgi.bundle; org.apache.batik.dom 
[1.6.0,1.7.0)' but it could not be found
   Bundle(org.apache.batik.dom [1.6.0,1.7.0)) is required by:
     ValidationSet(main)
       Contribution(Papyrus)
MappedRepository(https://download.eclipse.org/modeling/mdt/papyrus/updates/milestones/6.1/M1/main/)
           Feature(org.eclipse.papyrus.sdk.feature.feature.group 6.1.0)
InstallableUnit(org.eclipse.papyrus.infra.feature.feature.group 
3.1.0.202201120934)
InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.css.feature.feature.group 
3.0.0.202201120934)
InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.css 3.0.0.202201120934)
InstallableUnit(org.eclipse.papyrus.infra.gmfdiag.common 4.2.0.202201120934)
Disabling Papyrus from the aggregation [4] works, so it seems no other 
project has constraints on older versions of Batik.
From the URL above (milestones/6.1/M1) it looks like you are preparing 
for a 6.1 release.
Do you think it would be possible to include the move to GMF Runtime 
1.14 and Batik 1.14 in that release?
It would be great to finally get rid of these old version and duplicate 
Batik JARs in the SimRel repo!
Depending on how exactly your code depends on Batik, it might be as 
simple as changing the ranges, or it might require some adaptation.
See the patches we had to do in bug #572899, in particular [5] (it's 
mostly updating imports as Batik moved some of its classes to different 
packages).
BTW, I don't know if you contribute the org.eclipse.papyrus-sirius part 
into the SimRel, but if you do you may need to adapt to Sirius 7.0.
There is a 7.0.0M2 available at [6] which includes most important 
changes. See the release notes [7] for details.
Regards,
Pierre-Charles David (Sirius and GMF Runtime co-lead)
[1] 
https://projects.eclipse.org/projects/modeling.gmf-runtime/releases/1.14.0
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=572899
[3] https://git.eclipse.org/r/c/simrel/org.eclipse.simrel.build/+/186104
[4] https://git.eclipse.org/r/c/simrel/org.eclipse.simrel.build/+/189860
[5] https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/182542
[6] https://download.eclipse.org/sirius/updates/milestones/7.0.0M2/2021-06/
[7] 
https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/tree/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile
--
Pierre-Charles David (Obeo)