[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: