Zac Medico [Sat, 21 May 2011 04:01:31 +0000 (21:01 -0700)]
test_merge_order: test hard buildtime blockers
Zac Medico [Sat, 21 May 2011 03:49:08 +0000 (20:49 -0700)]
test_merge_order: test hard blocker resolution
Zac Medico [Sat, 21 May 2011 03:30:30 +0000 (20:30 -0700)]
test_merge_order: test blocker resolution
Zac Medico [Sat, 21 May 2011 01:16:46 +0000 (18:16 -0700)]
test_merge_order: remove uneeded ambigous flag
Zac Medico [Sat, 21 May 2011 01:11:56 +0000 (18:11 -0700)]
test_merge_order: fix ambigous_merge_order bug
Zac Medico [Sat, 21 May 2011 01:00:02 +0000 (18:00 -0700)]
test_merge_order: test circular RDEPEND + PDEPEND
Zac Medico [Sat, 21 May 2011 00:51:09 +0000 (17:51 -0700)]
ResolverPlayground: support ambigous_merge_order
Zac Medico [Fri, 20 May 2011 22:01:21 +0000 (15:01 -0700)]
Fix grammar in previous commit.
Zac Medico [Fri, 20 May 2011 21:56:08 +0000 (14:56 -0700)]
depclean: adjust failure message wrt --with-bdeps
We need to be more explicit about using --with-bdeps=y, since this
subtlety often leads to confusion.
Zac Medico [Fri, 20 May 2011 20:40:13 +0000 (13:40 -0700)]
Task: optimize == and != _hash_key comparison
MATSUU Takuto [Fri, 20 May 2011 19:20:58 +0000 (12:20 -0700)]
Add FEATURES=distcc-pump support.
This will fix bug #288597.
Zac Medico [Fri, 20 May 2011 06:31:55 +0000 (23:31 -0700)]
Task: precalculate _hash_value
Zac Medico [Fri, 20 May 2011 06:23:51 +0000 (23:23 -0700)]
Task: remove unnecessary _get_hash_key() method
Marat Radchenko [Fri, 20 May 2011 04:25:17 +0000 (08:25 +0400)]
Package: precalculate _hash_key
This eliminates an expensive getattr call in _get_hash_key(), which
greatly improves depgraph performance on a weak ARM cpu.
Arfrever Frehtes Taifersar Arahesis [Wed, 18 May 2011 19:46:09 +0000 (21:46 +0200)]
Fix typos in comments.
Zac Medico [Wed, 18 May 2011 05:38:07 +0000 (22:38 -0700)]
_find_libs_to_preserve: always return set
Zac Medico [Wed, 18 May 2011 05:27:07 +0000 (22:27 -0700)]
preserve-libs: check for broken linkmap more
Zac Medico [Wed, 18 May 2011 04:37:08 +0000 (21:37 -0700)]
_pkg_visibility_check: if in graph then visible
Zac Medico [Wed, 18 May 2011 04:00:39 +0000 (21:00 -0700)]
_LockProcess.unlock: assert successful returncode
Zac Medico [Wed, 18 May 2011 03:46:36 +0000 (20:46 -0700)]
etc-update: clear term when appropriate
This solves an issue like bug #142508, but involving etc-update instead
of dispatch-conf. This is also relevant to bug #70668, which is the
same issue, though the reporter suggested to use colors to delimit the
output instead of using clear.
Zac Medico [Wed, 18 May 2011 01:49:57 +0000 (18:49 -0700)]
Fix a typo in a comment.
Zac Medico [Wed, 18 May 2011 01:43:32 +0000 (18:43 -0700)]
digraph: implement __bool__
Zac Medico [Wed, 18 May 2011 01:31:15 +0000 (18:31 -0700)]
depgraph._resolve: use temp set for autounmask
Zac Medico [Wed, 18 May 2011 00:54:34 +0000 (17:54 -0700)]
display_autounmask: optimize check_if_latest
Zac Medico [Tue, 17 May 2011 22:19:20 +0000 (15:19 -0700)]
test_asynchronous_lock: simulate SIGINT from tty
Zac Medico [Tue, 17 May 2011 21:32:33 +0000 (14:32 -0700)]
AsynchronousTask: tweak poll() logic
Zac Medico [Tue, 17 May 2011 21:25:47 +0000 (14:25 -0700)]
AsynchronousLock: implement _poll() and test
Zac Medico [Tue, 17 May 2011 21:14:20 +0000 (14:14 -0700)]
test_asynchronous_lock: test returncode more
Zac Medico [Tue, 17 May 2011 21:02:12 +0000 (14:02 -0700)]
test_asynchronous_lock: test wait and cancel
Zac Medico [Tue, 17 May 2011 20:56:15 +0000 (13:56 -0700)]
test_asynchronous_lock: test waiting
Zac Medico [Mon, 16 May 2011 07:21:03 +0000 (00:21 -0700)]
BinpkgFetcher: handle AsynchronousLock failure
Zac Medico [Mon, 16 May 2011 07:10:07 +0000 (00:10 -0700)]
EbuildBuildDir: handle AsynchronousLock failure
Zac Medico [Mon, 16 May 2011 06:54:49 +0000 (23:54 -0700)]
_LockProcess: handle process failure more
Zac Medico [Mon, 16 May 2011 06:17:27 +0000 (23:17 -0700)]
_LockProcess: handle process failure if cancelled
Zac Medico [Mon, 16 May 2011 01:25:59 +0000 (18:25 -0700)]
preserve-libs: lock vardb for removeFromContents
Zac Medico [Sun, 15 May 2011 22:29:15 +0000 (15:29 -0700)]
make.conf.txt: remove because unused/unmaintained
Arfrever Frehtes Taifersar Arahesis [Sun, 15 May 2011 21:24:31 +0000 (23:24 +0200)]
Fix some typos.
Zac Medico [Sun, 15 May 2011 05:21:08 +0000 (22:21 -0700)]
Use vardbapi.lock() where applicable.
Zac Medico [Sun, 15 May 2011 04:39:26 +0000 (21:39 -0700)]
movefile: handle EEXIST when os.symlink fails
Zac Medico [Sun, 15 May 2011 01:56:39 +0000 (18:56 -0700)]
_LibGraphNode: re-use the _key attribute
This allows us to avoid repeating any previous stat calls, which helps
to avoid potential race conditions due to inconsistent stat results
when the file system is being modified concurrently.
Arfrever Frehtes Taifersar Arahesis [Sat, 14 May 2011 22:56:35 +0000 (00:56 +0200)]
Fix a typo in a comment.
Zac Medico [Sat, 14 May 2011 22:14:45 +0000 (15:14 -0700)]
find_unused_preserved_libs: fix unmerge handling
Since commit
c64d4abee145d083c70273be8fd23bd56dffe7ec (bug #286714),
preserved libs have not been properly garbage collected when packages
are unmerged without replacement, due to a difference in LinkageMap
state. It should behave correcly now.
Zac Medico [Sat, 14 May 2011 21:41:22 +0000 (14:41 -0700)]
prune_plib_registry: display preserved libs
Since commit
c64d4abee145d083c70273be8fd23bd56dffe7ec, sometimes we
preserve libs for unmerged packages here (bug #286714), so we should
display them like we do in _add_preserve_libs_to_contents().
Zac Medico [Sat, 14 May 2011 21:25:16 +0000 (14:25 -0700)]
treewalk: fix plib_collisions with same cpv
Sebastian Luther [Sat, 14 May 2011 20:44:22 +0000 (22:44 +0200)]
--autounmask: Use >= atoms if possible
If the package is the latest avaiable it now uses >=cat/pkg-ver instead
of =cat/pkg-ver. If the package is not the latest, but the latest in
its slot, >=cat/pkg-ver:slot is used. In all other case =cat/pkg-ver
is used. Rational is that it's more likely that newer versions, added
in the future, will work with the same configuration changes as the
currently latest version than not.
Zac Medico [Sat, 14 May 2011 08:45:06 +0000 (01:45 -0700)]
preserve-libs: preserve during uninstall
This will fix bug #286714. The emerge --depclean-lib-check option will
now be ignored when FEATURES=preserve-libs is enabled, since any
libraries that have consumers will simply be preserved.
Zac Medico [Thu, 12 May 2011 19:04:54 +0000 (12:04 -0700)]
cache.sqlite: handle readonly more
Zac Medico [Thu, 12 May 2011 19:02:27 +0000 (12:02 -0700)]
porttree: use pure volatile cache if necessary
Zac Medico [Thu, 12 May 2011 18:58:27 +0000 (11:58 -0700)]
cache.volatile: discard "perms" param
Zac Medico [Thu, 12 May 2011 18:42:08 +0000 (11:42 -0700)]
cache.sqlite: handle readonly
Zac Medico [Thu, 12 May 2011 17:51:08 +0000 (10:51 -0700)]
expand_new_virt: return early for non-virtual cat
Zac Medico [Thu, 12 May 2011 07:09:19 +0000 (00:09 -0700)]
expand_new_virt: skip match for non-virtual cat
Zac Medico [Thu, 12 May 2011 05:38:47 +0000 (22:38 -0700)]
dblink: fix broken counter references
Zac Medico [Thu, 12 May 2011 05:35:40 +0000 (22:35 -0700)]
treewalk: fix inverted counter init logic
Zac Medico [Thu, 12 May 2011 01:14:54 +0000 (18:14 -0700)]
portdbapi: tweak cache permission handling
This is a reponse to the following issue:
http://code.google.com/p/chromium-os/issues/detail?id=15234
Zac Medico [Wed, 11 May 2011 23:50:15 +0000 (16:50 -0700)]
EbuildPhase: extract binpkg env for pkg_pretend
This will fix bug #366939.
Zac Medico [Wed, 11 May 2011 20:24:22 +0000 (13:24 -0700)]
unmerge: use frozenset for syslist
Zac Medico [Wed, 11 May 2011 04:03:02 +0000 (21:03 -0700)]
dep_check_composite_db: return early from cp_list
Since this implementation is only intended to check for existence of
new-style virtuals, it's a waste of time to return more than one cpv.
Zac Medico [Tue, 10 May 2011 05:11:33 +0000 (22:11 -0700)]
depgraph: don't clear vardbapi cache in _load_vdb
Most of the memory is probably held on the heap by the installed
package instances anyway, and the cache is useful for being inherited
by subprocess in MergeProcess.
Zac Medico [Tue, 10 May 2011 05:05:40 +0000 (22:05 -0700)]
get_counter_tick_core: use cpv_all
It's more efficient to use cpv_all since cp_all calls cpv_all anyway,
and calls to cp_list induce additional stat calls.
David James [Tue, 10 May 2011 04:11:47 +0000 (21:11 -0700)]
Cache counter values, avoiding I/O when it doesn't change.
This improves merge times by up to 25%, since looping over the vardb for
each package install is slow.
TEST=Emerge a bunch of packages, notice 25% speed improvement.
BUG=chromium-os:15112
Change-Id: I51dd617219cd1820ceeb702291bd790990995be4
Zac Medico [Sun, 8 May 2011 03:05:21 +0000 (20:05 -0700)]
vardbapi: acquire lock during counter_tick_core
Zac Medico [Tue, 10 May 2011 01:03:27 +0000 (18:03 -0700)]
dep_check_composite_db: remove unused _dep_expand
This code has been unused since dep_check started passing
token_class=Atom to use_reduce in commit
c9f7930883d62fc26af72bff0c4623db0bbc8221. Since then, any atoms
without categories are dropped by dep_check because it returns
early after catching an InvalidDependString exception.
Zac Medico [Mon, 9 May 2011 22:34:06 +0000 (15:34 -0700)]
dep_check_composite_db: implement cp_list
This is used by dep_check since commit
6f9ee9c508c1506cdf8eb0dc46796dbe30f268db.
Zac Medico [Mon, 9 May 2011 20:41:56 +0000 (13:41 -0700)]
config: call _populate_treeVirtuals directly
Zac Medico [Mon, 9 May 2011 20:36:22 +0000 (13:36 -0700)]
cpv_expand: avoid old-style virtuals more
Zac Medico [Mon, 9 May 2011 20:30:04 +0000 (13:30 -0700)]
dep_check: avoid old-style virtuals code
Zac Medico [Mon, 9 May 2011 06:27:39 +0000 (23:27 -0700)]
display_news_notification: don't populate virts
This typically isn't useful anymore, since Gentoo has stopped using
old-style virtuals.
Zac Medico [Mon, 9 May 2011 06:23:07 +0000 (23:23 -0700)]
cpv_expand: populate old-style virts on demand
If old-style virtuals code is triggered here and we are given a
vartree, use it to avoid creating a temporary instance.
Zac Medico [Mon, 9 May 2011 06:08:43 +0000 (23:08 -0700)]
unmerge: skip getvirtuals() if cat is not virtual
This allows us to avoid triggering the old-style virtual code which
scans /var/db/pkg/*/*/PROVIDE.
Zac Medico [Mon, 9 May 2011 05:13:52 +0000 (22:13 -0700)]
unmerge: use expand_new_virt for sys pkg warnings
Zac Medico [Sun, 8 May 2011 21:40:08 +0000 (14:40 -0700)]
Update timestamps in headers of modified files.
Zac Medico [Sun, 8 May 2011 21:31:11 +0000 (14:31 -0700)]
PreservedLibsRegistry: normalize counter as str
Zac Medico [Sun, 8 May 2011 20:46:40 +0000 (13:46 -0700)]
Add back cpv_exists check from previous commit.
Zac Medico [Sun, 8 May 2011 20:19:47 +0000 (13:19 -0700)]
Remove obsolete others_in_slot plibs code.
This code dates back to commit
79a2ade5a6cb5a6c2d7ace838a39a634265c5522
and the preserve-libs logic was different back then. At that time, the
dblink._preserve_libs() method would earlier register preserved libs
for the new package currently being merged, while the vardb entry was
still a -MERGING- node. Current code does not register preserve_paths
until later, so this others_in_slot code is obsolete.
Zac Medico [Sun, 8 May 2011 19:31:07 +0000 (12:31 -0700)]
treewalk: always initialize "needed"
Zac Medico [Sun, 8 May 2011 19:05:49 +0000 (12:05 -0700)]
merge_wait_queue: use deque.clear()
Zac Medico [Sun, 8 May 2011 18:24:40 +0000 (11:24 -0700)]
resume_depgraph: don't call break_refs in loop
The break_refs call was unnecessary and it broke the state of the
frozen_config instance, causing the following error:
File "pym/_emerge/depgraph.py", line 1290, in
_wrapped_add_pkg_dep_string
inst_pkgs = vardb.match_pkgs(atom)
AttributeError: 'vardbapi' object has no attribute 'match_pkgs'
Zac Medico [Sun, 8 May 2011 07:09:37 +0000 (00:09 -0700)]
linkmap: use exclude_pkgs for the registry too
David James [Sun, 8 May 2011 06:08:01 +0000 (23:08 -0700)]
Use new vardbapi lock function in FakeVartree.
BUG=none
TEST=Merged some packages with new code. Ran test suite.
Change-Id: Ibb9380122631bf6c79e39691233cfd641931b75a
Zac Medico [Sun, 8 May 2011 05:58:33 +0000 (22:58 -0700)]
Be careful with system pkgs + parallel-install.
This should prevent FEATURES=parallel-install from interfering with
the fixes from bug #256616 and bug #259954.
Zac Medico [Sun, 8 May 2011 02:57:29 +0000 (19:57 -0700)]
Add vardbapi reentrant lock/unlock methods.
Zac Medico [Sat, 7 May 2011 21:59:54 +0000 (14:59 -0700)]
doebuild: use EbuildBuildDir for locking
EbuildBuildDir also performs safe removal of the category when it is
empty, so ebuild.sh/dyn_clean doesn't need to do it anymore. This
fixes a race condition if one process is trying to remove the category
directory while another one is trying to create it for
PORTAGE_BUILDDIR.
Zac Medico [Sat, 7 May 2011 17:25:20 +0000 (10:25 -0700)]
PreserveLibsRegistry: add lock/unlock assertions
Also, add comments to store() about unobvious interaction with
locking due to atomic replacement of the inode.
Zac Medico [Sat, 7 May 2011 03:28:21 +0000 (20:28 -0700)]
Remove redundant pruneNonExisting() call.
Since commit
f36b9fa38b5268c2a5579db62acec026625f84a9, the
PreservedLibsRegistry automatically prunes itself each time
that it is loaded.
Zac Medico [Sat, 7 May 2011 03:02:50 +0000 (20:02 -0700)]
preserve-libs: fix linkmap logic for new plibs
Together with commit
f36b9fa38b5268c2a5579db62acec026625f84a9,
hopefully this solves bug #366061.
David James [Thu, 5 May 2011 21:08:27 +0000 (14:08 -0700)]
Cleanup preserved lib locking in portage.
This change makes preserved lib modification atomic, and
prepares us for narrowing the scope of the merge lock.
BUG=chromium-os:14983
TEST=Ran test suite and some example emerges.
Change-Id: I39abb6a5ec72be3274e508ef807ac1d9e69db1a8
Review URL: http://gerrit.chromium.org/gerrit/417
Zac Medico [Thu, 5 May 2011 17:21:43 +0000 (10:21 -0700)]
depgraph: simplify break_refs
Zac Medico [Thu, 5 May 2011 15:58:22 +0000 (08:58 -0700)]
emerge: fix misspell suggestion with category
A name collision in the "cp" variable caused it to malfunction.
Zac Medico [Thu, 5 May 2011 06:44:48 +0000 (23:44 -0700)]
repoman: make virtual.oldstyle a warning for now
This will give third-party repoman users some time to migrate their
repos away old-style virtuals.
Zac Medico [Wed, 4 May 2011 20:10:10 +0000 (13:10 -0700)]
Update timestamps in headers of modified files.
Zac Medico [Wed, 4 May 2011 16:36:29 +0000 (09:36 -0700)]
doins: add reference to bug #239529
The reasoning for the code from commit
55b3150af635a418ba3f1424132359c894db7ec4 is not really obvious, so
it's helpful to reference the corresponding bug report.
Mike Gilbert [Wed, 4 May 2011 03:28:21 +0000 (23:28 -0400)]
Fix Manifest.updateAllHashes()
Zac Medico [Tue, 3 May 2011 03:00:54 +0000 (20:00 -0700)]
cpv_expand: avoid old-style virtual code
This allows portageq calls to avoid loading vdb_metadata.pickle in
most cases, which greatly improves performance.
Arfrever Frehtes Taifersar Arahesis [Mon, 2 May 2011 20:17:15 +0000 (22:17 +0200)]
Avoid evaluation of values of variables in set_unless_changed().
Zac Medico [Mon, 2 May 2011 19:54:54 +0000 (12:54 -0700)]
emerge: skip misspell suggestion if cp exists
Zac Medico [Mon, 2 May 2011 19:34:21 +0000 (12:34 -0700)]
depgraph: autounmask account for optional deps
Zac Medico [Mon, 2 May 2011 17:56:51 +0000 (10:56 -0700)]
ebuild.sh: make INHERITED independent of phase
When EBUILD_PHASE != depend, INHERITED comes pre-initialized
from cache. In order to make INHERITED content independent of
EBUILD_PHASE during inherit() calls, we unset INHERITED after
we make a backup copy for QA checks.
Zac Medico [Mon, 2 May 2011 01:42:32 +0000 (18:42 -0700)]
depgraph: account for new-style virtual/libc
This will fix bug #364681.
Zac Medico [Sun, 1 May 2011 16:30:36 +0000 (09:30 -0700)]
repoman: remove most old-style virtual checks
PROVIDE virtuals have been banned from Gentoo's tree (see bug #365505),
so these checks aren't needed anymore. The PROVIDE.syntax check is kept
in the Package class since PROVIDE is still supported for backward
compatibility, and therefore invalid syntax can still have negative
effects. This check can be removed if/when backward compatibilty is
completely dropped.