From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-soc+bounces-289-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1KHVY1-0008PT-53
	for garchives@archives.gentoo.org; Sat, 12 Jul 2008 03:13:21 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 3BC29E02FA;
	Sat, 12 Jul 2008 03:13:20 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id E8DBEE02FA
	for <gentoo-soc@lists.gentoo.org>; Sat, 12 Jul 2008 03:13:19 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
	by smtp.gentoo.org (Postfix) with ESMTP id 82A2C644E6
	for <gentoo-soc@lists.gentoo.org>; Sat, 12 Jul 2008 03:13:19 +0000 (UTC)
X-Virus-Scanned: amavisd-new at gentoo.org
X-Spam-Score: -0.245
X-Spam-Level: 
X-Spam-Status: No, score=-0.245 required=5.5 tests=[AWL=2.354,
	BAYES_00=-2.599]
Received: from smtp.gentoo.org ([127.0.0.1])
	by localhost (smtp.gentoo.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id wjHNcVQ5VPew for <gentoo-soc@lists.gentoo.org>;
	Sat, 12 Jul 2008 03:13:13 +0000 (UTC)
Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.174])
	by smtp.gentoo.org (Postfix) with ESMTP id 0C25366286
	for <gentoo-soc@gentoo.org>; Sat, 12 Jul 2008 03:13:12 +0000 (UTC)
Received: by wf-out-1314.google.com with SMTP id 25so3684771wfc.6
        for <gentoo-soc@gentoo.org>; Fri, 11 Jul 2008 20:13:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:received:received:message-id:date:from:sender
         :to:subject:cc:mime-version:content-type:content-transfer-encoding
         :content-disposition:x-google-sender-auth;
        bh=uWn+x0rf31meOXJKbf25Z6U8JfVlPLsrK8mt0OcrZcs=;
        b=gwXb+d8eAB8iq092HCCeGNa6jYhd9lQVyl+gLCA3mwynXUzN8m6FiD0HZk1qouYAju
         F/a29DmVvV1lBfaRimGTuGTPE9dcy6nyIa/xn79Z/HL7no3/5rZ/i0HCIVpCZxGK4bBz
         bWFLnU2oYFNFj2R3+cyYEEHnY6rsDZnOSIXWU=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=message-id:date:from:sender:to:subject:cc:mime-version:content-type
         :content-transfer-encoding:content-disposition:x-google-sender-auth;
        b=jIcb9nkCmfbQ9KQjNpZCSPdYuH+3JLfrOi5V/WMcCc54U+VFtr9VVx6AevNoohcBaw
         1H6oA8Ze56O4X7KTbNIzLkRZXftkUdhUgUAU2/HAll/ZXRy02M5Zb/M9R7LF/1AxIdkl
         UR/6bKkt4za8rwlSy1iDHAxORKcmsEgl4zY4A=
Received: by 10.142.238.12 with SMTP id l12mr3425422wfh.204.1215832392395;
        Fri, 11 Jul 2008 20:13:12 -0700 (PDT)
Received: by 10.142.192.14 with HTTP; Fri, 11 Jul 2008 20:13:12 -0700 (PDT)
Message-ID: <c4cdc1420807112013o7b0fe365h62f0c0aad834f3a9@mail.gmail.com>
Date: Fri, 11 Jul 2008 22:13:12 -0500
From: "Lucian Poston" <lucianposton@gmail.com>
Sender: lucian.poston@gmail.com
To: gentoo-soc@lists.gentoo.org
Subject: [gentoo-soc] Progress Report - Revdep-rebuild
Cc: "Marius Mauch" <google-soc@genone.de>
Precedence: bulk
List-Post: <mailto:gentoo-soc@lists.gentoo.org>
List-Help: <mailto:gentoo-soc+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-soc+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-soc+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-soc.gentoo.org>
X-BeenThere: gentoo-soc@lists.gentoo.org
Reply-to: gentoo-soc@lists.gentoo.org
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Google-Sender-Auth: 8ac5d3e2d718ba12
X-Archives-Salt: 3e5b1a8d-934a-4b43-9720-830286ff7453
X-Archives-Hash: d5bb42ca52416e7c18f3f297381ce91b

The print statements have been enclosed in debug conditionals, and a
good amount of comments have been added to the code, so hopefully it
is more readable.

I've changed the way that broken binaries are found.  Previously, the
difference between the sets of "needed" and "installed" libraries were
calculated to produce a set of "missing" libraries from which
consumers (binaries) were found.  Now, when findProviders() returns an
unsatisfied soname, the binary and soname are stored into the
brokenDependencies dict (there is a description in the code comments).
 This way the binaries are immediately available to calculate a set of
atoms via mapPathsToAtoms().  Also, now the providers of all binaries
are considered. Previously, if two binaries required the same soname,
only the lookup paths of the last binary would be considered, but now
all binaries are checked individually.  Organizing the dependencies in
this dict will likely be the same in the return value of the new
method in LinkageMap, so the addition shouldn't affect this class much
aside from moving some of the functionality into LinkageMap.

I was only able solve a few of the classes of problems I had with the
libraries that were listed in the last report.  Currently, binary
packages are what's left from those (and the weird libmix.so bug), so
binary packages aren't handled properly yet.  Emerging the
missingLibraryConsumerSet will result in superfluous packages due to
those packages.  Resolving that problem is my main focus for now, but
once binary packages are handled properly, I'll work on adding the
method in LinkageMap mentioned before.  I expect it to bring a decent
speed improvement since there will be no need to iterate over a large
number of non-binary files with access to _obj_properties in
LinkageMap.  After that, some user options will be added (if I can
come up with some useful functionalities I'd like to see added).

As far as user options, what should I plan to implement aside from
--library=NAME a la revdep-rebuild?

Lucian
-- 
gentoo-soc@lists.gentoo.org mailing list