tech-userlevel archive

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

Bumping shlib majors (was: CVS commit: src/lib/libcrypto)



Replying to Christos' update of openssl and in particular libcrypto:

> Module Name:  src
> Committed By: christos
> Date:         Fri May  9 21:52:18 UTC 2008
>
> Modified Files:
>       src/lib/libcrypto: Makefile aes.inc asn1.inc crypto.inc dh.inc dsa.inc
>           ec.inc engine.inc evp.inc hmac.inc objects.inc pem.inc rsa.inc
>           shlib_version srcs.inc
> Added Files:
>       src/lib/libcrypto: cms.inc ts.inc
>
> Log Message:
> new openssl

First: many thanks for the heavy lifting!

Second: I see you bumped the major version number of libcrypto.
If I've understood correctly, proper ELF shared library hygiene
rules then dictate that all the other shared libraries which
depend on libcrypto also need to have their major numbers bumped.
I found problems while update-building and linking httpd, because
libssl was not bumped, but now depended on the no longer current
major version:

       link  httpd/httpd
/u/build/HEAD/tools/cesfic/lib/gcc/m68k--netbsdelf/4.1.3/../../../../m68k--netbsdelf/bin/ld:
 warning: libcrypto.so.3, needed by 
/u/build/HEAD/dest/cesfic/usr/lib/libssl.so, may conflict with libcrypto.so.4
...
collect2: ld returned 1 exit status

*** Failed target:  httpd
*** Failed command: /u/build/HEAD/tools/cesfic/bin/m68k--netbsdelf-gcc 
-Wl,-nostdlib -Wl,--fatal-warnings -o httpd 
-Wl,-rpath-link,/u/build/HEAD/dest/cesfic/lib:/u/build/HEAD/dest/cesfic/usr/lib 
-L/u/build/HEAD/dest/cesfic/lib -B/u/build/HEAD/dest/cesfic/usr/lib/ 
-B/u/build/HEAD/dest/cesfic/usr/lib/ bozohttpd.o ssl-bozo.o auth-bozo.o 
cgi-bozo.o daemon-bozo.o tilde-luzah-bozo.o dir-index-bozo.o content-bozo.o 
-lcrypt -lssl -lcrypto -L/u/build/HEAD/dest/cesfic/usr/lib 
-L/u/build/HEAD/dest/cesfic/usr/lib
*** Error code 1

If a sipmle grep for LIBDPLIBS is trustworthy, this should
affect:

: {45} egrep LIBDPLIBS lib*/Makefile | grep -w crypto
libhx509/Makefile:LIBDPLIBS=    crypto  ${.CURDIR}/../libcrypto \
libradius/Makefile:LIBDPLIBS+=crypto ${.CURDIR}/../libcrypto
libssh/Makefile:LIBDPLIBS+=     crypto  ${.CURDIR}/../libcrypto \
libssl/Makefile:LIBDPLIBS+=crypto ${.CURDIR}/../libcrypto
: {46} 

and ascending this dependency graph recursively:

: {46} egrep LIBDPLIBS lib*/Makefile | grep -w hx509
libkrb5/Makefile:LIBDPLIBS+=    hx509   ${.CURDIR}/../libhx509 \
: {47} egrep LIBDPLIBS lib*/Makefile | grep -w radius
: {48} egrep LIBDPLIBS lib*/Makefile | grep -w ssh
: {49} egrep LIBDPLIBS lib*/Makefile | grep -w ssl
: {50} egrep LIBDPLIBS lib*/Makefile | grep -w krb5
libgssapi/Makefile:LIBDPLIBS+=  krb5    ${.CURDIR}/../libkrb5 \
libhdb/Makefile:LIBDPLIBS+=     krb5    ${.CURDIR}/../libkrb5 \
libkadm5clnt/Makefile:LIBDPLIBS+=       krb5    ${.CURDIR}/../libkrb5 \
libkadm5srv/Makefile:LIBDPLIBS+=        krb5    ${.CURDIR}/../libkrb5 \
libkafs/Makefile:LIBDPLIBS+=    krb5    ${.CURDIR}/../libkrb5 \
: {51} egrep LIBDPLIBS lib*/Makefile | grep -w gssapi
: {52} egrep LIBDPLIBS lib*/Makefile | grep -w hdb
: {53} egrep LIBDPLIBS lib*/Makefile | grep -w kadm5clnt
: {54} egrep LIBDPLIBS lib*/Makefile | grep -w kadm5srv
: {55} egrep LIBDPLIBS lib*/Makefile | grep -w kafs
: {56} 

Remarks:

1: This is probably minor compared to what will happen when we
   need to bump libc's major.
2: Should those libraries which depend on libc (I assume "most")
   have had their own LIBDPLIBS setting so that the libc major
   they depend on is properly recorded?

Regards,

- Håvard


Home | Main Index | Thread Index | Old Index