Zac Medico [Wed, 31 Oct 2007 05:27:48 +0000 (05:27 -0000)]
Defer selection of package dependency atoms until they are
actually needed since the appropriate atom selection behavior
can change between the time that the package is initially
added to the graph and when it's dependencies are traversed
(like when --consistent is enabled).
svn path=/main/trunk/; revision=8347
Zac Medico [Wed, 31 Oct 2007 02:38:29 +0000 (02:38 -0000)]
Gather some ignored dependencies so that they can be properly
processed by the depgraph when "conistent" mode is enabled.
svn path=/main/trunk/; revision=8346
Zac Medico [Wed, 31 Oct 2007 01:35:17 +0000 (01:35 -0000)]
Remove a few unused depgraph attributes.
svn path=/main/trunk/; revision=8345
Zac Medico [Tue, 30 Oct 2007 23:33:11 +0000 (23:33 -0000)]
Fix "args" set handling wrt $ROOT in depgraph._complete_graph().
svn path=/main/trunk/; revision=8344
Zac Medico [Tue, 30 Oct 2007 22:00:49 +0000 (22:00 -0000)]
Implement license filtering for xmatch minimum-visible and
bestmatch-visible. Also, make the gvisible license filtering
conditional on config.local_config since repoman doesn't do
license filtering.
svn path=/main/trunk/; revision=8343
Zac Medico [Tue, 30 Oct 2007 21:48:11 +0000 (21:48 -0000)]
Optimize xmatch "bestmatch-visible" to do fewer metadata
accesses by using the same code as "minimum-visible" but
with a reverse iterator.
svn path=/main/trunk/; revision=8342
Zac Medico [Tue, 30 Oct 2007 21:25:29 +0000 (21:25 -0000)]
Implement a "consistent" depgraph parameter (enabled by --consistent)
that can be used ensure that installation of new packages does not
break any deep dependencies of required sets (args, system, or world).
Unfortunately, the performance penalty for small dep calculations is
too great to enable this parameter by default. At least it will be
useful for testing backtracking behavior when that is implemented.
svn path=/main/trunk/; revision=8341
Zac Medico [Mon, 29 Oct 2007 05:26:59 +0000 (05:26 -0000)]
Use rstrip("\n") to remove trailing newlines from
CONTENTS lines.
svn path=/main/trunk/; revision=8338
Zac Medico [Mon, 29 Oct 2007 05:22:39 +0000 (05:22 -0000)]
Rewrite the dblink.getcontents() code to use str.split(" ")
for splitting CONTENTS lines so that even file paths that
end with spaces can be handled. This patch makes the fix for
bug #196836#c6 more complete. Some code for parsing old
malformed symlink entries has been removed sinces it's
probably not useful or worth maintaining anymore.
svn path=/main/trunk/; revision=8337
Zac Medico [Mon, 29 Oct 2007 00:08:28 +0000 (00:08 -0000)]
Make portdbapi.cp_list() use os.listdir() instead of
portage.listdir() since portage.listdir() has unnecessary
overhead and it's cache isn't needed since cp_list() has
it's own cache.
svn path=/main/trunk/; revision=8336
Zac Medico [Sun, 28 Oct 2007 21:34:36 +0000 (21:34 -0000)]
Fix PackageSet.getAtoms() and getNonAtoms() so that they
don't return references to private data structures.
svn path=/main/trunk/; revision=8335
Zac Medico [Sun, 28 Oct 2007 20:47:02 +0000 (20:47 -0000)]
Fix --depclean to use SetConfig.getSetAtoms() and also fix a
broken reference to packagesets which is now settings.sets.
svn path=/main/trunk/; revision=8334
Zac Medico [Sun, 28 Oct 2007 20:30:46 +0000 (20:30 -0000)]
Fix SetConfig.getSetAtoms() to stop initializing ignorelist
in the parameter list since otherwise the ignorelist persists
between calls and causes unpredictable results for callers.
svn path=/main/trunk/; revision=8333
Zac Medico [Sun, 28 Oct 2007 18:56:59 +0000 (18:56 -0000)]
Optimize stdout_spinner.update() methods so that they don't
waste cpu time by flushing ouput to the tty too frequently.
svn path=/main/trunk/; revision=8332
Zac Medico [Sun, 28 Oct 2007 09:05:18 +0000 (09:05 -0000)]
Fix cp_list() to prevent it from returning a reference
to one of it's internal lists.
svn path=/main/trunk/; revision=8331
Zac Medico [Sun, 28 Oct 2007 07:26:24 +0000 (07:26 -0000)]
Sort all dbapi.cp_list() results in ascending order and
cache the results when possible. The order is preserved
in dbapi.match() so those results are also sorted.
svn path=/main/trunk/; revision=8329
Zac Medico [Sat, 27 Oct 2007 20:43:49 +0000 (20:43 -0000)]
Replace depgraph._slot_node_map with _slot_pkg_map so
that it's easier to get existing Package instances.
svn path=/main/trunk/; revision=8324
Zac Medico [Sat, 27 Oct 2007 04:41:56 +0000 (04:41 -0000)]
Make depgraph._select_atoms() more flexible by allowing
the repositories to be passed in as a parameter.
svn path=/main/trunk/; revision=8319
Zac Medico [Sat, 27 Oct 2007 01:59:32 +0000 (01:59 -0000)]
Reuse an existing EmergeConfig instance instead of
constructing a new one.
svn path=/main/trunk/; revision=8318
Zac Medico [Sat, 27 Oct 2007 01:46:37 +0000 (01:46 -0000)]
Fix broken $ROOT handling for setconfig in the MergeTask
constructor.
svn path=/main/trunk/; revision=8317
Zac Medico [Fri, 26 Oct 2007 19:35:01 +0000 (19:35 -0000)]
In portage.fetch(), condense digest check ouput to a single
line for all digests.
svn path=/main/trunk/; revision=8316
Zac Medico [Fri, 26 Oct 2007 18:06:07 +0000 (18:06 -0000)]
Optimize repoman to share portdbapi.cp_list() results
between all profiles since those results never change.
The cached results also propagate to the xmatch
match-all when appropriate (old-style virtuals are
excluded since they are profile dependent).
svn path=/main/trunk/; revision=8313
Zac Medico [Fri, 26 Oct 2007 16:34:51 +0000 (16:34 -0000)]
Add missing break statement for xmatch minimum-visible.
svn path=/main/trunk/; revision=8310
Zac Medico [Fri, 26 Oct 2007 08:38:16 +0000 (08:38 -0000)]
Optimize repoman visibility checks to access as little
metadata as possible. (improves performance especially
in cases where metadata needs to be generated). This
works by starting at the lowest version since that's
most likely to have keywords and it returns as soon as
the first visible package is found.
svn path=/main/trunk/; revision=8309
Zac Medico [Fri, 26 Oct 2007 06:10:58 +0000 (06:10 -0000)]
Make emerge add sets to the world file as one would expect.
svn path=/main/trunk/; revision=8308
Zac Medico [Fri, 26 Oct 2007 05:18:38 +0000 (05:18 -0000)]
Allow sets to get through world file validation and
expand properly. It's now possible to put @system
in the world file and get the old behavior where
world includes system.
svn path=/main/trunk/; revision=8307
Zac Medico [Fri, 26 Oct 2007 04:38:59 +0000 (04:38 -0000)]
Prevent premature expansion of old-style virtuals
inside depgraph.select_files().
svn path=/main/trunk/; revision=8306
Zac Medico [Fri, 26 Oct 2007 03:55:22 +0000 (03:55 -0000)]
Optimize the algorithm used for expansion of set
arguments into atoms.
svn path=/main/trunk/; revision=8305
Marius Mauch [Fri, 26 Oct 2007 01:13:26 +0000 (01:13 -0000)]
update notes about package sets
svn path=/main/trunk/; revision=8304
Marius Mauch [Fri, 26 Oct 2007 01:07:06 +0000 (01:07 -0000)]
break potential cycles in set expansion
svn path=/main/trunk/; revision=8303
Marius Mauch [Fri, 26 Oct 2007 01:03:24 +0000 (01:03 -0000)]
use SetConfig.getSetAtoms instead of PackageSet.getAtoms for expanding sets to allow recursion, and drop the default 'sets/' prefix for setnames
svn path=/main/trunk/; revision=8302
Marius Mauch [Fri, 26 Oct 2007 00:55:26 +0000 (00:55 -0000)]
use a @ prefix for sets, and replace world/system with their real prefixed names if found on the commandline
svn path=/main/trunk/; revision=8301
Marius Mauch [Thu, 25 Oct 2007 23:59:44 +0000 (23:59 -0000)]
Allow sets to contain non-atoms
svn path=/main/trunk/; revision=8300
Zac Medico [Thu, 25 Oct 2007 19:56:45 +0000 (19:56 -0000)]
FIX: indentation problem, also end the Portage identification
line with a ) if repoman wasn't forced to do its job.
(branches/prefix r8281)
svn path=/main/trunk/; revision=8296
Zac Medico [Thu, 25 Oct 2007 19:54:36 +0000 (19:54 -0000)]
Fix: Make repoman actually USE -m commit message again (and -M
commit message file). (branches/prefix r8280)
svn path=/main/trunk/; revision=8295
Zac Medico [Thu, 25 Oct 2007 17:01:32 +0000 (17:01 -0000)]
Correct expected split counts for CONTENTS lines.
svn path=/main/trunk/; revision=8294
Zac Medico [Thu, 25 Oct 2007 16:49:59 +0000 (16:49 -0000)]
Handle a potential IndexError.
svn path=/main/trunk/; revision=8293
Zac Medico [Thu, 25 Oct 2007 16:43:06 +0000 (16:43 -0000)]
Remove obsolete whitespace handling code for "obj" filenames
in CONTENTS.
svn path=/main/trunk/; revision=8292
Zac Medico [Thu, 25 Oct 2007 16:36:48 +0000 (16:36 -0000)]
Handle multiple consecutive spaces in filenames as per
bug #196836#c6.
svn path=/main/trunk/; revision=8291
Zac Medico [Thu, 25 Oct 2007 06:02:17 +0000 (06:02 -0000)]
For the emergelog message, send in the original list of
arguments that exists before expansion of sets.
svn path=/main/trunk/; revision=8290
Zac Medico [Thu, 25 Oct 2007 05:57:32 +0000 (05:57 -0000)]
If the title string is too big then xtermTitle() can
misbehave by causing the terminal to echo some of the
characters and generate a "beep" sound. This is easily
triggered by doing things like `emerge world` now since
all the the atoms are expanded.
svn path=/main/trunk/; revision=8289
Zac Medico [Thu, 25 Oct 2007 05:29:01 +0000 (05:29 -0000)]
Filter atoms that come from sets when generating
the list of atoms to record in the world file.
svn path=/main/trunk/; revision=8288
Zac Medico [Thu, 25 Oct 2007 04:50:01 +0000 (04:50 -0000)]
For the global AUTOCLEAN, pass an empty list into unmerge()
so it behaves like it used to.
svn path=/main/trunk/; revision=8287
Zac Medico [Thu, 25 Oct 2007 02:52:54 +0000 (02:52 -0000)]
Spit out a depgraph._get_existing_pkg() method for getting an
existing Package instance added to the graph for a given SLOT.
svn path=/main/trunk/; revision=8286
Zac Medico [Thu, 25 Oct 2007 02:01:02 +0000 (02:01 -0000)]
Make the Package class generate the digraph nodes.
svn path=/main/trunk/; revision=8285
Zac Medico [Thu, 25 Oct 2007 00:05:39 +0000 (00:05 -0000)]
Fix inverted logic error.
svn path=/main/trunk/; revision=8284
Zac Medico [Wed, 24 Oct 2007 21:31:07 +0000 (21:31 -0000)]
Convert depgraph creation from using recursive calls to
using a stack of dependencies which will be more suitable
for implementation of backtracking.
svn path=/main/trunk/; revision=8283
Zac Medico [Wed, 24 Oct 2007 15:45:24 +0000 (15:45 -0000)]
Add back support for greedy SLOTs when --update is enabled as
per bug #150361. This is currently disabled for sets since
greedy SLOT atoms could be a property of the set itself.
svn path=/main/trunk/; revision=8282
Zac Medico [Wed, 24 Oct 2007 06:47:59 +0000 (06:47 -0000)]
Fix broken import.
svn path=/main/trunk/; revision=8270
Zac Medico [Wed, 24 Oct 2007 06:42:39 +0000 (06:42 -0000)]
Add back support for helpful `emaint --check world` suggestions
and also show package masking reasons when appropriate.
svn path=/main/trunk/; revision=8269
Zac Medico [Wed, 24 Oct 2007 06:13:13 +0000 (06:13 -0000)]
Add back support for detecting if the world file contains
atoms that match packages in package.provided.
svn path=/main/trunk/; revision=8268
Zac Medico [Wed, 24 Oct 2007 05:50:53 +0000 (05:50 -0000)]
Add back support for handling missing system/world atoms
that was removed with depgraph.xcreate(). This doesn't
have support for mapping atoms back to the original sets
yet, but at least a masked or unavailable system/world
atom won't compeletely break the depgraph now.
svn path=/main/trunk/; revision=8267
Zac Medico [Wed, 24 Oct 2007 01:59:42 +0000 (01:59 -0000)]
Replace sys.exit() calls with return statements in emerge_main().
svn path=/main/trunk/; revision=8266
Zac Medico [Wed, 24 Oct 2007 01:44:21 +0000 (01:44 -0000)]
Remove --update greedy SLOTs code from depgraph.select_files()
so that any desired SLOTs have to be pulled in explicitly. Any
SLOTs that are not explicitly pulled in will be removed by
--depclean.
svn path=/main/trunk/; revision=8265
Zac Medico [Wed, 24 Oct 2007 01:33:51 +0000 (01:33 -0000)]
Make world atoms non-greedy for SLOTs in action_depclean()
since users can simply add SLOT atoms to world for any
specific SLOTs that they want to keep.
svn path=/main/trunk/; revision=8264
Marius Mauch [Wed, 24 Oct 2007 01:11:52 +0000 (01:11 -0000)]
remove 'system' and 'world' as actions, and remove most of the special case code as well
svn path=/main/trunk/; revision=8263
Zac Medico [Tue, 23 Oct 2007 23:11:33 +0000 (23:11 -0000)]
Fix selective logic to work properly with masked packages.
svn path=/main/trunk/; revision=8262
Zac Medico [Tue, 23 Oct 2007 22:58:53 +0000 (22:58 -0000)]
Match packages against arguments earlier in
depgraph._select_package() so that corrupt
PROVIDE is detected sooner.
svn path=/main/trunk/; revision=8261
Zac Medico [Tue, 23 Oct 2007 22:55:04 +0000 (22:55 -0000)]
Fix logic for the "selective" depgraph parameter so
that it behaves correctly in cases where installed
packages provide old-style virtuals but none of the
available packages do.
svn path=/main/trunk/; revision=8260
Marius Mauch [Tue, 23 Oct 2007 22:35:27 +0000 (22:35 -0000)]
document PROFILE_ONLY_VARIABLES
svn path=/main/trunk/; revision=8259
Marius Mauch [Tue, 23 Oct 2007 20:58:13 +0000 (20:58 -0000)]
revert r8256 (plans changed)
svn path=/main/trunk/; revision=8258
Marius Mauch [Tue, 23 Oct 2007 20:33:08 +0000 (20:33 -0000)]
move base classes for package sets into a separate module
svn path=/main/trunk/; revision=8257
Marius Mauch [Tue, 23 Oct 2007 20:24:54 +0000 (20:24 -0000)]
just pass the SetConfig instance instead of only the settings and trees attributes
svn path=/main/trunk/; revision=8256
Zac Medico [Tue, 23 Oct 2007 19:30:15 +0000 (19:30 -0000)]
Optimize PROFILE_ONLY_VARIABLES handling.
svn path=/main/trunk/; revision=8255
Marius Mauch [Tue, 23 Oct 2007 19:24:27 +0000 (19:24 -0000)]
make 'world' and 'system' behave like their sets/ counterparts
svn path=/main/trunk/; revision=8254
Marius Mauch [Tue, 23 Oct 2007 19:13:31 +0000 (19:13 -0000)]
make PROFILE_ONLY_VARIABLES incremental
svn path=/main/trunk/; revision=8253
Marius Mauch [Tue, 23 Oct 2007 18:50:09 +0000 (18:50 -0000)]
protect variables specified in PROFILE_ONLY_VARIABLES from being set by the user
svn path=/main/trunk/; revision=8252
Alec Warner [Tue, 23 Oct 2007 07:49:22 +0000 (07:49 -0000)]
add quickie logger function
svn path=/main/trunk/; revision=8251
Alec Warner [Tue, 23 Oct 2007 07:48:47 +0000 (07:48 -0000)]
Begin to use python logging framework. Remove if quiet < bla logic and instead use loglevels (critical, error, warn, info, debug). Default to WARN for repoman, which will print CRITICAL, ERROR, and WARN messages. one -v will print INFO messages and two -v's will print DEBUG messages, each -q will reduce the loglevel by one. -q and -v can be given in any order.
svn path=/main/trunk/; revision=8250
Zac Medico [Tue, 23 Oct 2007 05:36:37 +0000 (05:36 -0000)]
Don't show the "checking files for package collisions" message
when --quiet is enabled.
svn path=/main/trunk/; revision=8248
Alec Warner [Tue, 23 Oct 2007 03:57:29 +0000 (03:57 -0000)]
aha, i knew that diff was screwy, the mail to portage-commits and grep made it obvious as to why; lets try removing those dupe checks.
svn path=/main/trunk/; revision=8247
Alec Warner [Tue, 23 Oct 2007 03:53:49 +0000 (03:53 -0000)]
fix tabbing
svn path=/main/trunk/; revision=8246
Alec Warner [Tue, 23 Oct 2007 03:51:01 +0000 (03:51 -0000)]
Sigh, this integration did not go well, please check the diff (it seemed to add some weird ass code, but it looked fine on sources.gentoo.org). Next time I'll try and either work in a branch or commit faster ;)
svn path=/main/trunk/; revision=8245
Zac Medico [Tue, 23 Oct 2007 02:38:02 +0000 (02:38 -0000)]
Print the Id tag an it's own line to avoid going
over 80 columns.
svn path=/main/trunk/; revision=8243
Zac Medico [Tue, 23 Oct 2007 02:32:54 +0000 (02:32 -0000)]
Fix the version Id tag.
svn path=/main/trunk/; revision=8242
Zac Medico [Tue, 23 Oct 2007 01:11:08 +0000 (01:11 -0000)]
Fix config.setinst() to return early when the given
package already provides the virtual.
svn path=/main/trunk/; revision=8240
Zac Medico [Tue, 23 Oct 2007 00:49:24 +0000 (00:49 -0000)]
Remove a redundant self.treeVirtuals deepcopy from the
config constructor.
svn path=/main/trunk/; revision=8238
Zac Medico [Tue, 23 Oct 2007 00:27:33 +0000 (00:27 -0000)]
Bug #196652 - Check for useless ABOUT-NLS|COPYING|LICENSE
files in dodoc arguments.
svn path=/main/trunk/; revision=8236
Zac Medico [Mon, 22 Oct 2007 23:32:24 +0000 (23:32 -0000)]
Fix broken imports.
svn path=/main/trunk/; revision=8235
Zac Medico [Mon, 22 Oct 2007 22:32:08 +0000 (22:32 -0000)]
In depgraph.create(), if a direct circular dependency is
not an unsatisfied buildtime dependency then drop it here
since otherwise it can skew the merge order calculation
in an unwanted way.
svn path=/main/trunk/; revision=8233
Zac Medico [Mon, 22 Oct 2007 06:59:26 +0000 (06:59 -0000)]
In depgraph.create(), don't ignore direct circular dependencies
anymore since altlist() is able to handle it properly in cases
where the dependency is satisfied. If the dep is unsatisfied
then it can not be ignored.
svn path=/main/trunk/; revision=8225
Zac Medico [Mon, 22 Oct 2007 05:45:58 +0000 (05:45 -0000)]
Bug #184118 - Add an emaint "cleanresume" action that deletes
any existing resume lists from the mtimedb. Thanks to Arfrever
Frehtes Taifersar Arahesis for the initial patch.
svn path=/main/trunk/; revision=8224
Zac Medico [Mon, 22 Oct 2007 03:50:32 +0000 (03:50 -0000)]
Bug #196680 - Handle a CacheError inside mirror_cache() when
reading from the source cache.
svn path=/main/trunk/; revision=8222
Zac Medico [Sun, 21 Oct 2007 23:23:42 +0000 (23:23 -0000)]
Combine depgraph._select_dep() into create() so that
create() simply calls itself recursively. In order
to implement backtracking, create() will eventually
operate on a stack instead of calling itself.
svn path=/main/trunk/; revision=8221
Zac Medico [Sun, 21 Oct 2007 21:23:36 +0000 (21:23 -0000)]
Always pass package metadata into depgraph.create() so
it doesn't have to get it itself.
svn path=/main/trunk/; revision=8220
Zac Medico [Sun, 21 Oct 2007 20:59:00 +0000 (20:59 -0000)]
Do a loop over each dependency type to simplify
select_dep() calls.
svn path=/main/trunk/; revision=8219
Zac Medico [Sun, 21 Oct 2007 20:31:06 +0000 (20:31 -0000)]
Don't catch a ValueError if it isn't the type that's expected
from portage.cpv_expand().
svn path=/main/trunk/; revision=8218
Zac Medico [Sun, 21 Oct 2007 18:38:00 +0000 (18:38 -0000)]
Fix NewsManager.getUnreadItems() so that it works properly
for an unprivileged user in readonly mode.
svn path=/main/trunk/; revision=8215
Zac Medico [Sun, 21 Oct 2007 18:07:15 +0000 (18:07 -0000)]
Bug #196427 - Prevent various news related tracebacks
from occuring when running emerge as an unprivileged
user in --pretend mode.
svn path=/main/trunk/; revision=8214
Marius Mauch [Sun, 21 Oct 2007 11:51:57 +0000 (11:51 -0000)]
note that sets can't contain other sets
svn path=/main/trunk/; revision=8207
Marius Mauch [Sun, 21 Oct 2007 10:55:14 +0000 (10:55 -0000)]
add some notes about restrictions wrt package sets
svn path=/main/trunk/; revision=8206
Marius Mauch [Sun, 21 Oct 2007 10:36:17 +0000 (10:36 -0000)]
fix comment
svn path=/main/trunk/; revision=8204
Marius Mauch [Sun, 21 Oct 2007 10:34:35 +0000 (10:34 -0000)]
ignore "permission denied" errors when changing perms of news skipfile that happen when running with user priviledges in pretend mode
svn path=/main/trunk/; revision=8202
Marius Mauch [Sun, 21 Oct 2007 10:30:17 +0000 (10:30 -0000)]
restore proper call logic
svn path=/main/trunk/; revision=8201
Marius Mauch [Sun, 21 Oct 2007 10:13:46 +0000 (10:13 -0000)]
Remove slashes that cause problems when unpacking files with relative paths (bug #196565)
svn path=/main/trunk/; revision=8200
Zac Medico [Sun, 21 Oct 2007 08:32:44 +0000 (08:32 -0000)]
Remove uneeded "arg" and "addme" parameters where possible.
svn path=/main/trunk/; revision=8199
Zac Medico [Sun, 21 Oct 2007 08:16:32 +0000 (08:16 -0000)]
Use a "depth" parameter to track depth of recursion relative
to the nearest argument atom.
svn path=/main/trunk/; revision=8198
Zac Medico [Sun, 21 Oct 2007 07:23:23 +0000 (07:23 -0000)]
Split the "arg" parameter out of depgraph.select_dep() so
that it's used purely for processing atoms that are pulled
in by parent packages.
svn path=/main/trunk/; revision=8197
Zac Medico [Sun, 21 Oct 2007 06:07:49 +0000 (06:07 -0000)]
Bug #196537 - Make portageq check that the <root> parameter
is an existing directory and exit gracefully if not.
svn path=/main/trunk/; revision=8195
Zac Medico [Sun, 21 Oct 2007 05:47:03 +0000 (05:47 -0000)]
Make depgraph.xcreate() use the filtered repo to determine
availablility of system/world atoms so that the raise_on_missing
parameter can be removed from depgraph.select_dep().
svn path=/main/trunk/; revision=8194