What does rpc.mountd dlopen() libnfsjunct.so rather than libnfsjunct.so.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux