[Fedora-packaging] Java packaging guidelines draft

Tom "spot" Callaway tcallawa at redhat.com
Tue Mar 25 21:06:12 UTC 2008


On Tue, 2008-03-25 at 16:36 -0400, Andrew Overholt wrote:
> Hi,
> 
> A whole bunch of people helped write the Java packaging guidelines draft
> currently on the wiki:
> 
> http://fedoraproject.org/wiki/PackagingDrafts/Java
> 
> All of the questions and comments and TODOs that were on the page have
> been taken care of.  I'm sure there are going to be questions and
> complaints, but we now feel it's in a state worthy of first draft
> presentation.

Thanks to everyone who did work on this. And now, for my comments:

1. The JPackageNaming exception needs to die. It was a painful
compromise originally, and now, it just needs to be removed. I will vote
-1 on any draft that contains it, unless someone comes up with a much
more convincing rationale for its continued existence.

2. "The JPackage Project has defined standard file system locations and
conventions for use in Java packages. Many distributions have inherited
these conventions and in the vast majority of cases, Fedora follows them
verbatim. We include relevant sections of the JPackage guidelines here
but caution that the canonical document will always reside upstream:
JPackage Guidelines "

I'm not sure what this section is intended to provide. It seems to imply
that the JPackage Guidelines are the real guidelines, in which case,
what point do the Fedora Guidelines serve? I have no problem giving the
JPackage team credit for the origination of many of the Fedora
Guidelines, but to refer to that as "the canonical document" is wrong.
This is supposed to be the canonical document for Fedora Java
Guidelines.

I'd prefer to see this entire section replaced with:

The Fedora Java Guidelines are based on guidelines originally drafted by
the JPackage Project.

3. "If the number of provided JAR files exceeds two, place them into a
sub-directory." What makes two the magic number here? Why not simply
more than 1?

4. "Java packages in Fedora should enumerate their dependencies with
Requires." I think this might need to be a "must", not just a "should".

5. I would like to see a section reminding people that all Java packages
MUST be built from source code, and that pre-built binary files (JARs or
otherwise) are not acceptable. The "Pre-built JAR files / Other bundled
software" is probably intended to do this, but it uses a lot of
"shoulds", and never explicitly states that this must not happen.

6. Please add an example of how to resolve class-path-in-manifest
issues.

7. Go through the entire document and make sure that you're using "must"
and "should" appropriately. "Should" means that you are not required to
do it, its just a good idea. "Must" means that you are required to do
it, and that it will fail a package on review. For example, the "Javadoc
scriptlets" seems like it is a "must" not a "should".

8. "%{_jnidir} usually expands into /usr/lib/java." This should probably
be %{_libdir}/java.

9. I think you've got an accidental line wrap in the example for
"Packaging JAR files that use JNI"

10. It might also be worthwhile to do an "ant" spec template and a
"maven" spec template. I'm not sure how different these two packaging
types would be, but the guidelines seem to imply significant
differences.

~spot




More information about the Fedora-packaging mailing list