Gentoo Archives: gentoo-dev

From: Jonathan Callen <abcd@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: why doesn't readline-6 install libreadline.so symlink?
Date: Sat, 26 Sep 2009 06:03:44
Message-Id: 4ABDAEBA.8080800@gentoo.org
In Reply to: [gentoo-dev] why doesn't readline-6 install libreadline.so symlink? by Andrey Grozin
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Andrey Grozin wrote:
5 > I'm using portage-2.2_pre*. After upgrading to sys-libs/readline-6.0,
6 > portage (naturally) kept /lib/libreadline.so.5 ->
7 > /lib/libreadline.so.5.2, because a lot of programs needed it. I did
8 > emerge @preserved-rebuild, and only one binary using libreadline.so.5.2
9 > left: /usr/bin/gp, the interactive interpreter of sci-mathematics/pari.
10 > Re-emerging it does not help: headers from readline-6 are used, but the
11 > program links wirh libreadline.so.5.2. I thought something is wrong in
12 > the pari's configure. This package does not use autoconf, but a
13 > hand-written Configure script. It seems all right. Then I found that
14 > /lib/libreadline.so symlink still points to libreadline.so.5. This
15 > confuses the pari's Configure. I made it to point to libreadline.so.6 by
16 > hand, and re-emerged pari. OK, gp now links with libreadline.so.6.0. Why
17 > doesn't readline-6.0 ebuild install this symlink?
18 >
19 > After this re-emerging of pari, portage said
20 >
21 > !!! existing preserved libs:
22 >>>> package: sys-libs/readline-6.0_p3
23 > * - /lib/libreadline.so
24 > * used by /usr/bin/M2 (sci-mathematics/Macaulay2-1.2-r3)
25 > * used by /usr/bin/Singular-3-0-4 (sci-mathematics/singular-3.0.4.4)
26 > * used by /usr/bin/asy (media-gfx/asymptote-1.86)
27 > * used by 111 other files
28 >
29 > I already re-emerged these packages (at least, 3 shown) as a part of
30 > emerging @preserved-rebuild after upgrading readline, and they were not
31 > in the @preserved-rebuild set before I changed the libreadline.so
32 > symlink. Does this mean that all of these packages used libreadline.so
33 > -> libreadline.so.5? This is not good. I'm going to emerge
34 > @preserved-rebuild again, to be sure that my system is in a
35 > self-consistent state.
36 >
37 > It seems that keeping libreadline.so -> libreadline.so.5 after merging
38 > readline-6.0 and unmerging readline-5.2 is a bad idea.
39 >
40 > Andrey
41 >
42 >
43
44 I'm not completely sure, but I think it doesn't install that symlink
45 because it (correctly) installs a /usr/lib/libreadline.so ldscript, that
46 tells the linker to link against /lib/libreadline.so.6, so long as the
47 linker looks at /usr/lib before /lib, which is usually the case, unless
48 "-L/lib" is passed to ld (by way of gcc). If you remove
49 /lib/libreadine.so, then everything will Just Work, and portage will
50 forget that that file ever existed as soon as you merge a package (any
51 package). I'm not sure what the correct behavior of
52 FEATURES="preserve-libs" should actually be in this case, but I think
53 portage may need to look a little closer at the SONAME, and only
54 preserve that file (like the old preserve_old_lib) or preserve only that
55 symlink and what it links to, not everything that points at that.
56
57 - --
58 Jonathan
59
60 -----BEGIN PGP SIGNATURE-----
61 Version: GnuPG v2.0.11 (GNU/Linux)
62 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
63
64 iEYEARECAAYFAkq9rroACgkQOypDUo0oQOrUjgCdEoFum1tqM1f/g2BiGl7QKMc5
65 Ti0AoIeTDN6exLzTuR9hjRHe0UzKh41h
66 =rwgK
67 -----END PGP SIGNATURE-----

Replies