I have USE=python3 for portage and PORTAGE_ELOG_SYSTEM="mail" in make.conf I encounter the following error during emerges: >>> Installing (3 of 7) dev-util/ctags-5.8 * Removing /usr/share/info Switching ctags to exuberant-ctags ... Switching ctags to exuberant-ctags ... * You can set the version to be started by /usr/bin/ctags through * the ctags eselect module. "man ctags.eselect" for details. Traceback (most recent call last): File "/usr/lib64/python3.1/email/message.py", line 269, in set_charset cte(self) TypeError: 'str' object is not callable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/emerge", line 42, in <module> retval = emerge_main() File "/usr/lib64/portage/pym/_emerge/main.py", line 1523, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/lib64/portage/pym/_emerge/actions.py", line 428, in action_build retval = mergetask.merge() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 841, in merge rval = self._merge() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1149, in _merge self._main_loop() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1289, in _main_loop self._poll_loop() File "/usr/lib64/portage/pym/_emerge/PollScheduler.py", line 134, in _poll_loop handler(f, event) File "/usr/lib64/portage/pym/_emerge/SpawnProcess.py", line 192, in _output_handler self._unregister_if_appropriate(event) File "/usr/lib64/portage/pym/_emerge/AbstractPollTask.py", line 27, in _unregister_if_appropriate self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/EbuildPhase.py", line 94, in _post_phase_exit self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/TaskSequence.py", line 44, in _task_exit_handler self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/CompositeTask.py", line 106, in _default_final_exit return self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/EbuildBuild.py", line 180, in _build_exit self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/CompositeTask.py", line 106, in _default_final_exit return self.wait() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1128, in _build_exit self._schedule() File "/usr/lib64/portage/pym/_emerge/PollScheduler.py", line 43, in _schedule return self._schedule_tasks() File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1318, in _schedule_tasks if q.schedule(): File "/usr/lib64/portage/pym/_emerge/SequentialTaskQueue.py", line 56, in schedule task.start() File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 24, in start self._start() File "/usr/lib64/portage/pym/_emerge/PackageMerge.py", line 44, in _start self.returncode = self.merge.merge() File "/usr/lib64/portage/pym/_emerge/MergeListItem.py", line 148, in merge retval = self._install_task.install() File "/usr/lib64/portage/pym/_emerge/EbuildBuild.py", line 271, in install rval = merge.execute() File "/usr/lib64/portage/pym/_emerge/EbuildMerge.py", line 27, in execute blockers=self.find_blockers) File "/usr/lib64/portage/pym/portage/__init__.py", line 7603, in merge mydbapi=mydbapi, prev_mtimes=prev_mtimes) File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 4393, in merge mydbapi=mydbapi, prev_mtimes=prev_mtimes) File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 4407, in _merge elog_process(self.mycpv, self.settings, phasefilter=filter_mergephases) File "/usr/lib64/portage/pym/portage/elog/__init__.py", line 165, in elog_process m.process(mysettings, str(key), mod_logentries, mod_fulllog) File "/usr/lib64/portage/pym/portage/elog/mod_mail.py", line 38, in process mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject, fulltext) File "/usr/lib64/portage/pym/portage/mail.py", line 43, in create_message mymessage = TextMessage(body) File "/usr/lib64/portage/pym/portage/mail.py", line 26, in TextMessage return MIMEText(_text, _charset="UTF-8") File "/usr/lib64/python3.1/email/mime/text.py", line 30, in __init__ self.set_payload(_text, _charset) File "/usr/lib64/python3.1/email/message.py", line 234, in set_payload self.set_charset(charset) File "/usr/lib64/python3.1/email/message.py", line 271, in set_charset self._payload = charset.body_encode(self._payload) File "/usr/lib64/python3.1/email/charset.py", line 380, in body_encode return email.base64mime.body_encode(string) File "/usr/lib64/python3.1/email/base64mime.py", line 94, in body_encode enc = b2a_base64(s[i:i + max_unencoded]).decode("ascii") TypeError: must be bytes or buffer, not str This appears to be Python issue #6521. I've attached a patch with appears to work around the bug while still maintaining functionality. BTW this is with python-3.1.1-r1
Created attachment 210470 [details, diff] Proposed patch/workaround
Created attachment 210471 [details, diff] Oops, that was the wrong patch
Thanks, this is in svn r14844.
This is fixed in 2.1.7.6 and 2.2_rc51.