public inbox for gentoo-soc@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Lucian Poston" <lucianposton@gmail.com>
To: gentoo-soc@lists.gentoo.org
Cc: "Marius Mauch" <google-soc@genone.de>
Subject: [gentoo-soc] Progress Report - Revdep-rebuild
Date: Fri, 1 Aug 2008 16:24:48 -0500	[thread overview]
Message-ID: <c4cdc1420808011424s4cd8f685u8bb26dfc1a0c7311@mail.gmail.com> (raw)

A new method, listBrokenLibtoolLibraries, was added to
MissingLibraryConsumerSet which basically checks that all dependencies
in libtool libraries exist on the filesystem.  It appears to work well.

LinkageMap.listBrokenDependencies has been rewritten as
LinkageMap.listBrokenBinaries in order to make the method more
readable and more efficient.  I implemented a cache within the method
as a class to avoid multiple calls to os.path.isfile and
os.path.realpath for the same file.

I had another idea for filtering packages without using masks.
Starting with the set of binaries in PATH variables and shared library
directories, the providers of those binaries will be added to the set,
and their providers will be added, etc.  The resulting set will be the
set of ancestors of the original binaries.  This is implemented in
LinkageMap.listProvidersForReachableBinaries (wonderful name, I know),
but so far it has not worked well in testing.  It misses binaries in
various paths.  For example, on my system it only
finds about 2400 binaries (compare that to over 5000 that were found
using the previous method).  This new method is disabled for now until
(if) I can get it to perform as well as LinkageMap.listBrokenBinaries.

Lastly, the files have been integrated into 2.2_rc6, revdep.py is
merged into libs.py, and patches have been added into the repository
(I should have done this long ago :/ ).  To test it out, you want to
apply the two patches to /usr/lib/portage/pym/portage/dbapi/vartree.py
and /usr/lib/portage/pym/portage/sets/libs.py in portage-2.2_rc6 and
add the contents of sets.conf in the repository to
/etc/portage/sets.conf.  The goods are at
http://repo.or.cz/w/revdep-rebuild-reimplementation.git?a=tree for
anyone interested.

Lucian



             reply	other threads:[~2008-08-01 21:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-01 21:24 Lucian Poston [this message]
2008-08-01 21:48 ` [gentoo-soc] Re: Progress Report - Revdep-rebuild Lucian Poston
  -- strict thread matches above, loose matches on Subject: below --
2008-08-21  3:09 [gentoo-soc] " Lucian Poston
2008-08-21 15:47 ` Donnie Berkholz
2008-08-21 18:09   ` Lucian Poston
2008-08-11 23:12 Lucian Poston
2008-07-27  6:28 Lucian Poston
2008-07-20  9:23 Lucian Poston
2008-07-12  3:13 Lucian Poston
2008-06-26  1:30 Lucian Poston
2008-06-26 17:47 ` Marius Mauch
2008-06-15  3:55 Lucian Poston
2008-06-17 15:55 ` Marius Mauch
2008-06-15  3:34 Lucian Poston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c4cdc1420808011424s4cd8f685u8bb26dfc1a0c7311@mail.gmail.com \
    --to=lucianposton@gmail.com \
    --cc=gentoo-soc@lists.gentoo.org \
    --cc=google-soc@genone.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox