pkgsrc-Users archive

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

Re: Problems Building net/net-snmp in pkgsrc - need help please



tnoell%lexmark.com@localhost wrote:

OK, I did this***, and in /usr/lib/*.la I see the following references to
libbeecrypt:

galaxy 0 barch% cd /usr/lib
/users/tnoell/barch
galaxy 0 lib% grep beecrypt *.la
/usr/lib
librpmbuild.la:dependency_libs='
-L/usr/src/build/588060-i386/install/usr/lib -L/usr/lib /usr/lib/librpm.la
-L/usr/local/lib /usr/lib/librpmdb.la /usr/lib/libpopt.la
/usr/lib/librpmio.la /usr/lib/libbeecrypt.la -lrt -lpthread -lz -lbz2
-lelf'
librpmdb.la:dependency_libs=' -L/usr/src/build/588060-i386/install/usr/lib
-L/usr/lib /usr/lib/librpmio.la /usr/lib/libbeecrypt.la -lrt -lpthread
-L/usr/local/lib -lz -lbz2 /usr/lib/libpopt.la -lelf'
librpmio.la:dependency_libs=' -L/usr/src/build/588060-i386/install/usr/lib
-L/usr/lib /usr/lib/libbeecrypt.la -lrt -lpthread -L/usr/local/lib -lz
-lbz2'
librpm.la:dependency_libs=' -L/usr/src/build/588060-i386/install/usr/lib
-L/usr/lib /usr/lib/librpmdb.la -L/usr/local/lib -lelf /usr/lib/librpmio.la
/usr/lib/libbeecrypt.la -lrt -lpthread -lz -lbz2 /usr/lib/libpopt.la'

Okay, this is your problem. You're linking against librpmio.so, so all of the libraries that are needed by librpmio.so must also be provided on your system. You therefore should install whatever provides /usr/lib/libbeecrypt.la or else /usr/lib/librpmio.so is unusable for builds.

I also found some discussions on the net-snmp users list
(http://sourceforge.net/mailarchive/forum.php?forum_id=4959
and search on beecrypt)

There it is said that the net-snmp/hsot/hr_swinst module needs librpmio,
which on my system is one of the ones that references beecrypt.
In those users' worlds, the standard answer appears to be "install the
beecrypt-devel rpm" and the problem goes away.

This advice is correct.

In the pkgsrc world, I have already installed security/beecrypt, and
libbeecrypt.la is happily sitting in my pkgsrc $PREFIX/lib/libbeecrypt.la
(see my earlier note).

Yes, but the version of libbeecrypt installed by pkgsrc may not match the one that is needed by /usr/lib/librpmio.so, so playing games with the dynamic linker through symlinks or LD_LIBRARY_PATH may get you burned.

I'm pretty sure that libtool is looking at ldd output on
/usr/lib/librpmio.* and adding /usr/lib/libbeecrypt.* to the list of
depended on libraries.
So how do I get libtool to find it in my pkgsrc $PREFIX/lib dir?  (I threw
the -L${PREFIX}/lib flag, but libtool doesn't seem to be applying that to
libs sucked in by walking ldd and finding "/usr/lib/libbeecrypt.*"

No, that is not what libtool is doing. Libtool is complaining because you're linking against -lrpmio, which causes libtool to read /usr/lib/librpmio.la. Upon reading /usr/lib/librpmio.la, it sees that it should be able to find /usr/lib/libbeecrypt.la because it's mentioned in the "dependency_libs" line of /usr/lib/librpmio.la. When libtool can't find /usr/lib/libbeecrypt.la at this point, it bails out with the error that you see.

Thinking I could set LD_LIBRARY_PATH to my pkgsrc $PREFIX/lib dir, I did
this and tried again.  Unfortunately, libtool still wants libbeecrypt to
come from /usr/lib.

Any more ideas?  Surely there is a way to get libtool to resolve discovered
dynamic library dependencies against the -L path or LD_LIBRARY_PATH?

No, you don't want to do this. You want to just install the beecrypt-devel RPM so that you can successfully link against the librpmio.so in the base system. Note that this advice only applies to systems that have /usr/lib/librpm* in the base system. Linux systems that don't have those libraries aren't affected by this problem.

        Cheers,

        -- Johnny Lam <jlam%pkgsrc.org@localhost>



Home | Main Index | Thread Index | Old Index