mandir="${ED}usr/share/man" \
sysconfdir="${ED}etc" \
${LOCAL_EXTRA_EINSTALL} \
+ ${MAKEOPTS} ${EXTRA_EMAKE} -j1 \
"$@" install
fi
${MAKE:-make} prefix="${ED}usr" \
mandir="${ED}usr/share/man" \
sysconfdir="${ED}etc" \
${LOCAL_EXTRA_EINSTALL} \
+ ${MAKEOPTS} ${EXTRA_EMAKE} -j1 \
"$@" install || die "einstall failed"
else
die "no Makefile found"
x.type_name != "ebuild":
continue
+ if x.operation == "uninstall":
+ continue
+
if not shown_verifying_msg:
shown_verifying_msg = True
self._status_msg("Verifying ebuild manifests")
# at the beginning, which annoy users, never
# spawn a prefetcher for the first package.
for pkg in self._mergelist[1:]:
+ if pkg.operation == "uninstall":
+ continue
prefetcher = self._create_prefetcher(pkg)
if prefetcher is not None:
self._task_queues.fetch.add(prefetcher)
self._dynamic_config._runtime_pkg_mask[
dep.parent]), noiselevel=-1)
else:
- self._dynamic_config._runtime_pkg_mask.setdefault(
- dep.parent, {})["missing dependency"] = \
- set([(dep.parent, dep.atom)])
- self._dynamic_config._need_restart = True
+ # Do not backtrack if only USE have to be changed in
+ # order to satisfy the dependency.
+ atom_without_use = dep.atom
+ if dep.atom.use:
+ atom_without_use = portage.dep.remove_slot(dep.atom)
+ if dep.atom.slot:
+ atom_without_use += ":" + dep.atom.slot
+ atom_without_use = portage.dep.Atom(atom_without_use)
+ dep_pkg, existing_node = \
+ self._select_package(dep.root, atom_without_use,
+ onlydeps=dep.onlydeps)
+ if dep_pkg is None:
+ self._dynamic_config._runtime_pkg_mask.setdefault(
+ dep.parent, {})["missing dependency"] = \
+ set([(dep.parent, dep.atom)])
+ self._dynamic_config._need_restart = True
return 0
# In some cases, dep_check will return deps that shouldn't
raise portage.exception.PermissionDenied(mypath)
ftype = []
for x in list:
+ if not isinstance(x, unicode):
+ x = unicode(x, errors='replace')
try:
if followSymlinks:
pathstat = os.stat(mypath+"/"+x)
try:
myf = codecs.open(fp, mode='r', encoding='utf_8', errors='replace')
try:
- d = self._parse_data(myf, cpv)
+ d = self._parse_data(myf.readlines(), cpv)
if '_mtime_' not in d:
# Backward compatibility with old cache
# that uses mtime mangling.
def _parse_data(self, data, cpv):
_hashed_re_match = self._hashed_re.match
- data = list(data)
d = {}
for line in data:
except OSError:
continue
for x in file_list:
+ if not isinstance(x, unicode):
+ x = unicode(x, errors='replace')
pf = None
if glep55:
returnme = []
for x in dir_list:
+ if not isinstance(x, unicode):
+ x = unicode(x, errors='replace')
if self._excluded_dirs.match(x) is not None:
continue
ps = pkgsplit(x)
else:
def listdir(p, **kwargs):
try:
- return [x for x in os.listdir(p) \
+ return [isinstance(x, unicode) and x or \
+ unicode(x, errors='replace') for x in os.listdir(p) \
if os.path.isdir(os.path.join(p, x))]
except EnvironmentError, e:
if e.errno == PermissionDenied.errno:
# Distributed under the terms of the GNU General Public License v2
# $Id$
+import codecs
import os
import stat
from portage.localization import _
# once, which may be expensive due to digging in child classes.
func = self.lineParser
for fn in RecursiveFileLoader(self.fname):
- f = open(fn)
+ f = codecs.open(fn, mode='r', errors='replace')
for line_num, line in enumerate(f):
func(line, line_num, data, errors)
return (data, errors)
for x in mylines:
#the split/join thing removes leading and trailing whitespace, and converts any whitespace in the line
#into single spaces.
- myline=" ".join(x.split())
+ myline = u' '.join(x.split())
if not len(myline):
continue
if myline[0]=="#":
os.path.join(myfilename, f), recursive))
else:
try:
- myfile = codecs.open(myfilename, mode='r', errors='replace')
+ myfile = codecs.open(myfilename, mode='r',
+ encoding=sys.getdefaultencoding(), errors='replace')
mylines = myfile.readlines()
myfile.close()
except IOError, e: