From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-dev+bounces-40447-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1Ny8S3-0001cq-1p
	for garchives@archives.gentoo.org; Sat, 03 Apr 2010 18:52:17 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 53DCBE09A2;
	Sat,  3 Apr 2010 18:52:02 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id 15ED7E0968
	for <gentoo-dev@lists.gentoo.org>; Sat,  3 Apr 2010 18:51:49 +0000 (UTC)
Received: from [192.168.0.103] (151-1.3-85.cust.bluewin.ch [85.3.1.151])
	(using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTP id 4FE431B4017
	for <gentoo-dev@lists.gentoo.org>; Sat,  3 Apr 2010 18:51:47 +0000 (UTC)
Subject: Re: [gentoo-dev] [RFC] More reliable hiding preserved libraries
From: Tiziano =?ISO-8859-1?Q?M=FCller?= <dev-zero@gentoo.org>
To: gentoo-dev@lists.gentoo.org
In-Reply-To: <201004031238.18500.reavertm@gmail.com>
References: <201004031238.18500.reavertm@gmail.com>
Content-Type: multipart/signed; micalg="sha1"; protocol="application/x-pkcs7-signature"; boundary="=-2YP8mRFEF5kEzkT6OER3"
Organization: Gentoo
Date: Sat, 03 Apr 2010 20:51:43 +0200
Message-ID: <1270320703.1230.11.camel@localhost>
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
Mime-Version: 1.0
X-Mailer: Evolution 2.28.3.1 
X-Archives-Salt: 6a0107c9-c328-4ed5-adb5-62fcd647c192
X-Archives-Hash: bf2f4854bbb9dd57460e8583f0f30937


--=-2YP8mRFEF5kEzkT6OER3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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


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

--=-2YP8mRFEF5kEzkT6OER3
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

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
mvLE66NX5MqXfQQ4kSFMSIaFbhc/+Vixb92hF+KhfG8C0PMUFvCzToFYgU+uEL9kvmUfa8MkVzai
cWmsnycZ+aywZrBfgJqB50FCANSq2gQ18KnajvMc3lAY5njvJ9S1i0SZQGw7hwIDAQABo4H/MIH8
MAwGA1UdEwEB/wQCMAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5b3VyIG93biBjZXJ0aWZpY2F0
ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5DQWNlcnQub3JnMEAGA1UdJQQ5MDcG
CCsGAQUFBwMEBggrBgEFBQcDAgYKKwYBBAGCNwoDBAYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMDIG
CCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AuY2FjZXJ0Lm9yZzAeBgNVHREE
FzAVgRNkZXYtemVyb0BnZW50b28ub3JnMA0GCSqGSIb3DQEBBQUAA4ICAQCu3CflSuep7/s1rJnx
/DOwVPIPzytTmfJ++L543zniENTsOrvBMGKv0U0QXcRxnZrV5lboJ2V6VK7lEUSGl54fiaM+ixxv
+L2r1FJYkulctQIcJElb1Y2D0tWVmcpFNPG9dCSnmYsZlK3YMJsieYD1ifWNs3achZFxIYBMapo4
vTILS8NhD8OyfZEefFTRthTDn25dlhBKqmTZJZqA2PEpy5BIJ+T0Ico7IaoBWmBSsFeJ1ytGAFtF
TpWMwdrbSgl9tR2gTHtheC0il7cE6EtsF4h3NeMkDjCmuo8SsmivLh0baw2aZPz4ka3iFjMFA6ru
ts7yuOj03XTwWpCC7XthexysmcafO72YQRXuddKeCbFNROJ7DBy5kwcXly3e/lgaPpGXV75VU1Le
TPmVRl6tI2jaQMjSWiMpjM0hFm2q/mCQKiz6/+4La9aN5J7ov5X+RMbpPcKGo8q3hrInD6rqGRCP
i/7Md5c0WebwYFnAB34S7RJS4y6bR6hll1pNQcOE6heDf1EkzkXw88Z/BvxLBgE8EwSL5GD5ZA27
udAlgWsc4NVEx/lheDdc1vPb+C45OFkbZsBne4wijsNccZlVtqpkm++6QII6H2G9a8Pef+/5An+3
jW7qNfYRDFGa+uGqBDD6yUkwTIOhajtlqx5ZQU2z5g5CBKqOuA74CYRR7TGCAzMwggMvAgEBMIGA
MHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAG
A1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBj
YWNlcnQub3JnAgMIP1YwCQYFKw4DAhoFAKCCAYcwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
BgkqhkiG9w0BCQUxDxcNMTAwNDAzMTg1MTQwWjAjBgkqhkiG9w0BCQQxFgQUZfLG4UrNMht9qC2a
7Bk0XrKmVjgwgZEGCSsGAQQBgjcQBDGBgzCBgDB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL
ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3Jp
dHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZwIDCD9WMIGTBgsqhkiG9w0BCRAC
CzGBg6CBgDB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5v
cmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1
cHBvcnRAY2FjZXJ0Lm9yZwIDCD9WMA0GCSqGSIb3DQEBAQUABIIBALYSsdOF0utgYqdBoydLTCRb
MjH7J4tLQa2C3Lck68/F8qH8ADpnbS5deCzrPw+8INLyQ5xPplDkdEhw6aBTSKc8ddFSGPOqgqYi
lExgpUyQb9FBsQkqM9/H/vv9RHtzwxK1yxySs74BdPLkI8HVzSvYvSCu8Bg7nDFl1KYRhwu6ZlrW
FBux80R6fqXUk7TWciqwjbiSJeX/VUuVcNBRY2XiSmBkKbuYEdPSr8LGj/5tjEKS97vf6ODqmG9J
PCs8qNVDZZ3MQuVrzW5rsed/rjXx2McPZmn0rVg788HNpVUkIPv2Hy9JuiJ7mJnhjx53mwkJx+fp
AFXKopY53yYRz/kAAAAAAAA=


--=-2YP8mRFEF5kEzkT6OER3--