Zac Medico [Sun, 21 Jul 2013 16:53:32 +0000 (09:53 -0700)]
rpmbuild: use --nodeps option
Arfrever Frehtes Taifersar Arahesis [Sun, 21 Jul 2013 04:15:30 +0000 (06:15 +0200)]
Rename make.conf to make.conf.example.
Arfrever Frehtes Taifersar Arahesis [Sun, 21 Jul 2013 03:48:11 +0000 (05:48 +0200)]
make.conf-repatch.sh: Port to git and improve coding style.
Zac Medico [Thu, 18 Jul 2013 20:23:02 +0000 (13:23 -0700)]
emerge --resume: reject atom or set arguments
It is an error to provide atoms or sets as arguments to --resume, since
the arguments from the resumed command are used instead.
Arfrever Frehtes Taifersar Arahesis [Tue, 16 Jul 2013 22:09:37 +0000 (00:09 +0200)]
emerge-webrsync and emerge-delta-webrsync: Stop using PORTDIR.
Arfrever Frehtes Taifersar Arahesis [Tue, 16 Jul 2013 18:56:37 +0000 (20:56 +0200)]
die(): Stop using PORTDIR and clean output.
Arfrever Frehtes Taifersar Arahesis [Tue, 16 Jul 2013 17:50:59 +0000 (19:50 +0200)]
Stop using PORTDIR_OVERLAY in bash part of Portage.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 18:55:26 +0000 (20:55 +0200)]
portageq: Delete incorrect usage of uses_eroot decorator for pquery.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 18:39:14 +0000 (20:39 +0200)]
portageq: Use uses_eroot decorator.
Zac Medico [Sun, 14 Jul 2013 18:13:01 +0000 (11:13 -0700)]
config: add PORTDIR to expand_map
Since commit
a5dd8b59fbf253a435e5ca32c5fd0d128d1d8cfb, there was no
longer a default PORTDIR setting when loading make.conf. Now, the
default main-repo location will serve as the default PORTDIR setting,
for backward compatibility.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 18:01:52 +0000 (20:01 +0200)]
portageq repositories_configuration: Require EROOT argument.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 08:38:25 +0000 (10:38 +0200)]
portageq: Support repositories_configuration command.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 07:57:14 +0000 (09:57 +0200)]
portage.repository.config.RepoConfigLoader.config_string(): Rename a variable.
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Jul 2013 07:48:29 +0000 (09:48 +0200)]
portage.settings.repositories.config_string(): Improve format of returned string.
Zac Medico [Sat, 13 Jul 2013 18:19:27 +0000 (11:19 -0700)]
portageq: avoid portdbapi instantiation
The portdbapi takes time to instantiate, and for some commands we
really only need the RepoConfig instance.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 11:07:16 +0000 (13:07 +0200)]
Use consistent paths of repositories in test suite and clean some code.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 10:01:07 +0000 (12:01 +0200)]
Move default configuration of repositories from /usr/share/portage/config/make.globals
to /usr/share/portage/config/repos.conf.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 09:49:57 +0000 (11:49 +0200)]
Use PORTAGE_REPOSITORIES in test suite.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 09:35:18 +0000 (11:35 +0200)]
egencache: Support --repositories-configuration option.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 09:23:32 +0000 (11:23 +0200)]
Set portage._working_copy bool variable.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 05:30:39 +0000 (07:30 +0200)]
Support PORTAGE_REPOSITORIES environmental variable, which overrides
whole configuration of repositories (repos.conf, PORTDIR, PORTDIR_OVERLAY).
Format of PORTAGE_REPOSITORIES is identical to format of repos.conf.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Jul 2013 00:39:15 +0000 (02:39 +0200)]
Stop using config["PORTDIR"] in some tests.
Zac Medico [Fri, 12 Jul 2013 19:50:57 +0000 (12:50 -0700)]
Exclude system.nfs4_acl xattrs, bug #475496
Zac Medico [Wed, 10 Jul 2013 20:15:45 +0000 (13:15 -0700)]
emerge-delta-webrsync: cleanup deltas
Zac Medico [Wed, 10 Jul 2013 19:41:13 +0000 (12:41 -0700)]
emerge-delta-webrsync: rm empty file, bug #476416
Zac Medico [Tue, 9 Jul 2013 21:20:05 +0000 (14:20 -0700)]
_job_delay: prevent accumlation of timeouts
Zac Medico [Tue, 9 Jul 2013 20:52:02 +0000 (13:52 -0700)]
Delay for loadavg after SIGCONT, bug #476104
Zac Medico [Tue, 9 Jul 2013 19:21:37 +0000 (12:21 -0700)]
EbuildPhase: fd_pipes NameError, bug #476312
Zac Medico [Sun, 7 Jul 2013 20:25:23 +0000 (13:25 -0700)]
test_doebuild_fd_pipes: test qmerge
Zac Medico [Sun, 7 Jul 2013 20:23:00 +0000 (13:23 -0700)]
test_doebuild_fd_pipes: test pkg_info
Zac Medico [Sun, 7 Jul 2013 19:48:00 +0000 (12:48 -0700)]
doebuild: support 'nofetch' phase
Zac Medico [Sun, 7 Jul 2013 19:34:34 +0000 (12:34 -0700)]
doebuild: handle tmpdir / returnpid interaction
Zac Medico [Sun, 7 Jul 2013 19:10:34 +0000 (12:10 -0700)]
calc_depclean: use runtime_slot_op priorities
Zac Medico [Sun, 7 Jul 2013 18:14:09 +0000 (11:14 -0700)]
Use sys.__std* streams for fileno().
Zac Medico [Sun, 7 Jul 2013 03:22:50 +0000 (20:22 -0700)]
MergeProcess: flush stderr for traceback
Zac Medico [Sun, 7 Jul 2013 02:48:38 +0000 (19:48 -0700)]
DoebuildFdPipesTestCase: fix docstring
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.
Zac Medico [Sun, 7 Jul 2013 02:16:56 +0000 (19:16 -0700)]
ForkProcess: flush stderr for traceback
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).
Zac Medico [Sat, 6 Jul 2013 21:52:09 +0000 (14:52 -0700)]
_ignore_satisfied_buildtime: tweak optional
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.
Zac Medico [Sat, 6 Jul 2013 19:23:45 +0000 (12:23 -0700)]
man/portage.5: clarify package.provided virtuals
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).
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.
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.
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.
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).
Zac Medico [Fri, 28 Jun 2013 01:54:20 +0000 (18:54 -0700)]
RepoConfigLoader: support repos.conf directory
Zac Medico [Fri, 28 Jun 2013 01:45:42 +0000 (18:45 -0700)]
getconfig: share recursion code with grablines
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.
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.
Arfrever Frehtes Taifersar Arahesis [Wed, 26 Jun 2013 03:31:43 +0000 (05:31 +0200)]
Update comments.
Zac Medico [Tue, 25 Jun 2013 19:24:40 +0000 (12:24 -0700)]
repoman: simplify repo location comparison
Zac Medico [Tue, 25 Jun 2013 18:50:01 +0000 (11:50 -0700)]
repoman: canonical path for repo location compare
Zac Medico [Tue, 25 Jun 2013 07:48:18 +0000 (00:48 -0700)]
Use /proc/self/fd for solaris compat, bug #474536
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.
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.
Arfrever Frehtes Taifersar Arahesis [Tue, 25 Jun 2013 02:21:07 +0000 (04:21 +0200)]
Stop setting PORTDIR / PORTDIR_OVERLAY in repoman.
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.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 22:02:39 +0000 (00:02 +0200)]
portage.repository.config.RepoConfigLoader: Add __contains__().
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 21:45:31 +0000 (23:45 +0200)]
portage.repository.config.RepoConfigLoader: Fix __delitem__() and unimplement __setitem__().
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.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 20:00:15 +0000 (22:00 +0200)]
portage.package.ebuild.config.config(): Add repositories parametre.
Arfrever Frehtes Taifersar Arahesis [Mon, 24 Jun 2013 19:44:30 +0000 (21:44 +0200)]
portage.repository.config.RepoConfigLoader: Add __setitem__() and __delitem__().
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.
Zac Medico [Mon, 24 Jun 2013 19:24:39 +0000 (12:24 -0700)]
RepoConfigLoader: fix bug #474578
Vladimir Romanov [Mon, 24 Jun 2013 19:09:24 +0000 (12:09 -0700)]
Add man/ru/color.map.5
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.
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.
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.
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.
Zac Medico [Mon, 24 Jun 2013 02:27:37 +0000 (19:27 -0700)]
getconfig: convert source IOError to ParseError
Zac Medico [Sun, 23 Jun 2013 22:56:58 +0000 (15:56 -0700)]
Use /proc/<pid>/fd for solaris compat, bug 474536
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)
Zac Medico [Sat, 22 Jun 2013 17:49:36 +0000 (10:49 -0700)]
find_binary: return bytes when input is bytes
Zac Medico [Sat, 22 Jun 2013 06:37:12 +0000 (23:37 -0700)]
emerge-webrsync: fetch_file rm absolute path
Zac Medico [Sat, 22 Jun 2013 06:14:35 +0000 (23:14 -0700)]
emerge-delta-webrsync: clean TMPDIR more
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.
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.
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).
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.
Zac Medico [Fri, 21 Jun 2013 22:23:32 +0000 (15:23 -0700)]
Normalize EPREFIX more.
Zac Medico [Fri, 21 Jun 2013 22:09:52 +0000 (15:09 -0700)]
install.py: add note about parse_known_args
Zac Medico [Fri, 21 Jun 2013 21:24:36 +0000 (14:24 -0700)]
install.py: Python 2.6 and 3.1 optparse compat
Anthony Basile [Fri, 21 Jun 2013 20:41:17 +0000 (13:41 -0700)]
install.py wrapper for xattrs, bug #465000
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.
Zac Medico [Thu, 20 Jun 2013 07:05:34 +0000 (00:05 -0700)]
chpathtool: fix mime_type TypeError, bug #473892
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.
Zac Medico [Thu, 20 Jun 2013 00:00:58 +0000 (17:00 -0700)]
Test cross-prefix best/has_version --host-root.
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.
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.
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).
Zac Medico [Wed, 19 Jun 2013 19:21:44 +0000 (12:21 -0700)]
RepoConfigLoader: fix last commit
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.
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.
Zac Medico [Wed, 19 Jun 2013 18:02:21 +0000 (11:02 -0700)]
RepoConfigLoader: handle invalid repos.conf more
Zac Medico [Wed, 19 Jun 2013 05:55:32 +0000 (22:55 -0700)]
RepoConfigLoader: initialize missing_repo_names
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.
Zac Medico [Wed, 19 Jun 2013 03:57:52 +0000 (20:57 -0700)]
RepoConfigLoader: handle configparser.Error
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.