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