Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r15468 - in main/trunk/pym/portage: . dbapi
Date: Thu, 25 Feb 2010 22:28:03
Message-Id: E1NkmBd-0008En-1s@stork.gentoo.org
1 Author: zmedico
2 Date: 2010-02-25 22:28:00 +0000 (Thu, 25 Feb 2010)
3 New Revision: 15468
4
5 Modified:
6 main/trunk/pym/portage/__init__.py
7 main/trunk/pym/portage/dbapi/vartree.py
8 Log:
9 Move merge and unmerge functions to the vartree module.
10
11
12 Modified: main/trunk/pym/portage/__init__.py
13 ===================================================================
14 --- main/trunk/pym/portage/__init__.py 2010-02-25 22:26:31 UTC (rev 15467)
15 +++ main/trunk/pym/portage/__init__.py 2010-02-25 22:28:00 UTC (rev 15468)
16 @@ -86,7 +86,7 @@
17 'portage.dbapi.dep_expand:dep_expand',
18 'portage.dbapi.porttree:close_portdbapi_caches,FetchlistDict,' + \
19 'portagetree,portdbapi',
20 - 'portage.dbapi.vartree:vardbapi,vartree,dblink',
21 + 'portage.dbapi.vartree:dblink,merge,unmerge,vardbapi,vartree',
22 'portage.dbapi.virtual:fakedbapi',
23 'portage.dep',
24 'portage.dep:best_match_to_list,dep_getcpv,dep_getkey,' + \
25 @@ -616,38 +616,6 @@
26 raise portage.exception.PortageException(
27 "mv '%s' '%s'" % (src, dest))
28
29 -def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None,
30 - mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None,
31 - scheduler=None):
32 - if not os.access(myroot, os.W_OK):
33 - writemsg(_("Permission denied: access('%s', W_OK)\n") % myroot,
34 - noiselevel=-1)
35 - return errno.EACCES
36 - mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree,
37 - vartree=vartree, blockers=blockers, scheduler=scheduler)
38 - return mylink.merge(pkgloc, infloc, myroot, myebuild,
39 - mydbapi=mydbapi, prev_mtimes=prev_mtimes)
40 -
41 -def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None,
42 - ldpath_mtimes=None, scheduler=None):
43 - mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree",
44 - vartree=vartree, scheduler=scheduler)
45 - vartree = mylink.vartree
46 - try:
47 - mylink.lockdb()
48 - if mylink.exists():
49 - vartree.dbapi.plib_registry.load()
50 - vartree.dbapi.plib_registry.pruneNonExisting()
51 - retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1,
52 - ldpath_mtimes=ldpath_mtimes)
53 - if retval == os.EX_OK:
54 - mylink.delete()
55 - return retval
56 - return os.EX_OK
57 - finally:
58 - vartree.dbapi.linkmap._clear_cache()
59 - mylink.unlockdb()
60 -
61 auxdbkeys = (
62 'DEPEND', 'RDEPEND', 'SLOT', 'SRC_URI',
63 'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION',
64
65 Modified: main/trunk/pym/portage/dbapi/vartree.py
66 ===================================================================
67 --- main/trunk/pym/portage/dbapi/vartree.py 2010-02-25 22:26:31 UTC (rev 15467)
68 +++ main/trunk/pym/portage/dbapi/vartree.py 2010-02-25 22:28:00 UTC (rev 15468)
69 @@ -4473,6 +4473,38 @@
70 "Is this a regular package (does it have a CATEGORY file? A dblink can be virtual *and* regular)"
71 return os.path.exists(os.path.join(self.dbdir, "CATEGORY"))
72
73 +def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None,
74 + mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None,
75 + scheduler=None):
76 + if not os.access(myroot, os.W_OK):
77 + writemsg(_("Permission denied: access('%s', W_OK)\n") % myroot,
78 + noiselevel=-1)
79 + return errno.EACCES
80 + mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree,
81 + vartree=vartree, blockers=blockers, scheduler=scheduler)
82 + return mylink.merge(pkgloc, infloc, myroot, myebuild,
83 + mydbapi=mydbapi, prev_mtimes=prev_mtimes)
84 +
85 +def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None,
86 + ldpath_mtimes=None, scheduler=None):
87 + mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree",
88 + vartree=vartree, scheduler=scheduler)
89 + vartree = mylink.vartree
90 + try:
91 + mylink.lockdb()
92 + if mylink.exists():
93 + vartree.dbapi.plib_registry.load()
94 + vartree.dbapi.plib_registry.pruneNonExisting()
95 + retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1,
96 + ldpath_mtimes=ldpath_mtimes)
97 + if retval == os.EX_OK:
98 + mylink.delete()
99 + return retval
100 + return os.EX_OK
101 + finally:
102 + vartree.dbapi.linkmap._clear_cache()
103 + mylink.unlockdb()
104 +
105 def write_contents(contents, root, f):
106 """
107 Write contents to any file like object. The file will be left open.