Zac Medico [Thu, 26 Jun 2008 19:34:02 +0000 (19:34 -0000)]
Fix the PermissionDenied message for color.map.
svn path=/main/trunk/; revision=10805
Zac Medico [Thu, 26 Jun 2008 19:28:29 +0000 (19:28 -0000)]
* Remove PORTAGE_LEGACY_GLOBALS hack for portage import since late
initialization of portage.settings (via ObjectProxy) allows us
to rely on being able to access the portage.exception namespace
before portage.settings is initialized.
* Use portage.settings["ROOT"] instead of portage.root to avoid
potential ObjectProxy compatibility issues.
svn path=/main/trunk/; revision=10804
Zac Medico [Thu, 26 Jun 2008 18:49:14 +0000 (18:49 -0000)]
Use settings["ROOT"] at the beginning of env_update() to avoid breakage
due to "root" being an ObjectProxy instance.
svn path=/main/trunk/; revision=10803
Zac Medico [Thu, 26 Jun 2008 18:24:34 +0000 (18:24 -0000)]
Handle KeyError from aux_get() inside dbapi._iter_match_slot() and
_iter_match_use(). Thanks to grobian for reporting.
svn path=/main/trunk/; revision=10802
Marius Mauch [Thu, 26 Jun 2008 17:11:52 +0000 (17:11 -0000)]
change default name of EverythingSet to @all-installed (bug #229467)
svn path=/main/trunk/; revision=10801
Zac Medico [Thu, 26 Jun 2008 06:43:47 +0000 (06:43 -0000)]
Also use a separate proxy type for portage.mtimedb since it's independent
from the portdb and settings.
svn path=/main/trunk/; revision=10800
Zac Medico [Thu, 26 Jun 2008 06:01:30 +0000 (06:01 -0000)]
Use a separate proxy type to trigger portage.portdb initialization separately
from the rest of the legacy global variables. This can be useful since
sometimes the other variables are needed while the portdb is not.
svn path=/main/trunk/; revision=10799
Zac Medico [Thu, 26 Jun 2008 05:28:04 +0000 (05:28 -0000)]
Implement lazy initialization of global "portdb", "settings" and other
variables that pollute the portage module. This works by initializing
the global variables with dummy "proxy" objects that serve as a means
to trigger lazy initialization. As soon as the first attribute access
or method call occurs on one of the proxy objects, it causes all the
proxy objects to be replaced with the real ones.
It's possible for an unsupported attribute access or method call on a
proxy object to trigger an error, leading to breakage. However, hopefully
these such corner cases will negligible (only time will tell).
svn path=/main/trunk/; revision=10798
Zac Medico [Thu, 26 Jun 2008 00:49:10 +0000 (00:49 -0000)]
Make PackageIndex use SlotDict for package metadata storage. The set of
allowed keys is passed into the PackageIndex constructor (normal dict
instances will be used if the set of keys is not passed in for some
reason). A SlotDict.allowed_keys attribute now provides access to a
frozenset of allowed keys.
svn path=/main/trunk/; revision=10797
Zac Medico [Wed, 25 Jun 2008 23:10:28 +0000 (23:10 -0000)]
Use SlotDict where appropriate in binarytree._populate().
svn path=/main/trunk/; revision=10796
Zac Medico [Wed, 25 Jun 2008 22:54:17 +0000 (22:54 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10795
Zac Medico [Wed, 25 Jun 2008 22:49:32 +0000 (22:49 -0000)]
Add docstring to slot_dict_class().
svn path=/main/trunk/; revision=10794
Zac Medico [Wed, 25 Jun 2008 22:39:42 +0000 (22:39 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10793
Zac Medico [Wed, 25 Jun 2008 22:39:00 +0000 (22:39 -0000)]
Fix KeyError constructor style.
svn path=/main/trunk/; revision=10792
Zac Medico [Wed, 25 Jun 2008 22:37:43 +0000 (22:37 -0000)]
Fix indentation.
svn path=/main/trunk/; revision=10791
Zac Medico [Wed, 25 Jun 2008 22:36:19 +0000 (22:36 -0000)]
Add a generic portage.cache.mappings.slot_dict_class() function which
generates mapping classes that behave similar to a dict but store
values as object attributes that are allocated via __slots__. Instances
of these objects have a smaller memory footprint than a normal dict object.
These classes are used to reduce the memory footprint of the dbapi.aux_get()
caches and the Package.metadata attribute.
svn path=/main/trunk/; revision=10790
Zac Medico [Wed, 25 Jun 2008 20:47:38 +0000 (20:47 -0000)]
Swap out the whole Package.root_config attribute inside depgraph.break_refs().
svn path=/main/trunk/; revision=10789
Zac Medico [Wed, 25 Jun 2008 20:08:35 +0000 (20:08 -0000)]
Clarify EverythingSet.description a bit. Thanks to Necoro.
svn path=/main/trunk/; revision=10787
Zac Medico [Wed, 25 Jun 2008 20:06:11 +0000 (20:06 -0000)]
Clarify EverythingSet.description a bit. Thanks to Necoro.
svn path=/main/trunk/; revision=10786
Zac Medico [Wed, 25 Jun 2008 19:45:07 +0000 (19:45 -0000)]
Fix Atom -> str breakage in depgraph.saveNomergeFavorites(). Thanks to
grobian and darsiide.
svn path=/main/trunk/; revision=10785
Zac Medico [Wed, 25 Jun 2008 12:41:22 +0000 (12:41 -0000)]
Fix repoman breakage wrt _PackageMetadataWrapper._keys values.
svn path=/main/trunk/; revision=10783
Zac Medico [Wed, 25 Jun 2008 10:06:42 +0000 (10:06 -0000)]
After the depgraph caches the vardb state in a FakeVartree, to make
some room on the heap, clear the vardbapi caches.
svn path=/main/trunk/; revision=10782
Zac Medico [Wed, 25 Jun 2008 08:42:02 +0000 (08:42 -0000)]
Implement __contains__, pop() and clear() for Package.metadata attributes.
svn path=/main/trunk/; revision=10780
Zac Medico [Wed, 25 Jun 2008 07:49:58 +0000 (07:49 -0000)]
Use os.listdir() instead of portage.listdir() to avoid needless caching
of directories that only need to be listed once.
svn path=/main/trunk/; revision=10779
Zac Medico [Wed, 25 Jun 2008 07:39:50 +0000 (07:39 -0000)]
Make clear_caches() call portage.dircache.clear().
svn path=/main/trunk/; revision=10778
Zac Medico [Wed, 25 Jun 2008 07:18:36 +0000 (07:18 -0000)]
Remove the BlockerDB._blocker_cache attribute and just create new
instances on demand instead of taking space on the heap.
svn path=/main/trunk/; revision=10777
Zac Medico [Wed, 25 Jun 2008 06:38:15 +0000 (06:38 -0000)]
For the Package.metadata attribute, only implement the dict interface
instead of actually inheriting from dict. This slightly decreases the
memory footprint by defining __slots__ and storing items as object
attributes.
svn path=/main/trunk/; revision=10776
Zac Medico [Wed, 25 Jun 2008 04:24:31 +0000 (04:24 -0000)]
Bug #229069 - Before deleting the depgraph, break references pointing
to the depgraph from Package instances in the merge list. This helps
reduce the heap size a lot.
svn path=/main/trunk/; revision=10775
Zac Medico [Tue, 24 Jun 2008 22:55:17 +0000 (22:55 -0000)]
Fix spelling of depgraph._complete_threshold.
svn path=/main/trunk/; revision=10774
Zac Medico [Tue, 24 Jun 2008 22:53:25 +0000 (22:53 -0000)]
If dep calculation time exceeds 20 seconds then automatically
enable "complete" mode since any performance difference is
not as likely to be noticed by the user after this much time
has passed.
svn path=/main/trunk/; revision=10773
Zac Medico [Tue, 24 Jun 2008 22:30:48 +0000 (22:30 -0000)]
Use weakref.WeakValueDictionary to make cached Atom instances eligible for
garbage collection when no strong references remain.
svn path=/main/trunk/; revision=10772
Zac Medico [Tue, 24 Jun 2008 21:14:45 +0000 (21:14 -0000)]
Bug #229233 - Fix Atom -> str breakage in the depgraph.display_problems()
package.provided warning message.
svn path=/main/trunk/; revision=10771
Zac Medico [Tue, 24 Jun 2008 05:52:48 +0000 (05:52 -0000)]
Clear dbapi caches just after deleting the depgraph in action_build().
This trims down the heap size by a few megs, for bug #229069.
svn path=/main/trunk/; revision=10769
Zac Medico [Tue, 24 Jun 2008 01:00:47 +0000 (01:00 -0000)]
Fix some remaining corner cases that cause bug #220341 to reappear
intermittently. Thanks to pva for reporting.
svn path=/main/trunk/; revision=10768
Zac Medico [Mon, 23 Jun 2008 18:22:07 +0000 (18:22 -0000)]
Use paths from portage.const instead of hardcoded versions.
(branches/prefix r10765)
svn path=/main/trunk/; revision=10766
Zac Medico [Mon, 23 Jun 2008 10:00:12 +0000 (10:00 -0000)]
Bug #228977 - During dblink._preserve_libs() calls, cache results of
LinkageMap.findProviders(), LinkageMap.findConsumers(), and os.path.realpath()
calls in order to improve performance. This makes a huge difference in
performance for glibc upgrades since glibc provides so many libs to
check consumerge for.
svn path=/main/trunk/; revision=10764
Zac Medico [Mon, 23 Jun 2008 02:40:38 +0000 (02:40 -0000)]
Bug #228935 - Add a new "command not found" build log QA Notice. Thanks to
Olivier Huber for the initial patch.
svn path=/main/trunk/; revision=10763
Zac Medico [Mon, 23 Jun 2008 01:24:25 +0000 (01:24 -0000)]
Bug #228977 - Protect against possible infinite loop in
dblink._preserve_libs().
svn path=/main/trunk/; revision=10762
Zac Medico [Sun, 22 Jun 2008 23:15:19 +0000 (23:15 -0000)]
Bug #228939 - Fix display list interaction with --tree mode to prevent
display of a duplicate list.
svn path=/main/trunk/; revision=10761
Zac Medico [Sun, 22 Jun 2008 04:04:50 +0000 (04:04 -0000)]
Fix broken path handling wrt $ROOT in LibraryConsumerSet.mapPathsToAtoms().
svn path=/main/trunk/; revision=10759
Zac Medico [Sat, 21 Jun 2008 22:41:40 +0000 (22:41 -0000)]
Fix Atom -> str breakage in depgraph._show_slot_collision_notice(). Thanks
to Arfrever for reporting.
svn path=/main/trunk/; revision=10758
Zac Medico [Sat, 21 Jun 2008 22:22:59 +0000 (22:22 -0000)]
Implement Atom.__cmp__() so that things like list.sort() work correctly
for Atom instances.
svn path=/main/trunk/; revision=10757
Zac Medico [Sat, 21 Jun 2008 17:11:54 +0000 (17:11 -0000)]
Bug #228489 - Restore the "ci" alias for "commit" mode. Thanks to grobian
for the patch.
svn path=/main/trunk/; revision=10756
Zac Medico [Sat, 21 Jun 2008 16:14:03 +0000 (16:14 -0000)]
Fix Atom -> str breakage in depgraph.display_problems().
svn path=/main/trunk/; revision=10755
Zac Medico [Sat, 21 Jun 2008 14:58:13 +0000 (14:58 -0000)]
Make LibraryConsumerSet.mapPathsToAtoms() use the contents index for more
efficient owner lookups.
svn path=/main/trunk/; revision=10754
Zac Medico [Sat, 21 Jun 2008 11:58:44 +0000 (11:58 -0000)]
Fix implicit_pattern to match different quote character found in warnings
generated by gcc-4.3. Thanks to aballier for reporting with sample log.
svn path=/main/trunk/; revision=10753
Zac Medico [Sat, 21 Jun 2008 10:53:58 +0000 (10:53 -0000)]
Exclude calls to autoheader and makeinfo from the automake "maintainer mode"
check (filter some false positives). Thanks to Flameeyes.
svn path=/main/trunk/; revision=10752
Zac Medico [Sat, 21 Jun 2008 09:26:53 +0000 (09:26 -0000)]
Use bash's built-in echo instead of the actual echo binary since it has
compatibility issues on FreeBSD systems. Thanks to aballier for reporting
the issue and testing this patch.
svn path=/main/trunk/; revision=10751
Mike Frysinger [Sat, 21 Jun 2008 05:18:26 +0000 (05:18 -0000)]
drop old -i,--include-masked option #226429 by Tobias Klausmann
svn path=/main/trunk/; revision=10750
Zac Medico [Fri, 20 Jun 2008 22:31:17 +0000 (22:31 -0000)]
Fix Atom -> str breakage in WorldSet.write().
svn path=/main/trunk/; revision=10749
Zac Medico [Fri, 20 Jun 2008 20:36:41 +0000 (20:36 -0000)]
Remove unused Atom.string attribute.
svn path=/main/trunk/; revision=10748
Zac Medico [Fri, 20 Jun 2008 19:43:33 +0000 (19:43 -0000)]
Add subversion support for repoman. (thanks grobian)
svn path=/main/trunk/; revision=10747
Zac Medico [Fri, 20 Jun 2008 18:00:25 +0000 (18:00 -0000)]
Bug #228595 - Use os.path.realpath() before comparing paths to those
returned from portdbapi.getRepositoryPath() since those paths are
also cannonical.
svn path=/main/trunk/; revision=10746
Zac Medico [Fri, 20 Jun 2008 17:36:18 +0000 (17:36 -0000)]
Make isvalidatom() use the Atom cache to avoid validating the same atom
twice.
svn path=/main/trunk/; revision=10745
Zac Medico [Fri, 20 Jun 2008 17:04:13 +0000 (17:04 -0000)]
Make Atom use str.__eq__ and __ne__ also.
svn path=/main/trunk/; revision=10744
Zac Medico [Fri, 20 Jun 2008 16:59:56 +0000 (16:59 -0000)]
Make Atom use str.__hash__.
svn path=/main/trunk/; revision=10743
Zac Medico [Fri, 20 Jun 2008 16:47:45 +0000 (16:47 -0000)]
Make the Atom cache dict private and add a docstring for _AtomCache.
svn path=/main/trunk/; revision=10742
Zac Medico [Fri, 20 Jun 2008 16:18:46 +0000 (16:18 -0000)]
Use a metaclass to cache Atom instances transparently. This should improve
performance and conserve memory in cases when the same atom is more than
once.
svn path=/main/trunk/; revision=10741
Zac Medico [Fri, 20 Jun 2008 14:37:49 +0000 (14:37 -0000)]
Instead of having Atom inherit from str, just emulate the interface. This
allows us to define __slots__ (not allowed when inheriting from str) and
therefore should conserve some memory by avoiding a __dict__ attribute
on every Atom.
svn path=/main/trunk/; revision=10740
Zac Medico [Fri, 20 Jun 2008 13:39:14 +0000 (13:39 -0000)]
Make the visibility related config methods such as getMaskAtom() and
getProfileMaskAtom() private since these methods really should take
Package instances before we expose them as public api.
svn path=/main/trunk/; revision=10739
Marius Mauch [Fri, 20 Jun 2008 05:12:46 +0000 (05:12 -0000)]
reenable warning about missing repository names
svn path=/main/trunk/; revision=10735
Marius Mauch [Fri, 20 Jun 2008 05:01:55 +0000 (05:01 -0000)]
revert accidential commit
svn path=/main/trunk/; revision=10734
Marius Mauch [Fri, 20 Jun 2008 04:59:45 +0000 (04:59 -0000)]
update release notes/news
svn path=/main/trunk/; revision=10733
Zac Medico [Fri, 20 Jun 2008 03:46:40 +0000 (03:46 -0000)]
Document the new emerge <file> feature.
svn path=/main/trunk/; revision=10732
Zac Medico [Fri, 20 Jun 2008 03:14:20 +0000 (03:14 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10731
Zac Medico [Fri, 20 Jun 2008 03:13:13 +0000 (03:13 -0000)]
Make emerge <path> path search for multiple owners of directories. This
makes it possible to use `emerge /lib/modules` as a decent substitute
for module-rebuild.
svn path=/main/trunk/; revision=10730
Zac Medico [Thu, 19 Jun 2008 05:26:49 +0000 (05:26 -0000)]
Pass a Package instance into LineCheck.new(), and use this to avoid
passing the ebuild mtime into the EbuildHeader constructor (the
mtime is given when the new() method is called).
svn path=/main/trunk/; revision=10725
Zac Medico [Thu, 19 Jun 2008 05:01:18 +0000 (05:01 -0000)]
Refactor the 'inherit.autotools' and 'IUSE.undefined' checks
into classes derived from LineCheck.
svn path=/main/trunk/; revision=10723
Zac Medico [Wed, 18 Jun 2008 21:33:30 +0000 (21:33 -0000)]
Bug #228075 - Explicitly call gc.collect() to try and free memory
when checking for blockers. This avoids a heap overflow that triggers
'Cannot allocate memory' errors (reported with python-2.5).
svn path=/main/trunk/; revision=10717
Zac Medico [Wed, 18 Jun 2008 08:11:24 +0000 (08:11 -0000)]
As suggested by remi`, make the 'inherit.autotools' check only ebuilds that
inherit the autotools eclass directly (rather than indirectly through an
eclass such as apache-2 or x-modular).
svn path=/main/trunk/; revision=10715
Zac Medico [Wed, 18 Jun 2008 06:55:41 +0000 (06:55 -0000)]
Add an exemption for x-modular in the "inherit.autotools" check. Thanks to
remi` for reporting.
svn path=/main/trunk/; revision=10714
Zac Medico [Wed, 18 Jun 2008 04:49:32 +0000 (04:49 -0000)]
Bug #225285 - Add support for persistent options stored in the EBUILD_DEFAULT_OPTS
environment variable (similar to {EMERGE,QUICKPKG}_DEFAULT_OPTS).
svn path=/main/trunk/; revision=10713
Zac Medico [Wed, 18 Jun 2008 04:38:32 +0000 (04:38 -0000)]
Bug #225285 - Add a --skip-manifest option that disables all interaction
with the manifest.
svn path=/main/trunk/; revision=10712
Zac Medico [Wed, 18 Jun 2008 03:36:38 +0000 (03:36 -0000)]
Add a help string for --debug.
svn path=/main/trunk/; revision=10711
Zac Medico [Wed, 18 Jun 2008 03:30:55 +0000 (03:30 -0000)]
Use optparse instead of getopt.
svn path=/main/trunk/; revision=10710
Zac Medico [Tue, 17 Jun 2008 20:16:03 +0000 (20:16 -0000)]
More eblank.
svn path=/main/trunk/; revision=10704
Zac Medico [Tue, 17 Jun 2008 19:39:38 +0000 (19:39 -0000)]
Remove eblank docs.
svn path=/main/trunk/; revision=10698
Marius Mauch [Tue, 17 Jun 2008 18:13:56 +0000 (18:13 -0000)]
remove stray line
svn path=/main/trunk/; revision=10696
Marius Mauch [Tue, 17 Jun 2008 17:35:46 +0000 (17:35 -0000)]
Remove eblank nonsense
svn path=/main/trunk/; revision=10695
Marius Mauch [Tue, 17 Jun 2008 17:35:18 +0000 (17:35 -0000)]
Remove eblank nonsense
svn path=/main/trunk/; revision=10694
Marius Mauch [Tue, 17 Jun 2008 17:03:40 +0000 (17:03 -0000)]
Do not preserve the master link of a library to avoid packages being linked against preserved libs on rebuilds
svn path=/main/trunk/; revision=10693
Marius Mauch [Tue, 17 Jun 2008 16:12:34 +0000 (16:12 -0000)]
fix typo
svn path=/main/trunk/; revision=10690
Zac Medico [Tue, 17 Jun 2008 07:46:23 +0000 (07:46 -0000)]
* Document eblank and eqawarn in the ebuild.5 man page.
* Create "Ebuild Helper Functions" section docbook format,
including all the functions documented in the ebuild.5
man page.
svn path=/main/trunk/; revision=10687
Zac Medico [Tue, 17 Jun 2008 06:01:04 +0000 (06:01 -0000)]
Add note about bug #226505.
svn path=/main/trunk/; revision=10685
Zac Medico [Tue, 17 Jun 2008 05:44:21 +0000 (05:44 -0000)]
Add a "Interaction with previous installed version" section to document the
upgrade/downgrade phase execution order change from bug #226505.
svn path=/main/trunk/; revision=10683
Zac Medico [Tue, 17 Jun 2008 05:07:36 +0000 (05:07 -0000)]
Add "blank" to the default PORTAGE_ELOG_CLASSES setting.
svn path=/main/trunk/; revision=10681
Zac Medico [Tue, 17 Jun 2008 04:57:34 +0000 (04:57 -0000)]
Fix BLANK order and color.
svn path=/main/trunk/; revision=10679
Zac Medico [Tue, 17 Jun 2008 04:05:20 +0000 (04:05 -0000)]
* Rename NEUTRAL color to BLANK for eblank.
* Document the new BLANK code in color.map.5.
* Implement python version of eblank for mod_echo.
svn path=/main/trunk/; revision=10677
Zac Medico [Tue, 17 Jun 2008 03:31:43 +0000 (03:31 -0000)]
Add support for an new "eblank" elog function that shows a blank line.
Consecutive eblank calls are all collapsed into a single blank line.
Thanks to Joe Peterson <lavajoe@g.o> for this patch.
svn path=/main/trunk/; revision=10675
Zac Medico [Mon, 16 Jun 2008 14:40:30 +0000 (14:40 -0000)]
Fix typo.
svn path=/main/trunk/; revision=10673
Zac Medico [Mon, 16 Jun 2008 14:30:11 +0000 (14:30 -0000)]
Document the new ACCEPT_CHOSTS variable.
svn path=/main/trunk/; revision=10671
Zac Medico [Mon, 16 Jun 2008 11:48:36 +0000 (11:48 -0000)]
Tweak the config._accept_chost() regex.
svn path=/main/trunk/; revision=10669
Zac Medico [Mon, 16 Jun 2008 10:24:43 +0000 (10:24 -0000)]
Re-enable vardbapi.cpv_all() cache now that bug #223417 is solved.
svn path=/main/trunk/; revision=10661
Zac Medico [Mon, 16 Jun 2008 10:19:50 +0000 (10:19 -0000)]
Bug #223417 - Due to 1 second mtime granularity in < python-1.5, mtime checks
are not always sufficient to invalidate vardbapi caches. Therefore,
the caches need to be actively invalidated when packages are added and removed.
svn path=/main/trunk/; revision=10660
Zac Medico [Mon, 16 Jun 2008 08:32:54 +0000 (08:32 -0000)]
Make some post_merge() things conditional on the vdb lock being held
(mtimedb commit and info dirs processing).
svn path=/main/trunk/; revision=10659
Zac Medico [Mon, 16 Jun 2008 08:10:49 +0000 (08:10 -0000)]
Add some write access checks in post_merge() in order to avoid triggering
permission related exceptions.
svn path=/main/trunk/; revision=10658
Zac Medico [Sun, 15 Jun 2008 04:50:09 +0000 (04:50 -0000)]
Fix config._accept_chost_re so it's only an instance variable.
svn path=/main/trunk/; revision=10656
Zac Medico [Sun, 15 Jun 2008 04:38:15 +0000 (04:38 -0000)]
Add support for and ACCEPT_CHOSTS variable that controls masking behavior
for binary packages wrt CHOST. The variable is a space separated list of
chosts. It support regular expressions, so if the actual chost contains
any special characters then the user must escape them when setting
ACCEPT_CHOSTS.
svn path=/main/trunk/; revision=10654
Zac Medico [Sat, 14 Jun 2008 13:15:44 +0000 (13:15 -0000)]
Fix the 'inherit.autotools' check to account for apache-2_src_unpack()
calling eautoreconf.
svn path=/main/trunk/; revision=10653
Zac Medico [Sat, 14 Jun 2008 07:15:21 +0000 (07:15 -0000)]
Add two new build log qa checks, suggested by Diego Pettenò:
* Detect automake "maintainer mode". See
http://www.gentoo.org/proj/en/qa/autofailure.xml for more information.
* Detect "Unrecognized options" messages from configure scripts.
svn path=/main/trunk/; revision=10652