Am Samstag, den 03.04.2010, 12:38 +0200 schrieb Maciej Mrozowski:
> Problem
> 
> ..is known, let me summarize briefly.
> 
> Uninstalling packages providing libraries, without checking reverse runtime 
> dependencies of those packages leaves their dependencies unsatisfied 
> (packages 
> with broken executables and/or shared libs).
> Some package managers try their best not to remove said libraries, yet 
> allowing packages to be removed.
> Those orphaned libraries cause problems[1] as build systems of some other 
> packages being (re)installed afterwards pick them up and abuse those orphaned 
> libraries. (we don't like orphans abused, we prefer them... "gone").
> 
> Solution
> 
> Now, I suppose there are some ideas how to make orphaned libraries not go in 
> a 
> way. Basically then need to be available for system, but hidden for "emerge".
> 
> There is opt-out suggestion[2], unfortunately it does not provide any info 
> how 
> exactly it's supposed to be achieved. As far as portage/pkgcore is concerned, 
> maybe - as Brian Harring suggested - sandbox could be used to somehow "hide" 
> preserved libraries or preserved library directory from ebuild environment 
> (preserved library directory a'ka "purgatory" - libs could be moved there 
> when 
> considered orphaned).
> 
> Opt-in suggestion is as follows:
> 1. Use some library path (read by ld loader from environment) and export it 
> globally to environment pointing it to preserved library directory.
> 2. During "emerge", unset environment variable corresponding to said 
> preserved 
> library directory - orphans are no longer located.
> Attached patch for glibc (2.11, but should apply to any other glibc around) 
> and uClibc (this one is not tested but should work as well) that makes ld 
> loader aware of LD_GENTOO_PRESERVED_LIBRARY_PATH variable.
> 
> (LD_LIBRARY_PATH would work as well, but it's being used widely so cannot be 
> safely mangled.. on the second though it can - one could filter out preserved 
> library paths from it during "emerge").
> 
> Thoughts?

Don't fix the hack. Remove the preserve libs "feature", make the PMs
check for rdeps per default before unmerging things. Slot libraries
where needed, slot dep operators (EAPI 4) will help. And if that doesn't
work out we need a separate var to give the PM a hint when API/ABI
breakages happen (such that the PM knows when to re-install the rev
deps).


-- 
Tiziano Müller
Gentoo Linux Developer
Areas of responsibility:
  Samba, PostgreSQL, CPP, Python, sysadmin, GLEP Editor
E-Mail   : dev-z...@gentoo.org
GnuPG FP : F327 283A E769 2E36 18D5  4DE2 1B05 6A63 AE9C 1E30

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to