javadoc scriptlets

Ville Skyttä ville.skytta at iki.fi
Thu Nov 22 16:29:03 UTC 2007


On Thursday 22 November 2007, Nicolas Mailhot wrote:
> Le mercredi 21 novembre 2007 à 23:18 -0600, Jason L Tibbitts III a
>
> écrit :
> > * Sat Sep  3 2005 Anthony Green <green at redhat.com> - 0:1.1.1-7
> > - Removed %ghost for javadoc, and remove javadoc post scriptlet,
> >   as per ville.skytta at iki.fi's suggestion.
> >
> > But I don't know what the basis for that was, and I don't see anything
> > relevant in bugzilla.  Perhaps Ville can remember that far back.
> >
> > Does anyone know the rationale for this?
>
> Ask Ville. He's the javadoc man.

As far as I'm concerned, there's exactly one hard requirement for javadoc 
installs: unversioned dir (or at least a symlink).  This is for 
bookmarkability (browsers, IDEs), easy crosslinking of javadocs at package 
build time, and not having the links break when crosslinked javadoc packages 
are updated.

The intention of the original JPackage javadoc scriptlets was that one could 
install multiple versions of some javadoc package in parallel.  That'd be 
kind of cool.  But it's too tricky to get right for my taste.  The current 
scriptlets are an halfway there attempt to do it, but they're already quite 
ugly and suffer from two problems: 1) the unversioned symlink will point to 
the javadoc package which was installed last, not the latest version, which 
IMO isn't useful, and 2) they fail with read-only %_netsharedpath /usr/share 
setups.

Those are fixable by adding some more ugliness to the scriptlets (possibly 
much more to get 1) taken care of), but because we don't actually ship 
multiple versions of javadoc packages (they get pruned just like other old 
package versions) or when we do, we ship them in packages with 
different %{name}, I think the sane approach is to just forget about the 
symlink games, install to unversioned %{_javadocdir}/%{name} and be done with 
it.

For the same reason, my NSHO is is that packages shipping jars 
in /usr/share/java should just drop their jars unversioned there and not 
bother with symlinks.  I'm pretty sure that the symlinks between different 
versions of a package would and do actually conflict in the vast majority of 
cases without some "%verify(not link)" magic which is currently very rare 
AFAIK.  So the symlinkage and versioning is pretty much useless cruft 
nowadays, and because nobody appears to be complaining about the inability to 
install multiple versions in parallel, it should be dropped.

> (also why are you posting all those java-related questions there instead
> on fedora-java or jpackage-discuss? That's where the java packagers
> dwell)

FWIW, I'm not reading those, but then again I'm not an active Java packager 
these days anyway.




More information about the fedora-devel-list mailing list