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 ) 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 ; 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 ; 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 ; 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 ; Sun, 27 Jul 2008 06:28:10 +0000 (UTC) Received: by an-out-0708.google.com with SMTP id c3so916446ana.43 for ; 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: Date: Sun, 27 Jul 2008 01:28:10 -0500 From: "Lucian Poston" Sender: lucian.poston@gmail.com To: gentoo-soc@lists.gentoo.org Subject: [gentoo-soc] Progress Report - Revdep-rebuild Cc: "Marius Mauch" Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail 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