commit: 78539500809043bba57d9f93ff379c2695c85359 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org> AuthorDate: Wed Dec 9 11:54:45 2015 +0000 Commit: Arfrever Frehtes Taifersar Arahesis <arfrever <AT> apache <DOT> org> CommitDate: Wed Dec 9 11:54:45 2015 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=78539500
Delete support for PORTDIR and PORTDIR_OVERLAY from make.conf and environment. (SYNC variable was already not used.) man/make.conf.5 | 61 +-------- pym/_emerge/actions.py | 33 ----- pym/portage/dbapi/porttree.py | 4 +- .../package/ebuild/_config/special_env_vars.py | 1 - pym/portage/package/ebuild/config.py | 43 ++---- pym/portage/repository/config.py | 149 +-------------------- 6 files changed, 24 insertions(+), 267 deletions(-) diff --git a/man/make.conf.5 b/man/make.conf.5 index 1d1cfeb..f155c8e 100644 --- a/man/make.conf.5 +++ b/man/make.conf.5 @@ -1,4 +1,4 @@ -.TH "MAKE.CONF" "5" "Jan 2015" "Portage VERSION" "Portage" +.TH "MAKE.CONF" "5" "Dec 2015" "Portage VERSION" "Portage" .SH "NAME" make.conf \- custom settings for Portage .SH "SYNOPSIS" @@ -195,9 +195,8 @@ like to selectively prune obsolete files from this directory, see Use the \fBPORTAGE_RO_DISTDIRS\fR variable to specify one or more read-only directories containing distfiles. -Note -that locations under /usr/portage are not necessarily safe for data storage. -See the \fBPORTDIR\fR documentation for more information. +Note that locations under locations of repositories are not necessarily safe +for data storage. .br Defaults to /usr/portage/distfiles. .TP @@ -773,8 +772,8 @@ to it's category. However, for backward compatibility with the layout used by older versions of portage, if the \fI${PKGDIR}/All\fR directory exists then all packages will be stored inside of it and symlinks to the packages will be created in the category subdirectories. Note -that locations under /usr/portage are not necessarily safe for data storage. -See the \fBPORTDIR\fR documentation for more information. +that locations under locations of repositories are not necessarily safe +for data storage. .br Defaults to /usr/portage/packages. .TP @@ -1001,30 +1000,6 @@ when \fBxattr\fR is in \fBFEATURES\fR. .br Defaults to "security.*" (security labels are special, see bug #461868). .TP -\fBPORTDIR\fR = \fI[path]\fR -Defines the location of main repository. This variable is deprecated in favor of -settings in \fBrepos.conf\fR. If you change this, you must update -your /etc/portage/make.profile symlink accordingly. -.br -Defaults to /usr/portage. -.br -\fB***Warning***\fR -.br -Data stored inside \fBPORTDIR\fR is in peril of being overwritten or deleted by -the emerge \-\-sync command. The default value of -\fBPORTAGE_RSYNC_OPTS\fR will protect the default locations of -\fBDISTDIR\fR and \fBPKGDIR\fR, but users are warned that any other locations -inside \fBPORTDIR\fR are not necessarily safe for data storage. You should not -put other data (such as overlays) in your \fBPORTDIR\fB. Portage will walk -directory structures and may arbitrarily add invalid categories as packages. -.TP -\fBPORTDIR_OVERLAY\fR = \fI"[path] [different\-path] [etc...]"\fR -Defines the locations of other repositories. This variable is deprecated in -favor of settings in \fBrepos.conf\fR. This variable is a space\-delimited list of -directories. -.br -Defaults to no value. -.TP \fBQA_STRICT_EXECSTACK = \fI"set"\fR Set this to cause portage to ignore any \fIQA_EXECSTACK\fR override settings from ebuilds. See also \fBebuild\fR(5). @@ -1072,32 +1047,6 @@ Defines the location where created RPM packages will be stored. .br Defaults to /usr/portage/rpm. .TP -\fBSYNC\fR = \fI[RSYNC]\fR -Insert your preferred rsync mirror here. This rsync server -is used to sync the local portage tree when `emerge \-\-sync` is run. - -Note that the \fBSYNC\fR variable is now deprecated, and instead the -sync\-type and sync\-uri attributes in repos.conf should be used. See -\fBportage\fR(5) for more information. - -Defaults to rsync://rsync.gentoo.org/gentoo\-portage -.RS -.TP -.B Usage: -(rsync|ssh)://[username@]hostname[:port]/(module|path) -.TP -.B Examples: -rsync://private\-mirror.com/portage\-module -.br -rsync://rsync\-user@private\-mirror.com:873/gentoo\-portage -.br -ssh://ssh\-user@192.168.0.1:22/usr/portage -.br -ssh://ssh\-user@192.168.0.1:22/\\${HOME}/portage\-storage -.TP -Note: For the ssh:// scheme, key\-based authentication might be of interest. -.RE -.TP \fBUNINSTALL_IGNORE\fR = \fI[space delimited list of fnmatch patterns]\fR This variable prevents uninstallation of files that match specific \fBfnmatch\fR(3) patterns. In order to ignore file diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index a080ba4..da7d90f 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -2693,38 +2693,6 @@ def expand_set_arguments(myfiles, myaction, root_config): newargs.append(a) return (newargs, retval) -def repo_name_duplicate_check(trees): - ignored_repos = {} - for root, root_trees in trees.items(): - if 'porttree' in root_trees: - portdb = root_trees['porttree'].dbapi - if portdb.settings.get('PORTAGE_REPO_DUPLICATE_WARN') != '0': - for repo_name, paths in portdb.getIgnoredRepos(): - k = (root, repo_name, portdb.getRepositoryPath(repo_name)) - ignored_repos.setdefault(k, []).extend(paths) - - if ignored_repos: - msg = [] - msg.append('WARNING: One or more repositories ' + \ - 'have been ignored due to duplicate') - msg.append(' profiles/repo_name entries:') - msg.append('') - for k in sorted(ignored_repos): - msg.append(' %s overrides' % ", ".join(k)) - for path in ignored_repos[k]: - msg.append(' %s' % (path,)) - msg.append('') - msg.extend(' ' + x for x in textwrap.wrap( - "All profiles/repo_name entries must be unique in order " + \ - "to avoid having duplicates ignored. " + \ - "Set PORTAGE_REPO_DUPLICATE_WARN=\"0\" in " + \ - "/etc/portage/make.conf if you would like to disable this warning.")) - msg.append("\n") - writemsg_level(''.join('%s\n' % l for l in msg), - level=logging.WARNING, noiselevel=-1) - - return bool(ignored_repos) - def run_action(emerge_config): # skip global updates prior to sync, since it's called after sync @@ -2810,7 +2778,6 @@ def run_action(emerge_config): if "--quiet" not in emerge_config.opts: portage.deprecated_profile_check( settings=emerge_config.target_config.settings) - repo_name_duplicate_check(emerge_config.trees) config_protect_check(emerge_config.trees) check_procfs() diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 0b8034e..fd489d8 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -363,7 +363,9 @@ class portdbapi(dbapi): Returns a list of repository paths that have been ignored, because another repo with the same name exists. """ - return self.settings.repositories.ignored_repos + warnings.warn("portage.dbapi.porttree.portdbapi.getIgnoredRepos() is deprecated", + DeprecationWarning, stacklevel=2) + return () def findname2(self, mycpv, mytree=None, myrepo = None): """ diff --git a/pym/portage/package/ebuild/_config/special_env_vars.py b/pym/portage/package/ebuild/_config/special_env_vars.py index 9ae53c1..d69c010 100644 --- a/pym/portage/package/ebuild/_config/special_env_vars.py +++ b/pym/portage/package/ebuild/_config/special_env_vars.py @@ -174,7 +174,6 @@ environ_filter += [ "PORTAGE_GPG_KEY", "PORTAGE_GPG_SIGNING_COMMAND", "PORTAGE_IONICE_COMMAND", "PORTAGE_PACKAGE_EMPTY_ABORT", - "PORTAGE_REPO_DUPLICATE_WARN", "PORTAGE_RO_DISTDIRS", "PORTAGE_RSYNC_EXTRA_OPTS", "PORTAGE_RSYNC_OPTS", "PORTAGE_RSYNC_RETRIES", "PORTAGE_SSH_OPTS", "PORTAGE_SYNC_STALE", diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 975fe88..50e0110 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -502,28 +502,21 @@ class config(object): self["EPREFIX"] = eprefix self["EROOT"] = eroot known_repos = [] - portdir = "" - portdir_overlay = "" - portdir_sync = None for confs in [make_globals, make_conf, self.configdict["env"]]: - v = confs.get("PORTDIR") - if v is not None: - portdir = v - known_repos.append(v) - v = confs.get("PORTDIR_OVERLAY") - if v is not None: - portdir_overlay = v - known_repos.extend(shlex_split(v)) - v = confs.get("SYNC") - if v is not None: - portdir_sync = v if 'PORTAGE_RSYNC_EXTRA_OPTS' in confs: self['PORTAGE_RSYNC_EXTRA_OPTS'] = confs['PORTAGE_RSYNC_EXTRA_OPTS'] - self["PORTDIR"] = portdir - self["PORTDIR_OVERLAY"] = portdir_overlay - if portdir_sync: - self["SYNC"] = portdir_sync + for var in ("PORTDIR", "PORTDIR_OVERLAY", "SYNC"): + if make_conf.get(var) is not None: + writemsg_level("!!! %s\n" % _("%s variable is set in make.conf but is no longer used. " + "Use repos.conf instead.") % var, level=logging.WARNING, noiselevel=-1) + for var in ("PORTDIR", "PORTDIR_OVERLAY", "SYNC"): + if self.configdict["env"].get(var) is not None: + writemsg_level("!!! %s\n" % _("%s environmental variable is set but is no longer used. " + "Use new environmental variables instead:") % var, level=logging.WARNING, noiselevel=-1) + writemsg_level(" PORTAGE_REPOSITORIES, PORTAGE_REPOSITORY:${repository_name}:${attribute}, " + "PORTAGE_ADDED_REPOSITORIES, PORTAGE_DELETED_REPOSITORIES\n", level=logging.WARNING, noiselevel=-1) + self.lookuplist = [self.configdict["env"]] if repositories is None: self.repositories = load_repository_config(self) @@ -543,23 +536,11 @@ class config(object): self.backup_changes("PORTDIR") expand_map["PORTDIR"] = self["PORTDIR"] - # repoman controls PORTDIR_OVERLAY via the environment, so no - # special cases are needed here. portdir_overlay = list(self.repositories.repoLocationList()) if portdir_overlay and portdir_overlay[0] == self["PORTDIR"]: portdir_overlay = portdir_overlay[1:] - new_ov = [] - if portdir_overlay: - for ov in portdir_overlay: - ov = normalize_path(ov) - if isdir_raise_eaccess(ov) or portage._sync_mode: - new_ov.append(portage._shell_quote(ov)) - else: - writemsg(_("!!! Invalid PORTDIR_OVERLAY" - " (not a dir): '%s'\n") % ov, noiselevel=-1) - - self["PORTDIR_OVERLAY"] = " ".join(new_ov) + self["PORTDIR_OVERLAY"] = " ".join(portdir_overlay) self.backup_changes("PORTDIR_OVERLAY") expand_map["PORTDIR_OVERLAY"] = self["PORTDIR_OVERLAY"] diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py index 54d7688..e1d5761 100644 --- a/pym/portage/repository/config.py +++ b/pym/portage/repository/config.py @@ -463,102 +463,7 @@ class RepoConfig(object): return _unicode_encode(self.__unicode__()) class RepoConfigLoader(object): - """Loads and store config of several repositories, loaded from PORTDIR_OVERLAY or repos.conf""" - - @staticmethod - def _add_repositories(portdir, portdir_overlay, prepos, - ignored_map, local_config, default_portdir): - """Add overlays in PORTDIR_OVERLAY as repositories""" - overlays = [] - portdir_orig = None - if portdir: - portdir = normalize_path(portdir) - portdir_orig = portdir - overlays.append(portdir) - try: - port_ov = [normalize_path(i) for i in shlex_split(portdir_overlay)] - except ValueError as e: - #File "/usr/lib/python3.2/shlex.py", line 168, in read_token - # raise ValueError("No closing quotation") - writemsg(_("!!! Invalid PORTDIR_OVERLAY:" - " %s: %s\n") % (e, portdir_overlay), noiselevel=-1) - port_ov = [] - overlays.extend(port_ov) - default_repo_opts = {} - if prepos['DEFAULT'].aliases is not None: - default_repo_opts['aliases'] = \ - ' '.join(prepos['DEFAULT'].aliases) - if prepos['DEFAULT'].eclass_overrides is not None: - default_repo_opts['eclass-overrides'] = \ - ' '.join(prepos['DEFAULT'].eclass_overrides) - if prepos['DEFAULT'].masters is not None: - default_repo_opts['masters'] = \ - ' '.join(prepos['DEFAULT'].masters) - - if overlays: - # We need a copy of the original repos.conf data, since we're - # going to modify the prepos dict and some of the RepoConfig - # objects that we put in prepos may have to be discarded if - # they get overridden by a repository with the same name but - # a different location. This is common with repoman, for example, - # when temporarily overriding an rsync repo with another copy - # of the same repo from CVS. - repos_conf = prepos.copy() - #overlay priority is negative because we want them to be looked before any other repo - base_priority = 0 - for ov in overlays: - # Ignore missing directory for 'gentoo' so that - # first sync with emerge-webrsync is possible. - if isdir_raise_eaccess(ov) or \ - (base_priority == 0 and ov is portdir): - repo_opts = default_repo_opts.copy() - repo_opts['location'] = ov - repo = RepoConfig(None, repo_opts, local_config=local_config) - if repo._invalid_config: - continue - # repos_conf_opts contains options from repos.conf - repos_conf_opts = repos_conf.get(repo.name) - if repos_conf_opts is not None: - # Selectively copy only the attributes which - # repos.conf is allowed to override. - for k in ('aliases', 'auto_sync', 'eclass_overrides', - 'force', 'masters', 'priority', - 'sync_depth', 'sync_hooks_only_on_change', - 'sync_type', 'sync_umask', 'sync_uri', 'sync_user', - 'module_specific_options'): - v = getattr(repos_conf_opts, k, None) - if v is not None: - setattr(repo, k, v) - - if repo.name in prepos: - # Silently ignore when PORTDIR overrides the location - # setting from the default repos.conf (bug #478544). - old_location = prepos[repo.name].location - if old_location is not None and \ - old_location != repo.location and \ - not (base_priority == 0 and - old_location == default_portdir): - ignored_map.setdefault(repo.name, []).append(old_location) - if old_location == portdir: - portdir = repo.location - - if repo.priority is None: - if base_priority == 0 and ov == portdir_orig: - # If it's the original PORTDIR setting and it's not - # in PORTDIR_OVERLAY, then it will be assigned a - # special priority setting later. - pass - else: - repo.priority = base_priority - base_priority += 1 - - prepos[repo.name] = repo - else: - - if not portage._sync_mode: - writemsg(_("!!! Invalid PORTDIR_OVERLAY (not a dir): '%s'\n") % ov, noiselevel=-1) - - return portdir + """Loads and store config of several repositories, loaded from repos.conf""" @staticmethod def _parse(paths, prepos, local_config, default_opts, added_repos, deleted_repos, attrs_overrides): @@ -650,7 +555,6 @@ class RepoConfigLoader(object): prepos = {} location_map = {} treemap = {} - ignored_map = {} default_opts = { "EPREFIX" : settings["EPREFIX"], "EROOT" : settings["EROOT"], @@ -662,18 +566,10 @@ class RepoConfigLoader(object): added_repos = [] deleted_repos = [] attrs_overrides = {} - portdir = "" - portdir_overlay = "" - # deprecated portdir_sync - portdir_sync = "" else: added_repos = settings.get("PORTAGE_ADDED_REPOSITORIES", "").split() deleted_repos = settings.get("PORTAGE_DELETED_REPOSITORIES", "").split() attrs_overrides = {x: settings[x] for x in settings if _repo_attr_override_var_re.match(x) is not None} - portdir = settings.get("PORTDIR", "") - portdir_overlay = settings.get("PORTDIR_OVERLAY", "") - # deprecated portdir_sync - portdir_sync = settings.get("SYNC", "") default_opts['sync-rsync-extra-opts'] = \ settings.get("PORTAGE_RSYNC_EXTRA_OPTS", None) @@ -684,28 +580,11 @@ class RepoConfigLoader(object): writemsg( _("!!! Error while reading repo config file: %s\n") % e, noiselevel=-1) - # The configparser state is unreliable (prone to quirky - # exceptions) after it has thrown an error, so use empty - # config and try to fall back to PORTDIR{,_OVERLAY}. + # The configparser state is unreliable (prone to quirky exceptions) + # after it has thrown an error, so use empty config. prepos.clear() prepos['DEFAULT'] = RepoConfig('DEFAULT', {}, local_config=settings.local_config) - location_map.clear() - treemap.clear() - - default_portdir = os.path.join(os.sep, - settings['EPREFIX'].lstrip(os.sep), 'usr', 'portage') - - # If PORTDIR_OVERLAY contains a repo with the same repo_name as - # PORTDIR, then PORTDIR is overridden. - portdir = self._add_repositories(portdir, portdir_overlay, prepos, - ignored_map, settings.local_config, - default_portdir) - if portdir and portdir.strip(): - portdir = os.path.realpath(portdir) - - ignored_repos = tuple((repo_name, tuple(paths)) \ - for repo_name, paths in ignored_map.items()) # Do this before expanding aliases, so that location_map and # treemap consistently map unaliased names whenever available. @@ -742,30 +621,11 @@ class RepoConfigLoader(object): treemap[name] = repo.location main_repo = prepos['DEFAULT'].main_repo - if main_repo is None or main_repo not in prepos: - #setting main_repo if it was not set in repos.conf - main_repo = location_map.get(portdir) - if main_repo is not None: - prepos['DEFAULT'].main_repo = main_repo - else: - prepos['DEFAULT'].main_repo = None - if portdir and not portage._sync_mode: - writemsg(_("!!! main-repo not set in DEFAULT and PORTDIR is empty.\n"), noiselevel=-1) if main_repo is not None and prepos[main_repo].priority is None: # This happens if main-repo has been set in repos.conf. prepos[main_repo].priority = -1000 - # DEPRECATED Backward compatible SYNC support for old mirrorselect. - # Feb. 2, 2015. Version 2.2.16 - if portdir_sync and main_repo is not None: - writemsg(_("!!! SYNC setting found in make.conf.\n " - "This setting is Deprecated and no longer used. " - "Please ensure your 'sync-type' and 'sync-uri' are set correctly" - " in /etc/portage/repos.conf/gentoo.conf\n"), - noiselevel=-1) - - # Include repo.name in sort key, for predictable sorting # even when priorities are equal. prepos_order = sorted(prepos.items(), @@ -779,7 +639,6 @@ class RepoConfigLoader(object): self.prepos = prepos self.prepos_order = prepos_order - self.ignored_repos = ignored_repos self.location_map = location_map self.treemap = treemap self._prepos_changed = True @@ -872,7 +731,7 @@ class RepoConfigLoader(object): self._check_locations() def repoLocationList(self): - """Get a list of repositories location. Replaces PORTDIR_OVERLAY""" + """Get list of locations of repositories.""" if self._prepos_changed: _repo_location_list = [] for repo in self.prepos_order: