Bug 125971 - [QA] dev-lang/tcl-8.4.12, dev-lang/tk-8.4.12, libraries lacking SONAME
Bug#: 125971 Product:  Gentoo Linux Version: 2006.0 Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: tcltk@gentoo.org Reported By: sanchan@gentoo.org
Component: Library
URL: 
Summary: [QA] dev-lang/tcl-8.4.12, dev-lang/tk-8.4.12, libraries lacking SONAME
Keywords:  
Status Whiteboard: 
Opened: 2006-03-12 12:30 0000
Description:   Opened: 2006-03-12 12:30 0000
QA Notice: the following shared libraries lack a SONAME
 /var/tmp/portage/tcl-8.4.12/image/usr/lib64/libtcl8.4.so

QA Notice: the following shared libraries lack a SONAME
 /var/tmp/portage/tk-8.4.12/image/usr/lib64/libtk8.4.so

emerge --info:
Portage 2.1_pre6-r1 (default-linux/amd64/2006.0, gcc-3.4.5, glibc-2.4-r0,
2.6.15-gentoo-r7 x86_64)
=================================================================
System uname: 2.6.15-gentoo-r7 x86_64 AMD Athlon(tm) 64 Processor 3500+
Gentoo Base System version 1.12.0_pre16
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.4 [enabled]
dev-lang/python:     2.4.2-r1
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS=" -march=athlon64 -Os -pipe -fforce-addr -ffast-math -msse2 -ftracer
-m3dnow "
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env
/usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config
/usr/share/X11/xkb /usr/share/config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/env.d/java/ /etc/gconf /etc/java-config/vms/
/etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS=" -march=athlon64 -Os -pipe -fforce-addr -ffast-math -msse2 -ftracer
-m3dnow "
DISTDIR="/home/ftp/distfiles"
FEATURES="autoconfig ccache collision-protect cvs distlocks elog
metadata-transfer multilib-strict parallel-fetch sandbox sfperms sign strict
stricter test userpriv"
GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/ http://gentoo.osuosl.org/
http://mirror.ovh.net/gentoo-distfiles/ ftp://ftp.heanet.ie/pub/gentoo/
http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/
ftp://ftp.unina.it/pub/linux/distributions/gentoo http://gentoo.ngi.it
http://mirror.switch.ch/ftp/mirror/gentoo/
ftp://mirror.switch.ch/mirror/gentoo/ "
LANG="it_IT.utf8"
LINGUAS="it"
PKGDIR="/home/ftp/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays/migration-overlay
/usr/local/overlays/tinyos /usr/local/overlays/gentoo-java-experimental"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="amd64 7zip X a52 aac aalib acl acpi alsa apache2 arts asf audiofile avi
berkdb bitmap-fonts bzip2 cairo canvas ccache cdb cddb cdparanoia cdr chroot
cpudetection crypt css cups curl dba dbus dga directfb dlloader dri dts dv dvd
dvdr dvdread dynagraph emboss encode erandom esd exif expat extrafilters fame
ffmpeg firefox flac fltk foomaticdb gd gdbm ggi gif gimp gimpprint glibc-omitfp
glut gmp gnokii gnome gnutls gphoto2 gpm graphviz gstreamer gtk gtk2 gtkhtml
guile hal idn ieee1394 imagemagick imlib ipv6 ithreads java jbig jikes jpeg
jpeg2k justify kde kdeenablefinal lcms ldap libcaca linuxthreads-tls lm_sensors
logitech-mouse logrotate lzo lzw lzw-tiff mad mailwrapper mbox mdb mhash mikmod
mjpeg mmap mng motif mozsvg mp3 mpeg mpm-worker musicbrainz mysql ncurses nls
nptl nptlonly numeric nvidia odbc offensive ogg on-the-fly-crypt openexr opengl
oss pam pcre pcsc-lite pdf pdflib perl php png povray ppds python qt quicktime
rdesktop readline rtc samba scanner sdl slang smp snmp speex spell ssl
subversion svg sysfs tcltk tcpd test tetex tga theora threads tidy tiff
timidity truetype truetype-fonts type1-fonts unicode usb userlocales utf8 v4l
v4l2 vcd vda vorbis wmf xcomposite xine xinerama xml2 xmms xpm xscreensaver xv
xvid yv12 zlib elibc_glibc input_devices_mouse input_devices_evdev
input_devices_keyboard kernel_linux linguas_it userland_GNU video_cards_nvidia"
Unset:  ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LC_ALL, LDFLAGS, MAKEOPTS

------- Comment #1 From MATSUU Takuto 2006-09-23 22:48:08 0000 -------
fixed in 8.4.13.

------- Comment #2 From Sandro Bonazzola (RETIRED) 2006-09-29 11:55:40 0000 -------
Verified, closing.

------- Comment #3 From Yuri Vasilevski 2006-12-11 18:52:50 0000 -------
- dev-lang/tk-8.4.13 does not sets SONAME in /usr/lib/libtk8.4.so, there is a
patch in portage but it has no effect as it changes a .m4 file but configure is
not regenerated.

