* [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