1 |
As portage-2.2 is about to be unmasked into ~arch soon (there is one |
2 |
weird bug to solve before) it's time to ask for some input on one of |
3 |
the important new features, FEATURES=preserve-libs. |
4 |
|
5 |
(if you're already familiar with it you can skip this paragraph) |
6 |
Simply said, when this feature is enabled portage keeps track of all |
7 |
installed libraries and binaries linked against them, and if a package |
8 |
upgrade would remove a library that's still in use portage will keep |
9 |
the library around, owned by the new version and also registered in a |
10 |
separate file. There is also an internal package set that can be used |
11 |
to rebuild all packages linked against libraries preserved in this way, |
12 |
and the user is notified after each emerge operation that he should do |
13 |
that (the example is from an expat downgrade in case you wonder about |
14 |
the versions): |
15 |
!!! existing preserved libs: |
16 |
>>> package: dev-libs/expat-1.95.8 |
17 |
* - /usr/lib64/libexpat.so.1 |
18 |
* - /usr/lib64/libexpat.so.1.5.2 |
19 |
Use emerge @preserved-rebuild to rebuild packages using these libraries |
20 |
|
21 |
The purpose of this is to keep the system operational after library |
22 |
upgrades until all affected packages could be rebuilt and to simplify |
23 |
the process, not to avoid the rebuilds. |
24 |
|
25 |
Now the question is if this behavior should be enabled by default? |
26 |
|
27 |
In the existing prereleases it has been enabled to get some real-world |
28 |
testing, and it's been quite effective, though there are still a few |
29 |
issues to be worked out (e.g. if libraries are moved between packages). |
30 |
And no doubt a few more bugs will turn up over time. |
31 |
Also it is not going to be a perfect solution against all runtime link |
32 |
errors, but if enabled it should eliminate the need for revdep-rebuild |
33 |
in most cases. |
34 |
One concern raised by some people is that it might cause old libraries |
35 |
with security issues to stay on the system for eternity even though |
36 |
the package was upgraded, and eventually be preferred by new builds. |
37 |
I can't rule this out completely but thinks it's very unlikely, as |
38 |
preserved libraries are specially tracked and the user is notified |
39 |
about their existance after every emerge operation (similar to glep42 |
40 |
news). And new builds shouldn't find them as the unversioned .so |
41 |
symlinks ar going to point to the current versions. |
42 |
So personally I'm not too worried about this concern becoming reality, |
43 |
but I can understand if others are. |
44 |
|
45 |
So, do you think it should be enabled by default? |
46 |
|
47 |
Marius |
48 |
|
49 |
PS: Obviously, if you haven't tested portage-2.2 yet, now would be a |
50 |
good time. |
51 |
|
52 |
-- |
53 |
Public Key at http://www.genone.de/info/gpg-key.pub |
54 |
|
55 |
In the beginning, there was nothing. And God said, 'Let there be |
56 |
Light.' And there was still nothing, but you could see a bit better. |