Re: Is there a solution to my problem? (Re: Symlinking jars is dangerous (Re: The evils of /usr/share/java/repository))
On Thu, Sep 20, 2001 at 10:24:07AM +1000, Jeff Turner wrote:
> On Wed, Sep 19, 2001 at 09:21:15AM +0200, Ola Lundqvist wrote:
> > On Wed, Sep 19, 2001 at 09:59:09AM +1000, Jeff Turner wrote:
> > > On Tue, Sep 18, 2001 at 02:15:04PM -0700, Bill Wohler wrote:
> [..]
> > > Symlinking jars can be dangerous, because jars can contain a Class-path:
> > > line in their manifests. These Class-path: lines contain relative
> > > references to other jars. This causes two problems:
> >
> > What does this reference mean? Is it the same as adding that jar to
> > the classpath?
>
> I think so.
>
> > Does it exist only in java2?
>
> Unfortunately yes. It was introduced as part of the 1.2 "extension
> mechanism".
Damn. But maybe we can have a tool that emulates this feature for
java1 too :)
> http://java.sun.com/products/jdk/1.2/docs/guide/extensions/spec.html
>
> > If this is the case we have the solution on the dependency problem!!!
> > We should just have a policy on how to name them. :)
>
> Hmm.. so packagers would open all program jars, twiddle their manifests,
> close them again and then their classpath should be automatically
> determined? Might work, except for the fact that it's not in 1.2, and it
> might break the startup script.
Well when the packager creates the jar it is quite easy to fix. But
yes the non-free package maintainers will have to do that.
> > > - If the packager has gone and renamed the jar, then Class-path:
> > > references in other jars will break.
> > >
> > > - The Class-path: reference is relative (may contain ".."). Say you
> > > have /usr/share/java/jaxp.jar, and symlink it to your VM's lib/ext
> > > directory. Those relative Class-path: references are going to be
> > > relative to /usr/share/java, *not* your VM directory. So even if you
> > > symlink one jar to lib/ext, that jar may haul in a bunch of other
> > > jars.
> >
> > The policy should say that every Class-path: must be relative to the
> > /usr/share/java dir. Which means that they should (almost all time)
> > just be the jar filename.
>
> An excellent idea.
I'll add it to the policy in some way. But I'll wait until I know more
about what we can do about this kind of issues.
Regards,
// Ola
--
--------------------- Ola Lundqvist ---------------------------
/ opal@debian.org Björnkärrsgatan 5 A.11 \
| opal@lysator.liu.se 584 36 LINKÖPING |
| +46 (0)13-17 69 83 +46 (0)70-332 1551 |
| http://www.opal.dhs.org UIN/icq: 4912500 |
\ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 /
---------------------------------------------------------------
Reply to: