portage.git
13 years agoEbuildPhase: fix locking for setup phase
Zac Medico [Sun, 15 May 2011 08:14:09 +0000 (01:14 -0700)]
EbuildPhase: fix locking for setup phase

13 years agoEbuildPhase: AsynchronousLock for ebuild-locks
Zac Medico [Sun, 15 May 2011 08:03:14 +0000 (01:03 -0700)]
EbuildPhase: AsynchronousLock for ebuild-locks

13 years agoUse vardbapi.lock() where applicable.
Zac Medico [Sun, 15 May 2011 05:21:08 +0000 (22:21 -0700)]
Use vardbapi.lock() where applicable.

13 years agomovefile: handle EEXIST when os.symlink fails
Zac Medico [Sun, 15 May 2011 04:39:26 +0000 (21:39 -0700)]
movefile: handle EEXIST when os.symlink fails

13 years agoRevert "counter_tick_core: don't lock if parallel-install"
Zac Medico [Sun, 15 May 2011 04:29:48 +0000 (21:29 -0700)]
Revert "counter_tick_core: don't lock if parallel-install"

This reverts commit 461564ae94ff936918eeaa18493bc1da3846796f.
Disabling the lock here doesn't really make sense, and I'm still
triggering EDEADLK is some other places.

13 years agopreserve-libs: use vardbapi _fs_lock/unlock
Zac Medico [Sun, 15 May 2011 02:55:24 +0000 (19:55 -0700)]
preserve-libs: use vardbapi _fs_lock/unlock

The preserve-libs code is too dependent on the filesystem state to
allow merging/unmerge/env_update to execute concurrently.

13 years agovardbapi: add reentrant _fs_lock/unlock methods
Zac Medico [Sun, 15 May 2011 02:43:12 +0000 (19:43 -0700)]
vardbapi: add reentrant _fs_lock/unlock methods

13 years ago_LibGraphNode: re-use the _key attribute
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.

13 years agocounter_tick_core: don't lock if parallel-install
Zac Medico [Sat, 14 May 2011 23:53:35 +0000 (16:53 -0700)]
counter_tick_core: don't lock if parallel-install

Hopefully this avoids the following exception:

  File "/usr/lib/portage/pym/portage/locks.py", line 138, in lockfile
    fcntl.lockf(myfd, fcntl.LOCK_EX)
IOError: [Errno 35] Resource deadlock avoided

13 years agoFix a typo in a comment.
Arfrever Frehtes Taifersar Arahesis [Sat, 14 May 2011 22:56:35 +0000 (00:56 +0200)]
Fix a typo in a comment.

13 years agofind_unused_preserved_libs: fix unmerge handling
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.

13 years agoprune_plib_registry: display preserved libs
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().

13 years agotreewalk: fix plib_collisions with same cpv
Zac Medico [Sat, 14 May 2011 21:25:16 +0000 (14:25 -0700)]
treewalk: fix plib_collisions with same cpv

13 years ago--autounmask: Use >= atoms if possible
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.

13 years agopreserve-libs: preserve during uninstall
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.

13 years agocache.sqlite: handle readonly more v2.2.0_alpha33
Zac Medico [Thu, 12 May 2011 19:04:54 +0000 (12:04 -0700)]
cache.sqlite: handle readonly more

13 years agoporttree: use pure volatile cache if necessary
Zac Medico [Thu, 12 May 2011 19:02:27 +0000 (12:02 -0700)]
porttree: use pure volatile cache if necessary

13 years agocache.volatile: discard "perms" param
Zac Medico [Thu, 12 May 2011 18:58:27 +0000 (11:58 -0700)]
cache.volatile: discard "perms" param

13 years agocache.sqlite: handle readonly
Zac Medico [Thu, 12 May 2011 18:42:08 +0000 (11:42 -0700)]
cache.sqlite: handle readonly

13 years agoexpand_new_virt: return early for non-virtual cat
Zac Medico [Thu, 12 May 2011 17:51:08 +0000 (10:51 -0700)]
expand_new_virt: return early for non-virtual cat

13 years agoexpand_new_virt: skip match 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

13 years agotreewalk: fix inverted counter init logic
Zac Medico [Thu, 12 May 2011 05:35:40 +0000 (22:35 -0700)]
treewalk: fix inverted counter init logic

13 years agoportdbapi: tweak cache permission handling
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

13 years agoEbuildPhase: extract binpkg env for pkg_pretend
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.

13 years agounmerge: use frozenset for syslist
Zac Medico [Wed, 11 May 2011 20:24:22 +0000 (13:24 -0700)]
unmerge: use frozenset for syslist

13 years agodepgraph: in complete mode respect --with-bdeps
Zac Medico [Wed, 11 May 2011 19:00:27 +0000 (12:00 -0700)]
depgraph: in complete mode respect --with-bdeps

If you want the graph as complete as possible, now you'll have to use
--with-bdeps=y together with --complete-graph.

13 years agodep_check_composite_db: return early from cp_list
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.

13 years agodepgraph: traverse ignored DEPEND if "complete"
Zac Medico [Tue, 10 May 2011 23:54:55 +0000 (16:54 -0700)]
depgraph: traverse ignored DEPEND if "complete"

13 years agoStrip build-time dependencies when they're ignored and we're not in --rebuild mode.
David James [Tue, 10 May 2011 20:41:06 +0000 (13:41 -0700)]
Strip build-time dependencies when they're ignored and we're not in --rebuild mode.

This should improve depgraph calculation performance.

TEST=Ran test suite.
BUG=chromium-os:15144

Change-Id: I9e06817201d7a17ae9b44b424d01c1a2bd89210a

13 years agoMergeProcess: lock vdb earlier when appropriate
Zac Medico [Tue, 10 May 2011 19:52:36 +0000 (12:52 -0700)]
MergeProcess: lock vdb earlier when appropriate

13 years agodepgraph: don't clear vardbapi cache in _load_vdb
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.

13 years agoget_counter_tick_core: use cpv_all
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.

13 years agoCache counter values, avoiding I/O when it doesn't change.
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

13 years agodep_check_composite_db: remove unused _dep_expand
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.

13 years agodep_check_composite_db: implement cp_list
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.

13 years agoconfig: call _populate_treeVirtuals directly
Zac Medico [Mon, 9 May 2011 20:41:56 +0000 (13:41 -0700)]
config: call _populate_treeVirtuals directly

13 years agocpv_expand: avoid old-style virtuals more
Zac Medico [Mon, 9 May 2011 20:36:22 +0000 (13:36 -0700)]
cpv_expand: avoid old-style virtuals more

13 years agodep_check: avoid old-style virtuals code
Zac Medico [Mon, 9 May 2011 20:30:04 +0000 (13:30 -0700)]
dep_check: avoid old-style virtuals code

13 years agodisplay_news_notification: don't populate virts
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.

13 years agocpv_expand: populate old-style virts on demand
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.

13 years agounmerge: skip getvirtuals() if cat is not virtual
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.

13 years agounmerge: use expand_new_virt for sys pkg warnings
Zac Medico [Mon, 9 May 2011 05:13:52 +0000 (22:13 -0700)]
unmerge: use expand_new_virt for sys pkg warnings

13 years agovardbapi: disable subprocess vdb cache updates
Zac Medico [Mon, 9 May 2011 04:51:47 +0000 (21:51 -0700)]
vardbapi: disable subprocess vdb cache updates

Since commit 7535cabdf2fab76fc55df83643157613dfd66be9,
vardbapi.flush_cache() is often called within subprocesses spawned
from MergeProcess. The _aux_cache_threshold doesn't work as designed
if the cache is flushed from a subprocess like this, can lead to the
vdb cache being flushed for every single merge. This is a waste of
disk IO, so disable vdb cache updates in subprocesses.

13 years agoLinkageMapELF: remove unused imports v2.2.0_alpha32
Zac Medico [Sun, 8 May 2011 21:36:48 +0000 (14:36 -0700)]
LinkageMapELF: remove unused imports

13 years agoPreservedLibsRegistry: normalize counter as str
Zac Medico [Sun, 8 May 2011 21:31:11 +0000 (14:31 -0700)]
PreservedLibsRegistry: normalize counter as str

13 years agoAdd back cpv_exists check from previous commit.
Zac Medico [Sun, 8 May 2011 20:46:40 +0000 (13:46 -0700)]
Add back cpv_exists check from previous commit.

