tech-pkg archive

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

pam-saml/cy2-saml -lpthread and NetBSD 6.0



Hi

Since NetBSD 6.0, dlopen() will not load libpthread.so anymore. In order
to load a DSO that is linked against libpthread.so, that library must
have been loaded at program startup time.

security/pam-saml and security/cy2-saml are PAM and SASL modules, and
are therefore meant to be dlopen(). I use it with dovecot and sendmail,
which are not linked with -lpthread.

security/pam-saml and security/cy2-saml both depend on security/lasso,
which is linked against libgojbect-2.0.so (from devel/glib2). That
library has a dependency on libpthread.so. Neither lasso not
pam-saml/cy2-saml use threads, but they inherit the dependency, and my
modules do not load.

I see 3 way to work around this issue

1) set LD_PRELOAD=/usr/lib/libpthread.so  from /etc/rc.conf.d when
starting up sendmail and dovecot. Unfortunately, the two programs will
have loose the variable at the time the load the modules. Making sure it
would get through would require many modifications to sendmail/dovecot
that are unlikely to be taken upstream.

2) Create a gobject-nopthread package which would install a
libgobject-nopthtread-2.0.so library that do not have a dependency on
libpthread.so, and link lasso against it. That require patching a few
lines in glib2 configure and makefile. I got it working but it would be
annoying to maintain on the long run.

3) Add a pthread option to the dovecot and sendmail packages so that
they can be built with a libpthread.so dependency. This seems the easier
way to maintain, and since it is optionnal, it would not harm anyone noe
using it. 

Option 3 seems the path of least resistance. Any opinon on it?

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index