Portage seems to have troubles regarding overlays with nonASCII characters in its path. I have for example created overlay in my $HOME that is in the directory "/$HOME/počítač/portage" I have so far discovered that when you have such overlay in PORTDIR_OVERLAY gcc-config tells you, it cannot detect CHOST variable for example (see linked forum thread). As I was advised in the forums, I tried to debug gcc-config script and eventualy came to these command, that seems to be the main error: alwaid2 ctibor # env -i portageq envvar CHOST Traceback (most recent call last): File "/usr/bin/portageq", line 880, in <module> main() File "/usr/bin/portageq", line 861, in main retval = function(args) File "/usr/bin/portageq", line 700, in envvar print(portage.settings[arg]) File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 37, in __getitem__ return object.__getattribute__(self, '_get_target')()[key] File "/usr/lib64/portage/pym/portage/__init__.py", line 628, in _get_target return _get_legacy_global(name) File "/usr/lib64/portage/pym/portage/_legacy_globals.py", line 34, in _get_legacy_global portage.db = portage.create_trees(**kwargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 510, in create_trees env=env, eprefix=eprefix) File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 31, in __call__ return result(*args, **kwargs) File "/usr/lib64/portage/pym/portage/package/ebuild/config.py", line 569, in __init__ self._use_manager = UseManager(self.repositories, profiles_complex, abs_user_config, user_config=local_config) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 52, in __init__ self._repo_usemask_dict = self._parse_repository_files_to_dict_of_tuples("use.mask", repositories) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 125, in _parse_repository_files_to_dict_of_tuples ret[repo.name] = self._parse_file_to_tuple(os.path.join(repo.location, "profiles", file_name)) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 71, in _parse_file_to_tuple eapi = read_corresponding_eapi_file(file_name) File "/usr/lib64/portage/pym/portage/util/__init__.py", line 390, in read_corresponding_eapi_file f = open(eapi_file, "r") UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-16: ordinal not in range(128) ==================================== Error in portage.process.run_exitfuncs File "/usr/lib64/portage/pym/portage/process.py", line 115, in run_exitfuncs func(*targs, **kargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 479, in portageexit if data.secpass > 1 and os.environ.get("SANDBOX_ON") != "1": File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 67, in __gt__ return object.__getattribute__(self, '_get_target')() > other File "/usr/lib64/portage/pym/portage/data.py", line 200, in _get_target return _get_global(object.__getattribute__(self, '_name')) File "/usr/lib64/portage/pym/portage/data.py", line 89, in _get_global portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid File "/usr/lib64/portage/pym/portage/data.py", line 154, in _get_global v = portage.settings.get(env_key) File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 22, in __getattribute__ result = object.__getattribute__(self, '_get_target')() File "/usr/lib64/portage/pym/portage/__init__.py", line 628, in _get_target return _get_legacy_global(name) File "/usr/lib64/portage/pym/portage/_legacy_globals.py", line 34, in _get_legacy_global portage.db = portage.create_trees(**kwargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 510, in create_trees env=env, eprefix=eprefix) File "/usr/lib64/portage/pym/portage/package/ebuild/config.py", line 569, in __init__ self._use_manager = UseManager(self.repositories, profiles_complex, abs_user_config, user_config=local_config) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 52, in __init__ self._repo_usemask_dict = self._parse_repository_files_to_dict_of_tuples("use.mask", repositories) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 125, in _parse_repository_files_to_dict_of_tuples ret[repo.name] = self._parse_file_to_tuple(os.path.join(repo.location, "profiles", file_name)) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 71, in _parse_file_to_tuple eapi = read_corresponding_eapi_file(file_name) File "/usr/lib64/portage/pym/portage/util/__init__.py", line 390, in read_corresponding_eapi_file f = open(eapi_file, "r") 'ascii' codec can't encode characters in position 15-16: ordinal not in range(128) ==================================== Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/lib64/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/usr/lib64/portage/pym/portage/process.py", line 126, in run_exitfuncs exec("raise exc_info[0], exc_info[1], exc_info[2]") File "/usr/lib64/portage/pym/portage/process.py", line 115, in run_exitfuncs func(*targs, **kargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 479, in portageexit if data.secpass > 1 and os.environ.get("SANDBOX_ON") != "1": File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 67, in __gt__ return object.__getattribute__(self, '_get_target')() > other File "/usr/lib64/portage/pym/portage/data.py", line 200, in _get_target return _get_global(object.__getattribute__(self, '_name')) File "/usr/lib64/portage/pym/portage/data.py", line 89, in _get_global portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid File "/usr/lib64/portage/pym/portage/data.py", line 154, in _get_global v = portage.settings.get(env_key) File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 22, in __getattribute__ result = object.__getattribute__(self, '_get_target')() File "/usr/lib64/portage/pym/portage/__init__.py", line 628, in _get_target return _get_legacy_global(name) File "/usr/lib64/portage/pym/portage/_legacy_globals.py", line 34, in _get_legacy_global portage.db = portage.create_trees(**kwargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 510, in create_trees env=env, eprefix=eprefix) File "/usr/lib64/portage/pym/portage/package/ebuild/config.py", line 569, in __init__ self._use_manager = UseManager(self.repositories, profiles_complex, abs_user_config, user_config=local_config) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 52, in __init__ self._repo_usemask_dict = self._parse_repository_files_to_dict_of_tuples("use.mask", repositories) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 125, in _parse_repository_files_to_dict_of_tuples ret[repo.name] = self._parse_file_to_tuple(os.path.join(repo.location, "profiles", file_name)) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 71, in _parse_file_to_tuple eapi = read_corresponding_eapi_file(file_name) File "/usr/lib64/portage/pym/portage/util/__init__.py", line 390, in read_corresponding_eapi_file f = open(eapi_file, "r") UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-16: ordinal not in range(128) Error in sys.exitfunc: Traceback (most recent call last): File "/usr/lib64/python2.7/atexit.py", line 24, in _run_exitfuncs func(*targs, **kargs) File "/usr/lib64/portage/pym/portage/process.py", line 126, in run_exitfuncs exec("raise exc_info[0], exc_info[1], exc_info[2]") File "/usr/lib64/portage/pym/portage/process.py", line 115, in run_exitfuncs func(*targs, **kargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 479, in portageexit if data.secpass > 1 and os.environ.get("SANDBOX_ON") != "1": File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 67, in __gt__ return object.__getattribute__(self, '_get_target')() > other File "/usr/lib64/portage/pym/portage/data.py", line 200, in _get_target return _get_global(object.__getattribute__(self, '_name')) File "/usr/lib64/portage/pym/portage/data.py", line 89, in _get_global portage_uid = pwd.getpwnam(_get_global('_portage_username')).pw_uid File "/usr/lib64/portage/pym/portage/data.py", line 154, in _get_global v = portage.settings.get(env_key) File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 22, in __getattribute__ result = object.__getattribute__(self, '_get_target')() File "/usr/lib64/portage/pym/portage/__init__.py", line 628, in _get_target return _get_legacy_global(name) File "/usr/lib64/portage/pym/portage/_legacy_globals.py", line 34, in _get_legacy_global portage.db = portage.create_trees(**kwargs) File "/usr/lib64/portage/pym/portage/__init__.py", line 510, in create_trees env=env, eprefix=eprefix) File "/usr/lib64/portage/pym/portage/package/ebuild/config.py", line 569, in __init__ self._use_manager = UseManager(self.repositories, profiles_complex, abs_user_config, user_config=local_config) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 52, in __init__ self._repo_usemask_dict = self._parse_repository_files_to_dict_of_tuples("use.mask", repositories) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 125, in _parse_repository_files_to_dict_of_tuples ret[repo.name] = self._parse_file_to_tuple(os.path.join(repo.location, "profiles", file_name)) File "/usr/lib64/portage/pym/portage/package/ebuild/_config/UseManager.py", line 71, in _parse_file_to_tuple eapi = read_corresponding_eapi_file(file_name) File "/usr/lib64/portage/pym/portage/util/__init__.py", line 390, in read_corresponding_eapi_file f = open(eapi_file, "r") UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-16: ordinal not in range(128) I have ran into these problems with nonASCII paths in overlay with autounmask too. See bug #262424. In fact, the reason it reappeared for me was that autounmask is not needed anymore and I tried to reenable my local overlay which is handy when you need quick way to work with ebuilds from bugzilla etc. Reproducible: Always Steps to Reproduce: 1. Create overlay with non ASCII name in its path and insert it into the PORTDIR_OVERLAY 2. Try to run gcc-config -l or start the distccd daemon and see errors Actual Results: gcc-config, distcc rc-script don't work properly, portage $CHOST can't be found.
Created attachment 298683 [details] emerge --info
This should solve the particular error that you got: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=31b4d0cb3a183e29fe0d745187470ded37ffd433 Make sure that your file names are encoded as UTF-8, because that's required since bug 382199.
This is fixed in 2.1.10.45 and 2.2.0_alpha85.