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----- |