Marius Mauch [Sun, 13 Apr 2008 05:36:05 +0000 (05:36 -0000)]
fix check for other lib copies to properly exclude the current package
svn path=/main/trunk/; revision=9862
Zac Medico [Sun, 13 Apr 2008 01:53:04 +0000 (01:53 -0000)]
In --buildpkgonly mode, don't discard RDEPEND and PDEPEND if --empty or
--deep are enabled. The makes it possible to run `emerge -eB world` and
have every single package rebuilt (without actually installing anything).
svn path=/main/trunk/; revision=9860
Zac Medico [Sat, 12 Apr 2008 20:32:52 +0000 (20:32 -0000)]
Fix the filtering for bug #215016:
* fix broken comparison for he iuse filtering
* filter out any duplicates that variable may contain
svn path=/main/trunk/; revision=9858
Zac Medico [Sat, 12 Apr 2008 19:52:48 +0000 (19:52 -0000)]
Bug #217444 - Send debug-print() output to stderr so that it can't interfere
with command substitution. Thanks to Fabio Rossi <rossi.f@inwind.it> for
this patch.
svn path=/main/trunk/; revision=9856
Zac Medico [Sat, 12 Apr 2008 19:37:26 +0000 (19:37 -0000)]
* Optimize config.setcpv() to return early if IUSE has not changed since
the previous setcpv() call.
* Add EBUILD_PHASE to the blacklisted variables list.
svn path=/main/trunk/; revision=9854
Zac Medico [Sat, 12 Apr 2008 18:44:02 +0000 (18:44 -0000)]
Bug #215016 - When transforming of USE flags to USE_EXPAND variables,
filter out flags that aren't considered to be part of IUSE or implicit
IUSE. This patch moves all IUSE dependent code from config.regenerate()
to config.setcpv().
svn path=/main/trunk/; revision=9852
Zac Medico [Sat, 12 Apr 2008 09:16:17 +0000 (09:16 -0000)]
Make binarytree.prevent_collision() adjust permissions on directories
and raise a PermissionDenied error if the required directories is
not writable.
svn path=/main/trunk/; revision=9850
Zac Medico [Fri, 11 Apr 2008 23:32:17 +0000 (23:32 -0000)]
Add some notes for the parallel-fetch feature and the new --complete-graph
option for emerge.
svn path=/main/trunk/; revision=9848
Zac Medico [Fri, 11 Apr 2008 22:56:07 +0000 (22:56 -0000)]
Rename the undocumented --conistent option to --complete-graph and add
some docs.
svn path=/main/trunk/; revision=9846
Zac Medico [Fri, 11 Apr 2008 21:58:06 +0000 (21:58 -0000)]
Make file_get() redirect FETCHCOMMAND output to stdout just like
portage.fetch() does. Thanks to Ramereth for reporting.
svn path=/main/trunk/; revision=9844
Zac Medico [Fri, 11 Apr 2008 21:19:32 +0000 (21:19 -0000)]
Fix 'undefined name' errors found by pyflakes.
svn path=/main/trunk/; revision=9842
Zac Medico [Fri, 11 Apr 2008 20:23:01 +0000 (20:23 -0000)]
Fix the code from the previous commit so that it doesn't try to pull
USE from a portdbapi instance (like when called by repoman) since
portdbapi doesn't return USE in aux_get() calls.
svn path=/main/trunk/; revision=9840
Zac Medico [Fri, 11 Apr 2008 20:11:31 +0000 (20:11 -0000)]
When dep_check() expands new-style virtuals, use USE flags from aux_get
calls to evaluate any conditionals that the depstrings might contain. This
works properly for ebuilds now that aux_get() is backed by Package instances
containing the correct USE.
svn path=/main/trunk/; revision=9839
Zac Medico [Fri, 11 Apr 2008 19:48:06 +0000 (19:48 -0000)]
Make doebuild() bail out early with a PermissionDenied error if there
is no write access to $PKGDIR.
svn path=/main/trunk/; revision=9837
Zac Medico [Fri, 11 Apr 2008 19:03:54 +0000 (19:03 -0000)]
Remove unused infodir variable.
svn path=/main/trunk/; revision=9835
Zac Medico [Fri, 11 Apr 2008 19:01:45 +0000 (19:01 -0000)]
Remove all calls to config.load_infodir() since it doesn't seem
to server any purpose now that the complete environment is loaded
from environment.bz2.
svn path=/main/trunk/; revision=9834
Zac Medico [Fri, 11 Apr 2008 18:46:50 +0000 (18:46 -0000)]
In config.setcpv() and load_infodir(), always set known good values
for CATEGORY and PF, since corruption of these can cause problems.
svn path=/main/trunk/; revision=9832
Zac Medico [Fri, 11 Apr 2008 02:46:52 +0000 (02:46 -0000)]
Copy group mode bits from $PKGDIR when creating subdirectories.
svn path=/main/trunk/; revision=9827
Zac Medico [Fri, 11 Apr 2008 00:37:20 +0000 (00:37 -0000)]
Tweak --buildpkgonly and fakeroot logic so that --buildpkgonly can be
used by a non-root user to build binary packages with fakeroot.
svn path=/main/trunk/; revision=9825
Zac Medico [Thu, 10 Apr 2008 23:29:50 +0000 (23:29 -0000)]
Nest the DepcheckCompositeDB class inside the depgraph class since it's
not intended for use elsewhere.
svn path=/main/trunk/; revision=9823
Zac Medico [Thu, 10 Apr 2008 21:08:11 +0000 (21:08 -0000)]
Rename variable pkg_cpv to pkg_str.
svn path=/main/trunk/; revision=9821
Zac Medico [Thu, 10 Apr 2008 21:03:37 +0000 (21:03 -0000)]
Fix "pkg" variable name collisions in depgraph.display().
svn path=/main/trunk/; revision=9819
Zac Medico [Thu, 10 Apr 2008 20:44:13 +0000 (20:44 -0000)]
Make the CHOST visibility check tolerant of missing CHOST metadata.
svn path=/main/trunk/; revision=9817
Zac Medico [Thu, 10 Apr 2008 20:36:13 +0000 (20:36 -0000)]
Bug #217122 - When waiting for a parallel-fetch download to complete,
show a more friendly and informative message.
svn path=/main/trunk/; revision=9815
Zac Medico [Thu, 10 Apr 2008 18:03:17 +0000 (18:03 -0000)]
Remove an unused function.
svn path=/main/trunk/; revision=9810
Zac Medico [Thu, 10 Apr 2008 17:57:51 +0000 (17:57 -0000)]
Implement expansion of catgories in DepcheckCompositeDB.match() for old
installed packages that may contain atoms that are not fully qualified.
svn path=/main/trunk/; revision=9808
Zac Medico [Thu, 10 Apr 2008 09:11:22 +0000 (09:11 -0000)]
Iterate over a copy of the digraph nodes so that removal can't break
the iterator.
svn path=/main/trunk/; revision=9799
Zac Medico [Thu, 10 Apr 2008 08:41:28 +0000 (08:41 -0000)]
Make sure that everything except Package nodes is ignored when doing
the --buildpkgonly digraph.hasallzeros() check.
svn path=/main/trunk/; revision=9797
Zac Medico [Thu, 10 Apr 2008 06:34:52 +0000 (06:34 -0000)]
Use cached Package instances in depgraph.display().
svn path=/main/trunk/; revision=9794
Zac Medico [Thu, 10 Apr 2008 05:58:59 +0000 (05:58 -0000)]
* Make depclean/prune use cached Package instances for visibility checks.
* Make FakeVartree wrap dbapi.match() to make sure the metadata in Package
instances gets updated for any cpv that is returned from a match()
call, since the metadata can be accessed directly from the Package instance
instead of via aux_get().
svn path=/main/trunk/; revision=9789
Zac Medico [Thu, 10 Apr 2008 05:39:41 +0000 (05:39 -0000)]
Make FakeVartree use PackageVirtualDbapi instead of fakedbapi so that it can
populate and utilize a cache of Package instances.
svn path=/main/trunk/; revision=9788
Zac Medico [Thu, 10 Apr 2008 05:17:36 +0000 (05:17 -0000)]
Improve used of cached Package instances in depgraph._select_pkg_from_graph().
svn path=/main/trunk/; revision=9787
Zac Medico [Thu, 10 Apr 2008 05:01:49 +0000 (05:01 -0000)]
Replace the fakdbapi class that is used to track depgraph state with a
similar PackageVirtualDbapi class that uses Package instances internally.
This eliminates some redundancy since the Package instances can be reused
elsewhere, unlike the internal data structures used by fakedbapi.
svn path=/main/trunk/; revision=9786
Zac Medico [Wed, 9 Apr 2008 21:51:31 +0000 (21:51 -0000)]
Add some docs for the DepcheckCompositeDB class.
svn path=/main/trunk/; revision=9785
Zac Medico [Wed, 9 Apr 2008 18:31:59 +0000 (18:31 -0000)]
When checking atoms without categories against the installed packages, just
check for existence of the cat/pn rather that a full match.
svn path=/main/trunk/; revision=9779
Zac Medico [Wed, 9 Apr 2008 18:21:27 +0000 (18:21 -0000)]
Fix the docstring for depgraph._dep_expand().
svn path=/main/trunk/; revision=9777
Zac Medico [Wed, 9 Apr 2008 18:04:10 +0000 (18:04 -0000)]
Fix minor issues in the calculation of the number of parents omitted from
the slot collision display.
svn path=/main/trunk/; revision=9775
Zac Medico [Wed, 9 Apr 2008 17:55:09 +0000 (17:55 -0000)]
When pruning the list of parents for the slot collision display, always
show parents that themselves have been pulled into collision slots, since
those are more relevant that others. (branches/2.1.2 r9773)
svn path=/main/trunk/; revision=9774
Zac Medico [Wed, 9 Apr 2008 17:00:24 +0000 (17:00 -0000)]
Make DepcheckCompositeDB cache Package instances for aux_get() calls.
svn path=/main/trunk/; revision=9771
Zac Medico [Wed, 9 Apr 2008 16:14:55 +0000 (16:14 -0000)]
When depgraph.select_files() expands an atom category, in case of an old-style
virtual, defer category expansion so that the depgraph has more choices.
svn path=/main/trunk/; revision=9769
Zac Medico [Wed, 9 Apr 2008 07:15:42 +0000 (07:15 -0000)]
Create a new depgraph._dep_expand() method for select_files() to expand
atoms that have no category.
svn path=/main/trunk/; revision=9765
Zac Medico [Wed, 9 Apr 2008 05:29:31 +0000 (05:29 -0000)]
Handle issues with newlines in elog messages that can trigger an unhandled
ValueError to be raised from a split() call inside collect_ebuild_messages():
* Use \0 to delimit messages, so that that elog messages containing newlines
are handled correctly.
* Handle a potential ValueError when splitting the message type.
svn path=/main/trunk/; revision=9763
Zac Medico [Wed, 9 Apr 2008 00:37:10 +0000 (00:37 -0000)]
Make depgraph.select_files() detect when a package name given as an argument
is ambiguous due to the existence of a new-style virtual with the same
name (cpv_expand() will not always raise a ValueError in cases like this).
svn path=/main/trunk/; revision=9762
Zac Medico [Tue, 8 Apr 2008 23:55:25 +0000 (23:55 -0000)]
Split out a depgraph method to check if a specific new-style virtual
package exists.
svn path=/main/trunk/; revision=9761
Zac Medico [Tue, 8 Apr 2008 22:31:23 +0000 (22:31 -0000)]
Bug #162542 - When checking permissions inside CCACHE_DIR for compatibility
with FEATURES=userpriv, check the permissions on files inside the directory
to decide whether to fix the permissions.
svn path=/main/trunk/; revision=9759
Zac Medico [Tue, 8 Apr 2008 18:42:49 +0000 (18:42 -0000)]
Bug #197810 - Don't automatically downgrade packages for which available
matching versions are masked by corruption, but do automatically downgrade
installed packages that themselves have a valid mask such as from
package.mask.
svn path=/main/trunk/; revision=9756
Zac Medico [Tue, 8 Apr 2008 17:57:59 +0000 (17:57 -0000)]
Fix --update greedy atoms logic so that it only pulls in packages that
actually match the given atom.
svn path=/main/trunk/; revision=9755
Zac Medico [Tue, 8 Apr 2008 04:43:37 +0000 (04:43 -0000)]
Fix a little issue in the code from bug #197905 that causes some elog
messages to get lost.
svn path=/main/trunk/; revision=9747
Zac Medico [Tue, 8 Apr 2008 03:54:22 +0000 (03:54 -0000)]
Remove the depgraph._get_arg_for_pkg() method since _iter_atoms_for_pkg()
does the job.
svn path=/main/trunk/; revision=9745
Zac Medico [Tue, 8 Apr 2008 03:46:51 +0000 (03:46 -0000)]
Remove unused iter_atoms() function.
svn path=/main/trunk/; revision=9744
Zac Medico [Mon, 7 Apr 2008 23:47:17 +0000 (23:47 -0000)]
For repoman, only cache the metadata necessary for visibility
checks in order to reduce memory consumption.
svn path=/main/trunk/; revision=9743
Zac Medico [Mon, 7 Apr 2008 23:10:30 +0000 (23:10 -0000)]
When reading and writing the Packages index file, translate metadata keys
on the fly. Current translations:
DESC <-> DESCRIPTION
REPO <-> repository
svn path=/main/trunk/; revision=9742
Zac Medico [Mon, 7 Apr 2008 22:12:04 +0000 (22:12 -0000)]
* Optimize metadata caching in pordbapi and bindbapi so that cache is
never pulled for the same package twice.
* Cache a Package instances constructed during package selection
and reuse them during later package selections.
svn path=/main/trunk/; revision=9741
Zac Medico [Mon, 7 Apr 2008 07:33:05 +0000 (07:33 -0000)]
Handle empty KEYWORDS in the Packages file.
svn path=/main/trunk/; revision=9740
Zac Medico [Mon, 7 Apr 2008 06:32:16 +0000 (06:32 -0000)]
Fix broken IUSE defaults handling when filtering USE for the Packages file.
svn path=/main/trunk/; revision=9739
Zac Medico [Mon, 7 Apr 2008 02:36:56 +0000 (02:36 -0000)]
Move all the --update greedy slot logic to depgraph.select_files().
svn path=/main/trunk/; revision=9738
Zac Medico [Mon, 7 Apr 2008 02:04:39 +0000 (02:04 -0000)]
Move virtuals logic from DepcheckCompositeDB.match() to
depgraph._iter_atoms_for_pkg() since it's more generally
useful there.
svn path=/main/trunk/; revision=9737
Zac Medico [Sun, 6 Apr 2008 23:33:43 +0000 (23:33 -0000)]
Fix variable name collision in DepcheckCompositeDB.match().
svn path=/main/trunk/; revision=9736
Zac Medico [Sun, 6 Apr 2008 23:28:18 +0000 (23:28 -0000)]
Fix DepcheckCompositeDB.match() so that it doesn't assume that every
DependencyArg instance has an "atom" attribute.
svn path=/main/trunk/; revision=9735
Zac Medico [Sun, 6 Apr 2008 21:44:18 +0000 (21:44 -0000)]
Fix BASH_ARGC and BASH_ARGV offsets some more.
svn path=/main/trunk/; revision=9734
Zac Medico [Sun, 6 Apr 2008 21:37:34 +0000 (21:37 -0000)]
In dump_trace(), fix BASH_ARGV and BASH_ARGC offsets so that they are always
correct wrt eachother. Thanks to Betelgeuse for reporting.
svn path=/main/trunk/; revision=9733
Zac Medico [Sun, 6 Apr 2008 21:10:16 +0000 (21:10 -0000)]
Fix java.eclassesnotused logic. Thanks to Betelgeuse.
svn path=/main/trunk/; revision=9732
Zac Medico [Sun, 6 Apr 2008 19:20:36 +0000 (19:20 -0000)]
Rename the CompositDbapi class to DepcheckCompositeDB since it's really
a special pupose class just for dep_check() and it doesn't implement the
full dbapi interface.
svn path=/main/trunk/; revision=9731
Zac Medico [Sun, 6 Apr 2008 18:53:21 +0000 (18:53 -0000)]
Fix the CompositDbapi.match() logic wrt "selective" behavior and installed
packages so that it correctly handles false argument matches due to PROVIDE
when a corresponding new-style virtual exists.
svn path=/main/trunk/; revision=9729
Marius Mauch [Sun, 6 Apr 2008 17:12:41 +0000 (17:12 -0000)]
only preserve libraries if no copy exists in the libary search path (bug #215242)
svn path=/main/trunk/; revision=9728
Zac Medico [Sun, 6 Apr 2008 17:09:13 +0000 (17:09 -0000)]
* Use type -P which does not produce messages to stderr.
another option is to redirect both stderr and out.
* Avoid &> replace with > ... 2>&1
Thanks to Alon Bar-Lev for this patch.
svn path=/main/trunk/; revision=9727
Marius Mauch [Sun, 6 Apr 2008 14:20:52 +0000 (14:20 -0000)]
preserve order of ebuild messages even between different message types (bug #197905)
svn path=/main/trunk/; revision=9726
Zac Medico [Sat, 5 Apr 2008 23:22:59 +0000 (23:22 -0000)]
Clarify --with-bdeps behavior with example. Thanks to Griffon26 for
this patch.
svn path=/main/trunk/; revision=9725
Zac Medico [Sat, 5 Apr 2008 19:51:28 +0000 (19:51 -0000)]
When necessary, make quickpkg add missing metadata to the vdb entry before
creating the binary package.
svn path=/main/trunk/; revision=9723
Zac Medico [Sat, 5 Apr 2008 18:30:11 +0000 (18:30 -0000)]
Handle a potential InvalidDependString exception inside
CompositeDbapi.match().
svn path=/main/trunk/; revision=9720
Zac Medico [Sat, 5 Apr 2008 17:48:23 +0000 (17:48 -0000)]
Bug #216328 - Fix broken --newuse reinstallation logic.
svn path=/main/trunk/; revision=9718
Zac Medico [Sat, 5 Apr 2008 10:30:43 +0000 (10:30 -0000)]
Fix the depgraph package selection cache to update the "existing node"
state of packages if they've been added to the graph since the last
call.
svn path=/main/trunk/; revision=9717
Zac Medico [Sat, 5 Apr 2008 09:42:51 +0000 (09:42 -0000)]
Fix a typo.
svn path=/main/trunk/; revision=9716
Zac Medico [Sat, 5 Apr 2008 09:41:05 +0000 (09:41 -0000)]
Memoize package selection results in the depgraph for better performance.
svn path=/main/trunk/; revision=9715
Zac Medico [Sat, 5 Apr 2008 09:15:10 +0000 (09:15 -0000)]
Remove "selective" depgraph logic from dep_zapdeps() since it's now
handled by CompositeDbapi.
svn path=/main/trunk/; revision=9714
Zac Medico [Sat, 5 Apr 2008 08:50:01 +0000 (08:50 -0000)]
Replace the depgraph's fakedbapi of visible packages with a new
CompositeDbapi that is implemented on top of the depgraph's
existing package selection logic.
svn path=/main/trunk/; revision=9713
Zac Medico [Sat, 5 Apr 2008 06:25:49 +0000 (06:25 -0000)]
In dbapi.move_ent(), never assume that any of the expected metadata
entries exist (PF, CATEGORY, or *.ebuild).
svn path=/main/trunk/; revision=9712
Zac Medico [Fri, 4 Apr 2008 20:41:48 +0000 (20:41 -0000)]
Add missing "the" to fix grammar.
svn path=/main/trunk/; revision=9710
Zac Medico [Fri, 4 Apr 2008 18:58:49 +0000 (18:58 -0000)]
* In the event that a previously installed package has since been masked,
emerge will no longer perform an automatic downgrade as part of a "world"
update. You should either unmask such packages or else explicitly re-merge
them in order to have them dowgraded to an unmasked version.
svn path=/main/trunk/; revision=9708
Zac Medico [Fri, 4 Apr 2008 18:40:28 +0000 (18:40 -0000)]
Adjust newlines whitespace masked packages display.
svn path=/main/trunk/; revision=9706
Zac Medico [Fri, 4 Apr 2008 18:29:33 +0000 (18:29 -0000)]
Display the note referencing "masked packages" docs when there are
installed masked packages to display.
svn path=/main/trunk/; revision=9705
Zac Medico [Fri, 4 Apr 2008 06:32:55 +0000 (06:32 -0000)]
Fix a typo in the depclean USE flag handling when populating the
digraph for bug #201045.
svn path=/main/trunk/; revision=9702
Zac Medico [Fri, 4 Apr 2008 04:51:33 +0000 (04:51 -0000)]
Fix a typo.
svn path=/main/trunk/; revision=9700
Zac Medico [Fri, 4 Apr 2008 04:48:49 +0000 (04:48 -0000)]
When the user has given --depclean a list of atoms to clean, pull all
installed packages into the graph (not just those traversable from system
or world) to ensure that packages can not be uninstalled unless nothing
requires them.
svn path=/main/trunk/; revision=9699
Zac Medico [Fri, 4 Apr 2008 00:44:08 +0000 (00:44 -0000)]
Decrease priority on --onlydpes dependencies so that
--buildpkgonly hasallzeros() works correctly.
svn path=/main/trunk/; revision=9697
Zac Medico [Fri, 4 Apr 2008 00:30:32 +0000 (00:30 -0000)]
Add missing DepPriority instances to the graph so that the --buildpkgonly
hasallzeros() calculation works correctly again.
svn path=/main/trunk/; revision=9696
Zac Medico [Thu, 3 Apr 2008 22:40:56 +0000 (22:40 -0000)]
Eliminate a redundant atom from the --update greedy slot expansion code.
svn path=/main/trunk/; revision=9695
Zac Medico [Thu, 3 Apr 2008 22:34:46 +0000 (22:34 -0000)]
Fix package selection logic so that it always properly finds the highest
available version in a new slot even though the graph already contains
a matching version in a lower slot.
svn path=/main/trunk/; revision=9693
Zac Medico [Thu, 3 Apr 2008 20:03:40 +0000 (20:03 -0000)]
Add missing str.upper() call for PORTAGE_FETCH_RESUME_MIN_SIZE.
svn path=/main/trunk/; revision=9691
Zac Medico [Thu, 3 Apr 2008 19:58:22 +0000 (19:58 -0000)]
If PORTAGE_FETCH_RESUME_MIN_SIZE is undefined or empty, silently use
the default.
svn path=/main/trunk/; revision=9689
Zac Medico [Thu, 3 Apr 2008 19:23:16 +0000 (19:23 -0000)]
Implement a PORTAGE_FETCH_RESUME_MIN_SIZE variable that is useful for
helping to ensure that small garbage files such as html 404 pages are
properly discarded.
svn path=/main/trunk/; revision=9687
Zac Medico [Thu, 3 Apr 2008 16:45:56 +0000 (16:45 -0000)]
For old-style virtuals, we need to repeat the package.provided
check against the selected package.
svn path=/main/trunk/; revision=9685
Zac Medico [Thu, 3 Apr 2008 01:17:59 +0000 (01:17 -0000)]
In cpv_expand(), if the virtuals file contains a versioned atom (like
the base profile currently has for virtual/pam), properly remove the
operator and version from the atom before it is passed into
dbapi.cp_list().
svn path=/main/trunk/; revision=9683
Zac Medico [Wed, 2 Apr 2008 19:22:20 +0000 (19:22 -0000)]
Fix the previous commit so that the Package instance is created in the
correct scope.
svn path=/main/trunk/; revision=9681
Zac Medico [Wed, 2 Apr 2008 19:09:13 +0000 (19:09 -0000)]
Use Package.cp instead of dep_getkey(cpv).
svn path=/main/trunk/; revision=9680
Zac Medico [Wed, 2 Apr 2008 18:06:42 +0000 (18:06 -0000)]
Eliminate a redundant os.path.join() call.
svn path=/main/trunk/; revision=9678
Zac Medico [Wed, 2 Apr 2008 18:03:08 +0000 (18:03 -0000)]
Handle a potential FileNotFound exception in new_protect_filename() when
the last ._cfg* file happens to be a broken symlink. Thanks to bonsaikitten
for reporting.
svn path=/main/trunk/; revision=9677
Zac Medico [Tue, 1 Apr 2008 23:34:54 +0000 (23:34 -0000)]
Remove the digraph._parent_child_digraph since it's no longer needed. It's
main purpose was to track PDEPEND relationships but those are handled just
like the other deps now.
svn path=/main/trunk/; revision=9675
Zac Medico [Tue, 1 Apr 2008 22:13:59 +0000 (22:13 -0000)]
Bug #215673 - Make ebuild.sh leave IUSE defaults intact instead of filtering
them out. The built_with_use() function in eutils.eclass needs to be updated
for compatibility.
svn path=/main/trunk/; revision=9674
Zac Medico [Tue, 1 Apr 2008 21:58:37 +0000 (21:58 -0000)]
Use pkgcmp() instead of == and best() for correctness in case of implicit
-r0.
svn path=/main/trunk/; revision=9672