On Wednesday 02 April 2008, Andrew Overholt wrote:
> 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.
fedora-devel-list mailing list