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