> On Feb 25, 2014, at 9:16 PM, NeilBrown <neilb@xxxxxxx> wrote: > > > See $SUBJ > > Shared libraries are usually versioned so you can release a new version with > an incompatible API and gradually transition to it. > > A rpc.mountd dlopens libnfsjunct.so with no version it is effectively > prohibited from ever changing the API in an incompatible way. There is an API version field that mountd can examine before using the plug-in. .so symlinks to whichever library version is the blessed one. > > Both Fedora and openSUSE get upset about packaging a libFOO.so in a non > "-devel" package and so trip over this library which clearly needs to be > installed even if you aren't doing 'devel'opment. I've seen the rpmlint warning for some time. Never been sure exactly what to do about it, or whether it matters. > > I would like to change mountd as per the patch below to use the ".0" file. > I believe this will not break any installation as the ".so" is installed as a > symlink to the ".0" (or maybe ".0.0.0"). > > Would this be acceptable? That dlopen(3) should follow whatever packaging guidelines are set out by distributors. Do what you guys agree is correct. > > There is a bit of a discussion about this here: > https://bugzilla.redhat.com/show_bug.cgi?id=889174 > > but I either don't understand it or don't agree with it. > > Thanks, > NeilBrown > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c > index ca35de28847a..f6d78490954f 100644 > --- a/utils/mountd/cache.c > +++ b/utils/mountd/cache.c > @@ -1139,7 +1139,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname, > struct link_map *map; > void *handle; > > - handle = dlopen("libnfsjunct.so", RTLD_NOW); > + handle = dlopen("libnfsjunct.so.0", RTLD_NOW); > if (handle == NULL) { > xlog(D_GENERAL, "%s: dlopen: %s", __func__, dlerror()); > return NULL; -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html