1 |
On Sunday 04 of April 2010 17:33:17 Tiziano Müller wrote: |
2 |
|
3 |
>> Besides I |
4 |
>> can already imagine PMS-related discussion regarding "make the PMs check |
5 |
for rdeps per default before unmerging things" - thx but no thx. |
6 |
> This is not related to PMS. Paludis for example does it already with the |
7 |
> current EAPIs. |
8 |
So how does Paludis handle those issues? |
9 |
(Read my comments about "emerge" atomicy below) |
10 |
|
11 |
> It is a problem which can _only_ be solved at the PM level. You have to |
12 |
> tell the PM when API breakages happen. Either by slotting the lib or by |
13 |
> something else. |
14 |
^^^^^^^^^^^^^^^ |
15 |
This is important - as slotting is not a practical solution. What is it then? |
16 |
|
17 |
> Using guesswork to determine whether or not a library |
18 |
> should be removed may be a temporary solution. Remember: you're |
19 |
> partially ignoring a users request since he wanted the package to be |
20 |
> removed - and we all know how things like "protect the user from |
21 |
> himself" end up. |
22 |
|
23 |
Unconditionally removing libraries (instead of preserving them) and making |
24 |
their reverse runtime dependencies reinstalled is unacceptable because |
25 |
"emerge" process involving multiple packages is not atomic. Simple as that. |
26 |
Is this what you suggest? Correct me if I'm wrong: |
27 |
1. Users wants to uninstall or reinstall package, we let him do it provided |
28 |
reverse runtime dependencies are satisfied afterwards. Let's say he wants to |
29 |
upgrade expat. |
30 |
2. Expat SOVERSION changed meanwhile but package was not SLOTtted and runtime |
31 |
reverse deps will still be satisfied when we upgrade. |
32 |
3. Expat has been upgraded sucessfully, |
33 |
4a. "emerge" discovers reverse runtime dependencies are broken and it starts |
34 |
to rebuild them, then it bails out due to error ld: libexpat.so.<sth> not |
35 |
found. Because step 3 cannot be rolled back (no atomicy) - game over. |
36 |
or |
37 |
4b. "emerge does not discover those and does nothing. python is broken so |
38 |
emerge cannot be used anymore. Game over |
39 |
|
40 |
-- |
41 |
regards |
42 |
MM |