Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 285062 - dev-libs/nss-3.12.4 libraries suddenly lack soname
Summary: dev-libs/nss-3.12.4 libraries suddenly lack soname
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Jory A. Pratt
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-15 08:36 UTC by Christophe Saout
Modified: 2009-09-16 12:14 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
add NSS_MINOR_VERSION to soname (nss-3.12.4-config.patch,1.88 KB, text/plain)
2009-09-15 15:04 UTC, Jory A. Pratt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Saout 2009-09-15 08:36:51 UTC
after the upgrade to nss-3.12.4 the library /usr/lib64/libnss3.so.12 (and the other lib*.so.12 too) suddenly lack their soname "libnss3.so.12" and are internally named "libnss3.so":

readelf -a /usr/lib64/nss/libnss3.so.12 | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libnss3.so]

It should read (at least it did before in 3.12.3 and earlier):
leto:/home/chtephan/.local/lib > readelf -a libnss3.so.12 | grep SONAME 0x000000000000000e (SONAME)             Library soname: [libnss3.so.12]

This causes the installed packages suddenly to break and need a recompile.

Was that intended? I didn't find anything about it.


Reproducible: Always

Steps to Reproduce:
Comment 1 Christophe Saout 2009-09-15 08:37:59 UTC
Portage 2.2_rc40 (!../usr/local/portage/profiles/default/linux/amd64/2008.0/no-symlinks/no-lib32, gcc-4.4.1-hardenednopiessp, glibc-2.10.1-r0, 2.6.30-cs1 x86_64)
=================================================================
System uname: Linux-2.6.30-cs1-x86_64-Intel-R-_Core-TM-2_CPU_T7200_@_2.00GHz-with-gentoo-2.0.1
Timestamp of tree: Tue, 15 Sep 2009 07:45:02 +0000
app-shells/bash:     4.0_p33
dev-java/java-config: 2.1.9
dev-lang/python:     2.6.2-r1, 3.1.1
dev-util/cmake:      2.6.4-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r3
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -pipe -frename-registers -fweb -ftree-vectorize -D_FORTIFY_SOURCE=2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=core2 -pipe -frename-registers -fweb -ftree-vectorize -D_FORTIFY_SOURCE=2"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="scp://root@duncan/usr/portage/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://mirror.bytemark.co.uk/gentoo/ ftp://mirror.bytemark.co.uk/gentoo/ http://212.219.56.138/sites/www.ibiblio.org/gentoo/"
LANG="de_DE.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--as-needed -Wl,--sort-common -Wl,--hash-style=both"
LINGUAS="de en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlay/desktop-effects /usr/local/overlay/gnome /usr/local/overlay/mozilla /usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acl acpi admin adns aiglx alsa amd64 apache2 avi berkdb bluetooth bonobo bzip2 cairo caps cdr cli consolekit cpp cracklib crypt cups curl dbus development device-mapper devmap dga dlopen dmx dpms dri droproot dts dvd dvdr dynamic eds elf encode esd ethereal evo exif faad fam ffmpeg firefox flac foomaticdb fortran gcj gd gdbm gif gmp gnome gnome-keyring gnutls gphoto2 gpm gstreamer gstreamer010 gstreamer10 gtk gtk2 guile hal iconv idn imap ipv6 isdnlog jack jack-tmpfs java jpeg jpeg2k kerberos keyring laptop lcms ldap libg++ libgda libnotify live maildir mmx mono mozilla mp3 mpeg mudflap multilib mysql nautilus ncurses nfs nfsv4 nls nntp nptl nptlonly nsplugin odbc office ogg oggvorbis ole openmp pam pango pcre pdf perl pic png policykit postgres postscript pppd printer python qt radeon readline reflection samba sasl sdl session slp sndfile soap soup speex spl sqlite sse sse-filters sse2 ssl startup-notification svg sysfs tcltk tcpd tetex theora tiff truetype unicode usb utf8 vorbis x264 xattr xcb xinerama xml xml2 xorg xrandr xscreensaver xslt xulrunner xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en" USERLAND="GNU" VIDEO_CARDS="ati radeon fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Jory A. Pratt gentoo-dev 2009-09-15 14:32:11 UTC
I will look into this tonight.
Comment 3 Jory A. Pratt gentoo-dev 2009-09-15 14:33:13 UTC
(In reply to comment #0)
> after the upgrade to nss-3.12.4 the library /usr/lib64/libnss3.so.12 (and the
> other lib*.so.12 too) suddenly lack their soname "libnss3.so.12" and are
> internally named "libnss3.so":
> 
> readelf -a /usr/lib64/nss/libnss3.so.12 | grep SONAME
>  0x000000000000000e (SONAME)             Library soname: [libnss3.so]
> 
> It should read (at least it did before in 3.12.3 and earlier):
> leto:/home/chtephan/.local/lib > readelf -a libnss3.so.12 | grep SONAME
> 0x000000000000000e (SONAME)             Library soname: [libnss3.so.12]
> 
> This causes the installed packages suddenly to break and need a recompile.
> 
> Was that intended? I didn't find anything about it.
> 
> 
> Reproducible: Always
> 
> Steps to Reproduce:
> 
I was meaning to ask what packages have you noticed breakages out of?
Comment 4 Christophe Saout 2009-09-15 14:49:10 UTC
Well, all users of dev-libs/nss.

prleto:/root # prelink -Ram
prelink: /usr/bin/ekiga: Could not find one of the dependencies
prelink: /usr/bin/gnome-about-me: Could not find one of the dependencies
prelink: /usr/bin/bug-buddy: Could not find one of the dependencies
prelink: /usr/bin/evolution: Could not find one of the dependencies

And if I call one of the programs:

evolution: error while loading shared libraries: libssl3.so.12: cannot open shared object file: No such file or directory

I am sure that a revdep-rebuild fixes things, but I was wondering if this was intentional.

Since the old library was called "libnss3.so.12" and the new has the same name, but it suddenly binary incompatible due to the soname change. I am leaning towards this not being intentional but an accident of some kind with a missing linker parameter or libtool problem (or whatever might be involved in here).
Comment 5 Jory A. Pratt gentoo-dev 2009-09-15 15:04:23 UTC
Created attachment 204205 [details]
add NSS_MINOR_VERSION to soname

Chris if you could test and report back would be appreciated. I am gonna have to track down a null pointer for hardened users before I can commit the fix.
Comment 6 Christophe Saout 2009-09-15 15:38:23 UTC
I am now getting a failure during emerge which I don't understand.

/var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/./sign.sh /var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/../../../dist/Linux2.6_x86_64_x86_64-pc-linux-gnu-gcc_glibc_PTH_64_OPT.OBJ /var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/Linux2.6_x86_64_x86_64-pc-linux-gnu-gcc_glibc_PTH_64_OPT.OBJ Linux /usr/lib64/nspr   /var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/../../../dist/Linux2.6_x86_64_x86_64-pc-linux-gnu-gcc_glibc_PTH_64_OPT.OBJ/lib/libsoftokn3.so
/var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/Linux2.6_x86_64_x86_64-pc-linux-gnu-gcc_glibc_PTH_64_OPT.OBJ/shlibsign -v -i /var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/../../../dist/Linux2.6_x86_64_x86_64-pc-linux-gnu-gcc_glibc_PTH_64_OPT.OBJ/lib/libsoftokn3.so
moduleSpec configdir='' certPrefix='' keyPrefix='' secmod='' flags=noCertDB, noModDB
Generate a DSA key pair ... 
/var/tmp/portage/dev-libs/nss-3.12.4/work/nss-3.12.4/mozilla/security/nss/cmd/shlibsign/./sign.sh: line 2: 15933 Aborted                 ${2}/shlibsign -v -i ${5}
Comment 7 Jory A. Pratt gentoo-dev 2009-09-15 17:13:12 UTC
We are gonna leave it as is, I will add an ewarn telling everyone that a revdep-rebuild is in order. This will make it much easier to maintain the ebuild in the long run.
Comment 8 nebojsa 2009-09-15 17:25:59 UTC
(In reply to comment #7)
> We are gonna leave it as is, I will add an ewarn telling everyone that a
> revdep-rebuild is in order. This will make it much easier to maintain the
> ebuild in the long run.
> 

It won't work. revdep-rebuild does not find any problem - it goes after files, it does not check what ldconfig says. And ldconfig does not have entry for /usr/lib/nss/libnss3.so.12 - only for /usr/lib/nss/libnss3.so.
Comment 9 Jory A. Pratt gentoo-dev 2009-09-15 17:40:36 UTC
I have added an ewarn about using upstreams soname and not patching to use previous soname as gentoo has done in the past. We are working to get back closer to that of upstream. A rebuild of a broken package will resolve the problem.
Comment 10 Christophe Saout 2009-09-16 12:14:57 UTC
@nebojsa:

Running "revdep-rebuild --library libnss3.so.12" explicitly fixes things.

Ok, so the change is intentional (getting closer to upstream).  I just wanted to make sure it was not an unwanted mistake. :-)

Thanks.