#781 Wiki:Packaging:Java Guidelines Update (one-liner)
Closed: accepted a year ago Opened a year ago by jerboaa.

Link to the draft

https://fedoraproject.org/wiki/User:Jerboaa/JavaPackagingGuidelinesUpdate#BuildRequires_and_Requires

Proposal to change Java Packaging Guidelines' MUST for runtime requirement from javapackages-tools to javapackages-filesystem.

Link to diff

https://fedoraproject.org/w/index.php?title=User%3AJerboaa%2FJavaPackagingGuidelinesUpdate&type=revision&diff=522356&oldid=522355

Explanation

The benefit is that this change would result in less heavyweight dependencies in Java packages. javapackages-tools drags in a JDK as one of its runtime requirements which is currently hard-coded to java-1.8.0-openjdk-headless.

It's not entirely clear why this requirement for javapackages-tools as runtime dependency was added. There seems to have been a change from Requires: jpackage-utils => Requires: javapackages-tools since javapackages-tools virtually provided jpackage-utils. Yet, that information doesn't tell us why jpackage-utils or javapackages-tools is a MUST requirement for Java packages. This comment from a past FPC ticket seems to suggest it was due to directory ownership of shared Java files such as:

/usr/lib/jvm
/usr/share/java
/usr/share/maven-metadata
/usr/share/maven-poms

For reason of directory ownership, javapackages-filesystem package has been introduced. That package is more lightweight and does not have a JDK dependency.

In light of multiple JDKs in Fedora (JDK 11 + JDK 8) it seems appropriate to change the guidelines to not transitively drag in two JDKs when the Java package itself is perfectly fine to run with JDK N, where N > 8.

References:
https://lists.fedoraproject.org/archives/list/java-devel@lists.fedoraproject.org/thread/A5UIG565C3LPB63ZIITNK6TBYMYT3GAZ/
https://bugzilla.redhat.com/show_bug.cgi?id=1600426
https://bugzilla.redhat.com/show_bug.cgi?id=1500288


IMHO this should be a system-wide change approved by FESCo.

Does it in fact change things?

Updating guidelines does not change anything in packaging by itself. But assuming auto-requires were changed to follow the guidelines, about 4215 packages that auto-require javapackages-tools would be affected. Many of them would not work correctly without javapackages-tools installed. Therefore, due to nature of this change affecting many packages across distribution I think this should be a system-wide change. I posted more details to java-devel list thread referenced above.

I have no particular problems with the change but of course the part of the process outside of the guidelines is far more complicated. As part of a system-wide change, this ticket would need to be filed in any case. FPC would need to approve it in any case.

I'll +1 this now on general principles.

Metadata Update from @tibbs:
- Issue tagged with: meeting

a year ago

From: https://meetbot-raw.fedoraproject.org/fedora-meeting-1/2018-07-19/fpc.2018-07-19-16.00.txt

  • 781 Wiki:Packaging:Java Guidelines Update (one-liner) (geppetto,
    16:55:59)
  • ACTION: Wiki:Packaging:Java Guidelines Update (+1:6, 0:0, -1:0)
    (geppetto, 17:03:06)

Metadata Update from @james:
- Issue untagged with: meeting
- Issue tagged with: writeup

a year ago

I went ahead and wrote this up but of course changes to existing packages to follow this change are beyond the scope of what FPC can do.

Announcement text:

A small change was made to the Java packaging guidelines to specify a dependency on javapackages-filesystem instead of javapackages-tools.

Metadata Update from @tibbs:
- Issue untagged with: writeup
- Issue assigned to tibbs
- Issue tagged with: announce

a year ago

Metadata Update from @tibbs:
- Issue untagged with: announce
- Issue close_status updated to: accepted
- Issue status updated to: Closed (was: Open)

a year ago

Login to comment on this ticket.

Metadata