Skip to main content

[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)



Back to the top