portage.git
11 years agodoebuild: handle tmpdir / returnpid interaction
Zac Medico [Sun, 7 Jul 2013 19:34:34 +0000 (12:34 -0700)]
doebuild: handle tmpdir / returnpid interaction

11 years agocalc_depclean: use runtime_slot_op priorities
Zac Medico [Sun, 7 Jul 2013 19:10:34 +0000 (12:10 -0700)]
calc_depclean: use runtime_slot_op priorities

11 years agoUse sys.__std* streams for fileno().
Zac Medico [Sun, 7 Jul 2013 18:14:09 +0000 (11:14 -0700)]
Use sys.__std* streams for fileno().

11 years agoMergeProcess: flush stderr for traceback
Zac Medico [Sun, 7 Jul 2013 03:22:50 +0000 (20:22 -0700)]
MergeProcess: flush stderr for traceback

11 years agoDoebuildFdPipesTestCase: fix docstring
Zac Medico [Sun, 7 Jul 2013 02:48:38 +0000 (19:48 -0700)]
DoebuildFdPipesTestCase: fix docstring

11 years agodoebuild: fix fd_pipes support, bug #475812
Zac Medico [Sun, 7 Jul 2013 02:41:37 +0000 (19:41 -0700)]
doebuild: fix fd_pipes support, bug #475812

The fd_pipes was previously unsupported with returnpid=False. Now it's
fixed to pass fd_pipes down to the appropriate places.

11 years agoForkProcess: flush stderr for traceback
Zac Medico [Sun, 7 Jul 2013 02:16:56 +0000 (19:16 -0700)]
ForkProcess: flush stderr for traceback

11 years agodoebuild: deprecate returnpid
Zac Medico [Sat, 6 Jul 2013 22:06:28 +0000 (15:06 -0700)]
doebuild: deprecate returnpid

This case is not supported, since it bypasses the EbuildPhase class
which implements important functionality (including post phase hooks
and IPC for things like best/has_version and die).

11 years ago_ignore_satisfied_buildtime: tweak optional
Zac Medico [Sat, 6 Jul 2013 21:52:09 +0000 (14:52 -0700)]
_ignore_satisfied_buildtime: tweak optional

11 years agodepgraph: tweak slot-operator merge order
Zac Medico [Sat, 6 Jul 2013 21:45:04 +0000 (14:45 -0700)]
depgraph: tweak slot-operator merge order

This handles circular DEPEND/RDEPEND with one := operator, so that when
both deps are already satisfied by installed packages, the := dep is
given higher priority in merge order.

11 years agoman/portage.5: clarify package.provided virtuals
Zac Medico [Sat, 6 Jul 2013 19:23:45 +0000 (12:23 -0700)]
man/portage.5: clarify package.provided virtuals

11 years agodoebuild: cleanup returnpid support, bug #475812
Zac Medico [Sat, 6 Jul 2013 01:41:01 +0000 (18:41 -0700)]
doebuild: cleanup returnpid support, bug #475812

The returnpid parameter is no longer deprecated, since it's useful for
API consumers that wish to use the fd_pipes parameter (the fd_pipes
parameter is only respected when returnpid is True).

11 years agoDisable global spawned_pids (avoid memory leak)
Zac Medico [Sat, 6 Jul 2013 00:09:30 +0000 (17:09 -0700)]
Disable global spawned_pids (avoid memory leak)

It used to be necessary for API consumers to remove pids from the
global spawned_pids, since otherwise it would accumulate a pids
endlessly. Now, spawned_pids is just an empty dummy list, so for
backward compatibility, ignore ValueError for removal on non-existent
items.

11 years agoemerge --info: KeyError with ROOT, bug #475778
Zac Medico [Fri, 5 Jul 2013 05:33:52 +0000 (22:33 -0700)]
emerge --info: KeyError with ROOT, bug #475778

The KeyError was triggered when calling vardbapi.aux_get() on a
vardbapi instance from the wrong ROOT.

11 years ago_copyxattr: report attribute name in error
Zac Medico [Tue, 2 Jul 2013 17:15:18 +0000 (10:15 -0700)]
_copyxattr: report attribute name in error

The specific attribute name is often relevant. For example, an issue
with system.nfs4_acl was reported in bug #475496.

