Zac Medico [Sat, 31 May 2008 02:06:01 +0000 (02:06 -0000)]
Clean up reference to parts of the first graph for --skipfirst.
svn path=/main/trunk/; revision=10514
Zac Medico [Sat, 31 May 2008 01:54:11 +0000 (01:54 -0000)]
Optimize the new --skipfirst code so that in only has to build
a new depgraph one time when there are unsatisfied deps. This
works by recursively traversing the digraph to remove the parent
packages whose deps become unsatisfied when their dependencies are
pruned from the mergelist.
svn path=/main/trunk/; revision=10513
Zac Medico [Fri, 30 May 2008 23:46:08 +0000 (23:46 -0000)]
Fix PackageSet.findAtomForPackage() to find the most specific atom since
it can affect behavior when deciding whether or not to add a slot atom to
the world file.
svn path=/main/trunk/; revision=10511
Zac Medico [Fri, 30 May 2008 21:14:32 +0000 (21:14 -0000)]
Now that dbapi._iter_match() is guaranteed to return a real iterator with
a next method(), we can just call next() and handle StopIteration.
svn path=/main/trunk/; revision=10509
Zac Medico [Fri, 30 May 2008 20:46:05 +0000 (20:46 -0000)]
For consistency, make sure that a normal iterator is always returned
from dbapi._iter_match() (and never a list). This way the caller can
be sure that the returned object has a next() method.
svn path=/main/trunk/; revision=10507
Zac Medico [Fri, 30 May 2008 20:19:43 +0000 (20:19 -0000)]
Make the use_cache=0 listdir() implementation inside vardbapi.cpv_all()
rains a PermissionDenied error when appropriate.
svn path=/main/trunk/; revision=10505
Zac Medico [Fri, 30 May 2008 09:56:20 +0000 (09:56 -0000)]
Pass a mutable config instance into get_masking_status(). Currently
it doesn't matter for installed packages but it's safer to be
consistent to avoid accidental breakage in the future.
svn path=/main/trunk/; revision=10503
Zac Medico [Fri, 30 May 2008 06:50:34 +0000 (06:50 -0000)]
Make PackageSet.findAtomForPackage() just return the first atom found
since best_match_to_list() won't work correctly for atoms matched
via PROVIDE.
svn path=/main/trunk/; revision=10501
Zac Medico [Fri, 30 May 2008 01:08:35 +0000 (01:08 -0000)]
Simplify None Package.slot handling in match_from_list().
svn path=/main/trunk/; revision=10499
Zac Medico [Fri, 30 May 2008 00:37:34 +0000 (00:37 -0000)]
Fix Atom attribute handling in get_operator() and dep_getslot() to account
for None return values.
svn path=/main/trunk/; revision=10497
Zac Medico [Fri, 30 May 2008 00:03:45 +0000 (00:03 -0000)]
Create Atom instances earlier to avoid redundant validation.
svn path=/main/trunk/; revision=10495
Zac Medico [Thu, 29 May 2008 23:40:58 +0000 (23:40 -0000)]
When dropping deps from the resume list, make sure that the loop can't
be infinite.
svn path=/main/trunk/; revision=10493
Zac Medico [Thu, 29 May 2008 23:31:54 +0000 (23:31 -0000)]
Use Package.metadata instead of calling dbapi.aux_get().
svn path=/main/trunk/; revision=10491
Zac Medico [Thu, 29 May 2008 23:10:33 +0000 (23:10 -0000)]
Use a frozenset instead of a list for containment tests.
svn path=/main/trunk/; revision=10489
Zac Medico [Thu, 29 May 2008 22:54:37 +0000 (22:54 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10487
Zac Medico [Thu, 29 May 2008 22:34:11 +0000 (22:34 -0000)]
Use izip() to eliminate temporary dict instances.
svn path=/main/trunk/; revision=10485
Zac Medico [Thu, 29 May 2008 21:00:16 +0000 (21:00 -0000)]
Clean up references to unsatisfied_parents.
svn path=/main/trunk/; revision=10482
Zac Medico [Thu, 29 May 2008 20:52:13 +0000 (20:52 -0000)]
Clean up reference to dropped_tasks when finished.
svn path=/main/trunk/; revision=10481
Zac Medico [Thu, 29 May 2008 20:44:08 +0000 (20:44 -0000)]
When --skipfirst drops packages due to unsatisfied dependencies, display
a warning message with the list of dropped packages.
svn path=/main/trunk/; revision=10480
Zac Medico [Thu, 29 May 2008 19:56:42 +0000 (19:56 -0000)]
Clean up exception reference from previous commit.
svn path=/main/trunk/; revision=10479
Zac Medico [Thu, 29 May 2008 19:50:50 +0000 (19:50 -0000)]
Make --skipfirst handle missing dependencies by dropping the merge tasks
that have missing dependencies. This involves creating an entirely new
depgraph each time that a missing dependency is discovered. This isn't
the most efficient approach but it's simple and it works well.
This new behavior can server as a fix for bug #12768 by calling emerge
--resume --skipfirst each time that emerge exits unsuccessfully. This
was possible before, but now packages with unsatisfied dependencies
will be properly identified and dropped from the list.
svn path=/main/trunk/; revision=10478
Zac Medico [Thu, 29 May 2008 05:23:18 +0000 (05:23 -0000)]
Save the content of CONFIG_MEMORY_FILE in dblink.treewalk() _before_
unmerging other instances, in order to avoid overwritting/undoing
the pruning that's done during unmerge.
svn path=/main/trunk/; revision=10476
Zac Medico [Thu, 29 May 2008 04:53:15 +0000 (04:53 -0000)]
Make the unmerge time CONFIG_MEMORY_FILE pruning slightly more aggressive,
so that anything not claimed by another package in the same slot is
pruned.
svn path=/main/trunk/; revision=10474
Zac Medico [Thu, 29 May 2008 00:35:09 +0000 (00:35 -0000)]
Filter out installed keyword masked packages when populating
RootConfig.visible_pkgs since otherwise such packages can trigger
undesireable results inside depgraph._iter_atoms_for_pkg().
svn path=/main/trunk/; revision=10471
Zac Medico [Thu, 29 May 2008 00:32:27 +0000 (00:32 -0000)]
Fix the code from bug #220341 so that it matches the atom against the
installed package, like it's supposed to.
svn path=/main/trunk/; revision=10470
Zac Medico [Wed, 28 May 2008 22:12:18 +0000 (22:12 -0000)]
Skip redundant Atom construction in select_package().
svn path=/main/trunk/; revision=10468
Zac Medico [Wed, 28 May 2008 22:06:45 +0000 (22:06 -0000)]
Update the fix from bug #220341 to protect USE deps from being neglected.
svn path=/main/trunk/; revision=10467
Zac Medico [Wed, 28 May 2008 08:31:06 +0000 (08:31 -0000)]
Bug #223447 - Adjust the "installed packages are masked" display to recognize
packages that are masked by keywords and are eligible for uninstallation by
depclean. This is a workaround for the fact that depclean may fail to
recognize that the package is eligible for uninstall due to differences in
visibility filtering which can lead to differences in || dep evaluation.
TODO: Share visibility code to fix this inconsistency.
svn path=/main/trunk/; revision=10465
Zac Medico [Wed, 28 May 2008 01:27:56 +0000 (01:27 -0000)]
Make the new behavior from bug #222439 conditional on EAPI being something
other than 0 or 1.
svn path=/main/trunk/; revision=10462
Zac Medico [Wed, 28 May 2008 01:13:40 +0000 (01:13 -0000)]
Make set_term_size() handle the CommandNotFound exception if stty
is missing for some reason.
svn path=/main/trunk/; revision=10461
Zac Medico [Wed, 28 May 2008 00:37:22 +0000 (00:37 -0000)]
Convert doman to use bash's =~ operator instead of calling egrep.
svn path=/main/trunk/; revision=10460
Zac Medico [Tue, 27 May 2008 23:08:22 +0000 (23:08 -0000)]
Bug #222439 - Add doman support for foo.lang.N filenames. Behavior is
as follows:
foo.1 -> man/man1/foo.1
foo.lang.1 -> man/lang/man1/foo.1
Thanks to Yuri Vasilevski for the initial patch. I've modified it to
use bash's =~ operator and corresponding $BASH_REMATCH array.
svn path=/main/trunk/; revision=10459
Zac Medico [Tue, 27 May 2008 10:20:20 +0000 (10:20 -0000)]
Fix breakage due to frozenset being immutable.
svn path=/main/trunk/; revision=10455
Zac Medico [Tue, 27 May 2008 07:53:32 +0000 (07:53 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10453
Zac Medico [Tue, 27 May 2008 07:48:19 +0000 (07:48 -0000)]
Make config._init_dirs() preserver /tmp and /var/tmp permissions if
those directories already exist. This gives freedom to the user to
adjust permissions to suit their taste.
svn path=/main/trunk/; revision=10452
Zac Medico [Tue, 27 May 2008 06:22:36 +0000 (06:22 -0000)]
Fix a typo from the previous commit.
svn path=/main/trunk/; revision=10450
Zac Medico [Tue, 27 May 2008 06:08:12 +0000 (06:08 -0000)]
Use new Package.use and iuse attributes to avoid extra split() calls.
svn path=/main/trunk/; revision=10448
Zac Medico [Tue, 27 May 2008 05:45:48 +0000 (05:45 -0000)]
Set Atom.use = None when there are no USE deps (instead of the empty
tuple returned from dep_getusedeps()).
svn path=/main/trunk/; revision=10447
Zac Medico [Tue, 27 May 2008 05:42:28 +0000 (05:42 -0000)]
Repoman only checks IUSE for USE deps, so don't evaluate conditional USE deps
in this case.
svn path=/main/trunk/; revision=10446
Zac Medico [Tue, 27 May 2008 04:50:37 +0000 (04:50 -0000)]
Fix dbapi._iter_match_use() to escape IUSE values when necessary.
svn path=/main/trunk/; revision=10445
Zac Medico [Tue, 27 May 2008 04:37:15 +0000 (04:37 -0000)]
Fix breakage in the BlockerDB constructor.
svn path=/main/trunk/; revision=10443
Zac Medico [Tue, 27 May 2008 04:10:11 +0000 (04:10 -0000)]
Define __slots__ for the _use_dep class.
svn path=/main/trunk/; revision=10441
Zac Medico [Tue, 27 May 2008 04:04:28 +0000 (04:04 -0000)]
Fix USE dep matching support in match_from_list() so that it checks
to make sure the package supports all specified IUSE. This involves
updating all Package, FakeVartree, and BlockerDB constructor
arguments to implement a Package.root_config attribute that's used
to access implicit IUSE.
svn path=/main/trunk/; revision=10440
Zac Medico [Tue, 27 May 2008 00:49:09 +0000 (00:49 -0000)]
Bug #223685 - Use the finally clause to collect elog messages just
before releasing the build dir lock, so they never get missed.
svn path=/main/trunk/; revision=10438
Zac Medico [Tue, 27 May 2008 00:10:12 +0000 (00:10 -0000)]
Add some debug output for arguments and their associated atoms, to help in
debugging problems similar to bug #223735.
svn path=/main/trunk/; revision=10436
Zac Medico [Mon, 26 May 2008 23:22:15 +0000 (23:22 -0000)]
Don't silently swallow instances of UnpicklingError since they are easily
triggered by storing instances of custom classes in a pickle.
svn path=/main/trunk/; revision=10434
Zac Medico [Mon, 26 May 2008 23:16:13 +0000 (23:16 -0000)]
Don't silently swallow instances of UnpicklingError since they are easily
triggered by storing instances of custom classes in a pickle.
svn path=/main/trunk/; revision=10433
Zac Medico [Mon, 26 May 2008 23:03:35 +0000 (23:03 -0000)]
Avoid triggering "cPickle.UnpicklingError: Global and instance pickles
are not supported." errors that are triggered when the pickle contains
custom classes.
svn path=/main/trunk/; revision=10431
Zac Medico [Mon, 26 May 2008 20:12:18 +0000 (20:12 -0000)]
Skip source_all_bashrcs() when $EBUILD_PHASE is not set.
svn path=/main/trunk/; revision=10429
Zac Medico [Mon, 26 May 2008 08:02:40 +0000 (08:02 -0000)]
* Enable config.setcpv() to use a Package instance in place of a cpv.
* Make depgraph._select_package() pass Package instances into setcpv() calls.
* Enable the Package constructor to use an iterable for metadata items.
svn path=/main/trunk/; revision=10427
Zac Medico [Mon, 26 May 2008 00:34:40 +0000 (00:34 -0000)]
Fix a broken reference to the Package.cpv_slot attribute.
svn path=/main/trunk/; revision=10425
Zac Medico [Sun, 25 May 2008 22:49:16 +0000 (22:49 -0000)]
Fix breakage in Package constructor attribute initialization.
svn path=/main/trunk/; revision=10423
Zac Medico [Sun, 25 May 2008 22:33:09 +0000 (22:33 -0000)]
Remove unused code.
svn path=/main/trunk/; revision=10422
Zac Medico [Sun, 25 May 2008 21:57:14 +0000 (21:57 -0000)]
Use the metadata wrapper to initialize Package slot and use attributes.
svn path=/main/trunk/; revision=10421
Zac Medico [Sun, 25 May 2008 21:45:41 +0000 (21:45 -0000)]
Remove the Package.cpv_slot attribute.
svn path=/main/trunk/; revision=10420
Zac Medico [Sun, 25 May 2008 21:34:21 +0000 (21:34 -0000)]
* Add support for Package instances and USE deps in match_from_list().
* Add USE dep matching support to depgraph._iter_atoms_for_pkg().
svn path=/main/trunk/; revision=10419
Zac Medico [Sun, 25 May 2008 08:45:34 +0000 (08:45 -0000)]
* Fix PackageSet.findAtomForPackage() to take a Package instance as
an argument.
* Simplify PackageSet.findAtomForPackage() by implementing it on top
of iterAtomsForPackage().
svn path=/main/trunk/; revision=10415
Zac Medico [Sun, 25 May 2008 08:04:21 +0000 (08:04 -0000)]
Facilitate creation of Atom instances in a few obvious places:
* PackageSet._setAtoms()
* AtomArg and PackageArg constructors.
svn path=/main/trunk/; revision=10413
Zac Medico [Sun, 25 May 2008 04:37:55 +0000 (04:37 -0000)]
Remove redundant SLOT dep code in portdbapi.xmatch() since it's now
handled by dbapi._iter_match().
svn path=/main/trunk/; revision=10410
Zac Medico [Sun, 25 May 2008 03:05:30 +0000 (03:05 -0000)]
Remove category validation cruft from catpkgsplit().
svn path=/main/trunk/; revision=10400
Zac Medico [Sun, 25 May 2008 02:56:41 +0000 (02:56 -0000)]
Fix isvalidatom() so tests pass, and add a USE deps case to the tests.
svn path=/main/trunk/; revision=10399
Zac Medico [Sun, 25 May 2008 02:20:45 +0000 (02:20 -0000)]
* Fix dep_getusedeps() test to work with tuples.
* Add test cases for conditional USE deps.
svn path=/main/trunk/; revision=10398
Zac Medico [Sun, 25 May 2008 01:44:03 +0000 (01:44 -0000)]
Add support for conditionals inside USE dependencies. This is useful
for cases in which the package satisfying a dependency should have
identical or opposite flag state relative to the parent package.
Conditionals are evaluated as follows:
parent state conditional result
x [x?] [x]
-x [x?] [-x]
x [-x?] [-x]
-x [-x?] [x]
svn path=/main/trunk/; revision=10396
Zac Medico [Sat, 24 May 2008 22:24:58 +0000 (22:24 -0000)]
Fix broken dep_getusedeps() cache behavior so that it returns the
correct type.
svn path=/main/trunk/; revision=10395
Zac Medico [Sat, 24 May 2008 22:03:27 +0000 (22:03 -0000)]
For dep_expand() backward compatibility, handle atoms with missing '='
prefix which did not raise an error here before the portage.dep.Atom
class was introduced.
svn path=/main/trunk/; revision=10394
Zac Medico [Sat, 24 May 2008 21:33:12 +0000 (21:33 -0000)]
Fix paren_reduce() so that it appropriately raises an InvalidDependString()
in some cases, instead of a nonsense ValueError.
svn path=/main/trunk/; revision=10393
Zac Medico [Sat, 24 May 2008 21:23:39 +0000 (21:23 -0000)]
Fix paren_reduce() so that it appropriately raises an InvalidDependString()
in some cases, instead of a nonsense AttributeError.
svn path=/main/trunk/; revision=10392
Zac Medico [Sat, 24 May 2008 21:00:07 +0000 (21:00 -0000)]
Fix use_reduce() so that it appropriately raises an InvalidDependString
instead of an IndexError in some cases (avoid IndexError by using slice
notation).
svn path=/main/trunk/; revision=10391
Zac Medico [Sat, 24 May 2008 20:35:30 +0000 (20:35 -0000)]
Bug #223417 - Make the vardbapi.cpv_all() use_cache parameter useful
for forcing direct os.listdir() calls. This is more of an issue now
that these listdir() calls are frequently triggered when merging
packages (due to things like blocker and preserve-libs handling).
svn path=/main/trunk/; revision=10390
Zac Medico [Sat, 24 May 2008 19:22:00 +0000 (19:22 -0000)]
Bug #223417 - use floating point mtime for finer grained validation in
cachedir().
svn path=/main/trunk/; revision=10389
Zac Medico [Fri, 23 May 2008 18:51:58 +0000 (18:51 -0000)]
Bug #220671 - Fix 'RuntimeError: Set changed size during iteration' error.
svn path=/main/trunk/; revision=10388
Zac Medico [Fri, 23 May 2008 08:42:35 +0000 (08:42 -0000)]
Bug #2272 - Extend dependency atom sytax to specify enabled or disabled
states of USE flags. Matching with the new syntax is currently only
supported in the dbapi classes and dependency resolver (use matching
does not work yet in config files such as package.mask).
svn path=/main/trunk/; revision=10387
Marius Mauch [Wed, 21 May 2008 16:05:03 +0000 (16:05 -0000)]
Raise an error if the named repository doesn't exist
svn path=/main/trunk/; revision=10383
Zac Medico [Tue, 20 May 2008 19:42:39 +0000 (19:42 -0000)]
When using vecho or eqawarn it comes in handy when isolated-functions
have been sourced. (branches/prefix r10380)
svn path=/main/trunk/; revision=10381
Zac Medico [Tue, 20 May 2008 03:06:32 +0000 (03:06 -0000)]
Simplify cache code in vardbapi.aux_get().
svn path=/main/trunk/; revision=10377
Zac Medico [Tue, 20 May 2008 01:51:12 +0000 (01:51 -0000)]
In vardbapi.aux_get(), don't mark cacheed metadata invalid just because
some of the values are missing.
svn path=/main/trunk/; revision=10375
Zac Medico [Tue, 20 May 2008 01:13:25 +0000 (01:13 -0000)]
Inside vardbapi.aux_get(), do more validation on the cache data to
ensure it contains the expected data types.
svn path=/main/trunk/; revision=10373
Zac Medico [Mon, 19 May 2008 23:39:15 +0000 (23:39 -0000)]
Adjust code order to organize it a bit. (branches/2.1.2 r10371)
svn path=/main/trunk/; revision=10372
Zac Medico [Mon, 19 May 2008 23:19:00 +0000 (23:19 -0000)]
Validate and normalize target_root earlier in the config constructor.
svn path=/main/trunk/; revision=10369
Zac Medico [Mon, 19 May 2008 23:06:12 +0000 (23:06 -0000)]
Fix vardbapi.aux_get() logic so that it will correctly pull the metadata
value corresponding to an unrecognized metadata key.
svn path=/main/trunk/; revision=10367
Zac Medico [Mon, 19 May 2008 20:29:48 +0000 (20:29 -0000)]
Exclude "env" from use in variable substitution since we want to avoid
any interaction with the calling environment that might lead to
unexpected results.
svn path=/main/trunk/; revision=10364
Zac Medico [Sun, 18 May 2008 22:43:09 +0000 (22:43 -0000)]
In unmerge(), flush the vardbapi aux_get() cache to disk before releasing
the vardb lock.
svn path=/main/trunk/; revision=10361
Zac Medico [Sun, 18 May 2008 22:27:15 +0000 (22:27 -0000)]
Tweak vardbapi.aux_get() cache logic a bit.
svn path=/main/trunk/; revision=10360
Zac Medico [Sun, 18 May 2008 22:18:08 +0000 (22:18 -0000)]
* To avoid excessive IO on each call to LinkageMap.rebuild(), cache
NEEDED.* files via vardbapi.aux_get().
* Make vardbapi.aux_get() preserve newlines in multi-line metadata
such as NEEDED.* and CONTENTS.
svn path=/main/trunk/; revision=10359
Zac Medico [Sun, 18 May 2008 19:00:30 +0000 (19:00 -0000)]
Bug #222623 - Use "regardless" instead of "irregardless" since the latter
is considered to be incorrect.
svn path=/main/trunk/; revision=10357
Zac Medico [Sat, 17 May 2008 22:44:22 +0000 (22:44 -0000)]
Add the environment and some more files to the existing make.defaults
variable substitution support. Variable substitution occurs in
the following order:
* env.d
* env
* make.globals
* make.defaults
* make.conf
svn path=/main/trunk/; revision=10351
Zac Medico [Sat, 17 May 2008 19:55:03 +0000 (19:55 -0000)]
Fix th logic from the previous commit.
svn path=/main/trunk/; revision=10350
Zac Medico [Sat, 17 May 2008 18:49:10 +0000 (18:49 -0000)]
Add back the "install new portage asap" behavior that got lost when that
area of code was rewritten.
svn path=/main/trunk/; revision=10349
Zac Medico [Fri, 16 May 2008 21:41:01 +0000 (21:41 -0000)]
Detect and filter ebuilds that have invalid versions in portdbapi.cp_list().
svn path=/main/trunk/; revision=10346
Zac Medico [Fri, 16 May 2008 05:54:50 +0000 (05:54 -0000)]
Add dev-util/ftjam to the RDEPEND.suspect list as per bug #221537, comment #3.
Leaving dev-util/jam in place, in case it revives somehow.
svn path=/main/trunk/; revision=10344
Zac Medico [Wed, 14 May 2008 18:56:22 +0000 (18:56 -0000)]
Add a note about interaction between FEATURES="metadata-transfer"
and eclasses from PORTDIR_OVERLAY that override eclasses from PORTDIR.
svn path=/main/trunk/; revision=10337
Zac Medico [Wed, 14 May 2008 18:04:30 +0000 (18:04 -0000)]
Skip blocker atoms for the RDEPEND.suspect check.
svn path=/main/trunk/; revision=10335
Zac Medico [Wed, 14 May 2008 17:53:43 +0000 (17:53 -0000)]
Bug #221537 - Add a new "RDEPEND.suspect" check for packages in RDEPEND that
usually only belong in DEPEND.
svn path=/main/trunk/; revision=10333
Marius Mauch [Tue, 13 May 2008 22:50:48 +0000 (22:50 -0000)]
add xterm-color and interix to list of valid terminals
svn path=/main/trunk/; revision=10329
Marius Mauch [Tue, 13 May 2008 22:44:17 +0000 (22:44 -0000)]
Remove 'eselect compiler' references
svn path=/main/trunk/; revision=10328
Marius Mauch [Tue, 13 May 2008 22:41:38 +0000 (22:41 -0000)]
Prefer deb2tgz over ar for unpacking .deb files when installed (patch by Fabian Groffen, archives.gentoo.org/gentoo-portage-dev/msg_2f9c8543016f1a96f9122aca0ec35ded.xml)
svn path=/main/trunk/; revision=10327
Marius Mauch [Tue, 13 May 2008 22:38:16 +0000 (22:38 -0000)]
make debug mode configurable
svn path=/main/trunk/; revision=10326
Marius Mauch [Tue, 13 May 2008 22:33:58 +0000 (22:33 -0000)]
Add subversion support for repoman (patch by Fabien Groffen, archives.gentoo.org/gentoo-portage-dev/msg_b7080f212c3eb09c943a1ce5a7356f01.xml)
svn path=/main/trunk/; revision=10325
Marius Mauch [Tue, 13 May 2008 20:05:27 +0000 (20:05 -0000)]
ignore consumers from the current package instance when checking if a preserved library can be removed
svn path=/main/trunk/; revision=10324
Marius Mauch [Tue, 13 May 2008 19:36:33 +0000 (19:36 -0000)]
Check vercmp() return value to avoid arbitrary results in case it returns None
svn path=/main/trunk/; revision=10322