Le mardi 08 mars 2005 à 07:15 -0800, Anthony Green a écrit : > On Tue, 2005-03-08 at 09:48 -0500, Vadim Nasardinov wrote: > > Is there /usr/share/tomcat5/common/lib/[jdbc-stdext].jar on your > > machine? > > lrwxrwxrwx 1 root root 38 Mar 8 06:40 [jdbc-stdext].jar -> /could/not/find/extension/for/this/jvm > lrwxrwxrwx 1 root root 38 Mar 8 06:40 [jndi].jar -> /could/not/find/extension/for/this/jvm > > Bah. Ok, the java-1.4.2-gcj-compat spec file says: > > Provides: jndi, jdbc-stdext > > So, do we need to play tricks for these, like I suggested for jta? Yep. The jvm framework does not actually cares about the rpm provides. What it wants is a jar in the places it scans (a symlink to another jar is fine). Typically for an in-jvm implementation you have to put a symlink in /usr/lib/jvm-exports/my_jvm_name/ to the jar providing the implementation in /usr/lib/jvm/my_jvm_name/ The symlink must have the standard name the apps want (in this case jdbc-stdext.jar and jndi.jar) This way the common scripts don't require any deep knowledge about every single jvm layout or capabilities - it's the jvm packager responsibility to create the few symlinks in its package that will inform the rest of the system of what his jvm can actually do. (this was originally done because IBM and SUN jvms had very different layouts but it should help even more for gcj since it does not even share the same roots as these other two). When stuff moves in-jvm all you have to do is create a symlink with the same name the jar in /usr/share/java used to have and you're done (plus of course add the relevant provides to the spec). Symlinks in /usr/lib/jvm-exports/my_jvm_name/ have priority wrt to stuff in /usr/share/java so you can even install simultaneously a jvm that absolutely want to use its own implementation and another that relies on the external /usr/share/java one. (this is all part of the JPackage framework - when in doubt you can consult the policy document in jpackage-utils %doc or ask on the jpackage-discuss ML) Regards, -- Nicolas Mailhot
Attachment:
signature.asc
Description: This is a digitally signed message part