From gentoo-dev Sat Jan 04 22:18:49 2003 From: Terje Kvernes Date: Sat, 04 Jan 2003 22:18:49 +0000 To: gentoo-dev Subject: Re: [gentoo-dev] Announcing new Prelinking Guide X-MARC-Message: https://marc.info/?l=gentoo-dev&m=104171895232374 Stefan Jones writes: > On Fri, 2003-01-03 at 19:21, Terje Kvernes wrote: > > > I'm getting a lot of segfaults when I try to undo prelink. any > > suggestions to save me from rebuilding pretty much everything? > > I'm not sure how to find broken libraries even, so I'm just > > emergeing stuff that is broken when I find it to be so. > > Lots of problems here. ouch. you have my sympathy. thanks for testing, I hope you did so with careful planning? :-) > It seems that because of the disk space shortage some libraries must > of got corrupted and thus are unfixable, they probably got > truncated. good point. I thought that should be easy enough to check so I created a small logical volume directory for testing. I then ran prelink -v /mnt/prelink/*.so, and even if the partition was 100% full it ran okay. well, seemingly at least. nothing ended up as "data". I wonder what libraries cause massive space usage? > How much was the amount of space used up by prelink, details, so I > can update my howto, for I think as you say, that was the source of > the errors. I noticed the space on /usr having 50MiB free at one point, and dropping down to around 10MiB when I reran "prelink -u". I'd say that 100MiB should be plenty, and probably give us a bit of headspace as well. I'll try to reproduce the events under controlled circumstances. anyhow, since /etc/prelink.conf contains all the stuff that can be broken, this find everything that is broken, and then some: for build in $( for broken in $( for dir in $( grep -v '#' /etc/prelink.conf | cut -f2 -d' ' ); do file $dir/* | grep ":.*data"; done | cut -f1 -d: ); do qpkg -v -nc -f $broken; done | sort | uniq ); do echo "=$build"; done produces a nice list to feed emerge: =dev-util/guile-1.4-r3 =gnome-base/gnome-panel-1.4.1 =kde-base/kdebase-3.0.5a =kde-base/kdelibs-3.0.5a =kde-base/kdemultimedia-3.0.5a =media-video/transcode-0.6.0 =media-video/xawtv-3.80 =net-print/cups-1.1.18 =sys-libs/cracklib-2.7-r6 =sys-libs/db-1.85-r1 =x11-libs/qt-3.1.0-r1 emerge $( for ... ) works as it should, and grabs the proper versions. the only false positive I find comes from /usr/lib/cracklib_dict.hwm and will require a remerge of cracklib, which isn't that bad. one can of course just grep that away, if you know it's clean. there is also the issue that ORBit2 required me to delete the broken libraries by hand, and also that packages have to be built in the correct order. building kdelibs with a broken kdebase doesn't quite work. but, at least the above script should ease ones pain. -- Terje -- gentoo-dev@gentoo.org mailing list