- dev-lang/tcl-8.4.13 does not sets SONAME in /usr/lib/libtcl8.4.so, there is a
wrong patch in portage that also has no effect as it changes a .m4 file but
configure is not regenerated.

The patch in portage does not sets the right SONAME (note the "Wl,-soname,dummy
ar" part), so compilation fails:

x86_64-pc-linux-gnu-gcc -pipe -shared -Wl,-soname,dummy ar -o libtcl8.4.so
regcomp.o regexec.o regfree.o regerror.o tclAlloc.o tclAsync.o tclBasic.o
tclBinary.o tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o
tclCompCmds.o tclCompExpr.o tclCompile.o tclDate.o tclEncoding.o tclEnv.o
tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o
tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o tclIOGT.o tclIOSock.o tclIOUtil.o
tclLink.o tclListObj.o tclLiteral.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o
tclObj.o tclPanic.o tclParse.o tclParseExpr.o tclPipe.o tclPkg.o tclPosixStr.o
tclPreserve.o tclProc.o tclRegexp.o tclResolve.o tclResult.o tclScan.o
tclStringObj.o tclThread.o tclThreadAlloc.o tclThreadJoin.o tclStubInit.o
tclStubLib.o tclTimer.o tclUtf.o tclUtil.o tclVar.o tclUnixChan.o
tclUnixEvent.o tclUnixFCmd.o tclUnixFile.o tclUnixPipe.o tclUnixSock.o
tclUnixTime.o tclUnixInit.o tclUnixThrd.o  tclUnixNotfy.o  tclLoadDl.o  -ldl 
-lpthread -lieee -lm   -Wl,-rpath,/usr/lib64
x86_64-pc-linux-gnu-gcc: ar: No such file or directory

This happens to me on all my systems, amd64 and x86.

------- Comment #4 From Yuri Vasilevski 2006-12-11 18:53:48 0000 -------
Created an attachment (id=103835) [details]
tcl-8.3.5-tclm4-soname.patch

Fixed patch.

------- Comment #5 From Yuri Vasilevski 2006-12-11 18:54:53 0000 -------
Created an attachment (id=103836) [details]
tcl-8.4.13.ebuild.patch

Diff to fixed ebuild.

------- Comment #6 From Yuri Vasilevski 2006-12-11 18:55:39 0000 -------
Created an attachment (id=103837) [details]
tk-8.4.13.ebuild.patch

Diff to fixed ebuild.

------- Comment #7 From Yuri Vasilevski 2007-01-19 16:20:46 0000 -------
The problem is still present in dev-lang/tcl-8.4.14 and dev-lang/tk-8.4.14.

Same patches work.

------- Comment #8 From MATSUU Takuto 2007-04-27 17:54:56 0000 -------
Fixed in cvs.

------- Comment #9 From Toffanin [Gentoo/FreeBSD AT] 2007-05-21 17:09:08 0000 -------
in reply to #8

on ~x86-fbsd the soname for dev-lang/tcl-8.4.14 is wrong:

ls -la /usr/lib/libtcl*
lrwxrwxrwx  1 root  wheel      12 May 21 13:51 /usr/lib/libtcl.so ->
libtcl8.4.so
-r-xr-xr-x  1 root  wheel  712052 May 21 13:51 /usr/lib/libtcl8.4g.so
lrwxrwxrwx  1 root  wheel      15 May 21 13:51 /usr/lib/libtclstub.a ->
libtclstub8.4.a
-rw-r--r--  1 root  wheel    1816 May 21 13:51 /usr/lib/libtclstub8.4g.a


it should be:

ls -la /usr/lib/libtcl*
lrwxrwxrwx  1 root  wheel      12 May 21 16:58 /usr/lib/libtcl.so ->
libtcl8.4.so
-r-xr-xr-x  1 root  wheel  695136 May 21 16:58 /usr/lib/libtcl8.4.so
lrwxrwxrwx  1 root  wheel      15 May 21 16:58 /usr/lib/libtclstub.a ->
libtclstub8.4.a
-rw-r--r--  1 root  wheel    1816 May 21 16:58 /usr/lib/libtclstub8.4.a

this happen because the ebuild use the tcl-8.3.5.tclm4-soname.patch which is
wrong (why the ebuild must use a patch from the 8.3.5 branch? the file tcl.m4
from v8.4.14 is totaly diffent from the one provided by v8.3.5 and the
-Wl,soname is lost).

attached there is the right patch set that fix the problem.

------- Comment #10 From Toffanin [Gentoo/FreeBSD AT] 2007-05-21 17:10:49 0000 -------
Created an attachment (id=119898) [details]
tcl-8.4.14-tclm4-soname.patch

------- Comment #11 From Toffanin [Gentoo/FreeBSD AT] 2007-05-21 17:15:14 0000 -------
Created an attachment (id=119901) [details]
tcl-8.4.14.ebuild.patch

NOTE: i'm not sure but i think that "epatch
${FILESDIR}"/${PN}-8.3.5-tclm4-soname.patch" can be erased from the ebuild, but
i'm not into the tcl world to confirm it, maybe the tcl herd can.