On 01/14/2013 08:26 AM, Ian Stakenvicius wrote: > On 14/01/13 10:53 AM, Zac Medico wrote: >> On 01/14/2013 07:44 AM, Zac Medico wrote: >>> On 01/14/2013 07:09 AM, Ian Stakenvicius wrote: >>>> OK i'm a little confused. Putting my earlier note aside, if >>>> the symlink will be auto-cleaned after no packages use it, >>>> what's the point/need for the original message from portage >>>> then?? Is it just QA for the ebuild maintainer? >>> >>> Unfortunately, there are a number of different possible >>> scenarios. It may serve as QA for the ebuild maintainer. It may >>> be triggered by a symlink that the sysadmin has manually created. >>> In any case, there's a performance penalty, since portage has to >>> search for other packages that installed files underneath the >>> symlink. The performance penalty can be avoided for a given >>> symlink by adding it to UNINSTALL_IGNORE (which makes the message >>> useful, regardless of where the symlink originated from). > >> You can measure the performance penalty for the /var/run symlink >> by running this command: > >> time portageq owners / /var/run > > > Based on the performance penalty, would it make sense then for > system-managed symlinks like /var/run that it would be automatically > added to > UNINSTALL_IGNORE and its removal managed separately by whatever put it > there in the first place??
There's currently no way for ebuilds to add things to UNINSTALL_IGNORE though (aside from having them edit make.conf). And how is openrc going to know when to remove it? > (and additionally, that the warning wouldn't be presented to end-users > because of it being a system-managed migration symlink instead of a > end-user-managed one)? Do you want to introduce a new variable for this purpose, and allow ebuilds to modify it via /etc/env.d or something? -- Thanks, Zac