Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10903 - main/trunk/pym/_emerge
Date: Thu, 03 Jul 2008 06:39:27
Message-Id: E1KEITR-0002wC-4s@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-07-03 06:39:20 +0000 (Thu, 03 Jul 2008)
3 New Revision: 10903
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Split out a new _check_manifests() method from Scheduler._merge() since
9 this method is not useful for parallel scheduling and any useful code needs
10 to be relocated.
11
12
13 Modified: main/trunk/pym/_emerge/__init__.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/__init__.py 2008-07-03 06:06:34 UTC (rev 10902)
16 +++ main/trunk/pym/_emerge/__init__.py 2008-07-03 06:39:20 UTC (rev 10903)
17 @@ -7119,12 +7119,67 @@
18
19 return blocker_dblinks
20
21 + def _check_manifests(self):
22 + # Verify all the manifests now so that the user is notified of failure
23 + # as soon as possible.
24 + if "strict" not in self.settings.features or \
25 + "--fetchonly" in self.myopts or \
26 + "--fetch-all-uri" in self.myopts:
27 + return os.EX_OK
28 +
29 + shown_verifying_msg = False
30 + quiet_settings = {}
31 + for myroot, pkgsettings in self.pkgsettings.iteritems():
32 + quiet_config = portage.config(clone=pkgsettings)
33 + quiet_config["PORTAGE_QUIET"] = "1"
34 + quiet_config.backup_changes("PORTAGE_QUIET")
35 + quiet_settings[myroot] = quiet_config
36 + del quiet_config
37 +
38 + for x in self._mergelist:
39 + if x.type_name != "ebuild":
40 + continue
41 +
42 + if not shown_verifying_msg:
43 + shown_verifying_msg = True
44 + print ">>> Verifying ebuild Manifests..."
45 +
46 + root_config = x.root_config
47 + portdb = root_config.trees["porttree"].dbapi
48 + quiet_config = quiet_settings[root_config.root]
49 + quiet_config["O"] = os.path.dirname(portdb.findname(x.cpv))
50 + if not portage.digestcheck([], quiet_config, strict=True):
51 + return 1
52 +
53 + return os.EX_OK
54 +
55 def merge(self):
56
57 + if "--resume" in self.myopts:
58 + # We're resuming.
59 + portage.writemsg_stdout(
60 + colorize("GOOD", "*** Resuming merge...\n"), noiselevel=-1)
61 + self._logger.log(" *** Resuming merge...")
62 +
63 + rval = self._check_manifests()
64 + if rval != os.EX_OK:
65 + return rval
66 +
67 keep_going = "--keep-going" in self.myopts
68 running_tasks = self._running_tasks
69 + mtimedb = self._mtimedb
70
71 while True:
72 +
73 + # Do this before verifying the ebuild Manifests since it might
74 + # be possible for the user to use --resume --skipfirst get past
75 + # a non-essential package with a broken digest.
76 + mtimedb["resume"]["mergelist"] = [list(x) \
77 + for x in self._mergelist \
78 + if isinstance(x, Package) and x.operation == "merge"]
79 +
80 + mtimedb.commit()
81 +
82 try:
83 rval = self._merge()
84 finally:
85 @@ -7136,7 +7191,6 @@
86
87 if rval == os.EX_OK or not keep_going:
88 break
89 - mtimedb = self._mtimedb
90 if "resume" not in mtimedb:
91 break
92 mergelist = self._mtimedb["resume"].get("mergelist")
93 @@ -7273,18 +7327,6 @@
94 ldpath_mtimes = mtimedb["ldpath"]
95 logger = self._logger
96
97 - if "--resume" in self.myopts:
98 - # We're resuming.
99 - print colorize("GOOD", "*** Resuming merge...")
100 - self._logger.log(" *** Resuming merge...")
101 -
102 - # Do this before verifying the ebuild Manifests since it might
103 - # be possible for the user to use --resume --skipfirst get past
104 - # a non-essential package with a broken digest.
105 - mtimedb["resume"]["mergelist"] = [list(x) for x in mylist \
106 - if isinstance(x, Package) and x.operation == "merge"]
107 - mtimedb.commit()
108 -
109 prefetchers = weakref.WeakValueDictionary()
110 getbinpkg = "--getbinpkg" in self.myopts
111
112 @@ -7308,34 +7350,6 @@
113 self._add_task(prefetcher)
114 del prefetcher
115
116 - # Verify all the manifests now so that the user is notified of failure
117 - # as soon as possible.
118 - if "--fetchonly" not in self.myopts and \
119 - "--fetch-all-uri" not in self.myopts and \
120 - "strict" in self.settings.features:
121 - shown_verifying_msg = False
122 - quiet_settings = {}
123 - for myroot, pkgsettings in self.pkgsettings.iteritems():
124 - quiet_config = portage.config(clone=pkgsettings)
125 - quiet_config["PORTAGE_QUIET"] = "1"
126 - quiet_config.backup_changes("PORTAGE_QUIET")
127 - quiet_settings[myroot] = quiet_config
128 - del quiet_config
129 - for x in mylist:
130 - if x[0] != "ebuild" or x[-1] == "nomerge":
131 - continue
132 - if not shown_verifying_msg:
133 - shown_verifying_msg = True
134 - print ">>> Verifying ebuild Manifests..."
135 - mytype, myroot, mycpv, mystatus = x
136 - portdb = self.trees[myroot]["porttree"].dbapi
137 - quiet_config = quiet_settings[myroot]
138 - quiet_config["O"] = os.path.dirname(portdb.findname(mycpv))
139 - if not portage.digestcheck([], quiet_config, strict=True):
140 - return 1
141 - del x, mytype, myroot, mycpv, mystatus, quiet_config
142 - del shown_verifying_msg, quiet_settings
143 -
144 root_config = self.trees[self.target_root]["root_config"]
145 mymergelist = mylist
146 myfeat = self.settings.features[:]
147
148 --
149 gentoo-commits@l.g.o mailing list