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

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

 




> 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




[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