version-independence between Python & BerkDB in Solaris packages?

Skip Montanaro skip at pobox.com
Fri Jan 2 13:02:33 EST 2004


This is kinda off-topic for this group, but since I'm packaging Python
perhaps not too far OT.

I built a Solaris package for Python 2.3.3 then copied it to another system
and installed it.  Nothing too earth-shaking there.  When I ran the
regression test it barfed in test_bsddb because it couldn't find the
Berkeley DB library.  I went back to the first system and am now in the
midst of updating from DB 4.0.14 to DB 4.2.52 and will then build a Solaris
package for it.

Unfortunately that means I'll have to rebuild and repackage Python as well,
since _bsddb.so depends on a specific Berkeley DB package:

    % ldd _bsddb.so 
            libdb-4.0.so =>  /usr/local/BerkeleyDB.4.0/lib/libdb-4.0.so
            libc.so.1 =>     /usr/lib/libc.so.1
            libdl.so.1 =>    /usr/lib/libdl.so.1
            /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1

Is it possible to compile and package Python and the external libraries it
uses to minimize coupling between package versions like this?  I note that
other modules which link to specific external libraries don't have such
problems:

    % ldd zlib.so
            libz.so =>       /usr/lib/libz.so
            libc.so.1 =>     /usr/lib/libc.so.1
            libdl.so.1 =>    /usr/lib/libdl.so.1
            /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1

Maybe it's just unavoidable with Berkeley DB because there are so many
versions liable to be installed simultaneously.

Thanks,

Skip





More information about the Python-list mailing list