1 |
Am Samstag, den 03.04.2010, 12:38 +0200 schrieb Maciej Mrozowski: |
2 |
> Problem |
3 |
> |
4 |
> ..is known, let me summarize briefly. |
5 |
> |
6 |
> Uninstalling packages providing libraries, without checking reverse runtime |
7 |
> dependencies of those packages leaves their dependencies unsatisfied (packages |
8 |
> with broken executables and/or shared libs). |
9 |
> Some package managers try their best not to remove said libraries, yet |
10 |
> allowing packages to be removed. |
11 |
> Those orphaned libraries cause problems[1] as build systems of some other |
12 |
> packages being (re)installed afterwards pick them up and abuse those orphaned |
13 |
> libraries. (we don't like orphans abused, we prefer them... "gone"). |
14 |
> |
15 |
> Solution |
16 |
> |
17 |
> Now, I suppose there are some ideas how to make orphaned libraries not go in a |
18 |
> way. Basically then need to be available for system, but hidden for "emerge". |
19 |
> |
20 |
> There is opt-out suggestion[2], unfortunately it does not provide any info how |
21 |
> exactly it's supposed to be achieved. As far as portage/pkgcore is concerned, |
22 |
> maybe - as Brian Harring suggested - sandbox could be used to somehow "hide" |
23 |
> preserved libraries or preserved library directory from ebuild environment |
24 |
> (preserved library directory a'ka "purgatory" - libs could be moved there when |
25 |
> considered orphaned). |
26 |
> |
27 |
> Opt-in suggestion is as follows: |
28 |
> 1. Use some library path (read by ld loader from environment) and export it |
29 |
> globally to environment pointing it to preserved library directory. |
30 |
> 2. During "emerge", unset environment variable corresponding to said preserved |
31 |
> library directory - orphans are no longer located. |
32 |
> Attached patch for glibc (2.11, but should apply to any other glibc around) |
33 |
> and uClibc (this one is not tested but should work as well) that makes ld |
34 |
> loader aware of LD_GENTOO_PRESERVED_LIBRARY_PATH variable. |
35 |
> |
36 |
> (LD_LIBRARY_PATH would work as well, but it's being used widely so cannot be |
37 |
> safely mangled.. on the second though it can - one could filter out preserved |
38 |
> library paths from it during "emerge"). |
39 |
> |
40 |
> Thoughts? |
41 |
|
42 |
Don't fix the hack. Remove the preserve libs "feature", make the PMs |
43 |
check for rdeps per default before unmerging things. Slot libraries |
44 |
where needed, slot dep operators (EAPI 4) will help. And if that doesn't |
45 |
work out we need a separate var to give the PM a hint when API/ABI |
46 |
breakages happen (such that the PM knows when to re-install the rev |
47 |
deps). |
48 |
|
49 |
|
50 |
-- |
51 |
Tiziano Müller |
52 |
Gentoo Linux Developer |
53 |
Areas of responsibility: |
54 |
Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor |
55 |
E-Mail : dev-zero@g.o |
56 |
GnuPG FP : F327 283A E769 2E36 18D5 4DE2 1B05 6A63 AE9C 1E30 |