public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [gentoo-commits] portage r15484 - in main/branches/prefix/pym: portage portage/dbapi repoman
@ 2010-02-27 20:02 99% Fabian Groffen (grobian)
  0 siblings, 0 replies; 1+ results
From: Fabian Groffen (grobian) @ 2010-02-27 20:02 UTC (permalink / raw
  To: gentoo-commits

Author: grobian
Date: 2010-02-27 20:02:45 +0000 (Sat, 27 Feb 2010)
New Revision: 15484

Added:
   main/branches/prefix/pym/portage/_deprecated.py
Modified:
   main/branches/prefix/pym/portage/__init__.py
   main/branches/prefix/pym/portage/dbapi/__init__.py
   main/branches/prefix/pym/portage/dbapi/vartree.py
   main/branches/prefix/pym/repoman/checks.py
Log:
   Merged from trunk -r15465:15470

   | 15466   | Splid deprecated functions into a _deprecated module.        |
   | zmedico |                                                              |
   
   | 15467   | Fix broken dep_expand import from previous commit.           |
   | zmedico |                                                              |
   
   | 15468   | Move merge and unmerge functions to the vartree module.      |
   | zmedico |                                                              |
   
   | 15469   | Move getvirtuals to _deprecated module.                      |
   | zmedico |                                                              |
   
   | 15470   | Eliminate the PhaseCheck constructor and make                |
   | zmedico | PhaseCheck.phases_re a class attribute. Thanks to Sebastian  |
   |         | Pipping <sping@g.o> for the initial patch.                   |


Modified: main/branches/prefix/pym/portage/__init__.py
===================================================================
--- main/branches/prefix/pym/portage/__init__.py	2010-02-27 19:32:48 UTC (rev 15483)
+++ main/branches/prefix/pym/portage/__init__.py	2010-02-27 20:02:45 UTC (rev 15484)
@@ -86,7 +86,7 @@
 		'portage.dbapi.dep_expand:dep_expand',
 		'portage.dbapi.porttree:close_portdbapi_caches,FetchlistDict,' + \
 			'portagetree,portdbapi',
-		'portage.dbapi.vartree:vardbapi,vartree,dblink',
+		'portage.dbapi.vartree:dblink,merge,unmerge,vardbapi,vartree',
 		'portage.dbapi.virtual:fakedbapi',
 		'portage.dep',
 		'portage.dep:best_match_to_list,dep_getcpv,dep_getkey,' + \
@@ -136,6 +136,7 @@
 			'cpv_getkey@getCPFromCPV,endversion_keys,' + \
 			'suffix_value@endversion,pkgcmp,pkgsplit,vercmp,ververify',
 		'portage.xpak',
+		'portage._deprecated:dep_virtual,digestParseFile,getvirtuals,pkgmerge',
 	)
 
 	import portage.const
@@ -543,30 +544,6 @@
 		mylink=mydir+"/"+mylink
 	return os.path.normpath(mylink)
 
-def digestParseFile(myfilename, mysettings=None):
-	"""(filename) -- Parses a given file for entries matching:
-	<checksumkey> <checksum_hex_string> <filename> <filesize>
-	Ignores lines that don't start with a valid checksum identifier
-	and returns a dict with the filenames as keys and {checksumkey:checksum}
-	as the values.
-	DEPRECATED: this function is now only a compability wrapper for
-	            portage.manifest.Manifest()."""
-
-	warnings.warn("portage.digestParseFile() is deprecated",
-		DeprecationWarning, stacklevel=2)
-
-	mysplit = myfilename.split(os.sep)
-	if mysplit[-2] == "files" and mysplit[-1].startswith("digest-"):
-		pkgdir = os.sep + os.sep.join(mysplit[:-2]).strip(os.sep)
-	elif mysplit[-1] == "Manifest":
-		pkgdir = os.sep + os.sep.join(mysplit[:-1]).strip(os.sep)
-
-	if mysettings is None:
-		global settings
-		mysettings = config(clone=settings)
-
-	return Manifest(pkgdir, mysettings["DISTDIR"]).getDigests()
-
 _testing_eapis = frozenset()
 _deprecated_eapis = frozenset(["3_pre2", "3_pre1", "2_pre3", "2_pre2", "2_pre1"])
 
