Zac Medico [Sun, 30 Mar 2008 06:18:15 +0000 (06:18 -0000)]
Move the AUTOCLEAN code into dblink.treewalk since it's already partially
supported there anyway (for replacement of identical cpv). This has the
benefit of guaranteeing that the order of installation and removal phases
is always the same.
svn path=/main/trunk/; revision=9621
Zac Medico [Sun, 30 Mar 2008 05:40:14 +0000 (05:40 -0000)]
Do not allow commit mode together with the --without-mask options.
svn path=/main/trunk/; revision=9619
Zac Medico [Sun, 30 Mar 2008 04:16:54 +0000 (04:16 -0000)]
Make code a bit less prone to potentially hidden TypeError like bugs.
svn path=/main/trunk/; revision=9616
Zac Medico [Sun, 30 Mar 2008 03:59:28 +0000 (03:59 -0000)]
Bug #211365 - Use catpkgsplit() instead of pkgsplit() for a cpv.
svn path=/main/trunk/; revision=9615
Zac Medico [Sun, 30 Mar 2008 03:42:27 +0000 (03:42 -0000)]
Use enumerate() it iterate over an array.
svn path=/main/trunk/; revision=9613
Zac Medico [Sun, 30 Mar 2008 02:13:19 +0000 (02:13 -0000)]
For bugs #197810 and #215308, pass the depgraph's "selective" parameter
down into dep_check() for better atom preference selection when handling
virtuals and other disjunctive || dependencies. (branches/2.1.2 r9610)
svn path=/main/trunk/; revision=9611
Zac Medico [Sun, 30 Mar 2008 00:19:29 +0000 (00:19 -0000)]
Bug #215308 - Simplify the greedy atoms logic so that it behaves more
like StaticFileSet and won't pull in lower slots.
svn path=/main/trunk/; revision=9607
Zac Medico [Sat, 29 Mar 2008 22:47:54 +0000 (22:47 -0000)]
When dyn_unpack() automatically cleans ${WORKDIR}, also remove things
like .unpacked and .compiled so that the state is consistent.
svn path=/main/trunk/; revision=9606
Zac Medico [Sat, 29 Mar 2008 05:30:41 +0000 (05:30 -0000)]
Bug #214619 - Run dyn_package() and preinst_mask() from ${T} instead of
${D} in order to avoid leaving gmon.out files in ${D} in case any tools
were built with -pf in CFLAGS. Also, call preinst_mask() after all other
functions so that INSTALL_MASK can be used to wipe out any gmon.out files
created during previous functions.
svn path=/main/trunk/; revision=9592
Zac Medico [Sat, 29 Mar 2008 04:55:40 +0000 (04:55 -0000)]
Add a note about PKG_INSTALL_MASK.
svn path=/main/trunk/; revision=9591
Zac Medico [Sat, 29 Mar 2008 04:32:10 +0000 (04:32 -0000)]
Fix quoting for ${root} in install_mask().
svn path=/main/trunk/; revision=9590
Zac Medico [Sat, 29 Mar 2008 04:12:37 +0000 (04:12 -0000)]
When a resume list contains packages that are no longer available,
automatically delete it.
svn path=/main/trunk/; revision=9589
Zac Medico [Sat, 29 Mar 2008 03:40:32 +0000 (03:40 -0000)]
Bug #215240 - Use an alarm signal to implement a 60 second timeout in
finalize() in case send_mail() blocks indefinitely.
svn path=/main/trunk/; revision=9588
Zac Medico [Sat, 29 Mar 2008 03:29:24 +0000 (03:29 -0000)]
Add a new "ebuild.patches" check for the PATCHES variable that's used by
base_src_unpack() from base.eclass. This generates a warning if the variable
is not defined as an array, since this is required for white space safety.
Thanks to Betelgeuse for the initial patch.
svn path=/main/trunk/; revision=9587
Zac Medico [Sat, 29 Mar 2008 00:02:11 +0000 (00:02 -0000)]
Don't trigger the 'java.eclassesnotused' on blocker atoms.
svn path=/main/trunk/; revision=9586
Zac Medico [Fri, 28 Mar 2008 23:44:32 +0000 (23:44 -0000)]
Add a new "java.eclassesnotused" check for cases where DEPEND contains
virtual/jdk and and the appropriate java eclass has not been inherited
(a violation of the java team's policy). Thanks to Betelgeuse for the
initial patch.
svn path=/main/trunk/; revision=9585
Zac Medico [Fri, 28 Mar 2008 23:11:29 +0000 (23:11 -0000)]
Bug #214691 - Move the "slot collision" display so that it is shown after
the merge list where it is most likely to be seen (along with other depgraph
problems).
svn path=/main/trunk/; revision=9584
Zac Medico [Fri, 28 Mar 2008 10:18:08 +0000 (10:18 -0000)]
* Skip the recusive chown call if it fails on the top level directory since
it's possible that emerge-webrsync is not run by root.
* Just chown to portage:portage instead of using PORTAGE_INST_{UID,GID}.
svn path=/main/trunk/; revision=9538
Zac Medico [Fri, 28 Mar 2008 10:03:28 +0000 (10:03 -0000)]
Disable tarsync when using lzma compression since it doesn't seem to be
supported.
svn path=/main/trunk/; revision=9537
Zac Medico [Fri, 28 Mar 2008 05:45:45 +0000 (05:45 -0000)]
Bug #214619 - Add support for a PORTAGE_BINPKG_TAR_OPTS variable that
allows the user to specify tar command options for binary package
creation.
svn path=/main/trunk/; revision=9528
Zac Medico [Fri, 28 Mar 2008 05:03:55 +0000 (05:03 -0000)]
Make dyn_clean() consistent wrt removal of ${PORTAGE_BUILDDIR}/image and
${PORTAGE_BUILDDIR}/.installed since otherwise with FEATURES=keepwork
dyn_install() will not call src_install() as necessary to repopulate
${PORTAGE_BUILDDIR}/image (resulting in install_qa_check failure due
to absence of ${PORTAGE_BUILDDIR}/image).
svn path=/main/trunk/; revision=9527
Zac Medico [Fri, 28 Mar 2008 04:55:41 +0000 (04:55 -0000)]
Bug #213698 - Make FEAUTURES=keepwork and keeptemp preserve ${T}/environment
since it may contain essential state.
svn path=/main/trunk/; revision=9526
Zac Medico [Fri, 28 Mar 2008 04:14:50 +0000 (04:14 -0000)]
Bug #213629 - Use EAPI.incompatible in cases where EAPI=0 and a default
IUSE is encountered.
svn path=/main/trunk/; revision=9525
Zac Medico [Fri, 28 Mar 2008 04:07:13 +0000 (04:07 -0000)]
Bug #213629 - Create an EAPI.incompatible category and use it in cases
where EAPI=0 and a slot atom is encountered.
svn path=/main/trunk/; revision=9524
Zac Medico [Fri, 28 Mar 2008 00:05:37 +0000 (00:05 -0000)]
Remove redundant info from the KEYWORDS.dropped message.
svn path=/main/trunk/; revision=9523
Zac Medico [Thu, 27 Mar 2008 23:31:28 +0000 (23:31 -0000)]
Bug #209418 - Add a new KEYWORDS.dropped check that compares keywords
against the keywords of earlier ebuild versions within a slot.
svn path=/main/trunk/; revision=9522
Zac Medico [Thu, 27 Mar 2008 22:03:54 +0000 (22:03 -0000)]
Bug #212509 - Display a note about the --without-mask option when there
are masked packages.
svn path=/main/trunk/; revision=9521
Zac Medico [Thu, 27 Mar 2008 21:39:14 +0000 (21:39 -0000)]
Bug #212509 - Implement a new --without-mask option that causes repoman to
behave as if there are no package.mask entries.
svn path=/main/trunk/; revision=9520
Zac Medico [Thu, 27 Mar 2008 16:49:02 +0000 (16:49 -0000)]
Bug #214879 - Fix FEATURES=-strict behavior so that distfiles digests are
always checked.
svn path=/main/trunk/; revision=9519
Zac Medico [Thu, 27 Mar 2008 04:28:08 +0000 (04:28 -0000)]
Fix the noreplace logic to break out of the cpv loop early since there's
no point in examining any lower versions from the same repo.
svn path=/main/trunk/; revision=9514
Zac Medico [Thu, 27 Mar 2008 04:23:30 +0000 (04:23 -0000)]
Make --noreplace take precedence over --newuse, as suggested by wolf31o2.
svn path=/main/trunk/; revision=9513
Zac Medico [Wed, 26 Mar 2008 23:37:58 +0000 (23:37 -0000)]
Bug #214879 - In fetch(), only parse the Manifest when FEATURES=strict
is enabled.
svn path=/main/trunk/; revision=9512
Zac Medico [Wed, 26 Mar 2008 16:54:19 +0000 (16:54 -0000)]
Move the default empty compiler flag settings from
ebuild.sh to make.globals (bug #214499).
svn path=/main/trunk/; revision=9511
Zac Medico [Wed, 26 Mar 2008 16:46:36 +0000 (16:46 -0000)]
Support ${HOST} substitution in "From" field. Thanks to wschlich.
svn path=/main/trunk/; revision=9510
Zac Medico [Tue, 25 Mar 2008 04:04:44 +0000 (04:04 -0000)]
Bug #212621 - Make the EbuildQuote check do quoting validation for misc
variables from games.eclass.
svn path=/main/trunk/; revision=9507
Zac Medico [Tue, 25 Mar 2008 03:54:34 +0000 (03:54 -0000)]
Fix typo.
svn path=/main/trunk/; revision=9506
Zac Medico [Tue, 25 Mar 2008 03:51:51 +0000 (03:51 -0000)]
Bug #212152 - Account pre-existing files when calculating whether there
is enough space for a download.
svn path=/main/trunk/; revision=9505
Zac Medico [Tue, 25 Mar 2008 03:18:28 +0000 (03:18 -0000)]
Bug #211294 - Make repoman bail out if arch.list contains unrecognized
lines since we don't want people to commit with old versions of portage
that don't support the current arch.list format.
svn path=/main/trunk/; revision=9504
Zac Medico [Mon, 24 Mar 2008 23:14:37 +0000 (23:14 -0000)]
Bug #214499 - When compiler flags are unset, many packages will substitute
their own implicit flags. For uniformity, use an empty string as the default.
svn path=/main/trunk/; revision=9503
Zac Medico [Mon, 24 Mar 2008 23:05:00 +0000 (23:05 -0000)]
Check is os.statvfs() is implemented before trying to us it.
(branches/prefix r9500)
svn path=/main/trunk/; revision=9502
Zac Medico [Thu, 20 Mar 2008 21:35:45 +0000 (21:35 -0000)]
Improve logic from the previous commit.
svn path=/main/trunk/; revision=9496
Zac Medico [Thu, 20 Mar 2008 21:31:38 +0000 (21:31 -0000)]
Fix depgraph._select_package() to make sure the installed package is a real
match before rejecting other available packages.
svn path=/main/trunk/; revision=9495
Marius Mauch [Wed, 19 Mar 2008 22:46:19 +0000 (22:46 -0000)]
readd digestentry.unused category as it's still relevant
svn path=/main/trunk/; revision=9491
Zac Medico [Wed, 19 Mar 2008 19:49:00 +0000 (19:49 -0000)]
Fix quoting.
svn path=/main/trunk/; revision=9489
Marius Mauch [Wed, 19 Mar 2008 18:44:52 +0000 (18:44 -0000)]
display versions of other slots for new-slot installs (bug #213790)
svn path=/main/trunk/; revision=9488
Zac Medico [Wed, 19 Mar 2008 11:34:10 +0000 (11:34 -0000)]
Strip trailing slashes from directory paths if necessary.
svn path=/main/trunk/; revision=9487
Zac Medico [Wed, 19 Mar 2008 10:31:43 +0000 (10:31 -0000)]
Bug #210690 - Fix --help output to show the leading slash on the path to
the world file.
svn path=/main/trunk/; revision=9486
Zac Medico [Wed, 19 Mar 2008 10:24:26 +0000 (10:24 -0000)]
Bug #210575 - Optimize doins -r so that it doesn't call itself recursively,
since it's faster to handle the recursion internally. Thanks to Benedikt
Böhm <hollow@gentoo.org> for the initial patch.
svn path=/main/trunk/; revision=9485
Zac Medico [Wed, 19 Mar 2008 09:45:51 +0000 (09:45 -0000)]
Only show the eqawarn from bug #149745 when nothing is found to install. Also,
exit successfully unless nothing is found to install.
svn path=/main/trunk/; revision=9484
Zac Medico [Wed, 19 Mar 2008 07:03:05 +0000 (07:03 -0000)]
Bug #201045 - Fix unmerge() to preserve unmerge order so that dependencies
are respected. Also, eliminate duplicate package selections since the same
package may be selected by multiple atoms but we can only unmerge it once.
svn path=/main/trunk/; revision=9483
Zac Medico [Tue, 18 Mar 2008 23:44:12 +0000 (23:44 -0000)]
Bug #139023 - When the --digest option is enabled, advise the user that
`repoman manifest` is the preferred way to generate manifests.
svn path=/main/trunk/; revision=9482
Marius Mauch [Tue, 18 Mar 2008 23:41:52 +0000 (23:41 -0000)]
make filesets non-greedy by default
svn path=/main/trunk/; revision=9481
Marius Mauch [Tue, 18 Mar 2008 23:38:27 +0000 (23:38 -0000)]
add unmerge protection for packages still referenced by installed package sets
svn path=/main/trunk/; revision=9480
Marius Mauch [Tue, 18 Mar 2008 23:37:18 +0000 (23:37 -0000)]
add @ to the list of invalid atom chars so sets with prefix aren't considered as atoms accidentally
svn path=/main/trunk/; revision=9479
Marius Mauch [Tue, 18 Mar 2008 22:40:31 +0000 (22:40 -0000)]
fix artifact from r9477
svn path=/main/trunk/; revision=9478
Marius Mauch [Tue, 18 Mar 2008 22:36:57 +0000 (22:36 -0000)]
use a dict with CP keys in unmerge() to avoid double unmerges if a package is matched by multiple atoms
svn path=/main/trunk/; revision=9477
Zac Medico [Tue, 18 Mar 2008 22:12:52 +0000 (22:12 -0000)]
Bug #149745 - Generate an eqawarn message if dohtml is called on a directory
without the recursive option. Thanks to brad walker <bradmwalker@cableone.net>
for reporting.
svn path=/main/trunk/; revision=9476
Zac Medico [Tue, 18 Mar 2008 21:22:53 +0000 (21:22 -0000)]
Bug #174634 - Fix ebuild 'digest' and 'manifest' behave 100% identically and
update the docs to reflect this.
svn path=/main/trunk/; revision=9475
Zac Medico [Mon, 17 Mar 2008 02:23:33 +0000 (02:23 -0000)]
Bug #212882 - For compatibility with ENOENT exceptions raised from
fstat calls with CIFS, wrap fstat calls with an appropriate exception
handler.
svn path=/main/trunk/; revision=9474
Zac Medico [Sun, 16 Mar 2008 20:33:59 +0000 (20:33 -0000)]
Bug #213592 - Fix --onlydeps breakage.
svn path=/main/trunk/; revision=9473
Zac Medico [Sun, 16 Mar 2008 00:54:53 +0000 (00:54 -0000)]
Bug #213540 - Make sure DESTTREE=/usr is set before inherit calls.
svn path=/main/trunk/; revision=9472
Zac Medico [Sat, 15 Mar 2008 23:10:58 +0000 (23:10 -0000)]
When in strict mode, make paren_reduce() detect missing whitespace around
parenthesis tokens and raise an InvalidDependString exception. Strict mode
is not enabled when handling installed packages, so this will only affect
repoman and packages that haven't been installed yet. Thanks to zlin for
reporting.
svn path=/main/trunk/; revision=9471
Marius Mauch [Sat, 15 Mar 2008 22:43:25 +0000 (22:43 -0000)]
avoid importing portage to improve performance
svn path=/main/trunk/; revision=9470
Marius Mauch [Sat, 15 Mar 2008 19:33:45 +0000 (19:33 -0000)]
add a placeholder for repository paths in 'filename' and 'directory' options for StaticFileSet
svn path=/main/trunk/; revision=9469
Zac Medico [Sat, 15 Mar 2008 05:28:53 +0000 (05:28 -0000)]
Fix an UnboundLocalError for 'pkgindex'.
svn path=/main/trunk/; revision=9467
Zac Medico [Fri, 14 Mar 2008 18:23:58 +0000 (18:23 -0000)]
Fix grammar.
svn path=/main/trunk/; revision=9466
Zac Medico [Fri, 14 Mar 2008 06:53:25 +0000 (06:53 -0000)]
Bug #42456 - When a checksum failure occurs during fetch, use a new
PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS config variable to control how
many mirrors should be tried before aborting the download. This type
of behavior used to be enabled only in --fetchonly mode but now
it's enabled for all fetch() calls.
svn path=/main/trunk/; revision=9463
Zac Medico [Fri, 14 Mar 2008 02:41:31 +0000 (02:41 -0000)]
* Optimize parallel-fetch to avoid redundant checksum verification.
* Add parallel-fetch to the default FEATURES since it is more efficient now.
svn path=/main/trunk/; revision=9462
Zac Medico [Thu, 13 Mar 2008 18:04:50 +0000 (18:04 -0000)]
Make strip_empty() return a nedw list instead of working in-place. Thanks to
René Neumann <rene.neumann@necoro.net> for the suggestion.
svn path=/main/trunk/; revision=9460
Ned Ludd [Tue, 11 Mar 2008 00:52:20 +0000 (00:52 -0000)]
- news bugfix from ferringb
svn path=/main/trunk/; revision=9459
Zac Medico [Mon, 10 Mar 2008 16:42:49 +0000 (16:42 -0000)]
Bug #212882 - Fix lockfile() to handle errno.EACCES raised from the fcntl
call since the spec says that it's equivalent to EAGAIN and it appears that
CIFS returns EACCES in this case.
svn path=/main/trunk/; revision=9458
Zac Medico [Sun, 9 Mar 2008 20:13:58 +0000 (20:13 -0000)]
When all available ebuilds are masked, avoid producing warning message when
the package does not need to be reinstalled and the installed version is not
masked.
svn path=/main/trunk/; revision=9457
Zac Medico [Sun, 9 Mar 2008 02:36:47 +0000 (02:36 -0000)]
Fix var_assign_re to recognize a call to the 'declare' builtin even when
no options are given.
svn path=/main/trunk/; revision=9456
Marius Mauch [Sun, 9 Mar 2008 01:27:51 +0000 (01:27 -0000)]
add some status messages, try to copy the tarball into DISTDIR, use getopt for option parsing
svn path=/main/trunk/; revision=9455
Zac Medico [Sat, 8 Mar 2008 00:21:15 +0000 (00:21 -0000)]
Make readpkgindex() and writepkgindex() private methods of PackageIndex.
svn path=/main/trunk/; revision=9453
Zac Medico [Fri, 7 Mar 2008 23:52:35 +0000 (23:52 -0000)]
Convert PackageIndex.packages from a dict to a list so that in the future
it will be possible to support multiple packages with the same cpv.
svn path=/main/trunk/; revision=9452
Zac Medico [Fri, 7 Mar 2008 21:26:49 +0000 (21:26 -0000)]
Make --prune and --depclean operate with missing dependencies when only
asked to remove specific packages since it's relatively safe in this case.
svn path=/main/trunk/; revision=9451
Zac Medico [Thu, 6 Mar 2008 02:33:04 +0000 (02:33 -0000)]
Use os.environ["SANDBOX_ON"] = "0" to make portageq exempt from sandbox for
things like writing metadata cache. Thanks to ferringb for the suggestion.
svn path=/main/trunk/; revision=9448
Zac Medico [Thu, 6 Mar 2008 01:16:30 +0000 (01:16 -0000)]
Remove egrep syntax emulation since it's not really needed.
svn path=/main/trunk/; revision=9447
Zac Medico [Thu, 6 Mar 2008 01:03:42 +0000 (01:03 -0000)]
Implement the sed-based declare -r filter in python.
svn path=/main/trunk/; revision=9446
Zac Medico [Thu, 6 Mar 2008 00:23:32 +0000 (00:23 -0000)]
Move the variable name validation regexes (for bug 211949) into
filter-bash-environment.py instead of passing them in from bash.
svn path=/main/trunk/; revision=9445
Zac Medico [Wed, 5 Mar 2008 23:54:33 +0000 (23:54 -0000)]
Update the description to reflect the new meaning of PATTERN.
svn path=/main/trunk/; revision=9444
Zac Medico [Wed, 5 Mar 2008 23:48:50 +0000 (23:48 -0000)]
Pass a space-separated list of variables into filter-bash-environment.py and
generate the final regex on the python side instead of in bash. Also, properly
anchor the regex so that it actually works.
svn path=/main/trunk/; revision=9443
Zac Medico [Wed, 5 Mar 2008 22:03:31 +0000 (22:03 -0000)]
Fix have_end_quote() to compare the quote against the correct group.
svn path=/main/trunk/; revision=9442
Zac Medico [Wed, 5 Mar 2008 19:59:27 +0000 (19:59 -0000)]
Bug #211949 - Tighten the variable name filter to exclude any variables
with names containing any non-alphanumeric characters.
svn path=/main/trunk/; revision=9441
Zac Medico [Wed, 5 Mar 2008 19:51:12 +0000 (19:51 -0000)]
Handle multi-line quoted variable assignments.
svn path=/main/trunk/; revision=9440
Zac Medico [Wed, 5 Mar 2008 19:01:29 +0000 (19:01 -0000)]
As requested by wolf31o2, use the ROOT setting from make.conf as long as
it's not overridden by the calling environment.
svn path=/main/trunk/; revision=9439
Zac Medico [Wed, 5 Mar 2008 09:34:37 +0000 (09:34 -0000)]
TODO: Move variable name validation and declare -r filtering
into filter-bash-environment.py.
svn path=/main/trunk/; revision=9438
Zac Medico [Wed, 5 Mar 2008 09:23:51 +0000 (09:23 -0000)]
Update description to reflect the new meaning of the PATTERN argument.
svn path=/main/trunk/; revision=9437
Zac Medico [Wed, 5 Mar 2008 09:20:27 +0000 (09:20 -0000)]
Implement variable assignment handling in python so that we can eventually
make it more flexible and robust.
svn path=/main/trunk/; revision=9436
Zac Medico [Wed, 5 Mar 2008 00:19:16 +0000 (00:19 -0000)]
Remove redundant CUSTOM_PROFILE_PATH from the PROFILE_PATHS variable so
that /etc/portage/profile/profile.bashrc will only be sourced once if
it exists.
svn path=/main/trunk/; revision=9435
Zac Medico [Tue, 4 Mar 2008 18:43:58 +0000 (18:43 -0000)]
Fix func_start_re so that it requires at least one alphanumeric character.
svn path=/main/trunk/; revision=9434
Zac Medico [Tue, 4 Mar 2008 18:42:39 +0000 (18:42 -0000)]
Tighten the funct_start_re so that it doesn't match leading whitespace
since that's not needed.
svn path=/main/trunk/; revision=9433
Zac Medico [Tue, 4 Mar 2008 08:11:20 +0000 (08:11 -0000)]
Bug #211949 - Temporarily revert back to a less strict regex in order to
avoid false positives with multi-line variable definitions that can be
produced by the 'export' builtin.
svn path=/main/trunk/; revision=9432
Zac Medico [Tue, 4 Mar 2008 07:44:11 +0000 (07:44 -0000)]
Add support for idendification of function definitions since it's needed
in some cases in order to prevent some odd function contents from being
mistakenly identified as invalid variable assignments. For example, this
line from _gcc-specs-directive_raw() is commonly found in environment.bz2
files:
$1=="*"directive":" { pspec=spec; spec=""; outside=0; next }
svn path=/main/trunk/; revision=9431
Zac Medico [Tue, 4 Mar 2008 04:48:11 +0000 (04:48 -0000)]
Bug #211949 - Fix the regex so that it won't match the = character (equals
sign).
svn path=/main/trunk/; revision=9429
Marius Mauch [Mon, 3 Mar 2008 22:17:43 +0000 (22:17 -0000)]
tell rpmbuild to clean it's working files after completion, bug #97776
svn path=/main/trunk/; revision=9428
Marius Mauch [Mon, 3 Mar 2008 20:53:33 +0000 (20:53 -0000)]
fix message on ValueError to not sound like crap
svn path=/main/trunk/; revision=9427
Marius Mauch [Mon, 3 Mar 2008 20:28:22 +0000 (20:28 -0000)]
don't list files as being merged when they are ignored due to confmem, bug #212080
svn path=/main/trunk/; revision=9426
Marius Mauch [Mon, 3 Mar 2008 19:43:18 +0000 (19:43 -0000)]
check available space in DISTDIR before trying to fetch/copy a file, bug #212152
svn path=/main/trunk/; revision=9425