Subject: Re: HEADS UP (Re: 1.5.x openssl problems)
To: Martti Kuparinen <martti.kuparinen@iki.fi>
From: Frederick Bruckman <fredb@immanent.net>
List: current-users
Date: 08/30/2002 09:31:55
On Fri, 30 Aug 2002, Martti Kuparinen wrote:

> On Fri, 30 Aug 2002, Frederick Bruckman wrote:
>
> > Best to figure out which intermediate library actually holds the
> > shared library dependency on -lssl.1 and lcrypt.0, to rebuild it
> > first.
>
> Of course I tried that, I even ran "make configure", suspended it with ^Z
> just after it had created the buildlink stuff and removed all references
> to the old openssl libs. I rebuilt both cyrus-sasl and cyrus-imapd
> in this funny way. Result: references to the old libs.
>
> The only way which worked for me was to be remove /usr/lib/libssl.0*
> and libcrypt.0*. Not very elegant I must say :-(

> This is more a pkgsrc issue I guess, it shouldn't try to use libs
> outside work/.buildlink...

Build everything in pkgsrc with "-Wl,-nostdlib"? I doubt that'll
happen. On the other hand, you might be onto something there.
"openssl/buildlink.mk" uses these wildcards

BUILDLINK_FILES.openssl+=       include/openssl/*
BUILDLINK_FILES.openssl+=       lib/libRSAglue.*
BUILDLINK_FILES.openssl+=       lib/libcrypto.*
BUILDLINK_FILES.openssl+=       lib/libssl.*

rather than a proper list of files, which tends to defeat the whole
purpose of buildlink. I'm running into a similar problem updating
packages built against MesaLib and glut after upgrading to XFree 4.

Nonetheless, the only way you can get a dependency on a shared library
that doesn't have the ".so" link is from another shared library. I
just build cyrus-imapd done on NetBSD 1.6 with the 1.5.3 libraries
still in place, and I get:

-> ldd /usr/pkg/cyrus/bin/imapd
/usr/pkg/cyrus/bin/imapd:
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lsasl.8 => /usr/pkg/lib/libsasl.so.8
         -ldb3.3 => /usr/pkg/lib/libdb3.so.3
         -lcrypto.1 => /usr/lib/libcrypto.so.1
         -lssl.2 => /usr/lib/libssl.so.2
         -lcom_err.4 => /usr/lib/libcom_err.so.4
         -lwrap.0 => /usr/lib/libwrap.so.0
         -lc.12 => /usr/lib/libc.so.12

which, as you can see, does not exhibit the problem. Perhaps this has
something to do with the fact that you failed to completely upgrade to
netbsd-1-5 (which I infer from the fact that you said removing the old
openssl libraries caused base binaries to fail to work), but I'm still
at a loss to explain where, exactly, the old dependency came from.

Frederick