[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    Re: [gentoo-dev] Announcing new Prelinking Guide
From:       Terje Kvernes <terjekv () math ! uio ! no>
Date:       2003-01-04 22:18:49
[Download RAW message or body]

Stefan Jones <cretin@gentoo.org> 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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic