From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 49D341381F3 for ; Thu, 29 Aug 2013 12:36:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 05E7BE0D82; Thu, 29 Aug 2013 12:36:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 86392E0D83 for ; Thu, 29 Aug 2013 12:36:38 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 71DFD33ED32 for ; Thu, 29 Aug 2013 12:36:37 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id C7483E545F for ; Thu, 29 Aug 2013 12:36:34 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1377779705.fcc2ea15a521f82319570ca2bb54928a39514e0c.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/pkgdir/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/overlay/pkgdir/packagedir_base.py X-VCS-Directories: roverlay/overlay/pkgdir/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: fcc2ea15a521f82319570ca2bb54928a39514e0c X-VCS-Branch: master Date: Thu, 29 Aug 2013 12:36:34 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: ea23ba6e-3b49-4bc0-9086-59acf521c027 X-Archives-Hash: 65b93aece0e489b3ee671028451dd6a7 commit: fcc2ea15a521f82319570ca2bb54928a39514e0c Author: André Erdmann mailerd de> AuthorDate: Thu Aug 29 12:34:27 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Thu Aug 29 12:35:05 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=fcc2ea15 packagedir_base: set distfile owner while scanning + use overlay base object calling set_distfile_owner() is a no-op, currently. --- roverlay/overlay/pkgdir/packagedir_base.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/roverlay/overlay/pkgdir/packagedir_base.py b/roverlay/overlay/pkgdir/packagedir_base.py index 425f31b..e8567b9 100644 --- a/roverlay/overlay/pkgdir/packagedir_base.py +++ b/roverlay/overlay/pkgdir/packagedir_base.py @@ -33,14 +33,14 @@ import roverlay.tools.ebuildenv import roverlay.tools.patch import roverlay.overlay.additionsdir - +import roverlay.overlay.base import roverlay.overlay.pkgdir.distroot.static import roverlay.overlay.pkgdir.metadata # TODO: proper reading of $SRC_URI when importing (or scanning) ebuilds # This would make manifest creation being more controlled -class PackageDirBase ( object ): +class PackageDirBase ( roverlay.overlay.base.OverlayObject ): """The PackageDir base class that implements most functionality except for Manifest file creation.""" @@ -108,12 +108,14 @@ class PackageDirBase ( object ): * parent (pointer to) the object that is creating this instance """ - self.logger = logger.getChild ( name ) + super ( PackageDirBase, self ).__init__ ( + name, logger, directory, parent + ) + self.name = name self._lock = threading.RLock() # { : } self._packages = dict() - self.physical_location = directory self.get_header = get_header self.runtime_incremental = runtime_incremental @@ -134,6 +136,10 @@ class PackageDirBase ( object ): self._need_metadata = False # --- end of __init__ (...) --- + def set_category ( self, category ): + self.set_parent ( category ) + # --- end of set_category (...) --- + def iter_package_info ( self, pkg_filter=None ): if pkg_filter is None: return self._packages.values() @@ -163,7 +169,7 @@ class PackageDirBase ( object ): return False # --- end of remove_ebuild_file (...) --- - def _scan_add_package ( self, efile, pvr ): + def _scan_add_package ( self, efile, pvr, LINK_DISTMAP=False ): """Called for each ebuild that is found during scan(). Creates a PackageInfo for the ebuild and adds it to self._packages. @@ -176,7 +182,11 @@ class PackageDirBase ( object ): p = roverlay.packageinfo.PackageInfo ( physical_only=True, pvr=pvr, ebuild_file=efile, name=self.name ) - # TODO/FIXME: parse SRC_URI, knowledge of distfile path would be good... + + # link distfiles to distmap + for distfile in p.parse_ebuild_distfiles ( self.get_parent().name ): + self.DISTROOT.set_distfile_owner ( self.get_ref(), distfile ) + self._packages [ p ['ebuild_verstr'] ] = p return p # --- end of _scan_add_package (...) --- @@ -254,10 +264,10 @@ class PackageDirBase ( object ): if added: # add a link to this PackageDir into the package info, # !! package_info <-> self (double-linked) - package_info.overlay_package_ref = weakref.ref ( self ) + package_info.overlay_package_ref = self.get_ref() return True elif added is None: - return weakref.ref ( self ) + return self.get_ref() else: return added # --- end of add (...) --- @@ -486,7 +496,8 @@ class PackageDirBase ( object ): "$PN {!r} does not match directory name, ignoring {!r}.".\ format ( pn, f ) ) - except: + except Exception as err: + self.logger.exception ( err ) self.logger.warning ( "ebuild {!r} has an invalid file name!".format ( f ) )