13 years agoRemove obsolete others_in_slot plibs code.
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.

13 years agotreewalk: always initialize "needed"
Zac Medico [Sun, 8 May 2011 19:31:07 +0000 (12:31 -0700)]
treewalk: always initialize "needed"

13 years agomerge_wait_queue: use deque.clear()
Zac Medico [Sun, 8 May 2011 19:05:49 +0000 (12:05 -0700)]
merge_wait_queue: use deque.clear()

13 years agoresume_depgraph: don't call break_refs in loop
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'

13 years agoFix typos in unmerge function.
David James [Sun, 8 May 2011 07:26:42 +0000 (00:26 -0700)]
Fix typos in unmerge function.

BUG=none
TEST=Try unmerging some packages.

Change-Id: Ib643ec95b8da14b49a6b519e445fe57f8995c52c

13 years agolinkmap: use exclude_pkgs for the registry too
Zac Medico [Sun, 8 May 2011 07:09:37 +0000 (00:09 -0700)]
linkmap: use exclude_pkgs for the registry too

13 years agoUse new vardbapi lock function in FakeVartree.
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

13 years agoBe careful with system pkgs + parallel-install.
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.

13 years agolinkmap: check for access before locking vardbapi
Zac Medico [Sun, 8 May 2011 05:02:38 +0000 (22:02 -0700)]
linkmap: check for access before locking vardbapi

13 years agoUse EROOT with VDB_PATH in recent changes.
Zac Medico [Sun, 8 May 2011 04:46:08 +0000 (21:46 -0700)]
Use EROOT with VDB_PATH in recent changes.

13 years agoScheduler: add queue for ebuild-locks
Zac Medico [Sun, 8 May 2011 04:16:58 +0000 (21:16 -0700)]
Scheduler: add queue for ebuild-locks

Use a separate queue for ebuild-locks when the merge
queue allows more than 1 job (due to parallel-install),
since the portage.locks module does not behave as desired
if we try to lock the same file multiple times
concurrently from the same process.

13 years agoAdd FEATURES=parallel-install for finer locks.
Zac Medico [Sun, 8 May 2011 03:29:27 +0000 (20:29 -0700)]
Add FEATURES=parallel-install for finer locks.

13 years agovardbapi: acquire lock during counter_tick_core
Zac Medico [Sun, 8 May 2011 03:05:21 +0000 (20:05 -0700)]
vardbapi: acquire lock during counter_tick_core

13 years agoAdd vardbapi reentrant lock/unlock methods.
Zac Medico [Sun, 8 May 2011 02:57:29 +0000 (19:57 -0700)]
Add vardbapi reentrant lock/unlock methods.

13 years agoRename FEATURES=no-ebuild-locks to ebuild-locks.
Zac Medico [Sun, 8 May 2011 04:34:25 +0000 (21:34 -0700)]
Rename FEATURES=no-ebuild-locks to ebuild-locks.

13 years agoUse finer grained locks for install.
David James [Sat, 7 May 2011 04:53:31 +0000 (21:53 -0700)]
Use finer grained locks for install.

Narrow scope of merge locks to improve performance.

Instead of locking the DB for the entire package merge, just lock it
when we actually need to do so. Also add locks around conf_mem_file
updating and pkg_* phases.

Locking in pkg_* phases can be turned off with
FEATURES="no-ebuild-locks" if you use ebuilds that are careful not
to mess with each other during theses phases. The default is to leave
this locking enabled.

Given this new locking, I've improved the scheduler to run merge jobs
in parallel.

Time required for merging 348 packages with --usepkgonly:
  - Before patch:          29m50s
  - After patch:           10m2s
  - After patch w/o locks: 7m9s

Change-Id: I63588c4cc59fa6fe2f8327ea1e4a9e71b241d4fe

Review URL: http://gerrit.chromium.org/gerrit/498

13 years agodoebuild: use EbuildBuildDir for locking
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.

13 years agoPreserveLibsRegistry: add lock/unlock assertions
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.

13 years agoRemove redundant pruneNonExisting() call.
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.

13 years agopreserve-libs: fix linkmap logic for new plibs
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.

13 years agoCleanup preserved lib locking in portage.
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

