Hi, The reason it fails is fairly simple. Instead of linking using -lxmms, this module links against libxmms using dlopen. As it dlopen's 'libxmms.so' which is only provided by xmms-dev... well it doesn't work if the package is not present. To fixes are possible. Either making the dlopen against the library soname, 'libxmms.so.1', which is a quick fix (patch attached) but will be broken if the soname changes, but I doubt it will for XMMS. The other solution is to modify to link the usual way, but it would require a more intrusive patch.
By the way, I miss a bit the point of using dlopen to access libxmms for an xmms plugin.If someone knows... I hope this little explaination will be helpful. Regis
diff -urN xmms-jack-0.14/jack.c xmms-jack-0.14.patch/jack.c --- xmms-jack-0.14/jack.c 2005-04-16 02:29:55.000000000 +0100 +++ xmms-jack-0.14.patch/jack.c 2005-06-15 19:53:19.163586432 +0100 @@ -61,7 +61,7 @@ MAKE_FUNCPTR(xmms_convert_buffers_new); MAKE_FUNCPTR(xmms_convert_buffers_destroy); MAKE_FUNCPTR(xmms_convert_get_frequency_func); -void *xmmslibhandle; /* handle to the dlopen'ed libxmms.so */ +void *xmmslibhandle; /* handle to the dlopen'ed libxmms.so.1 */ static int isXmmsFrequencyAvailable = 0; @@ -205,7 +205,7 @@ /* jack client list */ JACK_SetClientName("xmms-jack"); - xmmslibhandle = dlopen("libxmms.so", RTLD_NOW); + xmmslibhandle = dlopen("libxmms.so.1", RTLD_NOW); if(xmmslibhandle) { fp_xmms_convert_buffers_new = dlsym(xmmslibhandle, "xmms_convert_buffers_new"); @@ -242,7 +242,7 @@ } } else { - TRACE("unable to dlopen '%s'\n", "libxmms.so"); + TRACE("unable to dlopen '%s'\n", "libxmms.so.1"); } /* only initialize this stuff if we have the functions available */