@@ -638,66 +615,6 @@
 		raise portage.exception.PortageException(
 			"mv '%s' '%s'" % (src, dest))
 
-def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None,
-	mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None,
-	scheduler=None):
-	if not os.access(myroot + EPREFIX_LSTRIP, os.W_OK):
-		writemsg(_("Permission denied: access('%s', W_OK)\n") %
-				(myroot + EPREFIX_LSTRIP), noiselevel=-1)
-		return errno.EACCES
-	mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree,
-		vartree=vartree, blockers=blockers, scheduler=scheduler)
-	return mylink.merge(pkgloc, infloc, myroot, myebuild,
-		mydbapi=mydbapi, prev_mtimes=prev_mtimes)
-
-def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None,
-	ldpath_mtimes=None, scheduler=None):
-	mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree",
-		vartree=vartree, scheduler=scheduler)
-	vartree = mylink.vartree
-	try:
-		mylink.lockdb()
-		if mylink.exists():
-			vartree.dbapi.plib_registry.load()
-			vartree.dbapi.plib_registry.pruneNonExisting()
-			retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1,
-				ldpath_mtimes=ldpath_mtimes)
-			if retval == os.EX_OK:
-				mylink.delete()
-			return retval
-		return os.EX_OK
-	finally:
-		vartree.dbapi.linkmap._clear_cache()
-		mylink.unlockdb()
-
-def dep_virtual(mysplit, mysettings):
-	"Does virtual dependency conversion"
-	warnings.warn("portage.dep_virtual() is deprecated",
-		DeprecationWarning, stacklevel=2)
-	newsplit=[]
-	myvirtuals = mysettings.getvirtuals()
-	for x in mysplit:
-		if isinstance(x, list):
-			newsplit.append(dep_virtual(x, mysettings))
-		else:
-			mykey=dep_getkey(x)
-			mychoices = myvirtuals.get(mykey, None)
-			if mychoices:
-				if len(mychoices) == 1:
-					a = x.replace(mykey, dep_getkey(mychoices[0]), 1)
-				else:
-					if x[0]=="!":
-						# blocker needs "and" not "or(||)".
-						a=[]
-					else:
-						a=['||']
-					for y in mychoices:
-						a.append(x.replace(mykey, dep_getkey(y), 1))
-				newsplit.append(a)
-			else:
-				newsplit.append(x)
-	return newsplit
-
 auxdbkeys = (
   'DEPEND',    'RDEPEND',   'SLOT',      'SRC_URI',
 	'RESTRICT',  'HOMEPAGE',  'LICENSE',   'DESCRIPTION',
@@ -708,162 +625,6 @@
 )
 auxdbkeylen=len(auxdbkeys)
 
