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/
Date: Mon, 30 Jul 2012 08:54:03
Message-Id: 1343149120.c456433d70dae2e58fb0297ab1b82822b2405b2d.dywi@gentoo
1 commit: c456433d70dae2e58fb0297ab1b82822b2405b2d
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Tue Jul 24 16:58:40 2012 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Tue Jul 24 16:58:40 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=c456433d
7
8 add "ebuild uncreatable" event
9
10 Immediately removes the PackageInfo object from the overlay
11 structure to save some memory.
12
13 geändert: roverlay/overlay/creator.py
14 geändert: roverlay/overlay/package.py
15
16 ---
17 roverlay/overlay/creator.py | 1 +
18 roverlay/overlay/package.py | 22 ++++++++++++++++++++--
19 2 files changed, 21 insertions(+), 2 deletions(-)
20
21 diff --git a/roverlay/overlay/creator.py b/roverlay/overlay/creator.py
22 index 60e9517..5b0a973 100644
23 --- a/roverlay/overlay/creator.py
24 +++ b/roverlay/overlay/creator.py
25 @@ -382,6 +382,7 @@ class OverlayCreator ( object ):
26 if package_info.overlay_package_ref.new_ebuild():
27 self.overlay_added.inc()
28 else:
29 + package_info.overlay_package_ref.ebuild_uncreateable ( package_info )
30 self.create_fail.inc()
31
32 # --- end of _add_to_overlay (...) ---
33
34 diff --git a/roverlay/overlay/package.py b/roverlay/overlay/package.py
35 index bedbce3..cb5cf72 100644
36 --- a/roverlay/overlay/package.py
37 +++ b/roverlay/overlay/package.py
38 @@ -145,6 +145,25 @@ class PackageDir ( object ):
39 return False
40 # --- end of check_empty (...) ---
41
42 + def ebuild_uncreateable ( self, package_info ):
43 + """Called when ebuild creation (finally) failed for a PackageInfo
44 + object of this PackageDir.
45 +
46 + arguments:
47 + * package_info --
48 + """
49 + try:
50 + self._lock.acquire()
51 + pvr = package_info ['ebuild_verstr']
52 + # FIXME debug print
53 + print ( "removing {PVR} from {PN}".format ( PVR=pvr, PN=self.name ) )
54 + del self._packages [pvr]
55 + except KeyError:
56 + pass
57 + finally:
58 + self._lock.release()
59 + # --- end of uncreateable_ebuild (...) ---
60 +
61 def empty ( self ):
62 """Returns True if no ebuilds stored, else False.
63 Note that "not empty" doesn't mean "has ebuilds to write" or "has
64 @@ -255,12 +274,11 @@ class PackageDir ( object ):
65 return self._packages.keys()
66 # --- end of list_versions (...) ---
67
68 - def new_ebuild ( self, write=False ):
69 + def new_ebuild ( self ):
70 """Called when a new ebuild has been created for this PackageDir."""
71 self._need_manifest = True
72 self._need_metadata = True
73 self.modified = True
74 - # FIXME: delete PackageInfo if ebuild creation did not succeed
75 if self.runtime_incremental:
76 with self._lock:
77 return self.write_ebuilds ( overwrite=False )