fi
auxdbkeys="DEPEND RDEPEND SLOT SRC_URI RESTRICT HOMEPAGE LICENSE
- DESCRIPTION KEYWORDS INHERITED IUSE CDEPEND PDEPEND PROVIDE EAPI
+ DESCRIPTION KEYWORDS INHERITED IUSE UNUSED_00 PDEPEND PROVIDE EAPI
PROPERTIES DEFINED_PHASES UNUSED_05 UNUSED_04
UNUSED_03 UNUSED_02 UNUSED_01"
#the extra $(echo) commands remove newlines
- unset CDEPEND
[ -n "${EAPI}" ] || EAPI=0
local eapi=$EAPI
missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"]
allvars = set(x for x in portage.auxdbkeys if not x.startswith("UNUSED_"))
-allvars.discard("CDEPEND")
allvars.update(Package.metadata_keys)
allvars = sorted(allvars)
commitmessage=None
stats[m+".syntax"] += 1
fails[m+".syntax"].append(catpkg+".ebuild "+m+": "+b)
- badlicsyntax = len(filter(lambda x:x=="LICENSE", type_list))
- badprovsyntax = len(filter(lambda x:x=="PROVIDE", type_list))
+ badlicsyntax = len([x for x in type_list if x == "LICENSE"])
+ badprovsyntax = len([x for x in type_list if x == "PROVIDE"])
baddepsyntax = len(type_list) != badlicsyntax + badprovsyntax
badlicsyntax = badlicsyntax > 0
badprovsyntax = badprovsyntax > 0
_all_metadata_keys = set(x for x in portage.auxdbkeys \
if not x.startswith("UNUSED_"))
-_all_metadata_keys.discard("CDEPEND")
_all_metadata_keys.update(Package.metadata_keys)
_all_metadata_keys = frozenset(_all_metadata_keys)
# Always round up to the next kB so that it doesn't show 0 kB when
# some small file still needs to be fetched.
mysize += 1024 - mysize % 1024
- mystr=str(mysize/1024)
+ mystr=str(mysize//1024)
mycount=len(mystr)
while (mycount > 3):
mycount-=3
auxdbkeys=[
'DEPEND', 'RDEPEND', 'SLOT', 'SRC_URI',
'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION',
- 'KEYWORDS', 'INHERITED', 'IUSE', 'CDEPEND',
+ 'KEYWORDS', 'INHERITED', 'IUSE', 'UNUSED_00',
'PDEPEND', 'PROVIDE', 'EAPI',
'PROPERTIES', 'DEFINED_PHASES', 'UNUSED_05', 'UNUSED_04',
'UNUSED_03', 'UNUSED_02', 'UNUSED_01',
# do not screw with this ordering. _eclasses_ needs to be last
auxdbkey_order=('DEPEND', 'RDEPEND', 'SLOT', 'SRC_URI',
'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION',
- 'KEYWORDS', 'IUSE', 'CDEPEND',
+ 'KEYWORDS', 'IUSE', 'UNUSED_00',
'PDEPEND', 'PROVIDE', 'EAPI', 'PROPERTIES', 'DEFINED_PHASES')
def __init__(self, label, auxdbkeys, **config):
self.update(kwargs)
def __iter__(self):
- for k, v in self.items():
+ for k, v in self.iteritems():
yield k
def __len__(self):
l = 0
- for i in self.items():
+ for i in self.iteritems():
l += 1
return l
return list(self)
def iteritems(self):
+ prefix = self._prefix
for k in self.allowed_keys:
try:
- yield (k, getattr(self, self._prefix + k))
+ yield (k, getattr(self, prefix + k))
except AttributeError:
pass
return list(self.iteritems())
def itervalues(self):
- for k, v in self.items():
+ for k, v in self.iteritems():
yield v
def values(self):
def popitem(self):
try:
- k, v = next(iter(self.items()))
+ k, v = self.iteritems().next()
except StopIteration:
raise KeyError('container is empty')
del self[k]
pass
def __str__(self):
- return str(dict(self.items()))
+ return str(dict(self.iteritems()))
if sys.hexversion >= 0x3000000:
items = iteritems
complete_eclass_entries = False
auxdbkey_order=('DEPEND', 'RDEPEND', 'SLOT', 'SRC_URI',
'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION',
- 'KEYWORDS', 'INHERITED', 'IUSE', 'CDEPEND',
+ 'KEYWORDS', 'INHERITED', 'IUSE', 'UNUSED_00',
'PDEPEND', 'PROVIDE', 'EAPI', 'PROPERTIES', 'DEFINED_PHASES')
autocommits = True
# Distributed under the terms of the GNU General Public License v2
# $Id$
+from __future__ import print_function
+
__all__ = ["bindbapi", "binarytree"]
import portage
for atom in (origcp, newcp):
if not isjustname(atom):
raise InvalidPackageName(str(atom))
- origcat = origcp.split("/")[0]
- mynewcat = newcp.split("/")[0]
+ mynewcat = catsplit(newcp)[0]
origmatches=self.dbapi.cp_list(origcp)
moves = 0
if not origmatches:
return moves
for mycpv in origmatches:
-
- mycpsplit = catpkgsplit(mycpv)
- mynewcpv = newcp + "-" + mycpsplit[2]
- if mycpsplit[3] != "r0":
- mynewcpv += "-" + mycpsplit[3]
- myoldpkg = mycpv.split("/")[1]
- mynewpkg = mynewcpv.split("/")[1]
+ mycpv_cp = portage.cpv_getkey(mycpv)
+ if mycpv_cp != origcp:
+ # Ignore PROVIDE virtual match.
+ continue
+ mynewcpv = mycpv.replace(mycpv_cp, str(newcp), 1)
+ myoldpkg = catsplit(mycpv)[1]
+ mynewpkg = catsplit(mynewcpv)[1]
if (mynewpkg != myoldpkg) and os.path.exists(self.getname(mynewcpv)):
writemsg(_("!!! Cannot update binary: Destination exists.\n"),
import codecs
import re, shutil, stat, errno, copy, subprocess
import logging
+import os as _os
import sys
import warnings
self._owners = self._owners_db(self)
def getpath(self, mykey, filename=None):
- rValue = os.path.join(self.root, VDB_PATH, mykey)
- if filename != None:
- rValue = os.path.join(rValue, filename)
+ # This is an optimized hotspot, so don't use unicode-wrapped
+ # os module and don't use os.path.join().
+ rValue = self.root + _os.sep + VDB_PATH + _os.sep + mykey
+ if filename is not None:
+ # If filename is always relative, we can do just
+ # rValue += _os.sep + filename
+ rValue = _os.path.join(rValue, filename)
return rValue
def cpv_exists(self, mykey):
if not origmatches:
return moves
for mycpv in origmatches:
- mycpsplit = catpkgsplit(mycpv)
- mynewcpv = newcp + "-" + mycpsplit[2]
- mynewcat = newcp.split("/")[0]
- if mycpsplit[3] != "r0":
- mynewcpv += "-" + mycpsplit[3]
- mycpsplit_new = catpkgsplit(mynewcpv)
+ mycpv_cp = cpv_getkey(mycpv)
+ if mycpv_cp != origcp:
+ # Ignore PROVIDE virtual match.
+ continue
+ mynewcpv = mycpv.replace(mycpv_cp, str(newcp), 1)
+ mynewcat = catsplit(newcp)[0]
origpath = self.getpath(mycpv)
if not os.path.exists(origpath):
continue
"""Stacks an array of dict-types into one array. Optionally merging or
overwriting matching key/value pairs for the dict[key]->string.
Returns a single dict."""
- final_dict = None
+ final_dict = {}
for mydict in dicts:
if not mydict:
continue
- if final_dict is None:
- final_dict = {}
for k, v in mydict.items():
if k in final_dict and (incremental or (k in incrementals)):
final_dict[k] += " " + v