summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-05-25 19:32:42 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-25 23:12:38 -0700
commit174e63d3894c7d8acce9ac79a617969506210b7f (patch)
tree86f8d13fc3b4fd356b9a93ac6a8eb21987c39d7d
parentea942032976b5bfa9673d650726bcbeab8414583 (diff)
downloadportage-174e63d3894c7d8acce9ac79a617969506210b7f.tar.gz
portage-174e63d3894c7d8acce9ac79a617969506210b7f.tar.bz2
portage-174e63d3894c7d8acce9ac79a617969506210b7f.zip
dblink.unmerge: always initialize myebuildpath
This is required for the doebuild_environment() call. Also, set builddir_locked = True when appropriate.
-rw-r--r--pym/portage/dbapi/vartree.py15
1 files changed, 5 insertions, 10 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index b75d69a38..539489526 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -1612,14 +1612,13 @@ class dblink(object):
contents = self.getcontents()
# Now, don't assume that the name of the ebuild is the same as the
# name of the dir; the package may have been moved.
- myebuildpath = None
+ myebuildpath = os.path.join(self.dbdir, self.pkg + ".ebuild")
failures = 0
ebuild_phase = "prerm"
log_path = None
mystuff = os.listdir(self.dbdir)
for x in mystuff:
if x.endswith(".ebuild"):
- myebuildpath = os.path.join(self.dbdir, self.pkg + ".ebuild")
if x[:-7] != self.pkg:
# Clean up after vardbapi.move_ent() breakage in
# portage versions before 2.1.2
@@ -1655,6 +1654,7 @@ class dblink(object):
scheduler=(scheduler or PollScheduler().sched_iface),
settings=self.settings)
builddir_lock.lock()
+ builddir_locked = True
prepare_build_dirs(settings=self.settings, cleanup=True)
log_path = self.settings.get("PORTAGE_LOG_FILE")
@@ -1668,7 +1668,7 @@ class dblink(object):
level=logging.ERROR, noiselevel=-1)
showMessage(_unicode_decode("%s\n") % (eapi_unsupported,),
level=logging.ERROR, noiselevel=-1)
- elif myebuildpath:
+ elif os.path.isfile(myebuildpath):
if scheduler is None:
retval = _spawn_phase('prerm', self.settings)
else:
@@ -1684,7 +1684,7 @@ class dblink(object):
self._unmerge_pkgfiles(pkgfiles, others_in_slot)
self._clear_contents_cache()
- if myebuildpath and not eapi_unsupported:
+ if not eapi_unsupported and os.path.isfile(myebuildpath):
ebuild_phase = "postrm"
if scheduler is None:
retval = _spawn_phase(ebuild_phase, self.settings)
@@ -1702,7 +1702,7 @@ class dblink(object):
self.vartree.dbapi._bump_mtime(self.mycpv)
if builddir_locked:
try:
- if myebuildpath and not eapi_unsupported:
+ if not eapi_unsupported and os.path.isfile(myebuildpath):
if retval != os.EX_OK:
msg_lines = []
msg = _("The '%(ebuild_phase)s' "
@@ -1746,11 +1746,6 @@ class dblink(object):
phasefilter=('prerm', 'postrm'))
if retval == os.EX_OK and builddir_locked:
- # myebuildpath might be None, so ensure
- # it has a sane value for the clean phase,
- # even though it won't really be sourced.
- myebuildpath = os.path.join(self.dbdir,
- self.pkg + ".ebuild")
try:
doebuild_environment(myebuildpath, "cleanrm",
settings=self.settings, db=self.vartree.dbapi)