David
The jpackage project (http://www.jpackage.org/) is a volunteer project devoted to providing clean linux rpm packages of java stuff. Since Linux core processes permit very fine control of what's actually installed on the system, one of our main goals is to enable component sharing instead of the usual java practise of having a copy of every single needed jar in every single app. Since every library is only installed once on the system, it must be installed right to please every user app. (OTOH this allows ugrading a component in every app at once instead of having to rebuild all the users). Applications use a common script framework to build classpathes out of available jars and/or create symlinks when they need directories of jars to run.
This is a rather unusual setup (even if our users love it) and as a result we tend to find problems other people miss. The most recent one involves tomcat4,commons-logging and log4j. I won't bore you with technicalities (the whole discussion is available at the http://lists.zarb.org/pipermail/jpackage-discuss/2003-June/002084.html url, and I think it even overflows in a few other threads) but we found we needed some changes in commons-logging jar structure and we'd rather have them into jakarta proper instead of branching stuff (we've been providing official linux rpms of jakarta stuff and we'd rather keep it that way).
Anyway :
1. we absolutely need removal of the log4j classpath entries in the generated jar manifests (as a rule we consider classpathes in manifests evil since they result in subtle behaviours no human can really handle. They won't work most of the time and when they do it's not like the user intended). We do not want log4j stealth-drawn into the classpath if present like it is now and users want control of the actual logging backend used.
2. we'd like the build-in backends split from the main jar so we can made them optional and allow people not to install them if they already have log4j or a 1.4 jvm.
3. people have asked for further splittage of the backend glue so they can only install the parts relevant to the backend they'll actually use (ie separate log4j, jdk 1.4, avalon... parts).
In linux speak that would get us :
commons-logging frontend requires commons-logging-backend commons-logging-log4 provides commons-logging-backend requires log4j commons-logging-jdk provides commons-logging-backend requires java >= 1.4.0 commons-logging-simple provides commons-logging-backend
and so on, each package consisting of a single jar with no classpath in its manifest.
I realise I've not been as terse as I wanted to so I'll stop now. Just ask if I wasn't clear enough.
Regards,
-- Nicolas Mailhot << signature.asc >>
_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]