F40 Change Proposal: Java 21 (System-Wide)

2024-01-10 Thread Aoife Moloney
Wiki ->https://fedoraproject.org/wiki/Changes/Java21

**This is a *proposed* Change for Fedora Linux.**
This document represents a *proposed* Change. As part of the [Changes
process](https://docs.fedoraproject.org/en-US/program_management/changes_policy/),
proposals are publicly announced in order to receive community
feedback. This proposal will only be implemented if approved by the
Fedora Engineering Steering Committee.


== Summary ==
Update the system JDK in Fedora from java-17-openjdk to java-21-openjdk.

== Owner ==
* Name: [[User:pmikova| Petra Alice Mikova]]
* Email: 
* Product: java and java stack
* Responsible WG: java-sig (java and java-maint)(which no longer exists)
* rcm ticket: https://pagure.io/releng/issue/11859
* named side tag ticket: TBD



=== Expected schedule ===
* During January 2024, we will create a new package, java-21-openjdk,
which will be a clone of java-latest-openjdk, which contains STS
versions of OpenJDK (currently 21) and will move to JDK 22 in
February/March.
* December 2023 I will do mass rebuild in copr
** all maintainers will be informed about the results
* January 2023 I will do second mass rebuild in copr
** all maintainers will be informed about the results
*  February 2023 mass rebuild in rawhide - side tag
** FTBFS bugs will be filed
*  February 2023 the sidetag will be merged
* Change Checkpoint: 100% Code Complete Deadline TBD
** hard deadline for feature completed

== Detailed Description ==
Fedora currently ships:
* java-1.8.0-openjdk (LTS)
* java-11-openjdk (LTS)
* java-17-openjdk (LTS), system JDK
* java-latest-openjdk (currently JDK21)
* java-21-openjdk will be cloned from java-latest-openjdk

Therefore, every package honoring the packaging rules and requiring
java via java-headless or java-devel is built in koji using
java-17-openjdk-devel and pulling java-17-openjdk during runtime (see
[https://fedoraproject.org/wiki/Java java] ). Also,
javapackaging-tools are using java-11-openjdk as hardcoded runtime
(see 
[https://fedoraproject.org/wiki/Changes/Decouple_system_java_setting_from_java_command_setting
changes]).

We were intentionally delaying jdk11 on-boarding for stability
reasons. But there is reason for this approach with 21 (for recall,
see https://fedoraproject.org/wiki/Changes/Java11)

Major incompatibility is again (as we were bumping 8->11)
encapsulation. What was hidden is now even more hidden and few more
parts were hidden. Luckily, most of the projects, when shifted to 11,
did it properly. Still few projects may hit usage of some  newly
restricted APIs.

== Feedback ==


== Benefit to Fedora ==

JDK21 was released a while ago, but compatibility with JDK 17 is good
enough and it is a stable release. Although we can expect some group
of packages to use jdk8 forever, and some other (much smaller) group
of packages stay on jdk11 for a while, the java stack should be able
to use the JDK 21. Both JDK 8 and JDK 11 will remain part of Fedora as
long as they are supported upstream, and there is a target audience in
our OS.


== Scope ==
=== To keep the java-17-openjdk (and lower versions of JDK), but to
remove its java/javac versionless provides, make java-21-openjdk the
provider of java, javac and other versionless provides, and keep
java-latest-openjdk as rolling package for STS JDKs) ===
* will guarantee fedora to be pure JDK21 distro.
* will allow maintainers of JDK21 (or higher) incompatible packages to
keep using JDK 17, JDK 11 and JDK 8
** if any package depends on a package built by JDK 21, JDK 17, JDK 11
and JDK 8 may not be able to pick up that dependency.
** this may lead to quite a lot of bundling or compat packages, but
that may be acceptable
** people developing JDK8 and JDK11 applications will very likely stay
with fedora
** we are bumping the system JDK every time a new JDK LTS comes up and
it proved itself as a good practice

While quite a lot of users will rejoice, there may be cases where
application is very hard to migrate to JDK11, so the contingency plan
should be taken very serious.
 Bytecode version 
* It appeared, that several applications have to be built by jdk8,
while they work fine with jdk11
* It lead to manual work on aligned libraries on 1.8 byte code
version.  see https://pagure.io/java-maint-sig/issue/7
* Other approaches how to avoid this in next update (jdk17, aprox f36,
minimal bytecode 7) were mentioned here:
https://src.fedoraproject.org/rpms/javapackages-tools/pull-request/3#comment-50266
 Workflow 
* announce as by
https://docs.fedoraproject.org/en-US/program_management/changes_policy/#_essential_communication
* tune java-latest-openjdk package (for all live Fedoras)
* clone java-21-openjdk package (for all live Fedoras)
* several rounds of mass rebuilds ( see
https://fedoraproject.org/w/index.php?title=Changes/Java21#Expected_schedule)
** from copr
** over side tag
** to koji
 Change owners 
* Feature will be implemented in
[https://fedoraproject.org/wiki/Changes/Java21#side_tag side 

Orphaned packages looking for new maintainers

2024-01-10 Thread Miro HronĨok

The following packages are orphaned and will be retired when they
are orphaned for six weeks, unless someone adopts them. If you know for sure
that the package should be retired, please do so now with a proper reason:
https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life

Note: If you received this mail directly you (co)maintain one of the affected
packages or a package that depends on one. Please adopt the affected package or
retire your depending package to avoid broken dependencies, otherwise your
package will fail to install and/or build when the affected package gets 
retired.

Request package ownership via the *Take* button in he left column on
https://src.fedoraproject.org/rpms/

Full report available at:
https://churchyard.fedorapeople.org/orphans-2024-01-03.txt
grep it for your FAS username and follow the dependency chain.

For human readable dependency chains,
see https://packager-dashboard.fedoraproject.org/
For all orphaned packages,
see https://packager-dashboard.fedoraproject.org/orphan

Package  (co)maintainers   Status Change

cdsclient astro-sig, orphan0 weeks ago
clash go-sig, orphan   5 weeks ago
csmithorphan   0 weeks ago
drumstick orphan, yanqiyu  0 weeks ago
drumstick0orphan, yanqiyu  0 weeks ago
kmetronomeorphan   0 weeks ago
libASLorion, orphan, slaanesh  2 weeks ago
mrpt  jkastner, kwizart, orphan,   5 weeks ago
  robotics-sig
mygnuhealth   orphan   0 weeks ago
obs-service-cargo_vendor  orphan   2 weeks ago
python-compressed-rtf orphan   0 weeks ago
python-google-cloud-access-   fkolwa, miyunari, orphan,2 weeks ago
approval  python-packagers-sig
python-google-cloud-access-   fkolwa, miyunari, orphan,2 weeks ago
context-manager   python-packagers-sig
python-google-cloud-api-gateway   fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-apigee-   fkolwa, miyunari, orphan,2 weeks ago
connect   python-packagers-sig
python-google-cloud-appengine-fkolwa, miyunari, orphan,2 weeks ago
admin python-packagers-sig
python-google-cloud-asset fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-automlfkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-bigquery  fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-bigquery- fkolwa, miyunari, orphan,2 weeks ago
connectionpython-packagers-sig
python-google-cloud-bigquery- fkolwa, miyunari, orphan,2 weeks ago
datatransfer  python-packagers-sig
python-google-cloud-bigquery- fkolwa, miyunari, orphan,2 weeks ago
reservation   python-packagers-sig
python-google-cloud-bigquery- fkolwa, miyunari, orphan,2 weeks ago
storage   python-packagers-sig
python-google-cloud-bigtable  fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-billing   fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-billing-  fkolwa, miyunari, orphan,2 weeks ago
budgets   python-packagers-sig
python-google-cloud-build fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-commonfkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-container fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-  fkolwa, miyunari, orphan,2 weeks ago
containeranalysis python-packagers-sig
python-google-cloud-data-fusion   fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-datacatalog   fkolwa, miyunari, orphan,2 weeks ago
  python-packagers-sig
python-google-cloud-dataproc  fkolwa, miyunari, orphan,2