Gentoo Logo
Gentoo Spaceship

Installation:
Gentoo Handbook
Installation Docs

Documentation:
Home
Listing
About Gentoo
Philosophy
Social Contract

Resources:
Bug Tracker
Developer List
Discussion Forums
Gentoo BitTorrents
Gentoo Linux Enhancement Proposals
IRC Channels
Mailing Lists
Mirrors
Name and Logo Guidelines
Online Package Database
Security Announcements
Staffing Needs
Supporting Vendors
View our CVS

Graphics:
Logos and themes
Icons
ScreenShots

Miscellaneous Resources:
Gentoo Linux Store
Gentoo-hosted projects
IBM dW/Intel article archive




List Archive: gentoo-soc
Navigation:
Lists: gentoo-soc: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-soc@g.o
From: "Lucian Poston" <lucianposton@...>
Subject: Progress Report - Revdep-rebuild
Date: Fri, 1 Aug 2008 16:24:48 -0500
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


Replies:
Re: Progress Report - Revdep-rebuild
-- Lucian Poston
Navigation:
Lists: gentoo-soc: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Progress Report - Revdep-rebuild
Next by thread:
Re: Progress Report - Revdep-rebuild
Previous by date:
Progress Report - Revdep-rebuild
Next by date:
Re: Progress Report - Revdep-rebuild


Updated Jun 17, 2009

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.