Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/pkgdir/
Date: Thu, 29 Aug 2013 12:36:47
Message-Id: 1377779705.fcc2ea15a521f82319570ca2bb54928a39514e0c.dywi@gentoo
1 commit: fcc2ea15a521f82319570ca2bb54928a39514e0c
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Thu Aug 29 12:34:27 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Thu Aug 29 12:35:05 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=fcc2ea15
7
8 packagedir_base: set distfile owner while scanning
9
10 + use overlay base object
11
12 calling set_distfile_owner() is a no-op, currently.
13
14 ---
15 roverlay/overlay/pkgdir/packagedir_base.py | 29 ++++++++++++++++++++---------
16 1 file changed, 20 insertions(+), 9 deletions(-)
17
18 diff --git a/roverlay/overlay/pkgdir/packagedir_base.py b/roverlay/overlay/pkgdir/packagedir_base.py
19 index 425f31b..e8567b9 100644
20 --- a/roverlay/overlay/pkgdir/packagedir_base.py
21 +++ b/roverlay/overlay/pkgdir/packagedir_base.py
22 @@ -33,14 +33,14 @@ import roverlay.tools.ebuildenv
23 import roverlay.tools.patch
24
25 import roverlay.overlay.additionsdir
26 -
27 +import roverlay.overlay.base
28 import roverlay.overlay.pkgdir.distroot.static
29 import roverlay.overlay.pkgdir.metadata
30
31 # TODO: proper reading of $SRC_URI when importing (or scanning) ebuilds
32 # This would make manifest creation being more controlled
33
34 -class PackageDirBase ( object ):
35 +class PackageDirBase ( roverlay.overlay.base.OverlayObject ):
36 """The PackageDir base class that implements most functionality except
37 for Manifest file creation."""
38
39 @@ -108,12 +108,14 @@ class PackageDirBase ( object ):
40 * parent (pointer to) the object that is creating this
41 instance
42 """
43 - self.logger = logger.getChild ( name )
44 + super ( PackageDirBase, self ).__init__ (
45 + name, logger, directory, parent
46 + )
47 +
48 self.name = name
49 self._lock = threading.RLock()
50 # { <version> : <PackageInfo> }
51 self._packages = dict()
52 - self.physical_location = directory
53 self.get_header = get_header
54 self.runtime_incremental = runtime_incremental
55
56 @@ -134,6 +136,10 @@ class PackageDirBase ( object ):
57 self._need_metadata = False
58 # --- end of __init__ (...) ---
59
60 + def set_category ( self, category ):
61 + self.set_parent ( category )
62 + # --- end of set_category (...) ---
63 +
64 def iter_package_info ( self, pkg_filter=None ):
65 if pkg_filter is None:
66 return self._packages.values()
67 @@ -163,7 +169,7 @@ class PackageDirBase ( object ):
68 return False
69 # --- end of remove_ebuild_file (...) ---
70
71 - def _scan_add_package ( self, efile, pvr ):
72 + def _scan_add_package ( self, efile, pvr, LINK_DISTMAP=False ):
73 """Called for each ebuild that is found during scan().
74 Creates a PackageInfo for the ebuild and adds it to self._packages.
75
76 @@ -176,7 +182,11 @@ class PackageDirBase ( object ):
77 p = roverlay.packageinfo.PackageInfo (
78 physical_only=True, pvr=pvr, ebuild_file=efile, name=self.name
79 )
80 - # TODO/FIXME: parse SRC_URI, knowledge of distfile path would be good...
81 +
82 + # link distfiles to distmap
83 + for distfile in p.parse_ebuild_distfiles ( self.get_parent().name ):
84 + self.DISTROOT.set_distfile_owner ( self.get_ref(), distfile )
85 +
86 self._packages [ p ['ebuild_verstr'] ] = p
87 return p
88 # --- end of _scan_add_package (...) ---
89 @@ -254,10 +264,10 @@ class PackageDirBase ( object ):
90 if added:
91 # add a link to this PackageDir into the package info,
92 # !! package_info <-> self (double-linked)
93 - package_info.overlay_package_ref = weakref.ref ( self )
94 + package_info.overlay_package_ref = self.get_ref()
95 return True
96 elif added is None:
97 - return weakref.ref ( self )
98 + return self.get_ref()
99 else:
100 return added
101 # --- end of add (...) ---
102 @@ -486,7 +496,8 @@ class PackageDirBase ( object ):
103 "$PN {!r} does not match directory name, ignoring {!r}.".\
104 format ( pn, f )
105 )
106 - except:
107 + except Exception as err:
108 + self.logger.exception ( err )
109 self.logger.warning (
110 "ebuild {!r} has an invalid file name!".format ( f )
111 )