Re: [gentoo-portage-dev] bin/isolated-functions.sh USERLAND setting
2022-07-28 17:47 UTCに、Fabian Groffen は書いた: > bin/isolated-functions.sh does the following bit: > > if [[ -z ${USERLAND} ]] ; then >case $(uname -s) in >*BSD|DragonFly) >export USERLAND="BSD" >;; >*) >export USERLAND="GNU" >;; >esac > fi > > (after which it uses USERLAND for a single purpose, to export XARGS to > either GNU '[g]xargs -r', or BSD 'xargs') > > This bit is problematic for Prefix, because Prefix may run on *BSD, but > use USERLAND=GNU. But this code starts with 'if [[ -z ${USERLAND} ]]', so it should not be run when USERLAND="GNU". USERLAND="GNU" is set in make.defaults, which is parsed by Portage early (at Python side) and these values are passed by Portage to ebuild.sh subprocess.
Re: [gentoo-portage-dev] [PATCH] emake: explicitly set SHELL
2022-07-26 07:03 UTCに、Florian Schmaus は書いた: > But then I wondered if "make SHELL=$BROOT/bin/sh" wouldn't override > explicitly set SHELL values in Makefiles. Assume a package has > > SHELL = /bin/zsh > > in one of its Makefiles. Then emake would reset this to 'sh'. Which > appears like it could cause build issues. > > If this is the case, then I am not sure what we can do about it. It > appears fragile, if not impossible, to ask 'make' which value for SHELL > it would assume, so that emake could adjust the path. Another option > could be that affected packages define a variable in their ebuild, e.g. > EMAKE_SHELL="zsh", which emake could extend with BROOT before passing > the resulting value as SHELL to make. If there was such package, it could just override SHELL on emake invocation: src_compile() { emake SHELL="${BROOT}/bin/zsh" # Or: emake SHELL="$(type -P zsh)" }
Re: [gentoo-portage-dev] [PATCH] install-qa-check.d: Add a QA check for installing xattrs
Not relying on preservation of xatrs would be a gentoo.git tree policy. If such policy is created, new QA check file would belong in gentoo.git repository in metadata/install-qa-check.d directory, not in Portage repository. (And there is no need to delete any xattr-related code in Portage in future.) Creation of such policy would need discussion on gentoo-dev mailing list and/or formal vote in QA team.
[gentoo-portage-dev] [PATCH] emerge --verbose --quiet-repo-display: Delete deprecated code
[[[ emerge --verbose --quiet-repo-display: Delete deprecated code. Use portage.repository.config.RepoConfigLoader.__iter__() instead of deprecated PORTDIR and PORTDIR_OVERLAY. 1 call to deprecated portage.repository.config.RepoConfigLoader.mainRepoLocation() has been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/_emerge/resolver/output_helpers.py +++ pym/_emerge/resolver/output_helpers.py @@ -39,24 +39,13 @@ self._unknown_repo = False repo_paths = set() for root_config in roots.values(): - portdir = root_config.settings.get(PORTDIR) - if portdir: -repo_paths.add(portdir) - overlays = root_config.settings.get(PORTDIR_OVERLAY) - if overlays: -repo_paths.update(shlex_split(overlays)) + for repo in root_config.settings.repositories: +repo_paths.add(repo.location) repo_paths = list(repo_paths) self._repo_paths = repo_paths self._repo_paths_real = [ os.path.realpath(repo_path) \ for repo_path in repo_paths ] - # pre-allocate index for PORTDIR so that it always has index 0. - for root_config in roots.values(): - portdb = root_config.trees[porttree].dbapi - portdir = portdb.repositories.mainRepoLocation() - if portdir: -self.repoStr(portdir) - def repoStr(self, repo_path_real): real_index = -1 if repo_path_real: @@ -80,7 +69,7 @@ shown_repos = self._shown_repos unknown_repo = self._unknown_repo if shown_repos or self._unknown_repo: - output.append(Portage tree and overlays:\n) + output.append(Repositories:\n) show_repo_paths = list(shown_repos) for repo_path, repo_index in shown_repos.items(): show_repo_paths[repo_index] = repo_path signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] portageq pquery: Search ebuilds in all repositories be default
[[[ portageq pquery: Search ebuilds in all repositories be default. --all-repos option is no longer supported. 1 call to deprecated portage.repository.config.RepoConfigLoader.mainRepo() function has been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- bin/portageq +++ bin/portageq @@ -1075,14 +1075,10 @@ herds.extend(x.split(,)) xml_matchers.append(HerdMatcher(herds)) - repos = [] - if opts.all_repos: - repos.extend(portdb.repositories.get_repo_for_location(location) - for location in portdb.porttrees) - elif opts.repo is not None: - repos.append(portdb.repositories[opts.repo]) + if opts.repo is not None: + repos = [portdb.repositories[opts.repo]] else: - repos.append(portdb.repositories.mainRepo()) + repos = list(portdb.repositories) if not atoms: names = None @@ -1220,12 +1216,8 @@ }, { longopt: --repo, - help: repo to use (default is PORTDIR if omitted) + help: repository to use (all repositories are used by default) }, -{ - longopt: --all-repos, - help: search all repos -} ) ), ( signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] portage.dbapi.bintree.binarytree: Delete PORTDIR-reliant microoptimization in index of binary packages
[[[ portage.dbapi.bintree.binarytree: Delete PORTDIR-reliant microoptimization in index of binary packages. This microoptimization cannot work when no main repository exists. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/portage/dbapi/bintree.py +++ pym/portage/dbapi/bintree.py @@ -360,16 +360,6 @@ repository : , } - # It is especially important to populate keys like - # repository that save space when entries can - # inherit them from the header. If an existing - # pkgindex header already defines these keys, then - # they will appropriately override our defaults. - main_repo = self.settings.repositories.mainRepo() - if main_repo is not None and not main_repo.missing_repo_name: -self._pkgindex_default_header_data[repository] = \ - main_repo.name - self._pkgindex_translated_keys = ( (DESCRIPTION , DESC), (repository, REPO), signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] portage.tests.dbapi.test_portdb_cache: Delete deprecated code.
[[[ portage.tests.dbapi.test_portdb_cache: Delete deprecated code. 9 calls to deprecated portage.repository.config.RepoConfigLoader.mainRepoLocation() function have been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/portage/tests/dbapi/test_portdb_cache.py +++ pym/portage/tests/dbapi/test_portdb_cache.py @@ -47,7 +47,7 @@ (lambda: not os.path.exists(md5_cache_dir),), python_cmd + (textwrap.dedent( import os, sys, portage -if portage.portdb.repositories.mainRepoLocation() in portage.portdb._pregen_auxdb: +if portage.portdb.repositories['test_repo'].location in portage.portdb._pregen_auxdb: sys.exit(1) ),), @@ -56,13 +56,13 @@ (lambda: os.path.exists(md5_cache_dir),), python_cmd + (textwrap.dedent( import os, sys, portage -if portage.portdb.repositories.mainRepoLocation() not in portage.portdb._pregen_auxdb: +if portage.portdb.repositories['test_repo'].location not in portage.portdb._pregen_auxdb: sys.exit(1) ),), python_cmd + (textwrap.dedent( import os, sys, portage from portage.cache.flat_hash import md5_database -if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories.mainRepoLocation()], md5_database): +if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories['test_repo'].location], md5_database): sys.exit(1) ),), @@ -73,13 +73,13 @@ (lambda: os.path.exists(md5_cache_dir),), python_cmd + (textwrap.dedent( import os, sys, portage -if portage.portdb.repositories.mainRepoLocation() not in portage.portdb._pregen_auxdb: +if portage.portdb.repositories['test_repo'].location not in portage.portdb._pregen_auxdb: sys.exit(1) ),), python_cmd + (textwrap.dedent( import os, sys, portage from portage.cache.flat_hash import md5_database -if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories.mainRepoLocation()], md5_database): +if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories['test_repo'].location], md5_database): sys.exit(1) ),), @@ -90,13 +90,13 @@ (cache-formats = pms md5-dict, layout_conf_path,, (portage_python, -b, -Wd, -Wi::DeprecationWarning, -c) + (textwrap.dedent( import os, sys, portage -if portage.portdb.repositories.mainRepoLocation() not in portage.portdb._pregen_auxdb: +if portage.portdb.repositories['test_repo'].location not in portage.portdb._pregen_auxdb: sys.exit(1) ),), (portage_python, -b, -Wd, -Wi::DeprecationWarning, -c) + (textwrap.dedent( import os, sys, portage from portage.cache.metadata import database as pms_database -if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories.mainRepoLocation()], pms_database): +if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories['test_repo'].location], pms_database): sys.exit(1) ),), @@ -105,13 +105,13 @@ (BASH_BINARY, -c, rm %s % portage._shell_quote(layout_conf_path)), python_cmd + (textwrap.dedent( import os, sys, portage -if portage.portdb.repositories.mainRepoLocation() not in portage.portdb._pregen_auxdb: +if portage.portdb.repositories['test_repo'].location not in portage.portdb._pregen_auxdb: sys.exit(1) ),), python_cmd + (textwrap.dedent( import os, sys, portage from portage.cache.flat_hash import md5_database -if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories.mainRepoLocation()], md5_database): +if not isinstance(portage.portdb._pregen_auxdb[portage.portdb.repositories['test_repo'].location], md5_database): sys.exit(1) ),), ) signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] portage.tests.glsa.test_security_set: Delete deprecated code
[[[ portage.tests.glsa.test_security_set: Delete deprecated code. 1 call to deprecated portage.repository.config.RepoConfigLoader.mainRepoLocation() function has been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/portage/tests/glsa/test_security_set.py +++ pym/portage/tests/glsa/test_security_set.py @@ -1,4 +1,4 @@ -# Copyright 2013 Gentoo Foundation +# Copyright 2013-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from __future__ import unicode_literals @@ -129,8 +129,7 @@ try: portdb = playground.trees[playground.eroot][porttree].dbapi - glsa_dir = os.path.join( -portdb.repositories.mainRepoLocation(), 'metadata', 'glsa') + glsa_dir = os.path.join(portdb.repositories['test_repo'].location, 'metadata', 'glsa') portage.util.ensure_dirs(glsa_dir) for glsa in glsas: with io.open(os.path.join(glsa_dir, signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] emerge --info: Check metadata/timestamp.chk in all repositories
New patch without os.path.isfile(). [[[ emerge --info: Check metadata/timestamp.chk in all repositories. 1 use of deprecated PORTDIR has been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/_emerge/actions.py +++ pym/_emerge/actions.py @@ -1452,6 +1452,7 @@ vardb = trees[eroot][vartree].dbapi portdb = trees[eroot]['porttree'].dbapi bindb = trees[eroot][bintree].dbapi + repos = portdb.settings.repositories for x in myfiles: any_match = False cp_exists = bool(vardb.match(x.cp)) @@ -1554,13 +1555,10 @@ line += ,%10d free % (vm_info[swap.free] // 1024,) append(line) - lastSync = portage.grabfile(os.path.join( - settings[PORTDIR], metadata, timestamp.chk)) - if lastSync: - lastSync = lastSync[0] - else: - lastSync = Unknown - append(Timestamp of tree: %s % (lastSync,)) + for repo in repos: + last_sync = portage.grabfile(os.path.join(repo.location, metadata, timestamp.chk)) + if last_sync: + append(Timestamp of repository %s: %s % (repo.name, last_sync[0])) # Searching contents for the /bin/sh provider is somewhat # slow. Therefore, use the basename of the symlink target @@ -1707,7 +1705,6 @@ append(%s %s % \ ((cp + :).ljust(cp_max_len + 1), versions)) - repos = portdb.settings.repositories append(Repositories:\n) for repo in repos: append(repo.info_string()) signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] emerge --info: Modernize output of configuration of repositories
[[[ emerge --info: Modernize output of configuration of repositories. - Always print detailed configuration of repositories. - Always skip PORTAGE_REPOSITORIES variable. - Always skip deprecated PORTDIR, PORTDIR_OVERLAY and SYNC variables. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/_emerge/actions.py +++ pym/_emerge/actions.py @@ -1713,13 +1713,9 @@ def action_info(settings, trees, myopts, myfiles): ((cp + :).ljust(cp_max_len + 1), versions)) repos = portdb.settings.repositories - if --verbose in myopts: - append(Repositories:\n) - for repo in repos: - append(repo.info_string()) - else: - append(Repositories: %s % \ - .join(repo.name for repo in repos)) + append(Repositories:\n) + for repo in repos: + append(repo.info_string()) installed_sets = sorted(s for s in root_config.sets['selected'].getNonAtoms() if s.startswith(SETPREFIX)) @@ -1732,8 +1728,8 @@ def action_info(settings, trees, myopts, myfiles): myvars = list(settings) else: myvars = ['GENTOO_MIRRORS', 'CONFIG_PROTECT', 'CONFIG_PROTECT_MASK', - 'PORTDIR', 'DISTDIR', 'PKGDIR', 'PORTAGE_TMPDIR', - 'PORTDIR_OVERLAY', 'PORTAGE_BUNZIP2_COMMAND', + 'DISTDIR', 'PKGDIR', 'PORTAGE_TMPDIR', + 'PORTAGE_BUNZIP2_COMMAND', 'PORTAGE_BZIP2_COMMAND', 'USE', 'CHOST', 'CFLAGS', 'CXXFLAGS', 'ACCEPT_KEYWORDS', 'ACCEPT_LICENSE', 'FEATURES', @@ -1745,11 +1741,18 @@ def action_info(settings, trees, myopts, myfiles): 'PORTAGE_BZIP2_COMMAND' : 'bzip2', } - myvars = portage.util.unique_array(myvars) + skipped_vars = ['PORTAGE_REPOSITORIES'] + # Deprecated variables + skipped_vars.extend(('PORTDIR', 'PORTDIR_OVERLAY', 'SYNC')) + + myvars = set(myvars) + myvars.difference_update(skipped_vars) + myvars = sorted(myvars) + use_expand = settings.get('USE_EXPAND', '').split() use_expand.sort() unset_vars = [] - myvars.sort() + for k in myvars: v = settings.get(k) if v is not None: signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] emerge --info: Always print ::repository
[[[ emerge --info: Always print ::repository. 1 call to deprecated portage.repository.config.RepoConfigLoader.mainRepo() function has been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/_emerge/actions.py +++ pym/_emerge/actions.py @@ -42,7 +42,7 @@ from portage.const import GLOBAL_CONFIG_PATH, VCS_DIRS, _DEPCLEAN_LIB_CHECK_DEFA from portage.const import SUPPORTED_BINPKG_FORMATS, TIMESTAMP_FORMAT from portage.dbapi.dep_expand import dep_expand from portage.dbapi._expand_new_virt import expand_new_virt -from portage.dep import Atom +from portage.dep import Atom, _repo_separator, _slot_separator from portage.eclass_cache import hashed_path from portage.exception import InvalidAtom, InvalidData, ParseError from portage.output import blue, colorize, create_color_func, darkgreen, \ @@ -1668,9 +1668,6 @@ def action_info(settings, trees, myopts, myfiles): myvars = sorted(set(atoms)) - main_repo = portdb.repositories.mainRepo() - if main_repo is not None: - main_repo = main_repo.name cp_map = {} cp_max_len = 0 @@ -1692,12 +1689,10 @@ def action_info(settings, trees, myopts, myfiles): if len(matched_cp) cp_max_len: cp_max_len = len(matched_cp) repo = vardb.aux_get(cpv, [repository])[0] -if repo == main_repo: - repo_suffix = -elif not repo: - repo_suffix = ::unknown repository +if repo: + repo_suffix = _repo_separator + repo else: - repo_suffix = :: + repo + repo_suffix = _repo_separator + unknown repository if matched_cp == orig_atom.cp: provide_suffix = @@ -1826,13 +1821,13 @@ def action_info(settings, trees, myopts, myfiles): if pkg_type == installed: append(\n%s was built with the following: % \ - colorize(INFORM, str(pkg.cpv))) + colorize(INFORM, str(pkg.cpv + _repo_separator + pkg.repo))) elif pkg_type == ebuild: -append(\n%s would be build with the following: % \ - colorize(INFORM, str(pkg.cpv))) +append(\n%s would be built with the following: % \ + colorize(INFORM, str(pkg.cpv + _repo_separator + pkg.repo))) elif pkg_type == binary: append(\n%s (non-installed binary) was built with the following: % \ - colorize(INFORM, str(pkg.cpv))) + colorize(INFORM, str(pkg.cpv + _repo_separator + pkg.repo))) append('%s' % pkg_use_display(pkg, myopts)) if pkg_type == installed: @@ -2015,10 +2010,10 @@ def action_uninstall(settings, trees, ldpath_mtimes, atom = = + atom + - + \ portage.versions.cpv_getversion(cpv) if ext_atom.slot: - atom += : + ext_atom.slot + atom += _slot_separator + ext_atom.slot require_metadata = True if ext_atom.repo: - atom += :: + ext_atom.repo + atom += _repo_separator + ext_atom.repo require_metadata = True atom = Atom(atom, allow_repo=True) signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Almost always print ::repository
[[[ Almost always print ::repository in list of packages for installation. --verbose-main-repo-display option is no longer supported. 3 calls to deprecated portage.repository.config.RepoConfigLoader.mainRepo() function have been deleted. ]]] -- Arfrever Frehtes Taifersar Arahesis --- man/emerge.1 +++ man/emerge.1 @@ -897,9 +897,6 @@ Make slot conflicts more verbose. Note that this may in some cases output hundreds of packages for slot conflicts. .TP -.BR \-\-verbose\-main\-repo\-display -In the package merge list display, print ::repository even for main repository. -.TP .BR \-\-verbose\-slot\-rebuilds [ y | n ] Turns on/off the extra emerge output to list which packages are causing rebuilds. The default is set to y (on). --- pym/_emerge/depgraph.py +++ pym/_emerge/depgraph.py @@ -4293,14 +4293,9 @@ child = None all_parents = self._dynamic_config._parent_atoms graph = self._dynamic_config.digraph - verbose_main_repo_display = --verbose-main-repo-display in \ - self._frozen_config.myopts def format_pkg(pkg): - pkg_name = %s % (pkg.cpv,) - if verbose_main_repo_display or pkg.repo != \ -pkg.root_config.settings.repositories.mainRepo().name: -pkg_name += _repo_separator + pkg.repo + pkg_name = %s%s%s % (pkg.cpv, _repo_separator, pkg.repo) return pkg_name if target_atom is not None and isinstance(node, Package): --- pym/_emerge/main.py +++ pym/_emerge/main.py @@ -50,7 +50,6 @@ --tree, --unordered-display, --update, ---verbose-main-repo-display, ] shortmapping={ --- pym/_emerge/resolver/output.py +++ pym/_emerge/resolver/output.py @@ -387,9 +387,7 @@ if old_pkg.slot != old_pkg.sub_slot or \ old_pkg.slot == pkg.slot and old_pkg.sub_slot != pkg.sub_slot: key += / + old_pkg.sub_slot - if not self.quiet_repo_display and (self.verbose_main_repo_display or - self.portdb.repositories.mainRepo() is None or - any(x.repo != self.portdb.repositories.mainRepo().name for x in myoldbest + [pkg])): + if not self.quiet_repo_display: key += _repo_separator + old_pkg.repo versions.append(key) myoldbest_str = blue([+, .join(versions)+]) @@ -422,9 +420,7 @@ @param pkg_info: dictionary @rtype string - if not self.quiet_repo_display and (self.verbose_main_repo_display or - self.portdb.repositories.mainRepo() is None or - any(x.repo != self.portdb.repositories.mainRepo().name for x in pkg_info.oldbest_list + [pkg])): + if not self.quiet_repo_display: pkg_str += _repo_separator + pkg.repo return pkg_str @@ -819,7 +815,6 @@ # and disable the entire repo display in this case. repoadd_set = set() - self.verbose_main_repo_display = --verbose-main-repo-display in depgraph._frozen_config.myopts self.restrict_fetch_list = {} for mylist_index in range(len(mylist)): signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] emerge --info: Modernize output of configuration of repositories
2014-12-09 09:50 Alexander Berntsen napisał(a): On 08/12/14 20:04, Arfrever Frehtes Taifersar Arahesis wrote: + for skipped_var in skipped_vars: + try: + myvars.remove(skipped_var) +except ValueError: + pass + wat It is deleting elements from a list. mylist = [ab, cd, ef] mylist ['ab', 'cd', 'ef'] mylist.remove(cd) mylist ['ab', 'ef'] mylist.remove(cd) Traceback (most recent call last): File stdin, line 1, in module ValueError: list.remove(x): x not in list -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Almost always print ::repository
2014-12-09 09:30 Alexander Berntsen napisał(a): As for the patch itself: I like the idea, but where is this requested? It is part of work for deleting any remaining uses of deprecated PORTDIR, PORTDIR_OVERLAY and SYNC variables, mainRepo() and mainRepoLocation() functions, main-repo attribute. Also, I would prefer to remove the old option entirely. OK. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] emerge --info: Modernize output of configuration of repositories
[[[ emerge --info: Modernize output of configuration of repositories. - Always print detailed configuration of repositories. - Always skip PORTAGE_REPOSITORIES variable. - Always skip deprecated PORTDIR, PORTDIR_OVERLAY and SYNC variables. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/_emerge/actions.py +++ pym/_emerge/actions.py @@ -1707,13 +1707,9 @@ ((cp + :).ljust(cp_max_len + 1), versions)) repos = portdb.settings.repositories - if --verbose in myopts: - append(Repositories:\n) - for repo in repos: - append(repo.info_string()) - else: - append(Repositories: %s % \ - .join(repo.name for repo in repos)) + append(Repositories:\n) + for repo in repos: + append(repo.info_string()) installed_sets = sorted(s for s in root_config.sets['selected'].getNonAtoms() if s.startswith(SETPREFIX)) @@ -1726,8 +1722,8 @@ myvars = list(settings) else: myvars = ['GENTOO_MIRRORS', 'CONFIG_PROTECT', 'CONFIG_PROTECT_MASK', - 'PORTDIR', 'DISTDIR', 'PKGDIR', 'PORTAGE_TMPDIR', - 'PORTDIR_OVERLAY', 'PORTAGE_BUNZIP2_COMMAND', + 'DISTDIR', 'PKGDIR', 'PORTAGE_TMPDIR', + 'PORTAGE_BUNZIP2_COMMAND', 'PORTAGE_BZIP2_COMMAND', 'USE', 'CHOST', 'CFLAGS', 'CXXFLAGS', 'ACCEPT_KEYWORDS', 'ACCEPT_LICENSE', 'FEATURES', @@ -1735,6 +1731,16 @@ myvars.extend(portage.util.grabfile(settings[PORTDIR]+/profiles/info_vars)) + skipped_vars = ['PORTAGE_REPOSITORIES', '_'] + # Deprecated variables + skipped_vars.extend(('PORTDIR', 'PORTDIR_OVERLAY', 'SYNC')) + + for skipped_var in skipped_vars: + try: + myvars.remove(skipped_var) + except ValueError: + pass + myvars_ignore_defaults = { 'PORTAGE_BZIP2_COMMAND' : 'bzip2', } signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] [PATCH] Sort PORTAGE_ARCHLIST
Currently PORTAGE_ARCHLIST has random value: $ bin/portageq envvar PORTAGE_ARCHLIST x64-macos x86-linux amd64-fbsd ppc x86 x86-macos x86-winnt hppa alpha sparc64-solaris x86-freebsd ppc-openbsd x86-solaris s390 m68k mips ppc64-linux ia64-linux x64-openbsd amd64-linux x86-cygwin amd64 sparc64-freebsd ppc64 ia64-hpux sparc-solaris ia64 ppc-macos x86-interix x86-openbsd arm arm64 hppa-hpux arm-linux sparc x64-solaris m68k-mint sh x86-netbsd sparc-fbsd ppc-aix x86-fbsd x64-freebsd $ bin/portageq envvar PORTAGE_ARCHLIST arm-linux sparc64-solaris x86-openbsd ppc64-linux ppc-macos x64-macos sparc-solaris ppc mips hppa-hpux ppc-aix x86-linux sparc x86-macos x86 ia64-hpux x86-fbsd arm64 x64-freebsd ppc64 amd64 x86-winnt alpha x86-freebsd sh x86-solaris sparc64-freebsd m68k amd64-fbsd s390 x64-openbsd ia64 x86-netbsd amd64-linux ppc-openbsd arm x86-interix ia64-linux x64-solaris sparc-fbsd hppa m68k-mint x86-cygwin $ bin/portageq envvar PORTAGE_ARCHLIST x86-netbsd x86-solaris x86-winnt x64-solaris amd64 x86-fbsd x86-interix m68k-mint x64-macos arm64 hppa x86-freebsd amd64-fbsd m68k x86-openbsd ppc sparc x64-freebsd ppc-aix ia64 x86 sparc-solaris x86-macos arm ppc-openbsd alpha sh mips ppc64 sparc64-solaris sparc-fbsd ppc64-linux ia64-linux sparc64-freebsd arm-linux hppa-hpux amd64-linux s390 x64-openbsd ia64-hpux x86-linux x86-cygwin ppc-macos $ bin/portageq envvar PORTAGE_ARCHLIST sparc64-solaris arm-linux x86-openbsd x86-macos ia64-linux x86-fbsd ppc64-linux hppa amd64 x64-macos ia64-hpux hppa-hpux ia64 sparc-solaris sparc-fbsd amd64-fbsd alpha mips x86-cygwin x86-interix ppc64 amd64-linux x86-freebsd m68k s390 ppc-openbsd x64-freebsd ppc-macos sparc64-freebsd arm ppc-aix x86-netbsd x86-solaris x64-openbsd x86-winnt sparc x86-linux m68k-mint x64-solaris sh x86 ppc arm64 I suggest to make it predictable. [[[ Sort PORTAGE_ARCHLIST. ]]] -- Arfrever Frehtes Taifersar Arahesis --- pym/portage/package/ebuild/config.py +++ pym/portage/package/ebuild/config.py @@ -779,7 +779,7 @@ archlist = [grabfile(os.path.join(x, arch.list)) \ for x in locations_manager.profile_and_user_locations] - archlist = stack_lists(archlist, incremental=1) + archlist = sorted(stack_lists(archlist, incremental=1)) self.configdict[conf][PORTAGE_ARCHLIST] = .join(archlist) pkgprovidedlines = [grabfile( signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] Support for per-repository per-attribute environmental variables
I suggest to add support for per-repository per-attribute environmental variables in Portage. These variables would be used when PORTAGE_REPOSITORIES is not set. Example of setting of them by user and detection of them by Portage: $ env \ PORTAGE_REPOSITORY:gentoo:location=/var/db/repositories/gentoo-cvs \ PORTAGE_REPOSITORY:gentoo:sync-type=cvs \ PORTAGE_REPOSITORY:gentoo:sync-uri=:pserver:anonym...@anoncvs.gentoo.org:/var/cvsroot \ python -c 'import os, pprint; pprint.pprint([x for x in os.environ.items() if x[0].startswith(PORTAGE_REPOSITORY:)])' [('PORTAGE_REPOSITORY:gentoo:sync-type', 'cvs'), ('PORTAGE_REPOSITORY:gentoo:location', '/var/db/repositories/gentoo-cvs'), ('PORTAGE_REPOSITORY:gentoo:sync-uri', ':pserver:anonym...@anoncvs.gentoo.org:/var/cvsroot')] A separator between components of names of these variables cannot be any character valid in names of repositories. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] sync: allow overriding sync-user for the repository
I would suggest to have a separate sync-group attribute and to support only user in sync-user attribute. signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Apply 'nonfatal' to helpers only
2014-08-18 11:02 Michał Górny napisał(a): Make 'nonfatal' modifier affect helpers only rather than disabling 'die' completely. This improves the PMS conformance. It is better to leave current code, until there is replacement functionality. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] Helping out
2014-01-06 21:46 Jesus Rivero (Neurogeek) napisał(a): Let me know what do you need from me. You can help in porting various functions to not use deprecated objects. Examples: PORTDIR (when used as internal config variable) PORTDIR_OVERLAY (when used as internal config variable) mainRepo (outside pym/portage/repository/config.py) mainRepoLocation (outside pym/portage/repository/config.py) porttree_root -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] make.conf.5: Document PYTHON_TARGETS, bug #493180
Portage's documentation is inappropriate place for this. Please do not commit this patch. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Further document repos.conf
2013-12-02 01:28 Alexander Berntsen napisał(a): Another trivial one. Fixes bug #491426. Wrong section (/etc/portage/make.profile/ or /etc/make.profile/ instead of /etc/portage/). I will fix it. When changing a manual, please remember to update date in first line in manual. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] xattr: centralize the various shims in one place
2013-10-21 05:00 Mike Frysinger napisał(a): On Wednesday 16 October 2013 23:42:26 Arfrever Frehtes Taifersar wrote: - cStringIO module should not be used. io module is a replacement available since Python 2.6. unfortunately, that doesn't work as well as it should. python 2.7's interface is annoyingly different when using other python 2.7 modules. i'll have the code import the old module and then fallback to using the new io module. (io.StringIO works only with unicode strings. When bytes-compatible functions are really needed, then io.BytesIO can be used, which works only with bytes. cStringIO.StringIO is designed to work with bytes, but cStringIO.StringIO().write(instance_of_unicode) implicitly encodes its argument to bytes.) In your another patch, portage.tests.bin.test_prepstrip.PrepStripFull._prepstrip() passes an instance of cStringIO.StringIO class to portage.bin.prepstrip.main(), which passes it to portage.bin.prepstrip.Prepstrip(), which passes it to print(), portage.elog.messages.eqawarn() and portage.elog.messages.ewarn(). pym/portage/bin/prepstrip.py should have: from __future__ import unicode_literals Then print('...', file=out) calls will work with an instance of io.StringIO class. (portage.elog.messages.eqawarn() and portage.elog.messages.ewarn() internally decode message, so they already work with out=io.StringIO, but not out=io.BytesIO.) -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH v2] xattr: centralize the various shims in one place
: - if exclude is not None and isinstance(attrs[0], bytes): - exclude = exclude.encode(_encodings['fs']) - exclude = _get_xattr_excluder(exclude) + if attrs: + if exclude is not None and isinstance(attrs[0], bytes): + exclude = exclude.encode(_encodings['fs']) + exclude = _get_xattr_excluder(exclude) - for attr in attrs: - if exclude(attr): - continue - try: - xattr.set(dest, attr, xattr.get(src, attr)) - raise_exception = False - except IOError: - raise_exception = True - if raise_exception: - raise OperationNotSupported(_(Filesystem containing file '%s' - does not support extended attribute '%s') % - (_unicode_decode(dest), _unicode_decode(attr))) - else: + for attr in attrs: + if exclude(attr): + continue try: - with open(_os.devnull, 'wb') as f: - subprocess.call([getfattr, --version], stdout=f) - subprocess.call([setfattr, --version], stdout=f) - except OSError: - def _copyxattr(src, dest, exclude=None): - # TODO: implement exclude - getfattr_process = subprocess.Popen([getfattr, -d, --absolute-names, src], stdout=subprocess.PIPE) - getfattr_process.wait() - extended_attributes = getfattr_process.stdout.readlines() - getfattr_process.stdout.close() - if extended_attributes: - extended_attributes[0] = b# file: + _unicode_encode(dest) + b\n - setfattr_process = subprocess.Popen([setfattr, --restore=-], stdin=subprocess.PIPE, stderr=subprocess.PIPE) - setfattr_process.communicate(input=b.join(extended_attributes)) - if setfattr_process.returncode != 0: - raise OperationNotSupported(Filesystem containing file '%s' does not support extended attributes % dest) - else: - def _copyxattr(src, dest, exclude=None): - pass + xattr.set(dest, attr, xattr.get(src, attr)) + raise_exception = False + except (OSError, IOError): + raise_exception = True + if raise_exception: + raise OperationNotSupported(_(Filesystem containing file '%s' + does not support extended attribute '%s') % + (_unicode_decode(dest), _unicode_decode(attr))) def movefile(src, dest, newmtime=None, sstat=None, mysettings=None, hardlink_candidates=None, encoding=_encodings['fs']): -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] xattr: centralize the various shims in one place
- if raise_exception: - raise OperationNotSupported(_(Filesystem containing file '%s' - does not support extended attribute '%s') % - (_unicode_decode(dest), _unicode_decode(attr))) -else: +def _copyxattr(src, dest, exclude=None): + Copy the extended attributes from |src| to |dest| try: - import xattr - except ImportError: - xattr = None - if xattr is not None: - def _copyxattr(src, dest, exclude=None): - - try: - attrs = xattr.list(src) - except IOError as e: - if e.errno != OperationNotSupported.errno: - raise - attrs = () + attrs = xattr.list(src) + except (OSError, IOError) as e: + if e.errno != OperationNotSupported.errno: + raise + attrs = () - if attrs: - if exclude is not None and isinstance(attrs[0], bytes): - exclude = exclude.encode(_encodings['fs']) - exclude = _get_xattr_excluder(exclude) + if attrs: + if exclude is not None and isinstance(attrs[0], bytes): + exclude = exclude.encode(_encodings['fs']) + exclude = _get_xattr_excluder(exclude) - for attr in attrs: - if exclude(attr): - continue - try: - xattr.set(dest, attr, xattr.get(src, attr)) - raise_exception = False - except IOError: - raise_exception = True - if raise_exception: - raise OperationNotSupported(_(Filesystem containing file '%s' - does not support extended attribute '%s') % - (_unicode_decode(dest), _unicode_decode(attr))) - else: + for attr in attrs: + if exclude(attr): + continue try: - with open(os.devnull, 'wb') as f: - subprocess.call([getfattr, --version], stdout=f) - subprocess.call([setfattr, --version], stdout=f) - except OSError: - def _copyxattr(src, dest, exclude=None): - # TODO: implement exclude - getfattr_process = subprocess.Popen([getfattr, -d, --absolute-names, src], stdout=subprocess.PIPE) - getfattr_process.wait() - extended_attributes = getfattr_process.stdout.readlines() - getfattr_process.stdout.close() - if extended_attributes: - extended_attributes[0] = b# file: + _unicode_encode(dest) + b\n - setfattr_process = subprocess.Popen([setfattr, --restore=-], stdin=subprocess.PIPE, stderr=subprocess.PIPE) - setfattr_process.communicate(input=b.join(extended_attributes)) - if setfattr_process.returncode != 0: - raise OperationNotSupported(Filesystem containing file '%s' does not support extended attributes % dest) - else: - def _copyxattr(src, dest, exclude=None): - pass + xattr.set(dest, attr, xattr.get(src, attr)) + raise_exception = False + except (OSError, IOError) as e: Unused variable e + raise_exception = True + if raise_exception: + raise OperationNotSupported(_(Filesystem containing file '%s' + does not support extended attribute '%s') % + (_unicode_decode(dest), _unicode_decode(attr))) def movefile(src, dest, newmtime=None, sstat=None, mysettings=None, hardlink_candidates=None, encoding=_encodings['fs']): -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] xattr: centralize the various shims in one place
2013-10-17 04:53 Mike Frysinger napisał(a): On Wednesday 16 October 2013 22:51:17 Mike Frysinger wrote: On Wednesday 16 October 2013 20:02:50 Arfrever Frehtes Taifersar Arahesis wrote: 2013-10-16 23:03 Mike Frysinger napisał(a): Rather than each module implementing its own shim around the various methods for accessing extended attributes, start a dedicated module that exports a consistent API. Some things are incompatible with Python 3. See other comments below. i can run a linter on the code (probably should make this a git hook). i'm interested more in review on the bigger picture. also, none of your comments were py3 issues that i saw I said other comments, so I meant comments not related to incompatibility with Python 3. About incompatibility with Python 3: - subprocess.check_output(), subprocess.Popen().stdout.read(), subprocess.Popen().stderr.read() return bytes, which is incorrectly compared with str in your patches. - dict.iteritems() was renamed to dict.items() (and its return type was changed from dictionary-itemiterator to dict_items, but it does not matter here). - Queue module was renamed to queue. - cStringIO module should not be used. io module is a replacement available since Python 2.6. - Maybe other problems... -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] A way to prevent useless rebuild?
2013-01-20 13:22:42 Pacho Ramos napisał(a): I noticed go USE flag was masked on gcc:4.6, the problem is that I just compiled it a week ago with USE=-go... then, I would like to know if there is a way to prevent it from being rebuild again :| (It will take some time in my currently running system but on other machines I maintain it will take hours) sed -e s/\(^\| \)go\($\| \)/\1\2/;s/^ //;s/ / /g;s/ $// -i /var/db/pkg/sys-devel/gcc-4.6.3/IUSE touch /var/db/pkg/sys-devel/gcc-4.6.3 touch /var/db/pkg/sys-devel touch /var/db/pkg -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Repoman subversion support
2008-07-24 12:19:18 Fabian Groffen napisał(a): On 14-05-2008 17:56:38 +0200, Fabian Groffen wrote: On 14-05-2008 16:27:28 +0200, Arfrever Frehtes Taifersar Arahesis wrote: 2008-05-14 00:32 Marius Mauch [EMAIL PROTECTED] napisał(a): Merged in r10325 with some minor changes (removed the 'svn update' bit until someone remembers why exactly it's there During committing, only files, which are being committed, are being updated, so `svn up` is certainly a good idea. Please add it. Details here are that the code did this: if vcs == cvs: myf=open(checkdir+/CVS/Entries,r) if vcs == svn: myf=os.popen(svn update /dev/null; svn list) genone's remark here refers to this `svn update`, of which I don't recall any more why I added it. All I know is that I think I needed it for some reason to get a correct output of list. However, I have no proof here, so he removed the svn update, which gives a non-announced possible modification of the local repository. I've seen numerous examples like bug 232825[1] now, and I'm almost confident the svn update resolved that problem. Problem is that the file (a .rej in the case of the bug) exists in the local dir, but repoman doesn't notice it, since svn list doesn't return it (as '?'). `svn list` returns only files which actually exist in the repository. It doesn't check working copy. You should use `svn st`. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] FEATURE=preserved-libs issues
2008-07-07 17:36:12 Paul Varner napisał(a): 2. Upgrade to www-client/mozilla-firefox to version 3 After upgrading, perserved-libs kept a couple of the older libraries around and wanted to remerge firefox. emerge @preserved-libs did not get rid of the libraries and firefox would not run. It might be an instance of Bug #220953. Is there a portage API function that I can use to tell it to remove the preserved-libs? You can use: rm -f $(portageq list_preserved_libs / | sed -e s/^.* //) -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] [PATCH] Repoman subversion support
2008-05-14 00:32 Marius Mauch [EMAIL PROTECTED] napisał(a): Merged in r10325 with some minor changes (removed the 'svn update' bit until someone remembers why exactly it's there During committing, only files, which are being committed, are being updated, so `svn up` is certainly a good idea. Please add it.
Re: [gentoo-portage-dev] localization.py
2007-10-21 22:49:10 Marius Mauch napisał(a): On Sun, 21 Oct 2007 12:23:59 -0700 Zac Medico [EMAIL PROTECTED] wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Arfrever Frehtes Taifersar Arahesis wrote: Hello, Does localization.py exist for a reason? Over the years we've had a few people express a desire for internationalization and localization support in portage (bugs #13618, #32630, and #191189 and possible others). It seems like a nice idea to me, but I recall Marius being opposed to the idea due to some potential problems that he was concerned about. Unfortunately I don't have a link to the previous discussion but maybe somebody else does. Probably not the one you meant, but you can find a related discussion on the forums: http://forums.gentoo.org/viewtopic-t-500209.html It seems that you just don't like German translation, so you could set LC_ALL=C in make.conf. Is there anything wrong in my patch? -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
Re: [gentoo-portage-dev] localization.py
2007-10-19 17:41:06 Andrew Gaffney napisał(a): Arfrever Frehtes Taifersar Arahesis wrote: Does localization.py exist for a reason? I don't see a localization.py. So you have old Portage. There is a portage_localization.py, and it's used by portage.py and portage_locks.py. But it could be used by almost all Portage Python modules. My question is still current. -- Arfrever Frehtes Taifersar Arahesis signature.asc Description: This is a digitally signed message part.
[gentoo-portage-dev] localization.py
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, Does localization.py exist for a reason? - -- Arfrever Frehtes Taifersar Arahesis -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.7 (GNU/Linux) iD8DBQFHGM16/axNJ4Xo/ZERAsSGAJ9zzIxphOxnQW/g8LbTrXee5dE4gQCePrbA /zCemc3wwkb/fPvU76Hh+oo= =YD/c -END PGP SIGNATURE- -- [EMAIL PROTECTED] mailing list
[gentoo-portage-dev] portage.exception.OperationNotPermitted: chown('/var/lib/gentoo/news/news-gentoo.skip', 0, 250)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 $ emerge -p portage These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-apps/portage- Traceback (most recent call last): File /usr/bin/emerge, line 18, in module retval = _emerge.emerge_main() File /usr/lib/portage/pym/_emerge/__init__.py, line 6783, in emerge_main display_news_notification(trees) File /usr/lib/portage/pym/_emerge/__init__.py, line 4613, in display_news_notification portdb, vardb, NEWS_PATH, UNREAD_PATH, repo) File /usr/lib/portage/pym/_emerge/__init__.py, line 4781, in checkUpdatedNewsItems return manager.getUnreadItems( repo_id, update=True ) File /usr/lib/portage/pym/portage/news.py, line 115, in getUnreadItems self.updateItems(repoid) File /usr/lib/portage/pym/portage/news.py, line 104, in updateItems uid=int(self.config[PORTAGE_INST_UID]), gid=portage_gid, mode=0664) File /usr/lib/portage/pym/portage/util.py, line 594, in apply_permissions raise OperationNotPermitted(func_call) portage.exception.OperationNotPermitted: chown('/var/lib/gentoo/news/news-gentoo.skip', 0, 250) $ It has happened since r8148. This bug isn't reproducible when `emerge` is invoked by root. - -- Arfrever Frehtes Taifersar Arahesis -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.7 (GNU/Linux) iD8DBQFHGMu//axNJ4Xo/ZERAldCAJ9RtPHWKs79dtPjiKplD8/yWOBsngCdHEMd fkxdTcnvMhVRfjmdhDyu8XU= =+CgJ -END PGP SIGNATURE- -- [EMAIL PROTECTED] mailing list
[gentoo-portage-dev] License filtering and packages sets
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi list, I would like to know what is the status of license filtering and packages sets in trunk version of Portage. Documentation is very poor in these cases and I hope that I'm not disturbing you. I heard that license filtering implementation is finished, so I tried to use ACCEPT_LICENSE, but I didn't get succesful results. If it is possible, I would like that somebody explained how can license filtering and packages sets be used. - -- Arfrever Frehtes Taifersar Arahesis -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.5 (GNU/Linux) iD8DBQFGrlKC/axNJ4Xo/ZERAlMSAKCzyz9/Xtv3bYAdm8I2/tm4yvQFEACffakv Kli1R2IxcfZ8al1KYWCfuvU= =sR0g -END PGP SIGNATURE- -- [EMAIL PROTECTED] mailing list
Re: [gentoo-portage-dev] License filtering and packages sets
2007-07-30 23:39:14 Zac Medico napisał(a): Arfrever Frehtes Taifersar Arahesis wrote: Hi list, I would like to know what is the status of license filtering and packages sets in trunk version of Portage. Documentation is very poor in these cases and I hope that I'm not disturbing you. I heard that license filtering implementation is finished, so I tried to use ACCEPT_LICENSE, but I didn't get succesful results. If it is possible, I would like that somebody explained how can license filtering and packages sets be used. Package sets aren't really useful yet since there is no support for them in emerge (other than system and world). OK. The ACCEPT_LICENSE should work. Simply put whichever licenses you want to accept in that variable and packages with licenses other than those that you've selected will be masked. There is some more information on bug #152593. Thanks. Now I see that I was testing ACCEPT_LICENSE= which as I now know disables filtering. -- Arfrever Frehtes Taifersar Arahesis -- [EMAIL PROTECTED] mailing list