All of lore.kernel.org
 help / color / mirror / Atom feed
* What does rpc.mountd dlopen() libnfsjunct.so rather than libnfsjunct.so.0
@ 2014-02-26  5:16 NeilBrown
  2014-02-26  6:06 ` Chuck Lever
  2014-02-26 14:39 ` Simo Sorce
  0 siblings, 2 replies; 21+ messages in thread
From: NeilBrown @ 2014-02-26  5:16 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Steve Dickson, NFS

[-- Attachment #1: Type: text/plain, Size: 1398 bytes --]


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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-03-11 18:19 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-26  5:16 What does rpc.mountd dlopen() libnfsjunct.so rather than libnfsjunct.so.0 NeilBrown
2014-02-26  6:06 ` Chuck Lever
2014-02-26  7:01   ` NeilBrown
2014-02-26 14:40     ` Simo Sorce
2014-02-26 14:51     ` Chuck Lever
2014-02-26 14:39 ` Simo Sorce
2014-02-26 16:02   ` Chuck Lever
2014-02-26 16:25     ` Simo Sorce
2014-02-26 16:54       ` Chuck Lever
2014-02-26 17:10         ` Simo Sorce
2014-03-03 17:30           ` Steve Dickson
2014-03-03 17:23         ` Steve Dickson
2014-02-26 22:58     ` NeilBrown
2014-02-27 16:57       ` Chuck Lever
2014-03-03  3:21         ` NeilBrown
2014-03-03 17:45           ` Chuck Lever
2014-03-03 22:42             ` NeilBrown
2014-03-04 18:35       ` Chuck Lever
2014-03-05  3:45         ` NeilBrown
2014-03-05  4:07           ` [PATCH: nfs-utils] mountd: use SONAME fir libnfsjunct when loading with dlopen NeilBrown
2014-03-11 18:19             ` Steve Dickson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.