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-299-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1KMzjv-0006No-F8
	for garchives@archives.gentoo.org; Sun, 27 Jul 2008 06:28:19 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 68B00E03B2;
	Sun, 27 Jul 2008 06:28:18 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id 1AEFBE03B2
	for <gentoo-soc@lists.gentoo.org>; Sun, 27 Jul 2008 06:28:18 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
	by smtp.gentoo.org (Postfix) with ESMTP id AEAF3660F8
	for <gentoo-soc@lists.gentoo.org>; Sun, 27 Jul 2008 06:28:17 +0000 (UTC)
X-Virus-Scanned: amavisd-new at gentoo.org
X-Spam-Score: -0.918
X-Spam-Level: 
X-Spam-Status: No, score=-0.918 required=5.5 tests=[AWL=1.681,
	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 7YsCW+zobgd0 for <gentoo-soc@lists.gentoo.org>;
	Sun, 27 Jul 2008 06:28:11 +0000 (UTC)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.247])
	by smtp.gentoo.org (Postfix) with ESMTP id 01BA565E58
	for <gentoo-soc@gentoo.org>; Sun, 27 Jul 2008 06:28:10 +0000 (UTC)
Received: by an-out-0708.google.com with SMTP id c3so916446ana.43
        for <gentoo-soc@gentoo.org>; Sat, 26 Jul 2008 23:28:10 -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=8j0SWp42jGTvb2Uw6Y06K4um7qbyHIkFoib9NOF/lks=;
        b=aNwjuuq8CYaBpUG346E46+lJpl7wRmZnuacMHpCHNDcChkUVlRyp2K56c9/T6VDZGU
         XiZu0ouQqXkfquj7DIQPIsmvbeIm6Dd9JdqVGS+Q4awgfjkDxXb6LNSGHkHtdsQhZjpE
         bASO26ehm/OS8jPLnJ0ZgYjTjZUo8NN6JTqYM=
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=Aj8vqC2Py535fo5gGmBJoaKPvdkgV7dBxKpIbU1/717jtsRJZMenpATLnX5+Vksn/S
         tUBsM2NRkVAhH7y8G7hBFe8x0Iqp3H4UVRGz8EZpGSuaJZT6vWw+fH9REJTZoER+McXl
         ohgxFBIXgC0Y3qMcnVizWlJS4gb4KEkl2xCbc=
Received: by 10.100.91.17 with SMTP id o17mr5956158anb.85.1217140090338;
        Sat, 26 Jul 2008 23:28:10 -0700 (PDT)
Received: by 10.100.171.5 with HTTP; Sat, 26 Jul 2008 23:28:10 -0700 (PDT)
Message-ID: <c4cdc1420807262328q5dddf425n261b4bf23767b5a0@mail.gmail.com>
Date: Sun, 27 Jul 2008 01:28:10 -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: 707634a51936710d
X-Archives-Salt: 2b1c954d-d664-4e57-bd63-a935c61a240c
X-Archives-Hash: 83f2744df1d7a23bd779ad3152ad5969

An option was added to the missing-rebuild set to allow a user to
emerge the set of packages containing consumers of specified
libraries, similar to the revdep-rebuild --library flag.  Since flags
can't currently be passed to packages sets through the portage cli,
the user must set the environment variable LIBRARY to the library's
name or a regular expression to match libraries in order to invoke
this functionality.

A couple bugs related to broken or missing symlinks to libraries were
fixed.  There is one known bug remaining related to symlinks, which
was introduced as a result of other fixes.  Basically, if a target of
a symlink points to a library that does not provide the soname (for
example, /usr/lib/libfoo.so -> libnotfoo.so), binaries that require
/usr/lib/libfoo.so would be potentially broken and ignored.  The fix
that I have in mind is to check the target's soname entry in
LinkageMap._obj_properties; however, fixing it will result in
unnecessary packages in the package set (due to libraries missing an
SONAME in it's NEEDED.ELF.2 entry eg libmix.so).  Anyway, I figure it
would be better to have false positives than overlooking potential
broken dependencies.

The MissingLibraryConsumerSet.load method was split into 3 smaller
methods to which I've added docstrings conforming to the Portage
Docstring Spec, which only recently came to attention unfortunately.
The code is hopefully easier to digest now.

I never liked the idea of depending on the masks in
/etc/revdep-rebuild/* to remove false positives, so this week I'll try
a different approach in which binaries not found in PATH or library
directories will be ignored.  This should reduce the need for
directory and library masks (or more unlikely remove it entirely).
Although, I suspect that this will miss some broken dependencies, so
I'll have a good bit of testing to do.

Lucian