11 years agorepoman: fix PORTDIR{,_OVERLAY} interference v2.2.0_alpha186
Zac Medico [Sat, 29 Jun 2013 04:21:38 +0000 (21:21 -0700)]
repoman: fix PORTDIR{,_OVERLAY} interference

Ensure that the repository corresponding to $PWD overrides a
repository of the same name referenced by the existing PORTDIR
or PORTDIR_OVERLAY settings (broken since commit
eab5b86c2d45765ea718e1e9488dde43c9bbac7e).

11 years agoRepoConfigLoader: support repos.conf directory
Zac Medico [Fri, 28 Jun 2013 01:54:20 +0000 (18:54 -0700)]
RepoConfigLoader: support repos.conf directory

11 years agogetconfig: share recursion code with grablines
Zac Medico [Fri, 28 Jun 2013 01:45:42 +0000 (18:45 -0700)]
getconfig: share recursion code with grablines

11 years agoutil.listir: simplify and optimize
Zac Medico [Thu, 27 Jun 2013 21:31:49 +0000 (14:31 -0700)]
util.listir: simplify and optimize

Use zip() to simplify, and fix "list = list + foo" usage to use
list.extend() or equivalent.

11 years agocacheddir: disable cache (avoid memory leak)
Zac Medico [Thu, 27 Jun 2013 19:38:39 +0000 (12:38 -0700)]
cacheddir: disable cache (avoid memory leak)

The global dircache is no longer supported, since it could
be a memory leak for API consumers. Any cacheddir callers
should use higher-level caches instead, when necessary.

11 years agoUpdate comments.
Arfrever Frehtes Taifersar Arahesis [Wed, 26 Jun 2013 03:31:43 +0000 (05:31 +0200)]
Update comments.

11 years agorepoman: simplify repo location comparison
Zac Medico [Tue, 25 Jun 2013 19:24:40 +0000 (12:24 -0700)]
repoman: simplify repo location comparison

11 years agorepoman: canonical path for repo location compare
Zac Medico [Tue, 25 Jun 2013 18:50:01 +0000 (11:50 -0700)]
repoman: canonical path for repo location compare

11 years agoUse /proc/self/fd for solaris compat, bug #474536
Zac Medico [Tue, 25 Jun 2013 07:48:18 +0000 (00:48 -0700)]
Use /proc/self/fd for solaris compat, bug #474536

11 years agorepoman: dedent generated repos.conf
Zac Medico [Tue, 25 Jun 2013 03:29:10 +0000 (20:29 -0700)]
repoman: dedent generated repos.conf

This fixes a "File contains no section headers" error raised by
configparser with Python 2.

11 years agorepoman: samefile for repo location comparison
Zac Medico [Tue, 25 Jun 2013 03:26:15 +0000 (20:26 -0700)]
repoman: samefile for repo location comparison

This ensures correct behavior with symlinks.

11 years agoStop setting PORTDIR / PORTDIR_OVERLAY in repoman.
Arfrever Frehtes Taifersar Arahesis [Tue, 25 Jun 2013 02:21:07 +0000 (04:21 +0200)]
Stop setting PORTDIR / PORTDIR_OVERLAY in repoman.

11 years agoportage.repository.config.RepoConfigLoader: Support io.StringIO in paths argument.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 23:42:37 +0000 (01:42 +0200)]
portage.repository.config.RepoConfigLoader: Support io.StringIO in paths argument.

11 years agoportage.repository.config.RepoConfigLoader: Add __contains__().
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 22:02:39 +0000 (00:02 +0200)]
portage.repository.config.RepoConfigLoader: Add __contains__().

11 years agoportage.repository.config.RepoConfigLoader: Fix __delitem__() and unimplement __setit...
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 21:45:31 +0000 (23:45 +0200)]
portage.repository.config.RepoConfigLoader: Fix __delitem__() and unimplement __setitem__().

11 years agorepoman: re-use repoman_settings.repositories v2.2.0_alpha185
Zac Medico [Mon, 24 Jun 2013 21:21:18 +0000 (14:21 -0700)]
repoman: re-use repoman_settings.repositories

This avoids constructing a separate instance for each profile.

11 years agoportage.package.ebuild.config.config(): Add repositories parametre.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 20:00:15 +0000 (22:00 +0200)]
portage.package.ebuild.config.config(): Add repositories parametre.