13 years agodepgraph: simplify break_refs v2.2.0_alpha31
Zac Medico [Thu, 5 May 2011 17:21:43 +0000 (10:21 -0700)]
depgraph: simplify break_refs

13 years agoemerge: fix misspell suggestion with category
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.

13 years agoUpdate timestamps in headers of modified files.
Zac Medico [Thu, 5 May 2011 15:15:20 +0000 (08:15 -0700)]
Update timestamps in headers of modified files.

13 years agorepoman: make virtual.oldstyle a warning for now
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.

13 years agoadd_pkg_deps: removal action discard DEPEND early
Zac Medico [Wed, 4 May 2011 21:40:11 +0000 (14:40 -0700)]
add_pkg_deps: removal action discard DEPEND early

13 years agoadd_pkg_deps: use dep priority to ignore blockers
Zac Medico [Wed, 4 May 2011 18:18:34 +0000 (11:18 -0700)]
add_pkg_deps: use dep priority to ignore blockers

13 years agotest_rebuild: test --rebuild-if-new-rev more
David James [Wed, 4 May 2011 17:35:02 +0000 (10:35 -0700)]
test_rebuild: test --rebuild-if-new-rev more

13 years agoadd_pkg_dep_string: respect traverse_ignored_deps
Zac Medico [Wed, 4 May 2011 17:20:58 +0000 (10:20 -0700)]
add_pkg_dep_string: respect traverse_ignored_deps

I don't think this makes any difference now, but it clarifies how
traverse_ignored_deps should behave.

13 years agoemerge: replace --rebuild with finer grained opts
David James [Wed, 4 May 2011 06:32:05 +0000 (23:32 -0700)]
emerge: replace --rebuild with finer grained opts

Replace --rebuild option with --rebuild-if-* options.

--rebuild-if-new-rev [ y | n ]
  Rebuild packages when dependencies that are used at both build-time and
  run-time are built, if the dependency is not already installed with the
  same version and revision.

--rebuild-if-new-ver [ y | n ]
  Rebuild packages when dependencies that are used at both build-time and
  run-time are built, if the dependency is not already installed with the
  same version. Revision numbers are ignored.

--rebuild-if-unbuilt [ y | n ]
  Rebuild packages when dependencies that are used at both build-time and
  run-time are built.

Change-Id: Ia50c1702bfe1b98a8d1891740e7bbb045921a905

Review URL: http://gerrit.chromium.org/gerrit/280

13 years agodoins: add reference to bug #239529
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.

13 years agoFix Manifest.updateAllHashes()
Mike Gilbert [Wed, 4 May 2011 03:28:21 +0000 (23:28 -0400)]
Fix Manifest.updateAllHashes()

13 years agoAdd --rebuild-ignore flag.
David James [Tue, 3 May 2011 20:51:30 +0000 (13:51 -0700)]
Add --rebuild-ignore flag.

A space separated list of package names or slot atoms. Emerge will not rebuild
packages that depend on matching packages due to \fB\-\-rebuild\fR.

Change-Id: Ia58fe632ed06c97a22413da0341d7f8da2d65ba8

Review URL: http://gerrit.chromium.org/gerrit/209

13 years agorebuild_config: propagate runtime deps to parents
David James [Tue, 3 May 2011 20:10:28 +0000 (13:10 -0700)]
rebuild_config: propagate runtime deps to parents

Update rebuild option to propagate runtime deps to parents.

Suggested by SebastianLuther@gmx.de

BUG=chromium-os:14858
TEST=Added unit test. Ran unit tests.

Change-Id: I7228a8558eddd1956c590de39430172476c66228

Review URL: http://gerrit.chromium.org/gerrit/202

13 years agocpv_expand: avoid old-style virtual code
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.

13 years agoAvoid evaluation of values of variables in set_unless_changed().
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().

13 years agoemerge: skip misspell suggestion if cp exists
Zac Medico [Mon, 2 May 2011 19:54:54 +0000 (12:54 -0700)]
emerge: skip misspell suggestion if cp exists

13 years agodepgraph: autounmask account for optional deps
Zac Medico [Mon, 2 May 2011 19:34:21 +0000 (12:34 -0700)]
depgraph: autounmask account for optional deps

13 years agoemerge: rename --no*-atoms to --*-exclude
Zac Medico [Mon, 2 May 2011 19:12:13 +0000 (12:12 -0700)]
emerge: rename --no*-atoms to --*-exclude

