[Bug 266864] java/eclipse: R4_25 update with interim diff

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 06 Oct 2022 09:38:40 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266864

            Bug ID: 266864
           Summary: java/eclipse: R4_25 update with interim diff
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: lab+bsd@thinkum.space
                CC: jonc@chen.org.nz
             Flags: maintainer-feedback?(jonc@chen.org.nz)
                CC: jonc@chen.org.nz

Created attachment 237117
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=237117&action=edit
Interim update for R4_24 => R4_25 (needs network for maven dependencies)

There's a new release of the Eclipse IDE and dependent components, R4_25. I've
developed a patch for R4_25 on amd64, attached.

Albeit, this patch may not be immediately usable for some builds with
Poudriere. For the update from R4_24 to R4_25, and until a pull request can be
forwarded to eclipse-maven-repo[1] the patch will require network access in the
build environment, in order to complete the maven dependency resolution for the
build.

I'd like to forward a pull request to eclipse-maven-repo though candidly, I'm
not sure about the time scale for that. My own network connection is fairly
limited for upstream data, and it can be fairly spotty for downstream. I'm
seeing 461MB of dependencies under work/eclipse-maven-repo-4.25/ after some
various builds. If I may be able to spin up a cloud image and submit a pull
request from there, then once the pull request goes through, this patch could
be updated for normal R4_25 release builds.

As some further notes on the patch:

- Some of the Eclipse repositories have been consolidated between R4_24 and
R4_25. I've tried to combine patches for the consolidated repositories.

-- thye eclipse.platform.team, eclipse.platform.runtime, and
eclipse.platform.resources sources have been consolidated to the
eclipse.platform repository - respectively, as eclipse.platform/team,
eclipse.platform/runtime and eclipse.platform/resources. 

-- Similarly:
-- rt.equinox.bundles/% => equinox/bundles/%
-- rt.equinox.framework/bundles/% => equinox/bundles/%

- The patch adds a GH_TUPLE eclipse-
equinox:equinox:${ECLIPSE_TAG}:v/equinox

- The patched R4_25 port will require Java 17 or later. While the most of the
Eclipse sources appear to be oriented to Java 11, I wasn't able to build with
Java 11. Some of the dependencies have been built with a newer Java release,
and the build failed. It was built successfully with Java 17 and Java 18 on
amd64

- Corresponding to the JDK 17+ requirement, the patched port will update source
files to ensure that everything (or nearly everything) will build with the
target JDK. I'd still noticed some warnings about mismatch during the build,
not many though. I've not noticed anything failing, in using the patched
Eclipse with OpenJDK18 on amd64

- Corresponding to an update in the patches, everything in
examples/org.eclipse.swt.examples will be skipped in the build. I wasn't able
to build these bundles with the newer JDK. I've not yet tried to develop a
patch for the source update on these example bundles.

- This diff will update the pre-patch script for the consolidated sources, and
will add some additional code in order to update individual launcher files for
the build

- Eclipse may have added an infocenter bundle. afaict it's a servlet being used
under Jetty for the help interface. Some static patch code was added for this.
This was also part of the reason for patching the *.product files and other
files with reinplace in the Makefile, to correspond with the JDK version used
in the build.

- I'm fairly certain I've got all the patching right for the differences in
architecture names. This could probably use a linting however, or at least a
test with each supported architecture. Candidly, I don't have a powerpc64,
powerpc64le, or aarch VM immediately available for tests, have only been able
to test the amd64 build so far.

-  I wasn't certain of how the original patches were created. Due to the
different ordering for the patched files and the consolidation in the upstream
sources, the diff may not make it very easy to track the changes in the patches

- The patched port will install an SVG file (scalable icon) and the 48x48
Eclipse *.ico file under the XDG desktop icons dirs. At least one of these
might be used for the desktop entry, when displayed under a window manager
menu.

- The PORTVERSION_DEPS field was added to the Makefile at least for
temporary/interm builds. It's used as a facility for reusing the existing
eclipse-maven-repo for R4_24 ... for distinfo consistency. This file will not
actually be used for the build, however - it will need an update to the
eclipse-maven-repo for R4_25. In the meanwhile, every build with this patched
port will need a Maven depdency:resolve during the build. (This can be
facilitated partly with local scripting for keeping a cache of the Maven
artifacts outside of the distifles sources tree). 

- This patch has not been tested with mvn --offline

- The patched Makefile will not add --offline to the Maven cmd until
PORTVERSION_DEPS == PORTVERSION

- The patched Makefile will add -X to the Maven cmd when WITH_DEBUG. Although
Maven will produce a lot of output when built with '-X', any build failures may
be more apparent as for what failed then. Adding the following to make.conf
will set WITH_DEBUG of course:

WITH_DEBUG_PORTS+=      java/eclipse

I wasn't able to locate any documentation about any debug support in the build
itself. The debug option here would be mainly for debugging the build. If it
affects CFLAGS, it might also affect the SWT build.


I'm not certain of whether or how the update could affect other Eclipse ports,
e.g eclipse-cdt. I'll try to take a look at those

Although it's not a complete patch as yet - lacking a complete distfile support
- perhaps it could be of any help for a port upgrade, as is?

[1] https://github.com/daemonblade/eclipse-maven-repo
[2] https://www.eclipse.org/windowbuilder/

-- 
You are receiving this mail because:
You are the assignee for the bug.