11 years agoportage.repository.config.RepoConfigLoader: Add __setitem__() and __delitem__().
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 19:44:30 +0000 (21:44 +0200)]
portage.repository.config.RepoConfigLoader: Add __setitem__() and __delitem__().

11 years agoImprove portage.repository.config.RepoConfig.__repr__() for location of DEFAULT repos...
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 19:37:48 +0000 (21:37 +0200)]
Improve portage.repository.config.RepoConfig.__repr__() for location of DEFAULT repository.

11 years agoRepoConfigLoader: fix bug #474578
Zac Medico [Mon, 24 Jun 2013 19:24:39 +0000 (12:24 -0700)]
RepoConfigLoader: fix bug #474578

11 years agoAdd man/ru/color.map.5
Vladimir Romanov [Mon, 24 Jun 2013 19:09:24 +0000 (12:09 -0700)]
Add man/ru/color.map.5

11 years agoRepoConfigLoader: don't use ValueError to warn
Zac Medico [Mon, 24 Jun 2013 18:56:44 +0000 (11:56 -0700)]
RepoConfigLoader: don't use ValueError to warn

Handling ValueError can hide tracebacks from unexpected bugs,
so avoid it.

11 years agoPrint error when section name set in repos.conf differs from name set inside repository.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 17:04:14 +0000 (19:04 +0200)]
Print error when section name set in repos.conf differs from name set inside repository.

11 years agoUpdate notes about aliases, eclass-overrides and masters attributes in repos.conf...
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 09:28:11 +0000 (11:28 +0200)]
Update notes about aliases, eclass-overrides and masters attributes in repos.conf and layout.conf.

11 years agoutil/__init__.py: enable unicode_literals
Zac Medico [Mon, 24 Jun 2013 04:29:25 +0000 (21:29 -0700)]
util/__init__.py: enable unicode_literals

Unicode literals are nice for uniformity, but in this file it's more
complex than usual, since Python 2's shlex does not support unicode.
So, use _native_string() for compatibility in this case.

11 years agogetconfig: convert source IOError to ParseError
Zac Medico [Mon, 24 Jun 2013 02:27:37 +0000 (19:27 -0700)]
getconfig: convert source IOError to ParseError

11 years agoUse /proc/<pid>/fd for solaris compat, bug 474536
Zac Medico [Sun, 23 Jun 2013 22:56:58 +0000 (15:56 -0700)]
Use /proc/<pid>/fd for solaris compat, bug 474536

11 years agoPython 3.1: pass bytes to Popen
Zac Medico [Sat, 22 Jun 2013 19:33:50 +0000 (12:33 -0700)]
Python 3.1: pass bytes to Popen