13 years agoebuild.sh: make INHERITED independent of phase
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.

13 years agoUpdate timestamps in headers of modified files.
Zac Medico [Mon, 2 May 2011 03:42:24 +0000 (20:42 -0700)]
Update timestamps in headers of modified files.

13 years agodepgraph: queue ignored deps for later traversal
Zac Medico [Mon, 2 May 2011 03:09:33 +0000 (20:09 -0700)]
depgraph: queue ignored deps for later traversal

This will fix an issue with some build-time deps being ignored by
--complete-graph in cases when --with-bdeps is not enabled. It
should help --rebuild to find more rebuilds in this case.

13 years agodepgraph: account for new-style virtual/libc
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.

13 years agotrigger_rebuilds: handle circular deps
Zac Medico [Sun, 1 May 2011 23:27:48 +0000 (16:27 -0700)]
trigger_rebuilds: handle circular deps

13 years agodepgraph: traverse bdeps in complete mode
Zac Medico [Sun, 1 May 2011 21:17:06 +0000 (14:17 -0700)]
depgraph: traverse bdeps in complete mode

This makes the graph as complete as possible, and can help --rebuild to
find more rebuilds.

13 years agodepgraph: ignore unwanted virtuals
Zac Medico [Sun, 1 May 2011 20:23:13 +0000 (13:23 -0700)]
depgraph: ignore unwanted virtuals

This fixes an unwanted side-effect from commit
470871eeafa89a05486d4eb6f3f7626c1f813e4d.

13 years agoemerge: add --rebuild and --norebuild-atoms opts
David James [Sun, 1 May 2011 17:21:45 +0000 (10:21 -0700)]
emerge: add --rebuild and --norebuild-atoms opts

Rebuild when build-time/run-time deps are upgraded.

If pkgA has been updated, and pkgB depends on pkgA at both
build-time and run-time, pkgB needs to be rebuilt. This
feature ensures that all packages are consistent when
dependencies that are used at both runtime and build time
are changed.

This feature only rebuilds packages one layer deep. That
means that if you upgrade libcros, for example, packages
that depend directly on libcros will be rebuilt and
reinstalled, but indirect dependencies will not be rebuilt.

BUG=chromium-os:14296

TEST=Test whether packages rebuilding a bunch of packages.

Change-Id: Idbc0532b4b1de28fd9e5a0abe3b7dbe1a3abd2c8

Review URL: http://codereview.chromium.org/6905107

13 years agorepoman: remove most old-style virtual checks
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.

13 years agorepoman: Check for PROVIDE.
Ulrich Mueller [Sun, 1 May 2011 15:57:33 +0000 (08:57 -0700)]
repoman: Check for PROVIDE.

This will fix bug #365505.

13 years agoSupport multiple arguments in set_unless_changed() and unset_unless_changed().
Arfrever Frehtes Taifersar Arahesis [Sun, 1 May 2011 14:50:30 +0000 (16:50 +0200)]
Support multiple arguments in set_unless_changed() and unset_unless_changed().
Use VARIABLE=VALUE syntax for arguments of set_unless_changed().

13 years agoruntests.sh: propagate arguments to runTests
Zac Medico [Sun, 1 May 2011 14:18:42 +0000 (07:18 -0700)]
runtests.sh: propagate arguments to runTests

13 years agoBug #365439: Add set_unless_changed() and unset_unless_changed().
Arfrever Frehtes Taifersar Arahesis [Sun, 1 May 2011 01:21:57 +0000 (03:21 +0200)]
Bug #365439: Add set_unless_changed() and unset_unless_changed().

13 years agodepgraph: migrate implicit libc deps from Sched
Zac Medico [Sat, 30 Apr 2011 20:38:00 +0000 (13:38 -0700)]
depgraph: migrate implicit libc deps from Sched

Now all the virtual/libc handling is done by the depgraph, which
will be helpful when fixing bug #364681.

13 years agoinstall_qa_check(): Simplify code and make 'l' a local variable.
Arfrever Frehtes Taifersar Arahesis [Sat, 30 Apr 2011 16:30:29 +0000 (18:30 +0200)]
install_qa_check(): Simplify code and make 'l' a local variable.