Aoife Moloney wrote:
As described in
https://fedoraproject.org/wiki/MoveFedoraJDKsToBecomePortableJDKs ;
during last year, packaging of JDKs had changed dramatically. As
described in same wiki page, and individual sub changes and devel
threads, with primary reason this - to lower maintenance and still
keep fedora java friendly.
And these changes have made the Fedora Java packages basically useless,
because there is really no advantage anymore to be had over just using,
e.g., Adoptium builds. Your changes have removed the choice from users to
choose between a Java built the upstream way (Adoptium and others) and a
Java built according to the Fedora Packaging Guidelines as all Fedora
packages are supposed to be (but yours no longer are).
* In first system wide change, we had changed JDKs to build properly
as standalone, portable jdk - the wey JDK is supposed to be built. I
repeat, we spent ten years by patching JDK to become properly dynamic
against system libs, and all patches went usptream, but it become
fight which can not be win
This is already against the best practices recommended by the Fedora
Packaging Guidelines, and arguably even against a mandatory rule (because
you say all the patches allowing unbundling went upstream):
https://docs.fedoraproject.org/en-US/fesco/Bundled_Software_policy/
"All packages whose upstreams allow them to be built against system
libraries must be built against system libraries."
* as a second step we introduced portable rpms, which do not have
any
system integration, only builds JDK and pack final tarball in RPM for
free use.
* In third step - without any noise, just verified with fesco -
https://pagure.io/fesco/issue/2907 - we stopped building JDK in fully
integrated rpms. Instead of this, normal RPMS BUildRequire portable
rpms and just unpack it, and repack it.
In short, you build an RPM containing a tarball instead of unpacked files,
and then have the final RPM BR that intermediate RPM, untar the tarball, and
repackage it. A really ugly hack that goes against any packaging best
practices and maybe even subtly violates the letter of the Fedora Packaging
Guidelines (it is definitely against the spirit).
I do not understand why FESCo approved this hackery. It brings no advantages
whatsoever to the user, it just makes the builds take longer overall for no
good reason.
Now last step is ahead - to build portable LTS JDKs 8,11,17 and 21
in
oldest live Fedora, and repack everywhere. java-latest-openjdk, which
contains latest STS jdk - currently 20, soon briefly 21 and a bit
alter 22... Should be built in latest live EPEL - epel8 now. We have
verified, that such repacked JDKs work fine.
And that part is completely against Fedora Packaging Guidelines. Fedora does
not allow repackaging binary blobs built on another distribution (and RHEL
*is* another distribution). Such binary blobs can be used only for
bootstrapping, which implies that they MUST be replaced with something built
on the targeted Fedora release before reaching end users.
https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-pac...
Kevin Kofler