No edit summary |
No edit summary |
||
Line 35: | Line 35: | ||
<!-- Select proper category, default is Self Contained Change --> | <!-- Select proper category, default is Self Contained Change --> | ||
[[Category:SelfContainedChange]] | <!-- [[Category:SelfContainedChange]] --> | ||
[[Category:SystemWideChange]] | |||
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f41/ Fedora Linux 41] | * Targeted release: [https://docs.fedoraproject.org/en-US/releases/f41/ Fedora Linux 41] | ||
Line 95: | Line 95: | ||
https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack) | https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack) | ||
--> | --> | ||
* Very little user-visible benefit. | |||
* Reduced dependencies of Java packages. | |||
* Simplified maintenance of Java packages. | |||
** Smaller impact of JDK major updates (e.g. `1.8.0 -> 11 -> 17 -> 21`) | |||
== Scope == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** Find all Java applications in Fedora, i.e. packages which `BuildRequire` `java-devel / maven-local / ant` and at the same time install files into `/bin` or `/sbin` or `/usr/bin` or `/usr/sbin`. | |||
** Add `Requires: java-headless` into their `.spec` file. | |||
** Remove `Requires` generator from [https://src.fedoraproject.org/rpms/javapackages-tools/blob/8714cc1d03d3f31251539c3fca53383b822834bc/f/javapackages-config.json#_5 javapackages-tools] | |||
** Wait for a mass rebuild. | |||
* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** Maintainers of Java applications will need to add an explicit `Requires: java-headless` field into their `.spec` file. | |||
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 107: | Line 116: | ||
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication --> | The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication --> | ||
* Policies and guidelines: | * Policies and guidelines: | ||
<!-- Do the packaging guidelines or other documents need to be updated for this feature? If so, does it need to happen before or after the implementation is done? If a FPC ticket exists, add a link here. Please submit a pull request with the proposed changes before submitting your Change proposal. --> | <!-- Do the packaging guidelines or other documents need to be updated for this feature? If so, does it need to happen before or after the implementation is done? If a FPC ticket exists, add a link here. Please submit a pull request with the proposed changes before submitting your Change proposal. --> | ||
** Guidelines need to be changed and carefully worded. | |||
** '''TODO''' | |||
* Trademark approval: N/A (not needed for this Change) | * Trademark approval: N/A (not needed for this Change) | ||
Line 120: | Line 131: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
== How To Test == | == How To Test == |
Revision as of 10:57, 10 April 2024
Drop Mandatory Requires on JRE
Summary
Drop the requirement of Java libraries to have Requires on JREs.
Owner
- Name: Marián Konček
- Email: mkoncek@redhat.com
Current status
- Targeted release: Fedora Linux 41
- Last updated: 2024-04-10
- [<will be assigned by the Wrangler> devel thread]
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Current guidelines require all Java packages to Require: java-headless or java-headless >= 1:minimal_required_version
.
Our aim is to drop this explicit requirement on Java library packages. The requirement should stay for Java applications.
Context
Java packages are compiled using javac
into .class
files and composed into .jar
archives. Jar archives can be used as compile or runtime dependencies for other packages or can be directly executed with the java command provided by a JRE.
Jar archives can be executed using the command: java -jar ${FILE}
. This command executes the main
method either specified via CLI or specified within the Jar manifest file.
Java packages, which serve as libraries only, lack the main
method and are not executable. Therefore, there is no requirement on any specific JRE imposed by the library implicitly.
Feedback
Benefit to Fedora
- Very little user-visible benefit.
- Reduced dependencies of Java packages.
- Simplified maintenance of Java packages.
- Smaller impact of JDK major updates (e.g.
1.8.0 -> 11 -> 17 -> 21
)
- Smaller impact of JDK major updates (e.g.
Scope
- Proposal owners:
- Find all Java applications in Fedora, i.e. packages which
BuildRequire
java-devel / maven-local / ant
and at the same time install files into/bin
or/sbin
or/usr/bin
or/usr/sbin
. - Add
Requires: java-headless
into their.spec
file. - Remove
Requires
generator from javapackages-tools - Wait for a mass rebuild.
- Find all Java applications in Fedora, i.e. packages which
- Other developers:
- Maintainers of Java applications will need to add an explicit
Requires: java-headless
field into their.spec
file.
- Maintainers of Java applications will need to add an explicit
- Release engineering: #Releng issue number
- Policies and guidelines:
- Guidelines need to be changed and carefully worded.
- TODO
- Trademark approval: N/A (not needed for this Change)
- Alignment with Community Initiatives:
Upgrade/compatibility impact
How To Test
User Experience
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)