-def pkgmerge(mytbz2, myroot, mysettings, mydbapi=None,
-	vartree=None, prev_mtimes=None, blockers=None):
-	"""will merge a .tbz2 file, returning a list of runtime dependencies
-		that must be satisfied, or None if there was a merge error.	This
-		code assumes the package exists."""
-
-	warnings.warn("portage.pkgmerge() is deprecated",
-		DeprecationWarning, stacklevel=2)
-
-	global db
-	if mydbapi is None:
-		mydbapi = db[myroot]["bintree"].dbapi
-	if vartree is None:
-		vartree = db[myroot]["vartree"]
-	if mytbz2[-5:]!=".tbz2":
-		print(_("!!! Not a .tbz2 file"))
-		return 1
-
-	tbz2_lock = None
-	mycat = None
-	mypkg = None
-	did_merge_phase = False
-	success = False
-	try:
-		""" Don't lock the tbz2 file because the filesytem could be readonly or
-		shared by a cluster."""
-		#tbz2_lock = portage.locks.lockfile(mytbz2, wantnewlockfile=1)
-
-		mypkg = os.path.basename(mytbz2)[:-5]
-		xptbz2 = portage.xpak.tbz2(mytbz2)
-		mycat = xptbz2.getfile(_unicode_encode("CATEGORY",
-			encoding=_encodings['repo.content']))
-		if not mycat:
-			writemsg(_("!!! CATEGORY info missing from info chunk, aborting...\n"),
-				noiselevel=-1)
-			return 1
-		mycat = _unicode_decode(mycat,
-			encoding=_encodings['repo.content'], errors='replace')
-		mycat = mycat.strip()
-
-		buildprefix = xptbz2.getfile("EPREFIX")
-		if not buildprefix:
-			writemsg("!!! EPREFIX info missing from info chunk, aborting...\n",
-				noiselevel=-1)
-			return 1
-		buildprefix = buildprefix.strip()
-
-		# These are the same directories that would be used at build time.
-		builddir = os.path.join(
-			mysettings["PORTAGE_TMPDIR"], "portage", mycat, mypkg)
-		catdir = os.path.dirname(builddir)
-		# if the prefix differs, we copy it to the image after extraction
-		if (buildprefix != EPREFIX):
-			pkgloc = os.path.join(builddir, "work")
-		else:
-			pkgloc = os.path.join(builddir, "image")
-		infloc = os.path.join(builddir, "build-info")
-		myebuild = os.path.join(
-			infloc, os.path.basename(mytbz2)[:-4] + "ebuild")
-		portage.util.ensure_dirs(os.path.dirname(catdir),
-			uid=portage_uid, gid=portage_gid, mode=0o70, mask=0)
-		catdir_lock = portage.locks.lockdir(catdir)
-		portage.util.ensure_dirs(catdir,
-			uid=portage_uid, gid=portage_gid, mode=0o70, mask=0)
-		try:
-			shutil.rmtree(builddir)
-		except (IOError, OSError) as e:
-			if e.errno != errno.ENOENT:
-				raise
-			del e
-		for mydir in (builddir, pkgloc, infloc):
-			portage.util.ensure_dirs(mydir, uid=portage_uid,
-				gid=portage_gid, mode=0o755)
-		writemsg_stdout(_(">>> Extracting info\n"))
-		xptbz2.unpackinfo(infloc)
-		mysettings.setcpv(mycat + "/" + mypkg, mydb=mydbapi)
-		# Store the md5sum in the vdb.
-		fp = open(_unicode_encode(os.path.join(infloc, 'BINPKGMD5')), 'w')
-		fp.write(str(portage.checksum.perform_md5(mytbz2))+"\n")
-		fp.close()
-
-		# This gives bashrc users an opportunity to do various things
-		# such as remove binary packages after they're installed.
-		mysettings["PORTAGE_BINPKG_FILE"] = mytbz2
-		mysettings.backup_changes("PORTAGE_BINPKG_FILE")
-		debug = mysettings.get("PORTAGE_DEBUG", "") == "1"
-
-		# We want to install in "our" prefix, not the binary one
-		mysettings["EPREFIX"] = EPREFIX
-		# Store "our" prefix in the vdb.
-		fp = open(os.path.join(infloc, "EPREFIX"), "w")
-		fp.write(EPREFIX+"\n")
-		fp.close()
-
-		# Eventually we'd like to pass in the saved ebuild env here.
-		retval = doebuild(myebuild, "setup", myroot, mysettings, debug=debug,
-			tree="bintree", mydbapi=mydbapi, vartree=vartree)
-		if retval != os.EX_OK:
-			writemsg(_("!!! Setup failed: %s\n") % retval, noiselevel=-1)
-			return retval
-
-		writemsg_stdout(_(">>> Extracting %s\n") % mypkg)
-		retval = portage.process.spawn_bash(
-			"bzip2 -dqc -- '%s' | tar -xp -C '%s' -f -" % (mytbz2, pkgloc),
-			env=mysettings.environ())
-		if retval != os.EX_OK:
-			writemsg(_("!!! Error Extracting '%s'\n") % mytbz2, noiselevel=-1)
-			return retval
-		#portage.locks.unlockfile(tbz2_lock)
-		#tbz2_lock = None
-
-		# the extracted package put everything in buildprefix, so we
-		# just have to move it to the right EPREFIX
-		if buildprefix != EPREFIX:
-			writemsg_stdout(">>> Adjusting Prefix to %s\n" % EPREFIX)
-			b = os.path.join(pkgloc, buildprefix.lstrip(os.path.sep))
-			i = os.path.join(builddir, "image", EPREFIX_LSTRIP)
-			# make sure the directory structure for EPREFIX is set up in
-			# the image, but avoid the last directory being there,
-			# otherwise chpathtool will complain
-			portage.util.ensure_dirs(i)
-			os.rmdir(i)
-			retval = portage.process.spawn_bash(
-				"chpathtool -q '%s' '%s' '%s' '%s'" % (b, i, buildprefix, EPREFIX),
-				env=mysettings.environ())
-			if retval != os.EX_OK:
-				writemsg("!!! Adjusing to Prefix failed!\n", noiselevel=-1)
-				return retval
-			pkgloc = os.path.join(builddir, "image")
-
-		mylink = dblink(mycat, mypkg, myroot, mysettings, vartree=vartree,
-			treetype="bintree", blockers=blockers)
-		retval = mylink.merge(pkgloc, infloc, myroot, myebuild, cleanup=0,
-			mydbapi=mydbapi, prev_mtimes=prev_mtimes)
-		did_merge_phase = True
-		success = retval == os.EX_OK
-		return retval
-	finally:
-		mysettings.pop("PORTAGE_BINPKG_FILE", None)
-		if tbz2_lock:
-			portage.locks.unlockfile(tbz2_lock)
-		if True:
-			if not did_merge_phase:
-				# The merge phase handles this already.  Callers don't know how
-				# far this function got, so we have to call elog_process() here
-				# so that it's only called once.
-				from portage.elog import elog_process
-				elog_process(mycat + "/" + mypkg, mysettings)
-			try:
-				if success:
-					shutil.rmtree(builddir)
-			except (IOError, OSError) as e:
-				if e.errno != errno.ENOENT:
-					raise
-				del e
-
 def deprecated_profile_check(settings=None):
 	config_root = "/"
 	if settings is not None:
