/lib/libnss_wins.so is included in the samba-common-2.2.7a-1 package (in
Phoebe-re0116-Beta4-RC1). I have a test that is run to check to see if
libnss_*.so will dlopen() correctly. The output of the test on
/lib/libnss_wins.so is as follows:
dlopen() of "/lib/libnss_wins.so" failed: /lib/libnss_wins.so: undefined symbol:
I will attach the test script next.
Created attachment 89411 [details]
test for dlopen() on libnss_*.so libs
libnss_wins.so needs the shared library -lnsl If you insert
dlopen ( "/lib/libnsl.so.1", RTLD_NOW | RTLD_GLOBAL )
before the dlopen of libnss_wins, the wins library dlopens successfully. I
haven't figured out how you list this dependency in the .so file.
So the real question now is what programs dlopen libnss_wins, and will they have
Jay: from the list of exported symbols, any application which calls
gethostbyname() (and, depending on how glibc's internals are set up, possibly
getaddrinfo() as well) may end up loading the wins module (in cases where "wins"
is listed on the "hosts:" line in /etc/nsswitch.conf).
Certainly "finger" doesn't link with libnsl. A general rule of thumb is that
nss modules must be linked against all of their dependencies, the library which
itself loads the modules (libc) excepted.
For example, modules intended for use by pam must be linked against any of their
dependencies so that they can be used by apps like login, but needn't be linked
with libpam, because any application which would load the module would also be
linked against libpam.
Should be fixed in samba-common-2.2.7a-4.
Confirmed fixed in current samba-2.2.7a-9.9.0