Zac Medico [Fri, 9 Oct 2009 07:27:52 +0000 (07:27 -0000)]
Bug #272000 - When --keep-going is enabled, don't completely bail out at
the beginning due to corrupt manifest(s). Thanks to Sebastian Mingramm (few)
for this patch.
svn path=/main/trunk/; revision=14523
Zac Medico [Fri, 9 Oct 2009 07:17:04 +0000 (07:17 -0000)]
Bug #271551 - Inside depgraph.select_files(), avoid bailing out due to an
ambiguous package name in cases when all but one of the resolved packages
are virtual. Thanks to Sebastian Mingramm (few) for this patch.
svn path=/main/trunk/; revision=14522
Zac Medico [Fri, 9 Oct 2009 07:01:55 +0000 (07:01 -0000)]
Bug #270933 - Make the "If you need support ..." message ask for emerge
--info and the build.log. Thanks to Sebastian Mingramm (few) for this
patch.
svn path=/main/trunk/; revision=14521
Zac Medico [Fri, 9 Oct 2009 06:54:03 +0000 (06:54 -0000)]
Bug #267468 - Display the total number of binary packages in the merge
list. Thanks to Sebastian Mingramm (few) for this patch.
svn path=/main/trunk/; revision=14520
Zac Medico [Thu, 8 Oct 2009 01:10:03 +0000 (01:10 -0000)]
Fix typo in FEATURES=news docs. Thanks to Jonathan Callen <en.ABCD@gmail.com>
for this patch.
svn path=/main/trunk/; revision=14519
Zac Medico [Thu, 8 Oct 2009 00:06:10 +0000 (00:06 -0000)]
Bug #287950 - Add a --fail-clean[=n] option, for enabling or disabling
FEATURES=fail-clean from the command line.
svn path=/main/trunk/; revision=14518
Zac Medico [Wed, 7 Oct 2009 23:30:04 +0000 (23:30 -0000)]
Bug #287950 - Add support for FEATURES=fail-clean which is useful for cleaning
up temp files on tmpfs after build failures with --keep-going.
svn path=/main/trunk/; revision=14517
Zac Medico [Wed, 7 Oct 2009 19:30:41 +0000 (19:30 -0000)]
Enable pty support on FreeBSD.
svn path=/main/trunk/; revision=14516
Fabian Groffen [Wed, 7 Oct 2009 19:23:16 +0000 (19:23 -0000)]
merge disable openpty conditional from branches/prefix
svn path=/main/trunk/; revision=14515
Arfrever Frehtes Taifersar Arahesis [Wed, 7 Oct 2009 15:14:42 +0000 (15:14 -0000)]
Bug #274870: Add file.size.fatal check in repoman.
svn path=/main/trunk/; revision=14510
Zac Medico [Wed, 7 Oct 2009 05:05:29 +0000 (05:05 -0000)]
Use the stricter _pkgsplit function.
svn path=/main/trunk/; revision=14509
Zac Medico [Tue, 6 Oct 2009 20:41:48 +0000 (20:41 -0000)]
Bug #265267 - Add hint about --accept-properties=-interactive in the
--jobs docs.
svn path=/main/trunk/; revision=14508
Zac Medico [Tue, 6 Oct 2009 20:12:05 +0000 (20:12 -0000)]
Bug #265267 - When disabling --jobs due to interactive package(s), hint
about --accept-properties=-interactive option.
svn path=/main/trunk/; revision=14507
Zac Medico [Tue, 6 Oct 2009 19:39:07 +0000 (19:39 -0000)]
Exempt installed packages from PROPERTIES masking since the user is likely
to temporarily alter ACCEPT_PROPERIES in order to avoid interactive updates
and we don't want this to distort resolver choices or trigger warning messages
about installed packages being masked.
svn path=/main/trunk/; revision=14506
Zac Medico [Tue, 6 Oct 2009 19:18:48 +0000 (19:18 -0000)]
Fix collision in variable name 'x'.
svn path=/main/trunk/; revision=14505
Zac Medico [Tue, 6 Oct 2009 18:56:14 +0000 (18:56 -0000)]
Bug #287870 - Add -r option as short version of --resume.
svn path=/main/trunk/; revision=14504
Zac Medico [Tue, 6 Oct 2009 07:15:47 +0000 (07:15 -0000)]
Add a note about --accept-properties and exclusion of interactive updates.
svn path=/main/trunk/; revision=14502
Zac Medico [Tue, 6 Oct 2009 06:57:06 +0000 (06:57 -0000)]
Add a new --accept-properties option so that users can temporarily override
ACCEPT_PROPERTIES on the commandline, without relying on emerge's legacy
behavior of allowing variables to leak in from the calling environment.
A typical usage example for this option would be to use
--accept-properties=-interactive to temporarily mask interactive packages.
With default configuration, this would result in an effective
ACCEPT_PROPERTIES value of "* -interactive".
svn path=/main/trunk/; revision=14501
Zac Medico [Tue, 6 Oct 2009 06:10:07 +0000 (06:10 -0000)]
Add a 'digest.missing' check, for cases like mythtv where the eclass has
modified the SRC_URI and now the Manifest has missing digests. Thanks to
Brian Harring for the suggestion.
svn path=/main/trunk/; revision=14500
Zac Medico [Tue, 6 Oct 2009 05:45:55 +0000 (05:45 -0000)]
When restarting emerge, don't trust sys.argv[0] since eselect-python may
modify it.
svn path=/main/trunk/; revision=14499
Zac Medico [Mon, 5 Oct 2009 22:51:26 +0000 (22:51 -0000)]
Enable FEATURES=news by default and document it.
svn path=/main/trunk/; revision=14498
Ned Ludd [Mon, 5 Oct 2009 22:46:22 +0000 (22:46 -0000)]
- move news into features so it can be ignored when needed. Lots of whitespace cleanups
svn path=/main/trunk/; revision=14497
Zac Medico [Mon, 5 Oct 2009 22:46:07 +0000 (22:46 -0000)]
* Add default ACCEPT_LICENSE and ACCEPT_PROPERTIES values in make.globals.
* Set default values if missing from make.globals.
* Only warn once if a given license group is missing.
* Prune off any parts of an ACCEPT_LICENSE and ACCEPT_PROPERTIES that are
made irrelevant by the latest occuring * or -* wildcard.
svn path=/main/trunk/; revision=14496
Zac Medico [Mon, 5 Oct 2009 08:56:14 +0000 (08:56 -0000)]
Make deprecated_profile_check() suggest to use eselect profile. Thanks to
Samuli Suominen <ssuominen@g.o> for the suggestion.
svn path=/main/trunk/; revision=14495
Zac Medico [Mon, 5 Oct 2009 00:18:46 +0000 (00:18 -0000)]
Make pkgsplit() preserve 'null' category if it's present in the input.
svn path=/main/trunk/; revision=14494
Zac Medico [Sun, 4 Oct 2009 22:11:09 +0000 (22:11 -0000)]
Use _pkgsplit when input cannot contain a category.
svn path=/main/trunk/; revision=14493
Zac Medico [Sun, 4 Oct 2009 22:06:04 +0000 (22:06 -0000)]
Use the simpler/stricter _pkgspit in dbapi code.
svn path=/main/trunk/; revision=14492
Zac Medico [Sun, 4 Oct 2009 21:55:41 +0000 (21:55 -0000)]
Make pkgsplit() accept a cpv again, since accepting a pv only will probably
break lots of api consumers. Thanks to Romain Perier <mrpouet@g.o> for
reporting epkginfo breakage.
svn path=/main/trunk/; revision=14491
Arfrever Frehtes Taifersar Arahesis [Sun, 4 Oct 2009 15:17:40 +0000 (15:17 -0000)]
Add src_configure and pkg_config to the list of phases in repoman.checks.PhaseCheck.__init__().
svn path=/main/trunk/; revision=14490
Mounir Lamouri [Sun, 4 Oct 2009 14:06:18 +0000 (14:06 -0000)]
Restrict upstream.workaround to src_compile and src_install as much as possible.
Prevent warnings when using emake -j1 in src_test which is recommanded.
svn path=/main/trunk/; revision=14489
Fabian Groffen [Sun, 4 Oct 2009 09:00:03 +0000 (09:00 -0000)]
fix mis-alignment
svn path=/main/trunk/; revision=14488
Zac Medico [Sat, 3 Oct 2009 22:27:11 +0000 (22:27 -0000)]
Generate an eerror message in dblink.mergeme when a file has to be renamed in
order to merge a directory to the same path.
svn path=/main/trunk/; revision=14485
Fabian Groffen [Sat, 3 Oct 2009 21:05:28 +0000 (21:05 -0000)]
- do not calculate source with of isolated-functions (for die function)
as we don't print it
- move paths to the bottom and print ${S} as it's often necessary when a
package fails.
- move error message up directly after the message it says it failed
(printing it below the code snippet usually just repeats the message)
svn path=/main/trunk/; revision=14483
Fabian Groffen [Sat, 3 Oct 2009 20:41:40 +0000 (20:41 -0000)]
only calculate spacing width for that part of the stack that we're going to print
svn path=/main/trunk/; revision=14482
Zac Medico [Sat, 3 Oct 2009 06:59:23 +0000 (06:59 -0000)]
Fix race condition when using a fork inside _test_pty_eof().
svn path=/main/trunk/; revision=14478
Zac Medico [Sat, 3 Oct 2009 06:10:58 +0000 (06:10 -0000)]
Don't use a fork inside _test_pty_eof() because it gives inconsistent results.
svn path=/main/trunk/; revision=14477
Zac Medico [Sat, 3 Oct 2009 04:03:16 +0000 (04:03 -0000)]
Bug #285832 - When updates are missed due to dependencies that have been
masked by backtracking, abbreviate output in order to avoid terminal
flooding.
svn path=/main/trunk/; revision=14476
Zac Medico [Fri, 2 Oct 2009 20:41:13 +0000 (20:41 -0000)]
Bug #287333 - If posible, use ebuild from tree when checking for keyword mask
on installed packages.
svn path=/main/trunk/; revision=14474
Zac Medico [Fri, 2 Oct 2009 19:24:44 +0000 (19:24 -0000)]
Bug #287333 - Fix the code from bug #252167 so it behaves consistently
regardless of the package (ebuild or binpkg) being masked.
svn path=/main/trunk/; revision=14472
Zac Medico [Thu, 1 Oct 2009 19:29:24 +0000 (19:29 -0000)]
Bug #285191 - Remove the RDEPEND.implicit check because it is invalid.
svn path=/main/trunk/; revision=14471
Zac Medico [Thu, 1 Oct 2009 19:21:24 +0000 (19:21 -0000)]
Remove libtool from RDEPEND.suspect list, since libltdl.so is validly used by
some packages at runtime. Thanks to Samuli Suominen <ssuominen@g.o> for
reporting.
svn path=/main/trunk/; revision=14470
Zac Medico [Wed, 30 Sep 2009 23:11:02 +0000 (23:11 -0000)]
Add --tolerant option (already in use on master rsync mirror), requested by
robbat2.
svn path=/main/trunk/; revision=14469
Zac Medico [Wed, 30 Sep 2009 06:19:49 +0000 (06:19 -0000)]
Bug #286895 - Generate an eerror message when a directory blocks merge
of a regular file and the file is merged using a 'config protect' filename
even though the path may not be among those covered by CONFIG_PROTECT.
svn path=/main/trunk/; revision=14468
Zac Medico [Wed, 30 Sep 2009 05:52:03 +0000 (05:52 -0000)]
Use a regular expression for SLOT validation inside vardbapi.aux_get().
svn path=/main/trunk/; revision=14467
Zac Medico [Wed, 30 Sep 2009 05:19:06 +0000 (05:19 -0000)]
Take regular expressions from portage.dep and use them to reimplement
portage.versions.pkgsplit(). This simplifies the code and helps
guarantee consistency package name/version validation.
svn path=/main/trunk/; revision=14466
Arfrever Frehtes Taifersar Arahesis [Tue, 29 Sep 2009 23:25:19 +0000 (23:25 -0000)]
Fix SyntaxError with Python 3 added in r14462.
svn path=/main/trunk/; revision=14465
Zac Medico [Tue, 29 Sep 2009 20:00:57 +0000 (20:00 -0000)]
Revert the rest of r14280 since it seems that dict bypasses __getitem__
and/or __setitem__ too often.
svn path=/main/trunk/; revision=14463
Zac Medico [Tue, 29 Sep 2009 19:35:05 +0000 (19:35 -0000)]
Add back _PackageMetadataWrapper__setitem__, removed in r14280, since removing
it seems to cause problems. Thanks to Jeremy Olexa <darkside@gentoo.org> for
reporting, and Marat Radchenko <marat@slonopotamus.org> for bisecting to find
the revision.
svn path=/main/trunk/; revision=14462
Zac Medico [Tue, 29 Sep 2009 06:04:42 +0000 (06:04 -0000)]
Handle encoding/decoding of unicode when using the xpak api.
Use tbz2.get_data() instead of tbz2.getfile() when reading multiple values,
in order to avoid multiple tbz2.scan() and searchindex() calls.
svn path=/main/trunk/; revision=14461
Zac Medico [Tue, 29 Sep 2009 05:56:39 +0000 (05:56 -0000)]
Make tbz2.get_data() return an empty dict on failure.
svn path=/main/trunk/; revision=14460
Zac Medico [Tue, 29 Sep 2009 05:23:23 +0000 (05:23 -0000)]
Don't call self.scan() in tbz2.__init__ since all methods call it anyway.
svn path=/main/trunk/; revision=14459
Zac Medico [Mon, 28 Sep 2009 20:37:20 +0000 (20:37 -0000)]
Bug #286780 - Fix email.MIME* imports to use email.mime.* (works with python
2.6 and python 3). Thanks to Hanno Meyer-Thurow <h.mth@web.de> for this patch.
svn path=/main/trunk/; revision=14458
Zac Medico [Mon, 28 Sep 2009 01:50:14 +0000 (01:50 -0000)]
Fix breakage in file path -> package lookup code.
svn path=/main/trunk/; revision=14455
Zac Medico [Sun, 27 Sep 2009 21:55:41 +0000 (21:55 -0000)]
Make _test_pty_eof() call process.spawn() instead of os.fork().
svn path=/main/trunk/; revision=14454
Zac Medico [Sun, 27 Sep 2009 21:07:38 +0000 (21:07 -0000)]
Try to avoid blocking on Darwin in _test_pty_eof() by using slave_fd directly
instead of fdopen.
svn path=/main/trunk/; revision=14453
Zac Medico [Sun, 27 Sep 2009 21:01:49 +0000 (21:01 -0000)]
In _test_pty_eof(), call waitpid on the child process only after reading all
the data from the pty.
svn path=/main/trunk/; revision=14452
Zac Medico [Sun, 27 Sep 2009 20:12:29 +0000 (20:12 -0000)]
Make _test_pty_eof() fork when writing to the slave_fd, since otherwise
it would block on some platforms such as Darwin.
svn path=/main/trunk/; revision=14451
Arfrever Frehtes Taifersar Arahesis [Sun, 27 Sep 2009 19:47:13 +0000 (19:47 -0000)]
Fix TypeError in clear_screen() in dispatch-conf which occurs when Python 3 is used (bug #286682).
svn path=/main/trunk/; revision=14450
Zac Medico [Sun, 27 Sep 2009 19:45:09 +0000 (19:45 -0000)]
Make _test_pty_eof() use non-blocking IO, required for Darwin kernel.
svn path=/main/trunk/; revision=14449
Zac Medico [Sun, 27 Sep 2009 19:07:57 +0000 (19:07 -0000)]
Use catsplit() instead of a regex to generate dbapi._categories. Thanks to
Marat Radchenko <marat@slonopotamus.org> for this patch.
svn path=/main/trunk/; revision=14448
Zac Medico [Sun, 27 Sep 2009 18:30:44 +0000 (18:30 -0000)]
Fix binTestsInit() to use correct values for PORTAGE_BIN_PATH and
PORTAGE_PYM_PATH.
svn path=/main/trunk/; revision=14447
Zac Medico [Sun, 27 Sep 2009 18:23:32 +0000 (18:23 -0000)]
Use explicit imports instead of *.
svn path=/main/trunk/; revision=14446
Zac Medico [Sun, 27 Sep 2009 18:01:30 +0000 (18:01 -0000)]
Use mkdtemp() instead of hardcoded pym/portage/tests/bin/root directory.
svn path=/main/trunk/; revision=14445
Zac Medico [Sat, 26 Sep 2009 23:37:34 +0000 (23:37 -0000)]
Bug #286522 - Check all portdbapi.findname return values in case it
returns None, and raise 'ebuild not found' exceptions when necessary.
svn path=/main/trunk/; revision=14442
Zac Medico [Sat, 26 Sep 2009 07:32:58 +0000 (07:32 -0000)]
Bug #286475 - Fix KeyValuePairFileLoader.lineParser() so it doesn't raise
AttributeError when a key/value is redefined.
svn path=/main/trunk/; revision=14435
Zac Medico [Sat, 26 Sep 2009 00:01:19 +0000 (00:01 -0000)]
Revert r14430 and fix to do as intended. Thanks to Arfrever for reporting.
svn path=/main/trunk/; revision=14433
Zac Medico [Fri, 25 Sep 2009 21:24:41 +0000 (21:24 -0000)]
Bug #285767 - Add support to to identify and eliminate redundant package
selections when multiple atoms happen to specify a version range.
svn path=/main/trunk/; revision=14432
Zac Medico [Fri, 25 Sep 2009 18:34:15 +0000 (18:34 -0000)]
Fix UnboundLocalError triggered by atom without category for nonexistent
package. Thanks to Jeremy Olexa <darkside@gentoo.org> for reporting.
svn path=/main/trunk/; revision=14431
Zac Medico [Fri, 25 Sep 2009 18:04:22 +0000 (18:04 -0000)]
Make sure self._allowed_keys are sorted in the table create statement. They
already are sorted, but do it explicitly here for clarity.
svn path=/main/trunk/; revision=14430
Arfrever Frehtes Taifersar Arahesis [Fri, 25 Sep 2009 07:08:24 +0000 (07:08 -0000)]
Fix formatting of sizes with Python 3.
svn path=/main/trunk/; revision=14429
Zac Medico [Fri, 25 Sep 2009 07:00:41 +0000 (07:00 -0000)]
Remove ugly code from __len__, since defining __bool__ fixes the same
issue.
svn path=/main/trunk/; revision=14428
Arfrever Frehtes Taifersar Arahesis [Fri, 25 Sep 2009 06:34:34 +0000 (06:34 -0000)]
Define __bool__() for compatibility with Python 3.
svn path=/main/trunk/; revision=14427
Arfrever Frehtes Taifersar Arahesis [Fri, 25 Sep 2009 06:18:25 +0000 (06:18 -0000)]
Use imp.reload() instead of reload() for compatibility with Python 3.
svn path=/main/trunk/; revision=14426
Zac Medico [Fri, 25 Sep 2009 06:04:00 +0000 (06:04 -0000)]
Remove unused imports.
svn path=/main/trunk/; revision=14425
Zac Medico [Fri, 25 Sep 2009 06:01:56 +0000 (06:01 -0000)]
Fix length calculation so it doesn't assume the length of the encoded
string is the same as the unicode string.
svn path=/main/trunk/; revision=14424
Zac Medico [Fri, 25 Sep 2009 05:58:16 +0000 (05:58 -0000)]
Add a test case for this issue: bugs.python.org/issue5334
svn path=/main/trunk/; revision=14423
Arfrever Frehtes Taifersar Arahesis [Fri, 25 Sep 2009 05:56:25 +0000 (05:56 -0000)]
Use 'in' instead of has_key() in portage.glsa.Glsa.parse() when Python 3 is used.
svn path=/main/trunk/; revision=14422
Arfrever Frehtes Taifersar Arahesis [Fri, 25 Sep 2009 05:29:02 +0000 (05:29 -0000)]
Use list comprehensions instead of filter() or map() in some places for compatibility with Python 3.
svn path=/main/trunk/; revision=14421
Zac Medico [Fri, 25 Sep 2009 05:04:21 +0000 (05:04 -0000)]
Fix more.
svn path=/main/trunk/; revision=14420
Zac Medico [Fri, 25 Sep 2009 05:03:13 +0000 (05:03 -0000)]
Fix ValueError in digestcheck(), reported by Arfrever.
svn path=/main/trunk/; revision=14419
Zac Medico [Fri, 25 Sep 2009 03:29:54 +0000 (03:29 -0000)]
Remove unnecessary dict.has_key() call (fix for python 3).
svn path=/main/trunk/; revision=14418
Zac Medico [Thu, 24 Sep 2009 22:47:09 +0000 (22:47 -0000)]
Show an appropriate error message in _create_pty_or_pipe() if openpty()
fails inside _test_pty_eof().
svn path=/main/trunk/; revision=14417
Zac Medico [Thu, 24 Sep 2009 22:15:48 +0000 (22:15 -0000)]
Fix regression in _getitem() from r14398, since myf.read().split("\n")
yields an empty string at the end which is causes _parse_data() to
catch a ValueError and raise CacheCorruption.
svn path=/main/trunk/; revision=14416
Zac Medico [Thu, 24 Sep 2009 21:50:10 +0000 (21:50 -0000)]
Add a test case for bugs.python.org/issue5380 and mark it as 'todo'
since it fails with current versions of python 3.
svn path=/main/trunk/; revision=14415
Zac Medico [Thu, 24 Sep 2009 21:48:07 +0000 (21:48 -0000)]
Make _test_pty_eof() return None if openpty() fails.
svn path=/main/trunk/; revision=14414
Zac Medico [Thu, 24 Sep 2009 21:32:30 +0000 (21:32 -0000)]
Use a runtime check to see if bugs.python.org/issue5380 is fixed.
svn path=/main/trunk/; revision=14413
Zac Medico [Thu, 24 Sep 2009 20:43:14 +0000 (20:43 -0000)]
Use dict.__iter__ instead of keys(), since it behaves identically in python
2 and 3.
svn path=/main/trunk/; revision=14412
Zac Medico [Thu, 24 Sep 2009 06:46:37 +0000 (06:46 -0000)]
Fix previous commit.
svn path=/main/trunk/; revision=14402
Zac Medico [Thu, 24 Sep 2009 06:45:18 +0000 (06:45 -0000)]
Warn if cpv_getkey() is given invalid input that triggers legacy code.
svn path=/main/trunk/; revision=14401
Zac Medico [Thu, 24 Sep 2009 06:36:47 +0000 (06:36 -0000)]
Avoid unicode errors in python 3. Thanks to Arfrever for reporting.
svn path=/main/trunk/; revision=14400
Zac Medico [Thu, 24 Sep 2009 06:03:58 +0000 (06:03 -0000)]
Decode directory names where appropriate in digestcheck(). Thanks to
Arfrever for reporting.
svn path=/main/trunk/; revision=14399
Zac Medico [Thu, 24 Sep 2009 05:48:33 +0000 (05:48 -0000)]
Misc performance enhancements. Thanks to Marat Radchenko
<marat@slonopotamus.org> for this patch from bug #276813.
svn path=/main/trunk/; revision=14398
Zac Medico [Thu, 24 Sep 2009 05:35:08 +0000 (05:35 -0000)]
Fix test case for recent changes.
svn path=/main/trunk/; revision=14397
Zac Medico [Wed, 23 Sep 2009 20:01:52 +0000 (20:01 -0000)]
Bug #286118 - Fix dbapi.move_ent() methods so they don't assume Atom instances
can be concatenated with strings (even though they can now, it's not really
a good assumption).
svn path=/main/trunk/; revision=14396
Arfrever Frehtes Taifersar Arahesis [Wed, 23 Sep 2009 17:48:34 +0000 (17:48 -0000)]
Fix "TypeError: object of type 'filter' has no len()".
svn path=/main/trunk/; revision=14395
Arfrever Frehtes Taifersar Arahesis [Wed, 23 Sep 2009 14:04:48 +0000 (14:04 -0000)]
Fix formatting of size of downloads with Python 3.
svn path=/main/trunk/; revision=14394
Zac Medico [Wed, 23 Sep 2009 06:44:54 +0000 (06:44 -0000)]
Bug #285979 - Replace references to CDEPEND with UNUSED_00, to make it clear
that this key really is unused.
svn path=/main/trunk/; revision=14393
Zac Medico [Wed, 23 Sep 2009 06:35:55 +0000 (06:35 -0000)]
Optimize vardbapi.getpath(). Thanks to Marat Radchenko
<marat@slonopotamus.org> for this patch.
svn path=/main/trunk/; revision=14392
Zac Medico [Tue, 22 Sep 2009 22:30:49 +0000 (22:30 -0000)]
Optimize SlotDict.iteritems() a little.
svn path=/main/trunk/; revision=14391
Zac Medico [Tue, 22 Sep 2009 22:29:32 +0000 (22:29 -0000)]
Make SlotDict use call self.iteritems() where appropriate since it implements
that method even when running in python 3.x.
svn path=/main/trunk/; revision=14390