Zac Medico [Tue, 23 Jul 2013 05:56:00 +0000 (22:56 -0700)]
Delay validation of repos.conf locations/names.
For backward compatibility with locations set via PORTDIR and
PORTDIR_OVERLAY, delay validation of the location and repo.name
until after PORTDIR and PORTDIR_OVERLAY have been processed.
Zac Medico [Tue, 23 Jul 2013 04:45:13 +0000 (21:45 -0700)]
Remove stray print from last commit.
Zac Medico [Tue, 23 Jul 2013 04:42:22 +0000 (21:42 -0700)]
RepoConfigLoader: PORTDIR/repos.conf interaction
Arfrever Frehtes Taifersar Arahesis [Mon, 22 Jul 2013 22:30:39 +0000 (00:30 +0200)]
Move hardcoded atoms of cvs, git and rsync to portage.const module and fix category of git atom.
Arfrever Frehtes Taifersar Arahesis [Mon, 22 Jul 2013 22:06:58 +0000 (00:06 +0200)]
Add support for multiple repositories in `emerge --sync`.
Configuration of synchronization is specified by new attributes
supported in repos.conf: sync-cvs-repo, sync-type, sync-uri.
SYNC variable is no longer supported, since it could not override
gentoo.sync-uri attribute now set in default configuration of
repositories (/usr/share/portage/config/repos.conf).
Zac Medico [Mon, 22 Jul 2013 20:47:50 +0000 (13:47 -0700)]
Quote ${PORTAGE_ECLASS_LOCATIONS[@]}
Zac Medico [Mon, 22 Jul 2013 19:19:56 +0000 (12:19 -0700)]
make.conf.5: note usersync reqs for bug #277970
Zac Medico [Mon, 22 Jul 2013 19:04:22 +0000 (12:04 -0700)]
emerge-webrsync: use PORTAGE_REPOSITORIES var
Using this variable allows us to get all required configuration data
with a singe portageq envvar call.
Zac Medico [Mon, 22 Jul 2013 18:08:09 +0000 (11:08 -0700)]
inherit: optimize eclass search
Use PORTAGE_ECLASS_LOCATIONS variable ordered so that we can break out
of the eclass search loop as soon as the first match is found.
Zac Medico [Mon, 22 Jul 2013 17:40:48 +0000 (10:40 -0700)]
Split PORTDIR_OVERLAY with shlex.
Zac Medico [Mon, 22 Jul 2013 16:42:48 +0000 (09:42 -0700)]
Sanitize PYTHONPATH for helpers, bug #477764
Arfrever Frehtes Taifersar Arahesis [Mon, 22 Jul 2013 04:44:03 +0000 (06:44 +0200)]
Improve documentation of repos.conf.
Zac Medico [Mon, 22 Jul 2013 03:20:43 +0000 (20:20 -0700)]
__save_ebuild_env: filter __repo_key
Zac Medico [Mon, 22 Jul 2013 02:34:48 +0000 (19:34 -0700)]
make.globals: usersync default, bug #477682
Zac Medico [Mon, 22 Jul 2013 02:21:41 +0000 (19:21 -0700)]
make.globals: userpriv + usersandbox, bug #477664
Zac Medico [Mon, 22 Jul 2013 01:58:50 +0000 (18:58 -0700)]
portageq: add aliases for bug #476830
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