Fabian Groffen [Tue, 26 Dec 2006 09:49:25 +0000 (09:49 -0000)]
Merged from trunk 5393:5394
Make _setitem do a deepcopy just in case.
svn path=/main/branches/prefix/; revision=5397
Fabian Groffen [Tue, 26 Dec 2006 08:57:42 +0000 (08:57 -0000)]
Fix syntax error
svn path=/main/branches/prefix/; revision=5396
Fabian Groffen [Tue, 26 Dec 2006 08:44:32 +0000 (08:44 -0000)]
Create the metadata directory if it doesn't exist yet.
Fix gmtime() being an argument of strftime, not write.
svn path=/main/branches/prefix/; revision=5395
Fabian Groffen [Mon, 25 Dec 2006 21:34:10 +0000 (21:34 -0000)]
Merged from trunk 5381:5392
Clone cached match results before returning them from portdbapi.xmatch().
Thanks to Brian <dol-sen@telus.net> for reporting this issue.
Make bindbapi.aux_get() selectively cache metadata in order to optimize dep
matching (like portdbapi does).
Make sure that bindbapi makes EAPI correctly default to 0 in all possible cases.
more docstrings.. (WarnerBro)
Docstrings for mergeme... (WarnerBro)
Drop the warning messages for users that aren't in the portage group since
tpordbapi now correctly puts the on-disk cache into readonly mode in this case
(and allows metadata generation in-memory if necessary).
Prevent the regen action from running in --pretend mode.
When the user has insufficient access privileges, specify whether superuser
access or portage group access is required. When only portage group access is
required but the user is not in the portage group, call
portage_data.portage_group_warning() to remind people that the portage group is
a system administration group.
Make sure that portage_group_warning() will be shown even in quiet mode.
Use a SIGTERM signal to support a die call inside of a subshell.
For bug #148603, when an ebuild dies, print eclasses that are from overlays.
Thanks to Alec Warner for the initial patch.
svn path=/main/branches/prefix/; revision=5393
Fabian Groffen [Sun, 24 Dec 2006 16:38:44 +0000 (16:38 -0000)]
Don't die if we can't write the timestamp.chk file. It's not vital or
important, just handy.
svn path=/main/branches/prefix/; revision=5381
Fabian Groffen [Sun, 24 Dec 2006 14:40:30 +0000 (14:40 -0000)]
Print value of EPREFIX in emerge --info output.
svn path=/main/branches/prefix/; revision=5380
Fabian Groffen [Sun, 24 Dec 2006 14:27:08 +0000 (14:27 -0000)]
After a svn sync, write timestamp.chk with the current UTC time such
that emerge --info shows something nice next timee on Last Sync date.
svn path=/main/branches/prefix/; revision=5379
Fabian Groffen [Sun, 24 Dec 2006 13:51:32 +0000 (13:51 -0000)]
Look in the prefix for etc/gentoo-release.
svn path=/main/branches/prefix/; revision=5378
Fabian Groffen [Sun, 24 Dec 2006 11:56:50 +0000 (11:56 -0000)]
Make the inter-revision regex tighter, and teach repoman the same trick.
(So in total this code seems to be at three places implemented.)
svn path=/main/branches/prefix/; revision=5377
Fabian Groffen [Sun, 24 Dec 2006 10:59:12 +0000 (10:59 -0000)]
PREFIX hack: a revision starting with 0 is an 'inter-revision',
which means that it is possible to create revisions on revisions.
An example is -r01.1 which is the first revision of -r1. Note
that a period (.) is used to separate the real revision and the
secondary revision number. This trick is in use to allow revision
bumps in ebuilds synced from the main tree for prefix changes,
while still staying in the main tree versioning scheme.
svn path=/main/branches/prefix/; revision=5376
Fabian Groffen [Sun, 24 Dec 2006 10:04:14 +0000 (10:04 -0000)]
Merged from trunk 5366:5372
For bug #158931, add some release notes to explain performance penalties for
dependency calculations.
For forward compatibility, make metadata_overlay pass any additional positional
and keyword parameters into the super constructor.
Manpage fix for bug # 158983, thanks to Fabio Correa for the patch (WarnerBro)
More code cleanup, packagetree appears to be completely unused, so lets remove
it in favor of inheriting from object (WarnerBro)
Docstrings for doebuild (WarnerBro)
cptot appears to be unused, punting it along with this commented out function,
it appears to be unused as well. (WarnerBro)
svn path=/main/branches/prefix/; revision=5375
Fabian Groffen [Sun, 24 Dec 2006 10:00:55 +0000 (10:00 -0000)]
Merged from trunk 5350:5366
I hate docstrings (WarnerBro)
Remove two old functions, appear to be relics from 2.0.X branch, no longer used
by portage or gentoolkit or esearch (WarnerBro)
When an unprivileged user runs portage (not in the portage group), use
metadata_overlay together with a volatile in-memory cache module in order to
implement cache writes. This allows, for example, a user who's not in the
portage group to run `ebuild foo.ebuild digest` (issue reported by Charlie
Shepherd <masterdriverz@gentoo.org>).
Add volatile cache module missing from the previous commit.
Pass a cache instance into metadata_overlay since it doesn't have enough
information to construct one itself.
Make metadata_overlay use the autocommits attribute of the underlying database.
Fix inverted EAPI default logic.
Combine two default EAPI settings in portdbapi.aux_get().
Only write repo.stats and repo.fails when the repoman user has write access to
/var/cache/edb.
Show the "Calculating dependencies .. done!" message with --resume since the
spinner now runs inside the depgraph constructor. Thanks to antarus for
reporting.
startime is set up in treewalk, so no need to do it globally... (WarnerBro)
List package in summary logfile (genone)
disable display of elapsed time for collision-protect as it's for benchmarking
purposes and useless to most people. (genone)
More Docstrings in portage.py (WarnerBro)
move actionmap_deps out of global scope and into doebuild where it is actually
used, add docstrings to config class in the meantime. (WarnerBro)
svn path=/main/branches/prefix/; revision=5374
Fabian Groffen [Sun, 24 Dec 2006 09:53:02 +0000 (09:53 -0000)]
Merged from trunk 5336:5350
For bug #158649, minimize portdb cache pulls for installed packages when
--nodeps is enabled. This patch also allows the vardb lock to be released
before doing any cache pulls (even when --nodeps is not enabled), and updates
the spinner while the metadata is being pulled.
More intelligently handle CacheCorruption errors in the writable cache.
For bug #158558, ignore invalid depstrings for packages that are being replaced
anyway (otherwise the user would be forced to manually unmerge the package).
When a removal phase fails, tell the user where the ebuild is and advise them
that the ebuild can be removed in order to skip the removal phases.
For installed packages with invalid depstrings, tell the user the location of
the *DEPEND files.
For bug #158632, make aux_get caching safe for missing values in cache entries.
For bug #158658, fix the 'TypeError: int argument required' that happens in the
finalize() routine.
Use the return value from setdefault to avoid an extra dict lookup.
Create a backward compatibility mode for dep_check() so that emerge can use it
to gracefully deal with installed packages that have invalid atoms or dep
syntax.
Make emerge enable backward compatibility mode for dep_check() calls on
installed packages so that it can gracefully invalid atoms or dep syntax.
Fix the "help" phase so that it works without build dirs.
For bug #158649, allow --buildpkgonly to bypass the fakedb population like
--nodeps does.
Revert the default choice for --ask --unmerge (bug #158354) because people are
complaining.
Use a pipe instead of a temp file for the depend phase.
svn path=/main/branches/prefix/; revision=5373
Fabian Groffen [Fri, 22 Dec 2006 22:52:05 +0000 (22:52 -0000)]
Use eerror to signal errors instead of manual !!!
svn path=/main/branches/prefix/; revision=5352
Fabian Groffen [Wed, 20 Dec 2006 19:32:07 +0000 (19:32 -0000)]
Merged from trunk 5334:5335
Fix broken exception handling syntax causing strange exception reported
in bug #158608.
svn path=/main/branches/prefix/; revision=5336
Fabian Groffen [Wed, 20 Dec 2006 18:11:14 +0000 (18:11 -0000)]
Merged from trunk 5320:5333
For bug #158503, allow --nodeps to override blockers.
Increase cache hits in portdbapi.xmatch().
Use a separate digraph to store parent/child relationships (PDEPEND
relationships are not reversed) so that relationship is always known in
case a slot collision occurs.
New elog modules for dismerging messages into a single file/mail
(genone)
Make binarytree.move_ent() properly update PF.
For bug #158558, fix broken ebuild rename logic in vardbapi.move_ent().
For bug #158558, make the unmerge phase do automatic cleanup for broken
vardbapi.move_ent() in portage versions before 2.1.2.
Fix an import statement typo.
For bug #158608, don't attempt to use distlocks when it's detected that
the filesystem is readonly (unless "skiprocheck" is in FEATURES for some
strange reason).
Add missing newlines to the warning message that's printed when the user
has distlocks enabled together with skiprocheck and the filesystem is
readonly.
Give the user some advice whenever an invalid dependency string is
encountered.
Fix the invalid dependency message so there's no confusion about which
package has the problem.
svn path=/main/branches/prefix/; revision=5334
Fabian Groffen [Mon, 18 Dec 2006 20:27:05 +0000 (20:27 -0000)]
Merged from trunk 5305:5318
remove pointless redirects to /dev/null when using hasq() (SpankMan)
force environment.bz2 to be clobbered if it already exists (SpankMan)
In depgraph.altlist(), pop as many leaf nodes as possible when no
relationship has been ignored. This can halve the time taken for a
large merge order calculation.
Don't optimize depgraph.altlist() in reversed mode since the
optimization destroys --tree ouput.
Add --debug support for --depclean.
Do some minor cleanup of the --depclean code.
Make depclean skip empty depstrings.
Disable the spinner when --debug is enabled so that it doesn't
interfere.
Catch PortageException from portdbapi.aux_get since it can happen when
gpg is in FEATURES.
For bug #158354, make "No" the default response for unmerge actions.
svn path=/main/branches/prefix/; revision=5320
Fabian Groffen [Mon, 18 Dec 2006 20:22:40 +0000 (20:22 -0000)]
Merged from trunk 5295:5305
Cache blocked slots for better efficiency.
For bug #157897, show parent nodes in order to help the user decide
about what action to take.
Cache KEYWORDS and EAPI metadata values in order to speed up
portdbapi.gvisible() calls. This greatly improves repoman performance
(help emerge a little too).
Make sure eapi is defined in order to prevent a NameError.
Split ACCEPT_KEYWORDS before entering the loop for better efficiency.
Make repoman cache per-profile xmatch results.
For bug #158177, force configure scripts that automatically detect
ccache to respect FEATURES="-ccache". Thanks to Horst Schirmeier
<gentoo@schirmeier.com> for this suggestion.
Fix global updates error handling to prevent a traceback with python-2.5
as reported in bug #158264.
Make dep_check validate all depstring atoms in order to prevent problems
from occuring later due to unexpected invalid atoms.
Make use_reduce raise an InvalidDependString exception for use?
conditionals that aren't followed by parenthesis and add appropriate
exception handling in dep_check.
svn path=/main/branches/prefix/; revision=5319
Fabian Groffen [Thu, 14 Dec 2006 15:03:58 +0000 (15:03 -0000)]
Merged from trunk 5284:5294
For bug #157897, handle the case of multiple versions within a single
package slot have been pulled into the dependency graph. If possible,
the package that has already been pulled in will be reused. Otherwise,
an error message will advise the user to mask an unwanted version.
handle --cols when displaying blockers (SpankMan)
For bug #157897, add slot collision handling in depgraph.create(), since
create() is called from places other than select_dep().
Update the comment about depgraph.pkg_node_map since it now maps all
nodes added to the graph.
Use depgraph.pkg_node_map so simplify comparison against existing nodes
at the beginning of depgraph.create().
Fix the --onlydeps conditional logic in depgraph.create(). These aren't
real nodes and shouldn't be added to the digraph, etc...
Remove redundant priority handling since that's always handled in
select_dep() for nodes that have parents.
Remove pointless unpacking of the parent node.
Make --columns blockers output more consistent when --quiet is not
enabled.
svn path=/main/branches/prefix/; revision=5295
Fabian Groffen [Wed, 13 Dec 2006 16:22:34 +0000 (16:22 -0000)]
Merged from trunk 5271:5283
For bug #157823, ignore blocker collisions between two packages that are
already installed if no merge is currently scheduled for either of those
package slots. These blockers will be handled as necessary the next
time that a merge of either package is triggered.
Make the fetch phase bail out if FETCHCOMMAND or RESUMECOMMAND are
missing. Thanks to Flameeyes for reporting.
All portage.fetch() to succeed even if FETCHCOMMAND and RESUMECOMMAND
aren't defined.
Centralize all of the vardb metadata mangling in FakeVartree.
Store dependency metadata in depgraph.mydbapi so that it can be used in
place of the portdb for optimized dep_check calls in
depgraph.validate_blockers().
Optimize dep_check calls in depgraph.validate_blockers() by using a
fakedbapi instance instead of the real pordbapi (minimizes available
matches).
For higher efficiency, call self.__int__() instead of int(self).
For bug #157897, only let depgraph.create() inject "merge" nodes into
the final state dbapi.
For bug #157897, ensure that only "merge" nodes are stored in
digraph.pkg_node_map.
Move the biolerplate cpv_all() implementation from portdbapi to dbapi.
Track slot atom to digraph node mappings as the depgraph is built. This
mapping will be used to detect node collisions for bug #157897.
Remove redundant digraph.pkg_node_map node insertions. Once per
digraph.create() call will cover all nodes.
svn path=/main/branches/prefix/; revision=5284
Fabian Groffen [Mon, 11 Dec 2006 19:42:42 +0000 (19:42 -0000)]
Merged from trunk 5265:5270
Ignore blockers when "--buildpkgonly" is enabled.
Ensure that the root of the vdb exists before attempting to lock it.
Thanks to Flameeyes for reporting.
When there are multiple packages occupying the same slot, only consider
the one with the highest COUNTER. Thanks to leio for reporting.
For bug #157823, don't forget to split the USE.
svn path=/main/branches/prefix/; revision=5271
Fabian Groffen [Sun, 10 Dec 2006 21:53:39 +0000 (21:53 -0000)]
Merged from trunk 5261:5264
Don't collapse the tuple into a hash, since dict can use __eq__ to avoid
problems with hash collisions. Thanks to Brian Harring for reporting.
For bug #157734, fix repoman isvalidatom() checks. Thanks to Brian
Harring for the patch.
Add an allow_blockers parameter to isvalidatom so that the behavior is
optional. Thanks to Brian Harring for the suggestion.
svn path=/main/branches/prefix/; revision=5265
Fabian Groffen [Sun, 10 Dec 2006 16:16:47 +0000 (16:16 -0000)]
Merged from trunk 5259:5260
To minimize memory consumption and maximize performance, use hash values
for cache keys.
svn path=/main/branches/prefix/; revision=5261
Fabian Groffen [Sun, 10 Dec 2006 11:23:47 +0000 (11:23 -0000)]
Merged from trunk 5247:5256
For bug #128809, process blockers for all installed packages. Due to
the performance penalty incurred by additional dep_check calls, this is
only enabled with the --deep option.
Avoid unnecessary dbapi.cp_list() calls inside cpv_expand().
Cache the results of match_from_list() calls.
Cache results of dep_getcpv() calls.
Use dep_getcpv() inside dep_expand() for code sharing and caching.
Cache the results of fakedbapi.match() calls and clear the cache
automatically when necessary.
Initialize the match cache in the bindbapi constructor.
For bug #128809, optimize dep_check calls and enable the blocker
detection by default since the performance now seems acceptable.
Make sure the SLOT comes from the vardb instead of the portdb (for
multislot, etc..). Thanks to jakub for reporting.
svn path=/main/branches/prefix/; revision=5259
Fabian Groffen [Sun, 10 Dec 2006 11:20:04 +0000 (11:20 -0000)]
Merged from trunk 5238:5247
Add use.force support to dep_check for repoman especially. Thanks to
Flameeyes for reporting and tesing.
Use portage.isvalidatom() for atom validation in repoman.
Make isvalidatom() (and thus repoman) reject atoms containing |()
characters. Thanks to Brian Harring for the suggestion.
Add ? to the invalid atom characters.
Clean up depstring/atom splitting and filtering.
For bug #157369, clean when cleanup has been triggered by changed
timestamps. Also, allow FEATURES=keepwork to override the ebuild mtime
check.
This patch cleans up the blocker validation logic. Unlike the previous
implementation, this one carefully considers each parent/block package
relationship in order to ensure that no unresolved blocks slip through.
Don't attempt to enforce merge order unless the blocker parent is
actually a "merge" node.
Escape a newline from the previous commit.
svn path=/main/branches/prefix/; revision=5258
Fabian Groffen [Sun, 10 Dec 2006 11:16:12 +0000 (11:16 -0000)]
Merged from trunk 5226:5238 (+ one added modification in bin/repoman)
Indicate test failure with an exit code.
Remove all traces of FEATURES=cvs since code for that feature no longer
exists (apparently since portage-2.1).
+ Remove traces of FEATURES=svn for the same reason
Clean up vardbapi.aux_get().
Remove locking from dbapi.aux_update() implementations so that the
caller can handle locking instead.
Go ahead and populate depgraph.mydbapi even when --emptytree is enabled
since it doesn't matter anymore (dep_check now returns all deps anyway).
Move the reset of the per-root initializations into the loop.
Remove unused depgraph.match() method.
Use tuples for digraph nodes in order to avoid lots of pointless join
and split calls.
Split some global updates functions out of depgraph and use them for
depclean when necessary.
Fix broken SLOT update logic in fakedbapi.cpv_inject().
adjust QA_* variable names for complex values of like x86-fbsd
svn path=/main/branches/prefix/; revision=5257
Fabian Groffen [Fri, 8 Dec 2006 08:12:21 +0000 (08:12 -0000)]
Merged from trunk 5212:5219
Add pretty basic vercmp unit testing...need more cases
Make all lock files hidden for bug #142369.
minor syntax changes ( in is faster than has_key ) and docstrings
Allow searching for action terms again
add some portage_util tests
Avoid bogus 'Deprecated use of action' warnings for valid commands such
as `emerge -s sync`.
Simplfy deprecated action parsing logic.
svn path=/main/branches/prefix/; revision=5226
Fabian Groffen [Fri, 8 Dec 2006 08:08:58 +0000 (08:08 -0000)]
Merged from trunkk 5205:5212
Share the same config instance between portagetree and portdbapi
instances since clone isn't needed here. Also, trigger population of
virtuals prior to cloning in emerge. This reduces the number of times
the virtuals are populated from 3 to just 1.
Enable FakeVartree to populate the virtuals so that the vdb doesn't have
to be scanned separately.
portage_versions lacks a header or copyright notice :x
Catch an exception instead of using a redundant os.access call.
A quick docstring for vercmp.
s/zip/izip/ Thanks to Brian Harring for the suggestion.
s/zip/izip/ some more
svn path=/main/branches/prefix/; revision=5225
Fabian Groffen [Fri, 8 Dec 2006 08:05:32 +0000 (08:05 -0000)]
Merged from trunk 5196:5205
For bug #157385, enable portage.digestgen() to fetch any distfiles for
which there are no existing digests.
Fix broken SRC_URI logic from the previous commit.
Fix broken SRC_URI logic in doebuild.
Make repoman bail out if it's unable to generate the Manifest.
For bug #157393, fix up ebuild path normalization so that it's
compatible with portdbapi handling and works properly with symlinks
(like crossdev creates).
Make sure the ebuild path is properly normalized.
Revert r5175 for bug #152127 since the original = behavior seems more
desirable. We can change the >= and <= behavior instead.
For bug #152127, make vercmp give less value to implcit .0, so two
versions that aren't literally equal are not ambiguously given the same
value (in sorting, for example).
svn path=/main/branches/prefix/; revision=5224
Fabian Groffen [Fri, 8 Dec 2006 08:01:42 +0000 (08:01 -0000)]
Merged from trunk 5188:5196
Use a fake vartree for depgraph calculations. This minimizes the time
that a lock needs to be held on the vardb, and allows in-memory global
updates when necessary.
Delete the depgraph when it's no longer needed.
Use FakeVartree for vardb lock/cache during depclean.
Allow depclean to silently skip packages unmerged behind it's back.
Fix depclean so the fake vartree is used in dep_check calls.
Always silently ingnore missing packages during unmerge.
Remove all traces of the unmerge raise_on_missing parameter.
Fix indentation.
svn path=/main/branches/prefix/; revision=5223
Fabian Groffen [Wed, 6 Dec 2006 21:09:00 +0000 (21:09 -0000)]
Oops, commands was not imported, only the function, so no need to call
it absolute.
svn path=/main/branches/prefix/; revision=5188
Fabian Groffen [Wed, 6 Dec 2006 20:42:14 +0000 (20:42 -0000)]
Merged from trunk 5183:5185
Remove dependence on the vartree api by using equivalent vardbapi calls.
Only call calc_changelog if there is an installed version in the same
slot.
svn path=/main/branches/prefix/; revision=5187
Fabian Groffen [Wed, 6 Dec 2006 20:40:01 +0000 (20:40 -0000)]
check given paths first, then fall back to some hard-coded ones.
svn path=/main/branches/prefix/; revision=5186
Fabian Groffen [Wed, 6 Dec 2006 20:26:31 +0000 (20:26 -0000)]
Add missing slash
svn path=/main/branches/prefix/; revision=5183
Fabian Groffen [Wed, 6 Dec 2006 19:43:53 +0000 (19:43 -0000)]
Merged from trunk 5179:5180
Remove unused depgraph.is_newer_ver_installed() method.
svn path=/main/branches/prefix/; revision=5182
Fabian Groffen [Wed, 6 Dec 2006 19:41:51 +0000 (19:41 -0000)]
Pimp Repoman version thingy such that I can better see where I did what.
svn path=/main/branches/prefix/; revision=5181
Fabian Groffen [Wed, 6 Dec 2006 19:28:18 +0000 (19:28 -0000)]
Merged from trunk 5177:5178
Implement fakedbapi.aux_update().
svn path=/main/branches/prefix/; revision=5179
Fabian Groffen [Wed, 6 Dec 2006 19:26:56 +0000 (19:26 -0000)]
Merged from trunk 5172:5176
For bug #157134, make `emerge --digest` automatically reload the config
with FEATURES=digest enabled globally.
Fix up mtimedb["ldpath"] references broken by the previous commit.
Make match_to_list = behavior consistent with >= and <= for bug #152127.
Sync match_to_list >=, <=, etc.. code with the new = code.
svn path=/main/branches/prefix/; revision=5177
Fabian Groffen [Mon, 4 Dec 2006 20:35:50 +0000 (20:35 -0000)]
Merged from trunk 5165:5171
When portdbapi.aux_get() generates a KeyError in
portage.getmaskingstatus(), handle it by reporting "corruption".
Make `repoman fix` work with the new ebuild Manifest checks during
depend phase.
Update the RESTRICT=binchecks docs. Thanks to jakub for the suggestion
and antarus for the patch.
For `ebuild --force digest`, exempt the depend phase from Manifest
checks.
Use portage.chdir() instead of os.chdir() in order to avoid an 'OSError:
[Errno 2] No such file or directory' if the working directory doesn't
exist. Thanks to Caster for reporting.
svn path=/main/branches/prefix/; revision=5172
Fabian Groffen [Mon, 4 Dec 2006 09:54:10 +0000 (09:54 -0000)]
Just use EPREFIX, as we imported it.
svn path=/main/branches/prefix/; revision=5170
Fabian Groffen [Sun, 3 Dec 2006 20:05:39 +0000 (20:05 -0000)]
Merged from trunk 5163:5164
drop RESTRICT=stricter since every aspect it covers can be handled
properly via other means
svn path=/main/branches/prefix/; revision=5165
Fabian Groffen [Sun, 3 Dec 2006 13:33:20 +0000 (13:33 -0000)]
- fixed emerge not reporting on files which need updating (missing call
to chk_updated_cfg_files)
- cosmetic change to import/use EPREFIX
- Drop wheelgroup warning, as it makes no sense in prefix.
svn path=/main/branches/prefix/; revision=5163
Fabian Groffen [Sun, 3 Dec 2006 09:58:52 +0000 (09:58 -0000)]
Merged from trunk 5158:5161
Skip digest checks when digest is in features.
Make portage.digestgen() automatically exempt the depend phase from
Manifest checks so that it works for repoman without triggering a digest
verification failure.
Move the global statement out of the try block so that it's clearly in
scope for the finally block.
svn path=/main/branches/prefix/; revision=5162
Fabian Groffen [Sat, 2 Dec 2006 15:21:14 +0000 (15:21 -0000)]
Merged from trunk 5149:5157
Always verify the ebuild checksums before executing it. Thanks to solar
for the suggestion and antarus for the initial patch.
For manifest and digest phases, use a global variable to temporarily
exempt the depend phase from manifest checks (in cache regeneration is
triggered).
Temporarily exempt the depend phase during the help phase also.
Avoid checking the same Manifest several times in a row during a regen
with an empty cache.
For consistent behavior in all timezones, make emerge-webrsync use UTC
time for decisions about which snapshots to download.
Only attempt to verify the Manifest if the ebuild is actually in a
portage tree.
Make sure that *all* of the ebuilds are listed in the Manifest.
Make sure that all depend phases triggered by the digest phase are
exempt from digest checks.
svn path=/main/branches/prefix/; revision=5158
Fabian Groffen [Fri, 1 Dec 2006 18:33:20 +0000 (18:33 -0000)]
Merged from trunk 5145:5148
add ReST template to be used for manpage/make.globals/make.conf.example
generation later on (+ fixes)
svn path=/main/branches/prefix/; revision=5149
Fabian Groffen [Wed, 29 Nov 2006 22:00:18 +0000 (22:00 -0000)]
Merged from trunk 5141:5143
Make sure QUIET mode is exported to the environment properly when using
-q mode.
No point in forking a call to true when we can simply use the bash
internal of : for true.
svn path=/main/branches/prefix/; revision=5145
Fabian Groffen [Wed, 29 Nov 2006 21:41:57 +0000 (21:41 -0000)]
On a second thought it's much better if portage makes sure it can find
its own binaries itself. This also solves problems during
bootstrapping, since the portage binpath now always ends up last.
svn path=/main/branches/prefix/; revision=5144
Fabian Groffen [Wed, 29 Nov 2006 19:54:26 +0000 (19:54 -0000)]
I hope this time I really get the path right.
svn path=/main/branches/prefix/; revision=5141
Fabian Groffen [Wed, 29 Nov 2006 19:44:56 +0000 (19:44 -0000)]
It comes in handy sometimes to have access to your own executables.
svn path=/main/branches/prefix/; revision=5140
Fabian Groffen [Wed, 29 Nov 2006 18:48:58 +0000 (18:48 -0000)]
Fix default path order
svn path=/main/branches/prefix/; revision=5139
Fabian Groffen [Sun, 26 Nov 2006 16:38:30 +0000 (16:38 -0000)]
Merged from trunk 5132:5135
Never overwrite an untouched config file and trigger config protection
instead (in case the new config has an unwanted change). In cases where
an installed package in the same slot owns a protected file that will be
merged, bump the mtime on the installed file in order to ensure that it
isn't unmerged. Thanks to Ciaran McCreesh <ciaranm@ciaranm.org> for his
suggestion on bug #8423, comment #40.
Update the dblink.isprotected() docstring.
For bug #8423, make etc-update preserve timestamps when possible.
svn path=/main/branches/prefix/; revision=5138
Fabian Groffen [Sun, 26 Nov 2006 11:18:46 +0000 (11:18 -0000)]
Use latest/default autotools, unset possibly unused variable
svn path=/main/branches/prefix/; revision=5132
Fabian Groffen [Sun, 26 Nov 2006 11:11:28 +0000 (11:11 -0000)]
Require Python 2.4
svn path=/main/branches/prefix/; revision=5131
Fabian Groffen [Sun, 26 Nov 2006 11:01:12 +0000 (11:01 -0000)]
Merged from trunk 5128:5129
For bug #8423, allow the merge phase to overwrite untouched config files
and also allow the unmerge phase to unmerge untouched config files.
svn path=/main/branches/prefix/; revision=5130
Fabian Groffen [Thu, 23 Nov 2006 17:13:30 +0000 (17:13 -0000)]
Merged from trunk 5120:5123
For bug #150585, stack package.keywords incrementally so that -keyword
works as expected for any incremental variable. This brings the
gvisible and getmaskingstatus logic into sync so that the confusing
(masked by: ) message will not be generated in cases where
package.keywords contains -keyword followed by keyword.
For bug #156014, always round up the next kB so that it doesn't show 0
kB when some small file still needs to be fetched.
Allow -keyword to be matched since some ebuilds use it. Thanks to Brian
Harring reporting on bug #150585.
svn path=/main/branches/prefix/; revision=5124
Fabian Groffen [Wed, 22 Nov 2006 18:38:15 +0000 (18:38 -0000)]
Merged from trunk 5113:5119
For bug #142993, make sure that chown and chgrp calls preserve S_ISUID
and S_ISGID mode bits.
Fix apply_permissions logic for cases where mode is unspecified.
Fix bit mask support when preserving S_ISUID and S_ISGID in
apply_permissions.
Really fix bit mask support when preserving S_ISUID and S_ISGID in
apply_permissions.
Fix a KeyError in emerge --info <pkg> when there is no matching ebuild
in the tree. Thanks to Bo ?\195?\152rsted Andresen
<bo.andresen@zlin.dk> for reporting.
Use portage_data.lchown for compatibility.
svn path=/main/branches/prefix/; revision=5120
Fabian Groffen [Mon, 20 Nov 2006 20:53:06 +0000 (20:53 -0000)]
Also for digests hold that svn list won't show added files, so run svn
status afterwards to get them.
svn path=/main/branches/prefix/; revision=5109
Fabian Groffen [Mon, 20 Nov 2006 17:51:48 +0000 (17:51 -0000)]
Merged from trunk 5091:5107
Use mydbapi is None to eliminate the return_all_deps parameter from
dep_check and dep_zapdeps. The result is the same and this way we
avoid having an additional parameter with overlapping meaning.
Allow dep_wordreduce to mark things satisfied by package.provided even
when mydbapi is None.
For depclean, just pass in None for mydbapi (instead of an empty
fakedbapi instance) since that's now supported.
Remove redundant package.provided handling that is now covered by
dep_wordreduce.
Allow the ROOT setting to come from make.conf. Thanks to Daniel
Barkalow <barkalow@iabervon.org> for this patch (submitted on the
gentoo-portage-dev mailing list).
For bug #155739, only check if a dep is in the args when myroot ==
self.target_root.
Print a warning message if a user requests a package from
package.provided (since it won't be merged).
Enable PORTAGE_CONFIGROOT to be set via an new --config-root option.
Thanks to Daniel Barkalow <barkalow@iabervon.org> for the initial patch
(submitted on the gentoo-portage-dev mailing list).
svn path=/main/branches/prefix/; revision=5108
Fabian Groffen [Sun, 19 Nov 2006 17:02:23 +0000 (17:02 -0000)]
Improved repoman SVN support:
- svn list returns outdated information if not preceded by svn update
- svn list doesn't return information on newly added files, so for SVN
run svn status to get the added files
This fixes problems with phantom files being reported as not added,
while they either don't exist any more in the repo, or are added for
sure.
svn path=/main/branches/prefix/; revision=5090
Fabian Groffen [Sun, 19 Nov 2006 16:39:04 +0000 (16:39 -0000)]
Merged from trunk 5080:5088
Revert ACCEPT_LICENSE support, since license group support is a
requirement and it remain unimplemented. This brings trunk back into
sync with the 2.1.2 branch.
For bug #155559, force depclean dep_check calls to preference installed
packages.
Use fake_vardb for cached aux_get calls.
Fix portdbapi.cpv_all() so that it actually returns a list of all
available ebuilds.
svn path=/main/branches/prefix/; revision=5089
Fabian Groffen [Fri, 17 Nov 2006 18:26:25 +0000 (18:26 -0000)]
Merged from trunk 5060:5075
Pull in the new-style virtuals and install them so that the vdb has
complete standalone dep info, in case a portage tree isn't available.
For bug #141118, make dep_zapdeps assign zero cost to new-style
virtuals.
Revert the depclean message, since new-style virtuals will now be kept.
Update the _expand_new_virtuals docstring with a not about zero cost for
new-style virtuals.
Fix _expand_new_virtuals so that it doesn't allow any virtual deps to go
unaccounted for.
Integrate old-style virtuals handling into _expand_new_virtuals() and
prefer new-style over old-style whenever they are available.
For bug #155484, apply PORTAGE_NICENESS as soon as possible (especially
before global updates).
Make fixpackages use PORTAGE_NICENESS.
svn path=/main/branches/prefix/; revision=5077
Fabian Groffen [Thu, 16 Nov 2006 21:36:06 +0000 (21:36 -0000)]
Don't use hard-coded group names, but use the portage group from
configure instead.
svn path=/main/branches/prefix/; revision=5060
Fabian Groffen [Thu, 16 Nov 2006 19:55:52 +0000 (19:55 -0000)]
Merged from trunk 5027:5057
For bug #154989, use a single lock on /var/db/pkg since finer grained
locking is unnecessary and often insufficient.
For bug #154989, lock /var/db/pkg while determining which packages to
unmerge, then release the lock. The lock will be reacquired/released
for each individual unmerge, allowing opportunities for other processes
to acquire it.
Use try/finally to ensure that locks are properly released in
portdbapi.aux_get().
Use try/finally to ensure that locks are properly released in
perform_checksum().
Use try/finally to ensure that locks are properly released in
emergelog().
Use try/finally to ensure that locks are properly released in
dblink.unmerge().
Remove reentrance support for dblink.lockdb() since it's no longer used
and it won't necessarily work correctly now that a global vdb lock is
used.
For bug #154986, show the usual "Filesize does not match recorded size"
message even for fetch restricted files.
For bug #154897, show a summary of fetch restrictions if there are any.
Cache depgraph.altlist results, since altlist is called multiple times
and can be time consuming for a large depgraph.
Make fakedbapi support generic metadata instead of just slots.
Remove useless unmerge() call after collision-protect has prevented
anything from being merged.
Fix a lock file leak.
Make portage.global_updates() return any updates that may have been
performed.
Only reload the config if global updates have actually been performed.
Automatically convert --ask to --pretend when the user doesn't have the
privileges for --ask. Thanks to Daniel Barkalow <barkalow@iabervon.org>
for the initial patch (submitted on gentoo-portage mailing list).
Don't try to lock the vdb unless privileges are sufficient.
For bug #141118, make dep_check do recursive expansion of new-style
virtuals.
Add a note about removal of new-style virtuals in the depclean output.
svn path=/main/branches/prefix/; revision=5059
Fabian Groffen [Mon, 13 Nov 2006 21:39:01 +0000 (21:39 -0000)]
Subversion doesn't eat svn+, so remove the "svn+" part when
feeding it to svn checkout.
svn path=/main/branches/prefix/; revision=5026
Fabian Groffen [Mon, 13 Nov 2006 21:32:24 +0000 (21:32 -0000)]
Merged from trunk 5020:5023
For bug #154921, prevent an IndexError when a + is in USE.
For bug #154919, when depclean is unable to resolve dependencies, notify
the user that it may be necessary to manually uninstalled packages that
no longer exist in the portage tree.
svn path=/main/branches/prefix/; revision=5025
Fabian Groffen [Sun, 12 Nov 2006 16:52:17 +0000 (16:52 -0000)]
Don't announce as SVN if on CVS.
svn path=/main/branches/prefix/; revision=5020
Fabian Groffen [Sun, 12 Nov 2006 16:48:12 +0000 (16:48 -0000)]
It takes some time... but then you have Repoman playing nice with SVN
repos!
svn path=/main/branches/prefix/; revision=5019
Fabian Groffen [Sun, 12 Nov 2006 14:38:07 +0000 (14:38 -0000)]
Giving Repoman a big fling such that it spins on SVN also.
svn path=/main/branches/prefix/; revision=5018
Fabian Groffen [Sun, 12 Nov 2006 10:44:44 +0000 (10:44 -0000)]
Wiping off the dust of Repoman's SVN support.
svn path=/main/branches/prefix/; revision=5017
Fabian Groffen [Sun, 12 Nov 2006 09:19:05 +0000 (09:19 -0000)]
Our repo is called "portage-overlay" iso "portage".
Fix call to chk_updated_cfg_files such that we don't look (and fail) in
the root filesystem if that's not EPREFIX.
svn path=/main/branches/prefix/; revision=5016
Fabian Groffen [Sun, 12 Nov 2006 08:33:40 +0000 (08:33 -0000)]
Added SVN support for syncing next to CVS support.
svn path=/main/branches/prefix/; revision=5015
Fabian Groffen [Sun, 12 Nov 2006 08:17:34 +0000 (08:17 -0000)]
Merged from trunk 4998:5012
Thanks again to Chris White for these additional portage_dep docstrings.
Make digestcheck() fail if an ebuild isn't listed in the Manifest.
Thanks to pva for reporting.
Fix emerge --sync with a cvs:// uri so that it runs
/etc/portage/bin/post_sync like it would with a normal rsync:// uri.
Thanks to drizzt for reporting.
Fix initial cvs checkout logic for bug #100478.
For initial gentoo-x86 checkout, if $PORTDIR exists and is empty then
remove it so that the gentoo-x86 checkout can replace it.
For bug #154554, validate all profile virtuals atoms.
Fix depgraph.pkg_node_map so that it properly supports $ROOT.
svn path=/main/branches/prefix/; revision=5014
Fabian Groffen [Wed, 8 Nov 2006 21:23:42 +0000 (21:23 -0000)]
Merged from trunk 4986:4987
Thanks to Chris White for these portage_dep docstrings.
svn path=/main/branches/prefix/; revision=4997
Fabian Groffen [Wed, 8 Nov 2006 07:21:21 +0000 (07:21 -0000)]
Merged from trunk 4965:4984
Minimize getvirtuals() calls and dict lookups inside dep_virtual().
Fix validate_blockers() so that a package doesn't block itself via a
virtual that it provides.
Print the number of upgrades, downgrades, etc. next to size of
downloads. Thanks to Bo ?\195?\152rsted Andresen <bo.andresen@zlin.dk>
for the initial patch from bug #153847.
Thanks to Chris White for these portage_checksum docstrings.
Thanks to Bo ?\195?\152rsted Andresen <bo.andresen@zlin.dk> for this
output fix for bug #153847.
Plug some holes in the blocker validation logic so that nothing can slip
through.
Remove some stray blocker validation logic.
s/grabdict/grabdict_package/ for bug #63429.
For bug #154207, add a note about package.provided to the depclean
warning message.
Add --newuse back to the suggested options in the depclean warning
message, since it's still needed in some cases.
svn path=/main/branches/prefix/; revision=4986
Fabian Groffen [Mon, 6 Nov 2006 21:12:46 +0000 (21:12 -0000)]
Merged from trunk 4961:4962
Simplify the new-style -> old-style virtuals bridge by doing it
implicitly for all virtuals instead of explicit scanning for available
new-style virtuals.
svn path=/main/branches/prefix/; revision=4965
Fabian Groffen [Mon, 6 Nov 2006 21:08:56 +0000 (21:08 -0000)]
Remove temp source copy, ls the tarbal we created for easy copy and
pasting
svn path=/main/branches/prefix/; revision=4964
Fabian Groffen [Mon, 6 Nov 2006 20:44:34 +0000 (20:44 -0000)]
Merged from trunk 4946:4959
Prevent the --newuse check in depgraph.create() that is intended for the
ebuild type from being done on binary packages (which can lead to a
KeyError). The --newuse check for binaries is elsewhere (in
select_dep).
Ensure that sys-apps/portage is as close as possible to the beginning of
the merge list. This is accomplished by merging it before any soft
deps that it may have.
Remove "update portage before proceeding" message that is no longer
relevant.
Remove old code the used to bump portage near the top of the merge list.
It's ineffective now that a complete depgraph is built.
Make sure the node is still in the graph so that a KeyError can't
happen.
For bug #154223, bridge new-style virtuals into old-style virtuals in
order to prevent old-style virtuals from making new-style virtuals
invisible.
Make config.add_new_virtuals() work properly even if self.virtuals has
previously been initialized.
For bug #154220, run /etc/portage/bin/post_sync at the end of
emerge-webrsync.
svn path=/main/branches/prefix/; revision=4961
Fabian Groffen [Sun, 5 Nov 2006 15:58:12 +0000 (15:58 -0000)]
Inject EPREFIX in settings such that it becomes available to e.g.
portageq which uses it. This used to be the case, but somehow recent
patches removed this on freshly installed boxes.
svn path=/main/branches/prefix/; revision=4942
Fabian Groffen [Sun, 5 Nov 2006 15:39:52 +0000 (15:39 -0000)]
No need to make a lot of noise.
svn path=/main/branches/prefix/; revision=4941
Fabian Groffen [Sun, 5 Nov 2006 09:15:37 +0000 (09:15 -0000)]
Don't check ROOT for writability, but ROOT + EPREFIX instead.
Don't remove EPREFIX from file listings, it confuses as to whether the
paths are correct or not.
svn path=/main/branches/prefix/; revision=4940
Fabian Groffen [Sat, 4 Nov 2006 18:18:02 +0000 (18:18 -0000)]
Merged from trunk 4915:4929
For bug #153951, fail with a simple "Permission denied" error if the
merge phase doesn't have write access to $ROOT.
Silently omit info_pkgs that aren't installed. Thanks to solar.
When transferring cache after sync, compare all metadata to make sure it
is identical (don't trust _mtime_ and _eclasses_ alone). Local tests
show that this can add approximately 15% more time to the metadata
update, but it's needed for things like bug #153591.
Make sure trg is defined.
Fix --ignore-default-opts for bug #153980.
Revert implicit rdepend behavior back to the way it was in
portage-2.0.51. Thanks to vapier for the patch. The original change
seems to have been an accidentally hunk (referencing bug #58819) that
was committed to cvs along with another patch in revision 1.201.2.32 of
ebuild.sh.
svn path=/main/branches/prefix/; revision=4939
Fabian Groffen [Sat, 4 Nov 2006 18:12:28 +0000 (18:12 -0000)]
Use prefixed path
svn path=/main/branches/prefix/; revision=4938
Fabian Groffen [Sat, 4 Nov 2006 17:32:27 +0000 (17:32 -0000)]
Kind of funny, but it saves a lot of bytes, and makes the stuff easier
readable. Looks like importing EPREFIX from portage_const makes it
available on global scope, like in Java it would be. No real change,
just conceptual from portage_const.EPREFIX to EPREFIX, which seems to
work fine so far.
svn path=/main/branches/prefix/; revision=4937
Fabian Groffen [Sat, 4 Nov 2006 17:29:37 +0000 (17:29 -0000)]
Really fix autoconf-2.60 misery:
- don't run autoheader if we don't have config.h (Thanks flameeyes!)
- clean up mess with errors and warnings so we actually see what's
happening
- make sure we abort mission if autoconfing the bunch fails
- require autoconf 2.60 now, as we changed the configure script to do
it's dirty voodoo based on the output of 2.60, which is different from
its predecessor(s)
svn path=/main/branches/prefix/; revision=4936
Fabian Groffen [Sat, 4 Nov 2006 15:11:17 +0000 (15:11 -0000)]
autoconf-2.60 is annoying. Add AC_CONFIG_HEADERS([config.h]) because it
wants it, and remove it afterwards because we don't need it.
svn path=/main/branches/prefix/; revision=4935
Fabian Groffen [Sat, 4 Nov 2006 09:55:44 +0000 (09:55 -0000)]
Also use prefix in dispatch_conf
svn path=/main/branches/prefix/; revision=4934
Fabian Groffen [Thu, 2 Nov 2006 20:45:31 +0000 (20:45 -0000)]
Fix trivial, but rather painful bug, of storing ED in D.
svn path=/main/branches/prefix/; revision=4915
Fabian Groffen [Thu, 2 Nov 2006 18:38:24 +0000 (18:38 -0000)]
Merged from trunk 4905:4912 a colourful set of patches
Implement --color < y | n > for bug #42115 and deprecate --nocolor.
When --color is not specified, rely on the old NOCOLOR variable and/or
stdout auto-detection.
Document the new --color < y | n > option for bug #42115.
Add --color < y | n > help output for bug #42115.
Remove broken nocolor() call, since thats handled internally by the
output module anyway.
Fix the USE_ORDER docs for bug #153764. Thanks to Alec Warner for the
initial patch.
svn path=/main/branches/prefix/; revision=4914
Fabian Groffen [Wed, 1 Nov 2006 12:02:45 +0000 (12:02 -0000)]
Merged from trunk 4892:4903
For bug #153295, make load_infodir ignore files that contain null bytes.
For bug #153282, automatically find the owner package(s) in the event of
a fatal file collision (since the collision is fatal, the performance
hit doesn't matter).
For bug #129670, skip the replace-cvs and replace-wscomments tests if
the diff exit code indicates two two binary files that differ.
For bug #116616, only run the post_process phase if necessary.
svn path=/main/branches/prefix/; revision=4905
Fabian Groffen [Tue, 31 Oct 2006 21:14:14 +0000 (21:14 -0000)]
Merged from trunk 4883:4889
Rely on PYTHONPATH instead of PORTAGE_PYM_PATH for locating portage's
python modules, then fall back to an explicit sys.path insertion if an
ImportError occurs.
Fix a KeyError when the profile doesn't define default USE.
Add support for frozen config files for which updates are automatically
zapped. Thanks to Bo ?\195?\152rsted Andresen for the initial patch
from bug #151685.
Recommend people use `emake` rather than `make` when installing with
DESTDIR.
svn path=/main/branches/prefix/; revision=4892
Fabian Groffen [Tue, 31 Oct 2006 20:57:37 +0000 (20:57 -0000)]
Sync error message with check
svn path=/main/branches/prefix/; revision=4891
Fabian Groffen [Mon, 30 Oct 2006 20:01:26 +0000 (20:01 -0000)]
Merged from trunk 4876:4881
For bug #153295, do a sanity check for non-string types in
config.environ().
For getmaskingstatus messages, don't assume ARCH is a valid keyword,
since that assumption is not necessarily correct for operating systems
other than Linux. Thanks to Diego Petteno for reporting.
Just use stat instead of lstat for config protect, so that broken
symlinks are just ignored.
svn path=/main/branches/prefix/; revision=4883
Fabian Groffen [Sun, 29 Oct 2006 20:30:32 +0000 (20:30 -0000)]
Merged from trunk 4871:4872
Use a tuple for __slots__ so that it's immutable.
svn path=/main/branches/prefix/; revision=4876
Fabian Groffen [Sun, 29 Oct 2006 16:21:35 +0000 (16:21 -0000)]
bump python requirements to >= 2.3.1 as 2.3 has a bug which makes
portage die.
svn path=/main/branches/prefix/; revision=4875
Fabian Groffen [Sun, 29 Oct 2006 15:21:05 +0000 (15:21 -0000)]
Don't require root, it makes no sense in prefix here. Maybe later
svn path=/main/branches/prefix/; revision=4874
Fabian Groffen [Sun, 29 Oct 2006 13:43:34 +0000 (13:43 -0000)]
Merged from trunk 4866:4869
Prevent an attribute error AttributeError for invalid binary packages
for which there is no CATEGORY data.
Don't forget to continue for invalid binpkgs.
svn path=/main/branches/prefix/; revision=4871
Fabian Groffen [Sat, 28 Oct 2006 16:01:35 +0000 (16:01 -0000)]
Forgot some ${D}'s to replace
svn path=/main/branches/prefix/; revision=4866
Fabian Groffen [Sat, 28 Oct 2006 15:59:07 +0000 (15:59 -0000)]
Merged from trunk 4857:4863
Avoid a TypeError with emerge -kN when there's no matching ebuild.
Use mtree to save/restore bsd file flags before/after prepall and
installation. Thanks to Diego Pettenò for this patch (related
to bug #153109).
svn path=/main/branches/prefix/; revision=4865
Fabian Groffen [Fri, 27 Oct 2006 21:51:36 +0000 (21:51 -0000)]
Merged from trunk 4847:4855
Do not pass the "clean" parameter to doebuild since it causes ${T} to be
cleaned up when it shouldn't be. Thanks to Mr_Bones_ for reporting.
Don't bother to insert /usr/lib/portage/pym into sys.path from inside a
module. That's the caller's job.
Add --with-bdeps to emerge --help output.
Update help for --deep.
Update help for greedy behavior of --update.
Add backward compatibility code for cache modules that override has_key
instead of __contains__.
svn path=/main/branches/prefix/; revision=4857
Fabian Groffen [Thu, 26 Oct 2006 17:40:15 +0000 (17:40 -0000)]
Merged from trunk 4816:4828
For bug #152726, ignore hidden files in vardbapi.cp_list().
For full compatibility with older versions of portage, write the path in
the serialized _eclasses_ when possible.
Fix broken is_eclass_data_valid comparison logic.
Test for basestring instead of types.DictType so that the test more
generic.
Reverse the relationship between __contains__ and has_key in all cache
classes since python handles the "in" operator more efficiently than a
has_key method call.
Streamline portage pythonpath handling and add an override analog to how
the bash side does it.
rename getmaskingreason() to getpmaskcomment() to clarify its function,
report each license as a separate mask instead of combining them all
together into a single value for getmaskingstatus()
need a mutable config instance to use setcpv
add function getlicensetexts() to extract license texts relevant to a
given cpv (to be used by emerge masked by display)
show licenses or pointer to license files on 'masked by' message
svn path=/main/branches/prefix/; revision=4831