@@ -894,17 +655,6 @@
 		writemsg("\n\n", noiselevel=-1)
 	return True
 
-# gets virtual package settings
-def getvirtuals(myroot):
-	"""
-	Calls portage.settings.getvirtuals().
-	@deprecated: Use portage.settings.getvirtuals().
-	"""
-	global settings
-	warnings.warn("portage.getvirtuals() is deprecated",
-		DeprecationWarning, stacklevel=2)
-	return settings.getvirtuals()
-
 def commit_mtimedb(mydict=None, filename=None):
 	if mydict is None:
 		global mtimedb

Copied: main/branches/prefix/pym/portage/_deprecated.py (from rev 15470, main/trunk/pym/portage/_deprecated.py)
===================================================================
--- main/branches/prefix/pym/portage/_deprecated.py	                        (rev 0)
+++ main/branches/prefix/pym/portage/_deprecated.py	2010-02-27 20:02:45 UTC (rev 15484)
@@ -0,0 +1,228 @@
+# Copyright 2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+from __future__ import print_function
+
+import errno
+import shutil
+import warnings
+
+import portage
+from portage import os, _encodings, _unicode_decode, _unicode_encode
+from portage.data import portage_gid, portage_uid
+from portage.dep import dep_getkey
+from portage.localization import _
+from portage.manifest import Manifest
+from portage.util import writemsg, writemsg_stdout
+
+def digestParseFile(myfilename, mysettings=None):
+	"""(filename) -- Parses a given file for entries matching:
+	<checksumkey> <checksum_hex_string> <filename> <filesize>
+	Ignores lines that don't start with a valid checksum identifier
+	and returns a dict with the filenames as keys and {checksumkey:checksum}
+	as the values.
+	DEPRECATED: this function is now only a compability wrapper for
+	            portage.manifest.Manifest()."""
+
+	warnings.warn("portage.digestParseFile() is deprecated",
+		DeprecationWarning, stacklevel=2)
+
+	mysplit = myfilename.split(os.sep)
+	if mysplit[-2] == "files" and mysplit[-1].startswith("digest-"):
+		pkgdir = os.sep + os.sep.join(mysplit[:-2]).strip(os.sep)
+	elif mysplit[-1] == "Manifest":
+		pkgdir = os.sep + os.sep.join(mysplit[:-1]).strip(os.sep)
+
+	return Manifest(pkgdir, None).getDigests()
+
+def dep_virtual(mysplit, mysettings):
+	"Does virtual dependency conversion"
+	warnings.warn("portage.dep_virtual() is deprecated",
+		DeprecationWarning, stacklevel=2)
+	newsplit=[]
+	myvirtuals = mysettings.getvirtuals()
+	for x in mysplit:
+		if isinstance(x, list):
+			newsplit.append(dep_virtual(x, mysettings))
+		else:
+			mykey=dep_getkey(x)
+			mychoices = myvirtuals.get(mykey, None)
+			if mychoices:
+				if len(mychoices) == 1:
+					a = x.replace(mykey, dep_getkey(mychoices[0]), 1)
+				else:
+					if x[0]=="!":
+						# blocker needs "and" not "or(||)".
+						a=[]
+					else:
+						a=['||']
+					for y in mychoices:
+						a.append(x.replace(mykey, dep_getkey(y), 1))
+				newsplit.append(a)
+			else:
+				newsplit.append(x)
+	return newsplit
+
+def getvirtuals(myroot):
+	"""
+	Calls portage.settings.getvirtuals().
+	@deprecated: Use portage.settings.getvirtuals().
+	"""
+	warnings.warn("portage.getvirtuals() is deprecated",
+		DeprecationWarning, stacklevel=2)
+	return portage.settings.getvirtuals()
+
+def pkgmerge(mytbz2, myroot, mysettings, mydbapi=None,
+	vartree=None, prev_mtimes=None, blockers=None):
+	"""will merge a .tbz2 file, returning a list of runtime dependencies
+		that must be satisfied, or None if there was a merge error.	This
+		code assumes the package exists."""
+
+	warnings.warn("portage.pkgmerge() is deprecated",
+		DeprecationWarning, stacklevel=2)
+
+	if mydbapi is None:
+		mydbapi = portage.db[myroot]["bintree"].dbapi
+	if vartree is None:
+		vartree = portage.db[myroot]["vartree"]
+	if mytbz2[-5:]!=".tbz2":
+		print(_("!!! Not a .tbz2 file"))
+		return 1
+
+	tbz2_lock = None
+	mycat = None
+	mypkg = None
+	did_merge_phase = False
+	success = False
+	try:
+		""" Don't lock the tbz2 file because the filesytem could be readonly or
+		shared by a cluster."""
+		#tbz2_lock = portage.locks.lockfile(mytbz2, wantnewlockfile=1)
+
+		mypkg = os.path.basename(mytbz2)[:-5]
+		xptbz2 = portage.xpak.tbz2(mytbz2)
+		mycat = xptbz2.getfile(_unicode_encode("CATEGORY",
+			encoding=_encodings['repo.content']))
+		if not mycat:
+			writemsg(_("!!! CATEGORY info missing from info chunk, aborting...\n"),
+				noiselevel=-1)
+			return 1
+		mycat = _unicode_decode(mycat,
+			encoding=_encodings['repo.content'], errors='replace')
+		mycat = mycat.strip()
+
+		buildprefix = xptbz2.getfile("EPREFIX")
+		if not buildprefix:
+			writemsg("!!! EPREFIX info missing from info chunk, aborting...\n",
+				noiselevel=-1)
+			return 1
+		buildprefix = buildprefix.strip()
+
+		# These are the same directories that would be used at build time.
+		builddir = os.path.join(
+			mysettings["PORTAGE_TMPDIR"], "portage", mycat, mypkg)
+		catdir = os.path.dirname(builddir)
+		# if the prefix differs, we copy it to the image after extraction
+		if (buildprefix != EPREFIX):
+			pkgloc = os.path.join(builddir, "work")
+		else:
+			pkgloc = os.path.join(builddir, "image")
+		infloc = os.path.join(builddir, "build-info")
+		myebuild = os.path.join(
+			infloc, os.path.basename(mytbz2)[:-4] + "ebuild")
+		portage.util.ensure_dirs(os.path.dirname(catdir),
+			uid=portage_uid, gid=portage_gid, mode=0o70, mask=0)
+		portage.util.ensure_dirs(catdir,
+			uid=portage_uid, gid=portage_gid, mode=0o70, mask=0)
+		try:
+			shutil.rmtree(builddir)
+		except (IOError, OSError) as e:
+			if e.errno != errno.ENOENT:
+				raise
+			del e
+		for mydir in (builddir, pkgloc, infloc):
+			portage.util.ensure_dirs(mydir, uid=portage_uid,
+				gid=portage_gid, mode=0o755)
+		writemsg_stdout(_(">>> Extracting info\n"))
+		xptbz2.unpackinfo(infloc)
+		mysettings.setcpv(mycat + "/" + mypkg, mydb=mydbapi)
+		# Store the md5sum in the vdb.
+		fp = open(_unicode_encode(os.path.join(infloc, 'BINPKGMD5')), 'w')
+		fp.write(str(portage.checksum.perform_md5(mytbz2))+"\n")
+		fp.close()
+
+		# This gives bashrc users an opportunity to do various things
+		# such as remove binary packages after they're installed.
+		mysettings["PORTAGE_BINPKG_FILE"] = mytbz2
+		mysettings.backup_changes("PORTAGE_BINPKG_FILE")
+		debug = mysettings.get("PORTAGE_DEBUG", "") == "1"
+
+		# We want to install in "our" prefix, not the binary one
+		mysettings["EPREFIX"] = EPREFIX
+		# Store "our" prefix in the vdb.
+		fp = open(os.path.join(infloc, "EPREFIX"), "w")
+		fp.write(EPREFIX+"\n")
+		fp.close()
+
+		# Eventually we'd like to pass in the saved ebuild env here.
+		retval = portage.doebuild(myebuild, "setup", myroot, mysettings, debug=debug,
+			tree="bintree", mydbapi=mydbapi, vartree=vartree)
+		if retval != os.EX_OK:
+			writemsg(_("!!! Setup failed: %s\n") % retval, noiselevel=-1)
+			return retval
+
+		writemsg_stdout(_(">>> Extracting %s\n") % mypkg)
+		retval = portage.process.spawn_bash(
+			"bzip2 -dqc -- '%s' | tar -xp -C '%s' -f -" % (mytbz2, pkgloc),
+			env=mysettings.environ())
+		if retval != os.EX_OK:
+			writemsg(_("!!! Error Extracting '%s'\n") % mytbz2, noiselevel=-1)
+			return retval
+		#portage.locks.unlockfile(tbz2_lock)
+		#tbz2_lock = None
+
+		# the extracted package put everything in buildprefix, so we
+		# just have to move it to the right EPREFIX
+		if buildprefix != EPREFIX:
+			writemsg_stdout(">>> Adjusting Prefix to %s\n" % EPREFIX)
+			b = os.path.join(pkgloc, buildprefix.lstrip(os.path.sep))
+			i = os.path.join(builddir, "image", EPREFIX_LSTRIP)
+			# make sure the directory structure for EPREFIX is set up in
+			# the image, but avoid the last directory being there,
+			# otherwise chpathtool will complain
+			portage.util.ensure_dirs(i)
+			os.rmdir(i)
+			retval = portage.process.spawn_bash(
+				"chpathtool -q '%s' '%s' '%s' '%s'" % (b, i, buildprefix, EPREFIX),
+				env=mysettings.environ())
+			if retval != os.EX_OK:
+				writemsg("!!! Adjusing to Prefix failed!\n", noiselevel=-1)
+				return retval
+			pkgloc = os.path.join(builddir, "image")
+
+		mylink = dblink(mycat, mypkg, myroot, mysettings, vartree=vartree,
+			treetype="bintree", blockers=blockers)
+		retval = mylink.merge(pkgloc, infloc, myroot, myebuild, cleanup=0,
+			mydbapi=mydbapi, prev_mtimes=prev_mtimes)
+		did_merge_phase = True
+		success = retval == os.EX_OK
+		return retval
+	finally:
+		mysettings.pop("PORTAGE_BINPKG_FILE", None)
+		if tbz2_lock:
+			portage.locks.unlockfile(tbz2_lock)
+		if True:
+			if not did_merge_phase:
+				# The merge phase handles this already.  Callers don't know how
+				# far this function got, so we have to call elog_process() here
+				# so that it's only called once.
+				from portage.elog import elog_process
+				elog_process(mycat + "/" + mypkg, mysettings)
+			try:
+				if success:
+					shutil.rmtree(builddir)
+			except (IOError, OSError) as e:
+				if e.errno != errno.ENOENT:
+					raise
+				del e

