from portage.util import writemsg
import portage
from portage import os
+from portage import _encodings
+from portage import _unicode_encode
import codecs
from portage.output import colorize
class EbuildBuild(CompositeTask):
log_path = self.settings.get("PORTAGE_LOG_FILE")
if log_path is not None:
- log_file = codecs.open(log_path, mode='a',
- encoding='utf_8', errors='replace')
+ log_file = codecs.open(_unicode_encode(log_path,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='a', encoding=_encodings['content'], errors='replace')
try:
log_file.write(msg)
finally:
import sys
import portage
from portage import os
+from portage import _encodings
+from portage import _unicode_encode
import codecs
from portage.elog.messages import eerror
elog_out = None
if self.logfile is not None:
if self.background:
- elog_out = codecs.open(self.logfile, mode='a',
- encoding='utf_8', errors='replace')
+ elog_out = codecs.open(_unicode_encode(self.logfile,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='a', encoding=_encodings['content'], errors='replace')
msg = "Fetch failed for '%s'" % (self.pkg.cpv,)
if self.logfile is not None:
msg += ", Log file:"
from portage.cache.mappings import slot_dict_class
import portage
from portage import os
+from portage import _encodings
+from portage import _unicode_encode
from itertools import izip
import fcntl
import codecs
os.path.basename(ebuild_path))
if eapi is None and \
'parse-eapi-ebuild-head' in settings.features:
- eapi = portage._parse_eapi_ebuild_head(codecs.open(ebuild_path,
- mode='r', encoding='utf_8', errors='replace'))
+ eapi = portage._parse_eapi_ebuild_head(
+ codecs.open(_unicode_encode(ebuild_path,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'],
+ errors='replace'))
if eapi is not None:
if not portage.eapi_is_supported(eapi):
fd_pipes[self._metadata_fd] = slave_fd
self._raw_metadata = []
- files.ebuild = os.fdopen(master_fd, 'r')
+ files.ebuild = os.fdopen(master_fd, 'rb')
self._reg_id = self.scheduler.register(files.ebuild.fileno(),
self._registered_events, self._output_handler)
self._registered = True
def _set_returncode(self, wait_retval):
SubProcess._set_returncode(self, wait_retval)
if self.returncode == os.EX_OK:
- metadata_lines = u''.join(unicode(chunk,
- encoding='utf_8', errors='replace')
+ metadata_lines = ''.join(unicode(chunk,
+ encoding=_encodings['repo.content'], errors='replace')
for chunk in self._raw_metadata).splitlines()
if len(portage.auxdbkeys) != len(metadata_lines):
# Don't trust bash's returncode if the