Zac Medico [Sun, 5 Sep 2010 08:47:20 +0000 (01:47 -0700)]
Use lazy imports for CacheError and OrderedDict in the base portage
module.
Zac Medico [Sun, 5 Sep 2010 08:19:32 +0000 (01:19 -0700)]
Add a more generic AbstractEbuildProcess._elog() method to replace
the existing _eerror() method.
Zac Medico [Sun, 5 Sep 2010 07:56:44 +0000 (00:56 -0700)]
Make EbuildPhase._elog() use the NOCOLOR variable from self.settings,
so presence of color in the log file is consistent.
Zac Medico [Sun, 5 Sep 2010 07:28:49 +0000 (00:28 -0700)]
Take the code which displays ebuild information before pkg_setup,
and move it from ebuild.sh to EbuildPhase. This way we can easily
use python to extend it for bug #336019.
Zac Medico [Sun, 5 Sep 2010 07:07:11 +0000 (00:07 -0700)]
Remove redundant initial os.sep argument to os.path.join() calls
involving EROOT.
Zac Medico [Sun, 5 Sep 2010 06:59:13 +0000 (23:59 -0700)]
In show_invalid_depstring_notice(), use normal Package attributes
instead of the old Task.__getitem__() approach that relies on
the values inside the hash key.
Zac Medico [Sun, 5 Sep 2010 06:23:54 +0000 (23:23 -0700)]
In AbstractEbuildProcess._start(), verify that PORTAGE_BUILDIR
exists and bail out if necessary.
Zac Medico [Sun, 5 Sep 2010 05:47:42 +0000 (22:47 -0700)]
Add scheduler._init_installed_graph() and _destroy_installed_graph()
methods and use them to free memory when calling _calc_resume_list()
for emerge --keep-going.
Zac Medico [Sun, 5 Sep 2010 00:09:31 +0000 (17:09 -0700)]
Refere to package.accept_keywords instead of package.keywords in
the release note about emerge --autounmask.
Zac Medico [Sat, 4 Sep 2010 23:39:13 +0000 (16:39 -0700)]
Ignore build-time blockers from DEPEND in
BlockerDB.findInstalledBlockers(), since the
given package should be built already.
Zac Medico [Sat, 4 Sep 2010 23:00:36 +0000 (16:00 -0700)]
Add a Scheduler._frozen_config attribute that will be useful for
dependency calculations related to aggressive parallelization
(bug #279623). The FakeVartree instances are shared with the
existing BlockerDB instances.
Fabian Groffen [Sat, 4 Sep 2010 18:24:43 +0000 (20:24 +0200)]
use EROOT with NEWS_LIB_PATH
Fabian Groffen [Sat, 4 Sep 2010 18:17:42 +0000 (20:17 +0200)]
use EROOT with WORLD_SETS_FILE
Fabian Groffen [Sat, 4 Sep 2010 18:11:31 +0000 (20:11 +0200)]
Merge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/portage
Arfrever Frehtes Taifersar Arahesis [Sat, 4 Sep 2010 18:10:50 +0000 (20:10 +0200)]
Don't set _, which is reserved for portage.localization._().
Fabian Groffen [Sat, 4 Sep 2010 18:08:53 +0000 (20:08 +0200)]
Merge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/portage
Fabian Groffen [Sat, 4 Sep 2010 18:08:35 +0000 (20:08 +0200)]
use EROOT with WORLD_FILE
Zac Medico [Sat, 4 Sep 2010 17:59:10 +0000 (10:59 -0700)]
Remove redundant writemsg_stdout() call in search.output() which causes
duplicate emerge --search output when package sets are matched.
Fabian Groffen [Sat, 4 Sep 2010 17:57:53 +0000 (19:57 +0200)]
use EROOT with CACHE_PATH
Fabian Groffen [Sat, 4 Sep 2010 17:57:34 +0000 (19:57 +0200)]
use EROOT with VDB_PATH
Fabian Groffen [Sat, 4 Sep 2010 17:43:53 +0000 (19:43 +0200)]
use EROOT with VDB_PATH
Fabian Groffen [Sat, 4 Sep 2010 17:21:21 +0000 (19:21 +0200)]
fix comments to match latest intentions in the code
Arfrever Frehtes Taifersar Arahesis [Sat, 4 Sep 2010 16:53:26 +0000 (18:53 +0200)]
Fix typo.
Zac Medico [Sat, 4 Sep 2010 09:02:29 +0000 (02:02 -0700)]
In BinpkgExtractorAsync, add -q to bzip2 opts, in order to avoid
"trailing garbage after EOF ignored" warning messages due to xpak
trailer.
Zac Medico [Sat, 4 Sep 2010 06:51:31 +0000 (23:51 -0700)]
Replace svn-trunk with VERSION in doc/fragment/version, for use as a
sed template as is done with the man page headers.
Zac Medico [Sat, 4 Sep 2010 06:35:47 +0000 (23:35 -0700)]
Add missing portage import in portage.locks.
Zac Medico [Sat, 4 Sep 2010 06:25:24 +0000 (23:25 -0700)]
In the short timeout test for QueueScheduler.run(), assert that the
subprocess has stopped.
Zac Medico [Sat, 4 Sep 2010 06:16:55 +0000 (23:16 -0700)]
Add back PortageException handler inside mod_mail_summary.finalize()
since portage.mail.send_mail() can raise this exception.
Zac Medico [Sat, 4 Sep 2010 06:00:55 +0000 (23:00 -0700)]
Make ebuild-ipc.py call portage._disable_legacy_globals() since it
doesn't need any of that stuff.
Zac Medico [Sat, 4 Sep 2010 05:51:59 +0000 (22:51 -0700)]
Make portage.locks avoid importing the portage.output module when in
quiet mode. This is one less import triggered by ebuild-ipc.py, which
should be as lightweight as possible.
Zac Medico [Sat, 4 Sep 2010 05:39:15 +0000 (22:39 -0700)]
Move registration of the close_portdbapi_caches() exit hook from the
portage base module to the portree module, so that the base portage
module can be imported without triggering import of the portage.process
(for atexit_register) and portage.dbapi.porttree modules. Also, don't
bother to commit the mtimedb in the exit hook since it's not really
needed.
Zac Medico [Sat, 4 Sep 2010 05:08:26 +0000 (22:08 -0700)]
Use a lazy import for portage.dep instide portage.util.
Zac Medico [Sat, 4 Sep 2010 04:56:48 +0000 (21:56 -0700)]
Move portage.locks imports to the top of the file.
Zac Medico [Sat, 4 Sep 2010 01:26:57 +0000 (18:26 -0700)]
Adjust AlarmSignal.unregister() call in ebuild-ipc.
Zac Medico [Sat, 4 Sep 2010 01:19:16 +0000 (18:19 -0700)]
Use AlarmSignal for timout handling in mod_mail_summary.finalize().
Zac Medico [Sat, 4 Sep 2010 01:11:00 +0000 (18:11 -0700)]
Make AlarmSignal._signal_handler() restore the default SIGALRM
handler.
Zac Medico [Sat, 4 Sep 2010 01:05:12 +0000 (18:05 -0700)]
Use AlarmSignal for timeout handling in elog_process().
Zac Medico [Sat, 4 Sep 2010 01:02:29 +0000 (18:02 -0700)]
Fix breakage from previous commit.
Zac Medico [Sat, 4 Sep 2010 00:50:53 +0000 (17:50 -0700)]
Move AlarmSignal.unregister() call to a better place in action_sync().
Zac Medico [Sat, 4 Sep 2010 00:47:22 +0000 (17:47 -0700)]
Use AlarmSignal for alarm timeout in action_sync().
Zac Medico [Sat, 4 Sep 2010 00:23:08 +0000 (17:23 -0700)]
Make AlarmSignal.register() require a time parameter and pass it to
signal.alarm().
Zac Medico [Sat, 4 Sep 2010 00:11:03 +0000 (17:11 -0700)]
Add AlarmSignal.register() and unregister() classmethods in order to
handle interaction with the signal module.
Zac Medico [Fri, 3 Sep 2010 22:39:15 +0000 (15:39 -0700)]
Add a test case for intentionally short timeout with QueueScheduler.run().
Zac Medico [Fri, 3 Sep 2010 21:23:58 +0000 (14:23 -0700)]
Add support for a timeout argument to QueueScheduler.run() and
use it in IpcDaemonTestCase to implement a 40 second timeout
in test cases.
Zac Medico [Fri, 3 Sep 2010 21:17:12 +0000 (14:17 -0700)]
Bug #335777 - Add a 40 second timeout in ebuild-ipc.py, so that if an
orphan is left for any reason then it will exit with an error message
instead of hanging indefinitely.
Zac Medico [Fri, 3 Sep 2010 21:11:07 +0000 (14:11 -0700)]
Account for package.use.force/mask in previous commit.
Sebastian Luther [Fri, 3 Sep 2010 20:42:05 +0000 (22:42 +0200)]
autounmask: Don't print masked/forced flags in "required by" comments
Sebastian Luther [Fri, 3 Sep 2010 20:23:11 +0000 (22:23 +0200)]
Old "Change USE" message: Don't screw up if the highest version is masked and parent changes exist
Zac Medico [Fri, 3 Sep 2010 11:05:54 +0000 (04:05 -0700)]
Make emerge display a warning message if FEATURES contains keepwork
or keeptemp since these features may confuse users and lead them
to report invalid bugs.
Zac Medico [Fri, 3 Sep 2010 07:49:10 +0000 (00:49 -0700)]
Fix VDB_PATH handling in ebuild(1) to join with EROOT.
Zac Medico [Fri, 3 Sep 2010 06:21:06 +0000 (23:21 -0700)]
Add a "Delayed Evaluation of Disjunctive Dependency Choices" section
to depenency resolution documentation.
Zac Medico [Fri, 3 Sep 2010 01:54:47 +0000 (18:54 -0700)]
Unify to different pieces of code that handle sandbox considerations for
TEMP, TMP, and TMPDIR variables.
Zac Medico [Thu, 2 Sep 2010 22:08:35 +0000 (15:08 -0700)]
Fix whenago() to show times as integers instead of floats.
Zac Medico [Thu, 2 Sep 2010 21:33:48 +0000 (14:33 -0700)]
Add backward compatible config.pmaskdict and punmaskdict properties
that return copies of the corresponding MaskManager attributes. This
is safe since MaskManager now stores the values in these dicts as
immutable tuples.
Zac Medico [Thu, 2 Sep 2010 21:32:12 +0000 (14:32 -0700)]
Make MaskManager use tuples for values inside _pmaskdict and
_punmaskdict.
Zac Medico [Thu, 2 Sep 2010 21:31:35 +0000 (14:31 -0700)]
Implement ExtendedAtomDict.copy().
Zac Medico [Thu, 2 Sep 2010 21:10:51 +0000 (14:10 -0700)]
Bug #335620 - Add backward compatible config.virtuals and virts_p
properties, and trigger a DeprecationWarning if they are accessed.
Zac Medico [Thu, 2 Sep 2010 20:15:10 +0000 (13:15 -0700)]
Prevent local x variable in ebuild_main() from showing up in
environment.bz2.
Zac Medico [Thu, 2 Sep 2010 20:06:08 +0000 (13:06 -0700)]
Prevent the local filter_opts variable in filter_readonly_variables()
from being saved in environment.bz2.
Zac Medico [Thu, 2 Sep 2010 19:56:24 +0000 (12:56 -0700)]
Filter more variables that don't need to end up in environment.bz2.
Zac Medico [Thu, 2 Sep 2010 19:54:50 +0000 (12:54 -0700)]
Fix breakage for python3 from trying to mix bytes and unicode in
load_default_config().
Zac Medico [Thu, 2 Sep 2010 19:24:02 +0000 (12:24 -0700)]
Add a _SANDBOX_COMPAT_LEVEL constant which will be used to enable
a workaround for bug #288863 in the stable branch.
Zac Medico [Thu, 2 Sep 2010 19:13:59 +0000 (12:13 -0700)]
When signaling successful exit from an ebuild phase via ebuild-ipc,
first check for non-empty $SANDBOX_LOG and signal unsuccessful exit
if necessary. This fixes an issue with phases being treated as
successful even when there were sandbox violations.
Michał Górny [Thu, 2 Sep 2010 18:31:12 +0000 (20:31 +0200)]
Omit dotfiles in /usr/share/portage/config/sets (e.g. vim swapfiles).
Zac Medico [Thu, 2 Sep 2010 18:00:56 +0000 (11:00 -0700)]
Bug #248603 - Add a _ENABLE_REPO_NAME_WARN constant that's used to
disable warnings about "missing repo_name entries" for the stable
branch.
Zac Medico [Thu, 2 Sep 2010 17:19:05 +0000 (10:19 -0700)]
Hide the portageq list_preserved_libs command when _ENABLE_PRESERVE_LIBS
is False.
Zac Medico [Thu, 2 Sep 2010 14:11:55 +0000 (07:11 -0700)]
Bug #335670 - Make copyright header in herdbase.py refer to "GPL 2 or later"
instead of just GPL-2.
Zac Medico [Thu, 2 Sep 2010 07:53:28 +0000 (00:53 -0700)]
Make repoman disable FEATURES=unknown-features-warn for the profiles
it's checking, since it's confusing if these warnings are displayed
without the user being told which profile they come from.
Zac Medico [Thu, 2 Sep 2010 07:05:06 +0000 (00:05 -0700)]
Adjust EbuildIpcDaemon pickle read and write code in order to ensure
atomc reading and writing of whole pickles. This should be the least
error-prone approach, given the non-blocking nature of the streams.
Zac Medico [Thu, 2 Sep 2010 05:32:15 +0000 (22:32 -0700)]
Bug #335642 - Also make show_masked_packages() display to stdout since
depgraph._show_unsatisfied_dep() calls it.
Zac Medico [Thu, 2 Sep 2010 05:22:52 +0000 (22:22 -0700)]
Bug #335642 - Revert depgraph._show_unsatisfied_dep() to display to
stdout, so that app-portage/autounmask continues to work. Note that
depgraph.display_problems() temporarily overrides the stdout stream
to point to stderr, so mask messages shown there continue to go
to stderr. Maybe the emerge --autounmask will eventually make
app-portage/autounmask obsolete, but for now we should support both
approaches since emerge --autounmask is relatively experimental.
Zac Medico [Wed, 1 Sep 2010 18:09:47 +0000 (11:09 -0700)]
Remove reference to nonexistent _unlock_builddir() method in
EbuildPhase._env_extractor_exit().
Zac Medico [Wed, 1 Sep 2010 17:27:14 +0000 (10:27 -0700)]
Add support to config.setcpv() for caching USE settings from built
packages, and use it for evaluating conditional USE deps in atoms
passed via IPC to helpers like has_version and best_version.
Since the pickled object that contains the IPC command will no longer
contain USE, it should solve cases that have been reported in which
large USE strings trigger poor handling of non-blocking read in
pickle.load():
Traceback (most recent call last):
File "/usr/bin/emerge", line 43, in <module>
retval = emerge_main()
File "/usr/lib64/portage/pym/_emerge/main.py", line 1649, in emerge_main
myopts, myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/actions.py", line 437, in action_build
retval = mergetask.merge()
File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1033, in merge
rval = self._merge()
File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1349, in _merge
self._main_loop()
File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1498, in _main_loop
self._poll_loop()
File "/usr/lib64/portage/pym/_emerge/PollScheduler.py", line 139, in _poll_loop
handler(f, event)
File "/usr/lib64/portage/pym/_emerge/EbuildIpcDaemon.py", line 36, in _input_handler
obj = pickle.load(self._files.pipe_in)
File "/usr/lib64/python2.6/pickle.py", line 1370, in load
return Unpickler(file).load()
File "/usr/lib64/python2.6/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib64/python2.6/pickle.py", line 1195, in load_setitem
value = stack.pop()
IndexError: pop from empty list
Zac Medico [Wed, 1 Sep 2010 16:00:48 +0000 (09:00 -0700)]
Make atomic directory creation code in dblink.mergeme() use equivalent
error handling to portage.util.ensure_dirs().
Zac Medico [Wed, 1 Sep 2010 15:51:41 +0000 (08:51 -0700)]
Add a note to the ensure_dirs() docstring about atomic directory creation.
Zac Medico [Wed, 1 Sep 2010 15:42:15 +0000 (08:42 -0700)]
Make ensure_dirs() use os.path.isdir() to verify that the directory
exists when EISDIR is raised, since this is abnormal behavior.
Zac Medico [Wed, 1 Sep 2010 15:37:11 +0000 (08:37 -0700)]
In ensure_dirs(), only call apply_permissions() when keyword arguments
for it are given.
Zac Medico [Wed, 1 Sep 2010 14:23:28 +0000 (07:23 -0700)]
Make more doebuild() commands exempt from _check_temp_dir().
Zac Medico [Wed, 1 Sep 2010 09:32:28 +0000 (02:32 -0700)]
In doebuild(), don't call _check_temp_dir() for pseudo-phases such as
'manifest' and 'digest' that don't require a temp dir.
Zac Medico [Wed, 1 Sep 2010 06:00:53 +0000 (23:00 -0700)]
In dblink.mergeme(), handle EISDIR which can be raised from mkdir calls
on FreeBSD (see bug #187518).
Zac Medico [Wed, 1 Sep 2010 05:31:24 +0000 (22:31 -0700)]
Fix WorldSelectedSet._load2() to always return a list instead of a
set for nonatoms so that we don't trigger 'TypeError: can only
concatenate list (not "set") to list'.
Zac Medico [Wed, 1 Sep 2010 05:12:44 +0000 (22:12 -0700)]
Fix depgraph._serialize_tasks() so that portage-9999 is always promoted
to the front of the merge list when it is reinstalled.
David James [Wed, 14 Jul 2010 00:03:21 +0000 (17:03 -0700)]
Fix portage to create directories atomically in fast build.
If multiple ebuild processes create the same directory, portage should not
exit with an error message. Instead we should just be okay with the fact
that another process created the directory.
This is only necessary for fast build because we eliminate the giant lock that
surrounds package merges.
TEST=Create fresh chroot and do full build from source start to finish
BUG=none
Review URL: http://codereview.chromium.org/
2998002
David James [Fri, 13 Aug 2010 20:39:17 +0000 (13:39 -0700)]
Update portage to create directories atomically.
Portage should use the ensure_dirs function instead of os.makedirs to create
directories, because this function ensures atomicity. It prevents failures
when more than one process tries to create the same directory.
This fixes a crash bug reported by msb:
[...]
File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 3258, in _merge
self.vartree.dbapi._bump_mtime(self.mycpv)
File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 152, in _bump_mtime
os.makedirs(catdir)
File "/usr/lib64/portage/pym/portage/__init__.py", line 210, in __call__
rval = self._func(*wrapped_args, **wrapped_kwargs)
File "/usr/lib64/python2.6/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '/home/msb/trunk/src/build/images/x86-generic/0.8.63.2010_08_03_1844-a1/rootfs//var/db/pkg/x11-proto'
BUG=chromium-os:5366
TEST=build_packages && build_image
Review URL: http://codereview.chromium.org/
3113014
Zac Medico [Tue, 31 Aug 2010 19:18:49 +0000 (12:18 -0700)]
Add comments about consumers of FakeVardbapi.getpath().
Zac Medico [Tue, 31 Aug 2010 19:16:02 +0000 (12:16 -0700)]
Simplify the vartree constructor usage in config.getvirtuals().
Zac Medico [Tue, 31 Aug 2010 19:13:45 +0000 (12:13 -0700)]
Use self.dbapi.getpath() to simplify code in vartree.get_provide().
Zac Medico [Tue, 31 Aug 2010 19:08:27 +0000 (12:08 -0700)]
Bug #335439 - Fix "AttributeError: 'vartree' object has no attribute
'_eroot'" in vartree.get_provide().
Zac Medico [Tue, 31 Aug 2010 18:45:28 +0000 (11:45 -0700)]
When portage updates itself and the new version either inherits
git.eclass or has 9999 in its version, trigger the 'use copy of current
sources for install, then restart portage' routine. This is required
since with the live git portage-9999 ebuild we can't use the version
to detect incompatible changes to ebuild.sh. This issue was noticed
due to recent versions of ebuild.sh expecting PORTAGE_BZIP2_COMMAND to
be set, causing incompatibility with installed portage-9999 instances.
Zac Medico [Tue, 31 Aug 2010 16:54:14 +0000 (09:54 -0700)]
Fix ResolverPlayground.cleanup() to cleanup the portdbapi instance.
Zac Medico [Tue, 31 Aug 2010 15:10:29 +0000 (08:10 -0700)]
Add a fallback PORTAGE_BZIP2_COMMAND setting in ebuild.sh, as a
workaround for portage-9999 users.
Zac Medico [Tue, 31 Aug 2010 06:25:29 +0000 (23:25 -0700)]
Show PORTAGE_BZIP2_COMMAND and PORTAGE_BUNZIP2_COMMAND in emerge --info,
in case it triggers mysterious unpack() issues or something.
Zac Medico [Tue, 31 Aug 2010 06:06:46 +0000 (23:06 -0700)]
Fix bugs in features_set._prune_overrides() and add another test case.
Zac Medico [Tue, 31 Aug 2010 05:00:44 +0000 (22:00 -0700)]
Add testcase to check that features_set._prune_overrides() is working
correctly.
Zac Medico [Tue, 31 Aug 2010 04:14:31 +0000 (21:14 -0700)]
Bug #335340 - Use PORTAGE_BUNZIP2_COMMAND and PORTAGE_BZIP2_COMMAND in
ebuild.sh where appropriate:
* unpack()
* environment.bz2 compression
Zac Medico [Tue, 31 Aug 2010 03:55:11 +0000 (20:55 -0700)]
Bug #335340 - Add support for PORTAGE_BZIP2_COMMAND and
PORTAGE_BUNZIP2_COMMAND settings in make.conf. This only adds support
for binary packages, since that's where pbzip2 can provide the most
benefit in common cases.
Zac Medico [Tue, 31 Aug 2010 01:43:21 +0000 (18:43 -0700)]
Bug #326561 - Implement FEATURES=unknown-features-filter. This is not
enabled by default now, but it may be in the future, depending on feedback
from unknown-features-warn.
Zac Medico [Tue, 31 Aug 2010 00:54:34 +0000 (17:54 -0700)]
Move FEATURES=unknown-features-warn code to config.regenerate() so
that it shows warnings for unknown FEATURES settings from package.env,
and keep a record of shown warnings in config._unknown_features.
Zac Medico [Mon, 30 Aug 2010 23:46:09 +0000 (16:46 -0700)]
When _ENABLE_DYN_LINK_MAP is False, show additional --depclean help
and warnings advising use of revdep-rebuild.
Zac Medico [Mon, 30 Aug 2010 23:15:12 +0000 (16:15 -0700)]
When _ENABLE_SET_CONFIG is False, disable reading/writing of the
world_sets file in WorldSelectedSet.