Summary of the 2008-04-01 Packaging Committee meeting

Ville Skyttä ville.skytta at iki.fi
Wed Apr 2 21:09:42 UTC 2008


On Wednesday 02 April 2008, Andrew Overholt wrote:
> Hi,
>
> On Wed, 2008-04-02 at 13:24 -0600, Jerry James wrote:
> > I'm curious about two points.  First, rpmlint can either complain that
> > jars are indexed, or complain that they are not indexed.  In the
> > default Fedora configuration, it complains if they are indexed.  Why?

Which version of rpmlint are you using?  Have you touched related rpmlint 
configuration settings?  rpmlint's current default configuration in Fedora 
should prevent it from emitting any messages whatsoever about jars being 
indexed or not.

Upstream rpmlint's default configuration is to whine if jars are not indexed 
(config parameter UseIndexedJars defaults to 1, this is what Fedora uses 
too), but we filter warnings about non-indexed jars out from the output, 
see "grep jar /usr/share/rpmlint/config".

If you're seeing jar indexing related warnings using the default rpmlint 
config, I'm pretty sure that would be an rpmlint or rpmlint packaging bug.

> > Is there some supported JVM on some supported Fedora release that
> > cannot handle indexed JARs?  I don't see anything about this in the
> > JPackage guidelines, nor in the Fedora guidelines.
>
> No one brought up the indexing issue.  I've never seen that rpmlint
> warning myself.  Perhaps you should ask Ville.

Indexing supposedly speeds up classloading in some cases, and is probably most 
useful with applets loaded over the network.  I've never seen any numbers 
related to this though, neither for the over the network case nor for normal 
local java apps, nor do I know if non-network classloaders that process jar 
indexes exist in the first place.

On the other hand, indexed jars did break with some old Java versions, but I 
don't think that's of any relevance any more.  But there's still one gotcha: 
indexing a jar will cause its manifest Class-Path to be ignored even with 
recent Java implementations (at least when invoked with "java -jar").  This 
is probably not much to worry about in Fedora as we don't want Class-Paths in 
manifests anyway, but can be useful to know.

If there is consensus that having rpmlint always whine about non-indexed jars 
or always about indexed jars would be a good thing, I can make either change 
in the package.  Personally, I obviously couldn't choose :)

> > Second, I have a question about the use of Class-Path in JAR
> > manifests.  The JPackage guidelines say nothing about it.  The Fedora
> > guidelines only give a sed command to remove Class-Path entries, but
> > do not discuss why they should be removed.
>
> This was discussed during the process of editing the page:
[...]
> Feel free to request that justification be listed on the page (I really
> don't know the process for making changes to guidelines after they're
> voted upon by FPC), but I don't think it should be added right now since
> these guidelines are in the process of FPC->FESCo ratification and
> shouldn't be touch (AIUI).

I'm not sure either, but adding the rationale sometime would be a good thing.

Ditto would be noting somewhere that the process of removing Class-Paths from 
manifests will break "java -jar foo.jar" invocations if foo.jar requires 
additional user stuff in the classpath.  This is because $CLASSPATH, -cp 
and -classpath are ignored with "java -jar"; only Class-Path in manifest 
works with it.  The workaround is to not use -jar but use the main class name 
instead, and set classpath the usual way as required.  Packagers should 
therefore not use "java -jar" in any scripts or docs, and this could be a 
good thing to note in end user docs as well.




More information about the fedora-devel-list mailing list