Modified: main/branches/prefix/pym/portage/dbapi/__init__.py
===================================================================
--- main/branches/prefix/pym/portage/dbapi/__init__.py	2010-02-27 19:32:48 UTC (rev 15483)
+++ main/branches/prefix/pym/portage/dbapi/__init__.py	2010-02-27 20:02:45 UTC (rev 15484)
@@ -8,7 +8,7 @@
 
 import portage
 portage.proxy.lazyimport.lazyimport(globals(),
-	'portage.dbapi.dep_expand:_dep_expand',
+	'portage.dbapi.dep_expand:dep_expand@_dep_expand',
 	'portage.dep:match_from_list',
 	'portage.locks:unlockfile',
 	'portage.output:colorize',

Modified: main/branches/prefix/pym/portage/dbapi/vartree.py
===================================================================
--- main/branches/prefix/pym/portage/dbapi/vartree.py	2010-02-27 19:32:48 UTC (rev 15483)
+++ main/branches/prefix/pym/portage/dbapi/vartree.py	2010-02-27 20:02:45 UTC (rev 15484)
@@ -5475,6 +5475,38 @@
 		"Is this a regular package (does it have a CATEGORY file?  A dblink can be virtual *and* regular)"
 		return os.path.exists(os.path.join(self.dbdir, "CATEGORY"))
 
+def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None,
+	mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None,
+	scheduler=None):
+	if not os.access(myroot + EPREFIX_LSTRIP, os.W_OK):
+		writemsg(_("Permission denied: access('%s', W_OK)\n") % myroot + EPREFIX_LSTRIP,
+			noiselevel=-1)
+		return errno.EACCES
+	mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree,
+		vartree=vartree, blockers=blockers, scheduler=scheduler)
+	return mylink.merge(pkgloc, infloc, myroot, myebuild,
+		mydbapi=mydbapi, prev_mtimes=prev_mtimes)
+
+def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None,
+	ldpath_mtimes=None, scheduler=None):
+	mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree",
+		vartree=vartree, scheduler=scheduler)
+	vartree = mylink.vartree
+	try:
+		mylink.lockdb()
+		if mylink.exists():
+			vartree.dbapi.plib_registry.load()
+			vartree.dbapi.plib_registry.pruneNonExisting()
+			retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1,
+				ldpath_mtimes=ldpath_mtimes)
+			if retval == os.EX_OK:
+				mylink.delete()
+			return retval
+		return os.EX_OK
+	finally:
+		vartree.dbapi.linkmap._clear_cache()
+		mylink.unlockdb()
+
 def write_contents(contents, root, f):
 	"""
 	Write contents to any file like object. The file will be left open.

Modified: main/branches/prefix/pym/repoman/checks.py
===================================================================
--- main/branches/prefix/pym/repoman/checks.py	2010-02-27 19:32:48 UTC (rev 15483)
+++ main/branches/prefix/pym/repoman/checks.py	2010-02-27 20:02:45 UTC (rev 15484)
@@ -35,17 +35,13 @@
 
 	ignore_line = re.compile(r'(^\s*#)')
 	func_end_re = re.compile(r'^\}$')
+	phases_re = re.compile('(%s)' % '|'.join((
+		'pkg_pretend', 'pkg_setup', 'src_unpack', 'src_prepare',
+		'src_configure', 'src_compile', 'src_test', 'src_install',
+		'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm',
+		'pkg_config')))
 	in_phase = ''
 
-	def __init__(self):
-		self.phases = ('pkg_pretend', 'pkg_setup', 'src_unpack', 'src_prepare', 'src_configure', 'src_compile',
-			'src_test', 'src_install', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'pkg_config')
-		phase_re = '('
-		for phase in self.phases:
-			phase_re += phase + '|'
-		phase_re = phase_re[:-1] + ')'
-		self.phases_re = re.compile(phase_re)
-
 	def check(self, num, line):
 		m = self.phases_re.match(line)
 		if m is not None:




^ permalink raw reply	[relevance 99%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2010-02-27 20:02 99% [gentoo-commits] portage r15484 - in main/branches/prefix/pym: portage portage/dbapi repoman Fabian Groffen (grobian)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox