/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: yperr_string 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 libnsl loaded?
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