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. 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 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? 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;
Attachment:
signature.asc
Description: PGP signature