From Fedora Project Wiki
No edit summary
Line 124: Line 124:


==== Workflow ====
==== Workflow ====
* new macro `%{java_arches}` which will be of value : aarch64 ppc64le s390x x86_64
** will be declared
* Once done,
** All most crucial affected pkg - [https://github.com/judovana/FedoraSystemJdkBump/blob/1f126a2d7a4235593b1575467f420b185e5ecb13/scritps/listPkgs/recursiveGlue.sh#L142 the blacklist] + few others, eg R,graphviz (suggestions welcomed, bottom of sorted by dependent children [https://jvanek.fedorapeople.org/i686Deps/sortedFilteredRequires lsit]) will get filled bugzilla eg:
<pre>
cairo is transitively depending on java, please ensure you drop java support on i686


Dear maintainer, we are going to drop i686 java packages in f37 - https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
Your library is transitively affected by this change:
java-devel <- graphviz <- gcc <- bash <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- coreutils <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- freetype <- fontconfig <- cairo
java-11-openjdk-devel <- subversion <- git <- gettext <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- glibc <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- gperf <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- grep <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- libtool <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- libxml2 <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- make <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- bash <- freetype <- cairo
java-devel <- graphviz <- doxygen <- gcc <- freetype <- cairo
java-devel <- graphviz <- gcc <- gcc <- freetype <- cairo
java-devel <- libwebp <- graphviz <- gcc <- freetype <- cairo
R-java-devel <- R-devel <- graphviz <- gcc <- freetype <- cairo
java-devel <- graphviz <- gcc <- glibc <- freetype <- cairo
Please ensure, you drop i686 java support before branching. You can use new %{java_arches} macro for your convenience
</pre>
(only glibc will not have its 15000 depnedent pkg listed),
** all native (not noarch) direct dependencies of javas', maven ant (as in [https://github.com/judovana/FedoraSystemJdkBump/blob/main/scritps/listPkgs/recursiveGlue.sh#L54 here] and [https://github.com/judovana/FedoraSystemJdkBump/blob/1f126a2d7a4235593b1575467f420b185e5ecb13/scritps/listPkgs/listJavaDependentPkgs.sh#L19 here] (to be generated)  will get filled bugzilla eg:
<pre>
native libreoffice depends on to be removed i686 java packages
Dear maintainer, we are going to drop i686 java packages in f37 - https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
libreoffice  is dependnign on it and is native, please adapt your package so it builds without java support on i686
You can use new %{java_arches} macro for your convenience
</pre>
** all 'noarch' direct java, amven ant... dependencies will  (todo, generate list as for java-17-openjdk as system jdk) get auto injected `ExclusiveArch: %{java_arches}` if not present, or appended by `%{java_arches}` if ExclusiveArch already  there
* if all goes ok, we will simply stop building i686 java pacakges in rawhide
* if all goes ok, we will simply stop building i686 java pacakges in rawhide
* I'm not sure if there is any sense in creating copr for this, as there is no proper i686 there...


==== Other developers ====
==== Other developers ====

Revision as of 14:43, 12 April 2022


Drop i686 builds of jdk8,11,17 and latest (18) rpms from f37 onwards

Summary

java-1.8.0-openjdk, java-11-openjdk, java-17-openjdk and java-latest-openjdk packages will no longer build i686 subpackages

Owner

  • Name: Jiri Vanek
  • Email: <jvanek@redhat.com>
  • Product: java and java stack
  • Responsible WG: java-sig (java and java-maint)(which no longer exists)


Current status

  • Targeted release: Fedora 37
  • Last updated: 2022-04-12
  • devel thread
  • FESCo issue: #2772
  • Tracker bug: <will be assigned by Wrangler>
  • Release notes <will be assigned by Wrangler>

Expected schedule

  • during march, drop i686 builds from all jdks in fedora rawhide

Detailed Description

Fedora currently ships:

  • java-1.8.0-openjdk (LTS)
  • java-11-openjdk (LTS)
  • java-17-openjdk (LTS)
  • java-latest-openjdk (STS, jdk18).

All those builds on all architectures except jdk8, where arm32 with jit is built by different package. Unluckily, the i686 bit builds of jdk are rotten in upstream. The recent breakage of i686 JIT just before branching nearly killed jdk17 as system jdk feature. The rotting have main visibility with newer GCCs. If GCC bump, and it does, it always triggers new issues in i686 JIT, and there is less and less people to somehow workaround them. Unluckily, there is probably no longer anyone willing to really fix them

Although there is https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval , this proposal have nothign to do with it, not even inspiration. People about OpenJDK learned about after this jdk one was announced.

Benefit to Fedora

The i686 builds are rotten in usptream, and to patch them localy had become pain. We may be introducing very bugy i686 jdk. Better then to do so, we would rather not ship that at all. This will untie hands of both JDK and GCC developers, who will no longer need to dive into nasty legacy code.

Scope

Change owners

Workflow

  • new macro %{java_arches} which will be of value : aarch64 ppc64le s390x x86_64
    • will be declared
  • Once done,
    • All most crucial affected pkg - the blacklist + few others, eg R,graphviz (suggestions welcomed, bottom of sorted by dependent children lsit) will get filled bugzilla eg:
cairo is transitively depending on java, please ensure you drop java support on i686

Dear maintainer, we are going to drop i686 java packages in f37 - https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
Your library is transitively affected by this change:
 
java-devel <- graphviz <- gcc <- bash <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- coreutils <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- freetype <- fontconfig <- cairo
java-11-openjdk-devel <- subversion <- git <- gettext <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- glibc <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- gperf <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- grep <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- libtool <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- libxml2 <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- make <- fontconfig <- cairo
java-devel <- graphviz <- gcc <- bash <- freetype <- cairo
java-devel <- graphviz <- doxygen <- gcc <- freetype <- cairo
java-devel <- graphviz <- gcc <- gcc <- freetype <- cairo
java-devel <- libwebp <- graphviz <- gcc <- freetype <- cairo
R-java-devel <- R-devel <- graphviz <- gcc <- freetype <- cairo
java-devel <- graphviz <- gcc <- glibc <- freetype <- cairo

Please ensure, you drop i686 java support before branching. You can use new %{java_arches} macro for your convenience

(only glibc will not have its 15000 depnedent pkg listed),

    • all native (not noarch) direct dependencies of javas', maven ant (as in here and here (to be generated) will get filled bugzilla eg:
native libreoffice depends on to be removed i686 java packages

Dear maintainer, we are going to drop i686 java packages in f37 - https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs
libreoffice  is dependnign on it and is native, please adapt your package so it builds without java support on i686
You can use new %{java_arches} macro for your convenience
    • all 'noarch' direct java, amven ant... dependencies will (todo, generate list as for java-17-openjdk as system jdk) get auto injected ExclusiveArch: %{java_arches} if not present, or appended by %{java_arches} if ExclusiveArch already there
  • if all goes ok, we will simply stop building i686 java pacakges in rawhide
  • I'm not sure if there is any sense in creating copr for this, as there is no proper i686 there...

Other developers

  • may notice the multilib i686 java missing.
  • it is up to them to drop i686 builds or to povide workaround (if possible)


Other

  • Release engineering: #10686
    • mass rebuild will NOT be required for this change


  • Trademark approval: N/A (not needed for this Change)
  • Bug assignees will need to verify the impact of i686

Upgrade/compatibility impact

  • The upgrade on multilib systems will lead to autoremoval of i686 javastack
  • which should be minimum if above bugzillas are properly handled

How To Test

install i686 java will result to not packages found

User Experience

User experience on multilib systems will be bad. Bad reasonable.

Dependencies

There are is unknown number of multilib java consumers. I expect some of them may rise voice, but that will have to handled one by one.

Contingency Plan

  • Contingency mechanism: return i686 java packages
  • Contingency date: (not provided)

Documentation

Will be needed...

Release Notes

None yet...