For Python 3.1, it's possible to pass bytes to Popen as long as the
executable has an absolute path, since otherwise we would trigger a
TypeError in os._execvp (see http://bugs.python.org/issue8513).

Note that Python <=3.1.3 produces the following message:

  TypeError: expected an object with the buffer interface

Later 3.1.x releases produce a different message:

  TypeError: startswith first arg must be bytes or a tuple of bytes, not str

The difference in messages is due to os.path.join() implementation
changes, but both errors are triggered by the same underlying bug in
os._execvp() which was fixed by using fsencode() in this hunk:

--- a/Lib/os.py
+++ b/Lib/os.py
@@ -355,7 +355,11 @@ def _execvpe(file, args, env=None):
         return
     last_exc = saved_exc = None
     saved_tb = None
-    for dir in get_exec_path(env):
+    path_list = get_exec_path(env)
+    if name != 'nt':
+        file = fsencode(file)
+        path_list = map(fsencode, path_list)
+    for dir in path_list:
         fullname = path.join(dir, file)

11 years agofind_binary: return bytes when input is bytes
Zac Medico [Sat, 22 Jun 2013 17:49:36 +0000 (10:49 -0700)]
find_binary: return bytes when input is bytes

11 years agoemerge-webrsync: fetch_file rm absolute path
Zac Medico [Sat, 22 Jun 2013 06:37:12 +0000 (23:37 -0700)]
emerge-webrsync: fetch_file rm absolute path

11 years agoemerge-delta-webrsync: clean TMPDIR more v2.2.0_alpha184
Zac Medico [Sat, 22 Jun 2013 06:14:35 +0000 (23:14 -0700)]
emerge-delta-webrsync: clean TMPDIR more

11 years agoemerge-delta-webrsync: check full snapshot sig
Zac Medico [Sat, 22 Jun 2013 05:53:41 +0000 (22:53 -0700)]
emerge-delta-webrsync: check full snapshot sig

This patch merges a lot of code from emerge-webrsync, so that the same
code is used when it's necessary to download a full snapshot and check
the signature. This will fix bug #286373.

11 years agoFEATURES=xattr: wrap install binary, bug #465000
Zac Medico [Sat, 22 Jun 2013 01:15:36 +0000 (18:15 -0700)]
FEATURES=xattr: wrap install binary, bug #465000

The install wrapper is added to PATH only when FEATURES=xattr is
enabled, and the wrapper respects PORTAGE_XATTR_EXCLUDE.

11 years agoinstall.py: add bash wrapper for python script
Zac Medico [Sat, 22 Jun 2013 00:29:42 +0000 (17:29 -0700)]
install.py: add bash wrapper for python script

The wrapper is needed in order to support the PORTAGE_PYTHON variable,
and also safe python imports (see bug #469338).

11 years agoinstall.py: use surrogateescape for Python >=3.2
Zac Medico [Fri, 21 Jun 2013 23:07:31 +0000 (16:07 -0700)]
install.py: use surrogateescape for Python >=3.2

We can't trust that the filesystem encoding (locale dependent)
correctly matches the arguments, so use surrogateescape to
pass through the original argv bytes for Python 3.
Since Python <3.2 does not support bytes in Popen args, trust
the locale in that case.

11 years agoNormalize EPREFIX more.
Zac Medico [Fri, 21 Jun 2013 22:23:32 +0000 (15:23 -0700)]
Normalize EPREFIX more.

11 years agoinstall.py: add note about parse_known_args
Zac Medico [Fri, 21 Jun 2013 22:09:52 +0000 (15:09 -0700)]
install.py: add note about parse_known_args

11 years agoinstall.py: Python 2.6 and 3.1 optparse compat
Zac Medico [Fri, 21 Jun 2013 21:24:36 +0000 (14:24 -0700)]
install.py: Python 2.6 and 3.1 optparse compat

11 years agoinstall.py wrapper for xattrs, bug #465000
Anthony Basile [Fri, 21 Jun 2013 20:41:17 +0000 (13:41 -0700)]
install.py wrapper for xattrs, bug #465000

11 years agoDecode sys.argv with surrogateescape for Python 3
Zac Medico [Thu, 20 Jun 2013 10:11:37 +0000 (03:11 -0700)]
Decode sys.argv with surrogateescape for Python 3

With Python 3, the surrogateescape encoding error handler makes it
possible to access the original argv bytes, which can be useful
if their actual encoding does no match the filesystem encoding.

11 years agochpathtool: fix mime_type TypeError, bug #473892 v2.2.0_alpha183
Zac Medico [Thu, 20 Jun 2013 07:05:34 +0000 (00:05 -0700)]
chpathtool: fix mime_type TypeError, bug #473892

11 years agoemirrordist: wget --no-check-certificate
Zac Medico [Thu, 20 Jun 2013 01:23:21 +0000 (18:23 -0700)]
emirrordist: wget --no-check-certificate

Use --no-check-certificate since Manifest digests should provide
enough security, and certificates can be self-signed or whatnot.

11 years agoTest cross-prefix best/has_version --host-root. v2.2.0_alpha182
Zac Medico [Thu, 20 Jun 2013 00:00:58 +0000 (17:00 -0700)]
Test cross-prefix best/has_version --host-root.

11 years agoFix cross-prefix bugs, and test.
Zac Medico [Wed, 19 Jun 2013 23:41:12 +0000 (16:41 -0700)]
Fix cross-prefix bugs, and test.

* Fix create_trees to correctly handle the case where ROOT=/ for two
  different EPREFIX offsets.
* For best/has_version, handle the case where ROOT=/ for bug prefixes,
  though each has a different EPREFIX offset.
* Use portage.const.EPREFIX for default EMERGE_LOG_DIR offset, which
  is analogous to existing un-prefixed behavior.
* Use portage.const.EPREFIX for default PORTAGE_CONFIGROOT, which is
  analogous to existing un-prefixed behavior.
* Add cross-prefix cases to emerge tests, including chpathtool for
  binpkgs.

11 years agodepgraph: fix installed/newuse logic more
Zac Medico [Wed, 19 Jun 2013 21:07:17 +0000 (14:07 -0700)]
depgraph: fix installed/newuse logic more

The matched_pkgs_ignore_use logic, introduced in commit
dc8d70479dfb54a1f2561ba3fe82d7a62d97964f, is questionable because we
need to ensure that an installed package can be selected if there are
no other available packages that match a given USE-dep.

11 years agodepgraph: fix --exclude/--newuse interaction
Zac Medico [Wed, 19 Jun 2013 20:05:28 +0000 (13:05 -0700)]
depgraph: fix --exclude/--newuse interaction

This fixes a case where an installed package could possibly be rejected
due to --newuse, even though it was selected by --exclude. The problem
may have been triggered randomly by differences in graph traversal
order, which may have been affected by hash randomization (enabled by
default since Python 3.3).

11 years agoRepoConfigLoader: fix last commit
Zac Medico [Wed, 19 Jun 2013 19:21:44 +0000 (12:21 -0700)]
RepoConfigLoader: fix last commit

11 years agoRepoConfigLoader: handle equal priorities
Zac Medico [Wed, 19 Jun 2013 19:10:48 +0000 (12:10 -0700)]
RepoConfigLoader: handle equal priorities

Include repo.name in sort key, for predictable sorting even when
priorities are equal.

11 years agoRepoConfig: safe config for repoman/egencache
Zac Medico [Wed, 19 Jun 2013 18:51:34 +0000 (11:51 -0700)]
RepoConfig: safe config for repoman/egencache

For repoman/egencache, omit local configuration overrides involving
aliases, eclass-overrides, and masters.

11 years agoRepoConfigLoader: handle invalid repos.conf more
Zac Medico [Wed, 19 Jun 2013 18:02:21 +0000 (11:02 -0700)]
RepoConfigLoader: handle invalid repos.conf more

11 years agoRepoConfigLoader: initialize missing_repo_names
Zac Medico [Wed, 19 Jun 2013 05:55:32 +0000 (22:55 -0700)]
RepoConfigLoader: initialize missing_repo_names

11 years agoRepoConfigLoader: return early for parse error
Zac Medico [Wed, 19 Jun 2013 04:49:36 +0000 (21:49 -0700)]
RepoConfigLoader: return early for parse error

The configparser state is unreliable (prone to odd quirky exceptions)
after is has thrown an error, so just return early.

11 years agoRepoConfigLoader: handle configparser.Error
Zac Medico [Wed, 19 Jun 2013 03:57:52 +0000 (20:57 -0700)]
RepoConfigLoader: handle configparser.Error

11 years agoRepoConfigLoader: pass source arg to read_file
Zac Medico [Wed, 19 Jun 2013 03:42:33 +0000 (20:42 -0700)]
RepoConfigLoader: pass source arg to read_file

The 'source' keyword argument is needed since otherwise ConfigParser
may throw a TypeError because it assumes f.name is a native string
rather than binary when constructing error messages.

11 years agoRepoConfigLoader: refer to make.globals in comment
Zac Medico [Wed, 19 Jun 2013 02:19:05 +0000 (19:19 -0700)]
RepoConfigLoader: refer to make.globals in comment

11 years agoRepoConfigLoader: suppress /usr/portage warning
Zac Medico [Wed, 19 Jun 2013 01:58:15 +0000 (18:58 -0700)]
RepoConfigLoader: suppress /usr/portage warning

Suppress warnings for the make.defaults PORTDIR setting if we have an
existing main-repo defined in repos.conf.

11 years agoRepoConfigLoader: main-repo priority before sort v2.2.0_alpha181
Zac Medico [Tue, 18 Jun 2013 21:20:35 +0000 (14:20 -0700)]
RepoConfigLoader: main-repo priority before sort

11 years agoAdd cross-prefix support
Ruud Koolen [Mon, 17 Jun 2013 07:21:41 +0000 (09:21 +0200)]
Add cross-prefix support

This patch series adds support for using a portage installed in one prefix
to build packages with a different prefix.

The current portage has a single EPREFIX variable specifying both the prefix
of the portage installation, and the prefix of the packages portage is
building. This patch series splits it into two parts: the
portage.const.EPREFIX variable specifying the prefix of the portage
installation, used for constructing the PATH as well as the paths to files
belonging to a portage installation itself rather than a target root; and the
 EPREFIX setting in config instances, specifying the prefix of the
to-be-built packages and being used for almost everything else.

The EPREFIX config setting defaults to const.EPREFIX, but can be overridden
by the EPREFIX environment variable, as well as the emerge --prefix option.
This allows one to install systems with different prefixes using
`EPREFIX=/foo emerge @system`, though some unrelated changes need to happen
elsewhere first in order to make that a reality.

Ruud Koolen (3):
  Distinguish between portage prefix and package prefix
  Based GLOBAL_CONFIG_PATH and DEPCACHE_PATH on portage prefix
  Pick up EPREFIX environment variable

11 years agoportage.5: repos.conf: document priority
Zac Medico [Tue, 18 Jun 2013 17:57:20 +0000 (10:57 -0700)]
portage.5: repos.conf: document priority

11 years agoRepoConfigLoader: fix main-repo priority default
Zac Medico [Tue, 18 Jun 2013 17:46:59 +0000 (10:46 -0700)]
RepoConfigLoader: fix main-repo priority default

This ensures that the main-repo default priority is set to -1000
in all cases where it's appropriate.

11 years agoportage.5: repos.conf: document main-repo
Zac Medico [Tue, 18 Jun 2013 16:35:23 +0000 (09:35 -0700)]
portage.5: repos.conf: document main-repo

11 years agoRepoConfigLoader: delete repo if location missing
Zac Medico [Tue, 18 Jun 2013 16:13:43 +0000 (09:13 -0700)]
RepoConfigLoader: delete repo if location missing

11 years agoRootConfig.update: call delattr when appropriate
Zac Medico [Tue, 18 Jun 2013 15:48:16 +0000 (08:48 -0700)]
RootConfig.update: call delattr when appropriate

11 years agoRootConfig: mtimedb AttributeError, bug #473710
Zac Medico [Tue, 18 Jun 2013 14:58:52 +0000 (07:58 -0700)]
RootConfig: mtimedb AttributeError, bug #473710

11 years agoaction_build: remove useless --ask autoclean
Zac Medico [Mon, 17 Jun 2013 05:59:02 +0000 (22:59 -0700)]
action_build: remove useless --ask autoclean

This autoclean invocation would should have no effect anyway, unless
the vdb happens to be in an inconsistent state due to a previously
interrupted emerge (relatively rare).

11 years agoShow blocker parents for non slot-conflict pkgs. v2.2.0_alpha180
Zac Medico [Sun, 16 Jun 2013 01:22:31 +0000 (18:22 -0700)]
Show blocker parents for non slot-conflict pkgs.

Show parents for packages involved in blocker conflicts but not
directly involved in slot conflicts, since this information may be
helpful for troubleshooting blocker conflicts. This information had
been hidded when there were unrelated simultaneous slot conflicts,
since commit 77b651300731ec007cd535a83b8ee9a898602783.

11 years agorun_action: use emerge_config attrs, not locals
Zac Medico [Sat, 15 Jun 2013 23:33:36 +0000 (16:33 -0700)]
run_action: use emerge_config attrs, not locals

11 years agoShow unevaluated atom in blocker parent display.
Zac Medico [Sat, 15 Jun 2013 00:11:50 +0000 (17:11 -0700)]
Show unevaluated atom in blocker parent display.

11 years agoemerge --autounmask-write: chk_updated_cfg_files
Zac Medico [Thu, 13 Jun 2013 18:53:57 +0000 (11:53 -0700)]
emerge --autounmask-write: chk_updated_cfg_files

Instead of suggesting to call dispatch-conf, call chk_updated_cfg_files
in order to display a config update message when appropriate.

11 years agoman/make.conf.5: mention RSYNC_PROXY
Zac Medico [Thu, 13 Jun 2013 00:14:37 +0000 (17:14 -0700)]
man/make.conf.5: mention RSYNC_PROXY

11 years ago_emerge_config: simplify __getitem__
Zac Medico [Mon, 10 Jun 2013 04:01:26 +0000 (21:01 -0700)]
_emerge_config: simplify __getitem__

11 years ago_emerge_config: implement __iter__
Zac Medico [Mon, 10 Jun 2013 03:50:16 +0000 (20:50 -0700)]
_emerge_config: implement __iter__

11 years agodep_check: remove redundant list copy
Zac Medico [Mon, 10 Jun 2013 00:50:07 +0000 (17:50 -0700)]
dep_check: remove redundant list copy

There's no need to copy the list before calling dep_wordreduce, since
dep_wordreduce copies the list internally.

11 years agoman/portage.5: remove /etc/make.conf references
Zac Medico [Sun, 9 Jun 2013 23:29:09 +0000 (16:29 -0700)]
man/portage.5: remove /etc/make.conf references

Since /etc/portage/make.conf supersedes /etc/make.conf, there's no need
to mention /etc/make.conf here anymore (it's still mentioned in
make.conf(5) though).

11 years agoemerge_main: call portdbapi destructors v2.2.0_alpha179
Zac Medico [Sun, 9 Jun 2013 01:17:34 +0000 (18:17 -0700)]
emerge_main: call portdbapi destructors

11 years agomatch_from_list: =* op with revision, bug #467826
Zac Medico [Sun, 9 Jun 2013 00:22:50 +0000 (17:22 -0700)]
match_from_list: =* op with revision, bug #467826

11 years agoemerge_main: hold large objects in emerge_config
Zac Medico [Sat, 8 Jun 2013 20:45:25 +0000 (13:45 -0700)]
emerge_main: hold large objects in emerge_config

This allows emerge_main to avoid having direct local references to
large local objects (like "settings" and "trees"), making it easier to
ensure that stale objects can be garbage collected when other functions
refresh the config with calls to load_emerge_config(). This will be
much more flexible than the "gc_locals" approach that was introduce in
commit e9fd283aedf54e2effc73f4157524fe9a26993c0.

11 years agoemerge --metadata/regen: flush portdbapi cache
Zac Medico [Sat, 8 Jun 2013 11:47:01 +0000 (04:47 -0700)]
emerge --metadata/regen: flush portdbapi cache

11 years agoclose_portdbapi_caches: portage.db atexit hook
Zac Medico [Sat, 8 Jun 2013 11:08:47 +0000 (04:08 -0700)]
close_portdbapi_caches: portage.db atexit hook

The python interpreter does _not_ guarantee that destructors are
called for objects that remain when the interpreter exits, so we
use an atexit hook to call destructors for any global portdbapi
instances that may have been constructed.

11 years agoporttree._dummy_list: fix infinite recursion
Zac Medico [Sat, 8 Jun 2013 05:47:48 +0000 (22:47 -0700)]
porttree._dummy_list: fix infinite recursion

11 years ago_iter_match_use: construct _pkg_str instances v2.2.0_alpha178
Zac Medico [Sat, 8 Jun 2013 02:48:51 +0000 (19:48 -0700)]
_iter_match_use: construct _pkg_str instances

Now _match_use does not have to construct them itself.

11 years agocache/template.py: call self.sync() from __del__
Zac Medico [Sat, 8 Jun 2013 01:32:01 +0000 (18:32 -0700)]
cache/template.py: call self.sync() from __del__

This allows portdbapi.portdbapi_instances to be eliminated, which is
nice because we no longer has to be so careful to avoid memory leaks
involving this variable. It was not just annoying for portage
internals, but also for any API consumers that needed to create/destroy
many portdbapi instances.

11 years agoportage.dbapi.dbapi._match_use(): Use _emerge.Package.Package._iuse.get_real_flag().
Arfrever Frehtes Taifersar Arahesis [Fri, 7 Jun 2013 20:41:28 +0000 (22:41 +0200)]
portage.dbapi.dbapi._match_use(): Use _emerge.Package.Package._iuse.get_real_flag().

It fixes support for USE aliases in:
  best_version
  has_version
  emerge --keep-going
  emerge --resume

11 years agoportage.package.ebuild._config.UseManager.UseManager.getUseAliases(): Accept pkg...
Arfrever Frehtes Taifersar Arahesis [Fri, 7 Jun 2013 20:31:59 +0000 (22:31 +0200)]
portage.package.ebuild._config.UseManager.UseManager.getUseAliases(): Accept pkg argument of type str.

11 years agotreewalk: skip CHOST warning for binary packages
Zac Medico [Sun, 2 Jun 2013 22:42:38 +0000 (15:42 -0700)]
treewalk: skip CHOST warning for binary packages

The CHOST of a binary package does not necessarily match the make.conf
setting, especially if ACCEPT_CHOSTS is configured to match other CHOST
values.