summaryrefslogtreecommitdiffstats
path: root/pym
Commit message (Collapse)AuthorAgeFilesLines
* portdbapi: tweak cache permission handlingZac Medico2011-05-111-8/+12
| | | | | | This is a reponse to the following issue: http://code.google.com/p/chromium-os/issues/detail?id=15234
* EbuildPhase: extract binpkg env for pkg_pretendZac Medico2011-05-111-1/+1
| | | | This will fix bug #366939.
* unmerge: use frozenset for syslistZac Medico2011-05-111-0/+1
|
* depgraph: in complete mode respect --with-bdepsZac Medico2011-05-112-8/+7
| | | | | If you want the graph as complete as possible, now you'll have to use --with-bdeps=y together with --complete-graph.
* dep_check_composite_db: return early from cp_listZac Medico2011-05-101-1/+4
| | | | | Since this implementation is only intended to check for existence of new-style virtuals, it's a waste of time to return more than one cpv.
* depgraph: traverse ignored DEPEND if "complete"Zac Medico2011-05-101-2/+5
|
* Strip build-time dependencies when they're ignored and we're not in ↵David James2011-05-101-0/+5
| | | | | | | | | | | --rebuild mode. This should improve depgraph calculation performance. TEST=Ran test suite. BUG=chromium-os:15144 Change-Id: I9e06817201d7a17ae9b44b424d01c1a2bd89210a
* MergeProcess: lock vdb earlier when appropriateZac Medico2011-05-101-1/+29
|
* depgraph: don't clear vardbapi cache in _load_vdbZac Medico2011-05-091-8/+0
| | | | | | Most of the memory is probably held on the heap by the installed package instances anyway, and the cache is useful for being inherited by subprocess in MergeProcess.
* get_counter_tick_core: use cpv_allZac Medico2011-05-091-9/+7
| | | | | It's more efficient to use cpv_all since cp_all calls cpv_all anyway, and calls to cp_list induce additional stat calls.
* Cache counter values, avoiding I/O when it doesn't change.David James2011-05-092-34/+40
| | | | | | | | | | This improves merge times by up to 25%, since looping over the vardb for each package install is slow. TEST=Emerge a bunch of packages, notice 25% speed improvement. BUG=chromium-os:15112 Change-Id: I51dd617219cd1820ceeb702291bd790990995be4
* dep_check_composite_db: remove unused _dep_expandZac Medico2011-05-091-43/+1
| | | | | | | | This code has been unused since dep_check started passing token_class=Atom to use_reduce in commit c9f7930883d62fc26af72bff0c4623db0bbc8221. Since then, any atoms without categories are dropped by dep_check because it returns early after catching an InvalidDependString exception.
* dep_check_composite_db: implement cp_listZac Medico2011-05-091-0/+17
| | | | | This is used by dep_check since commit 6f9ee9c508c1506cdf8eb0dc46796dbe30f268db.
* config: call _populate_treeVirtuals directlyZac Medico2011-05-091-1/+1
|
* cpv_expand: avoid old-style virtuals moreZac Medico2011-05-091-1/+8
|
* dep_check: avoid old-style virtuals codeZac Medico2011-05-092-3/+18
|
* display_news_notification: don't populate virtsZac Medico2011-05-081-4/+0
| | | | | This typically isn't useful anymore, since Gentoo has stopped using old-style virtuals.
* cpv_expand: populate old-style virts on demandZac Medico2011-05-081-0/+4
| | | | | If old-style virtuals code is triggered here and we are given a vartree, use it to avoid creating a temporary instance.
* unmerge: skip getvirtuals() if cat is not virtualZac Medico2011-05-081-2/+8
| | | | | This allows us to avoid triggering the old-style virtual code which scans /var/db/pkg/*/*/PROVIDE.
* unmerge: use expand_new_virt for sys pkg warningsZac Medico2011-05-083-63/+76
|
* vardbapi: disable subprocess vdb cache updatesZac Medico2011-05-082-1/+10
| | | | | | | | | Since commit 7535cabdf2fab76fc55df83643157613dfd66be9, vardbapi.flush_cache() is often called within subprocesses spawned from MergeProcess. The _aux_cache_threshold doesn't work as designed if the cache is flushed from a subprocess like this, can lead to the vdb cache being flushed for every single merge. This is a waste of disk IO, so disable vdb cache updates in subprocesses.
* LinkageMapELF: remove unused importsv2.2.0_alpha32Zac Medico2011-05-082-4/+2
|
* PreservedLibsRegistry: normalize counter as strZac Medico2011-05-081-4/+22
|
* Add back cpv_exists check from previous commit.Zac Medico2011-05-081-0/+2
|
* Remove obsolete others_in_slot plibs code.Zac Medico2011-05-081-12/+2
| | | | | | | | | This code dates back to commit 79a2ade5a6cb5a6c2d7ace838a39a634265c5522 and the preserve-libs logic was different back then. At that time, the dblink._preserve_libs() method would earlier register preserved libs for the new package currently being merged, while the vardb entry was still a -MERGING- node. Current code does not register preserve_paths until later, so this others_in_slot code is obsolete.
* treewalk: always initialize "needed"Zac Medico2011-05-081-3/+3
|
* merge_wait_queue: use deque.clear()Zac Medico2011-05-081-1/+1
|
* resume_depgraph: don't call break_refs in loopZac Medico2011-05-081-2/+1
| | | | | | | | | | The break_refs call was unnecessary and it broke the state of the frozen_config instance, causing the following error: File "pym/_emerge/depgraph.py", line 1290, in _wrapped_add_pkg_dep_string inst_pkgs = vardb.match_pkgs(atom) AttributeError: 'vardbapi' object has no attribute 'match_pkgs'
* Fix typos in unmerge function.David James2011-05-081-5/+5
| | | | | | | BUG=none TEST=Try unmerging some packages. Change-Id: Ib643ec95b8da14b49a6b519e445fe57f8995c52c
* linkmap: use exclude_pkgs for the registry tooZac Medico2011-05-081-2/+9
|
* Use new vardbapi lock function in FakeVartree.David James2011-05-071-11/+6
| | | | | | | BUG=none TEST=Merged some packages with new code. Ran test suite. Change-Id: Ibb9380122631bf6c79e39691233cfd641931b75a
* Be careful with system pkgs + parallel-install.Zac Medico2011-05-071-10/+18
| | | | | This should prevent FEATURES=parallel-install from interfering with the fixes from bug #256616 and bug #259954.
* linkmap: check for access before locking vardbapiZac Medico2011-05-071-2/+5
|
* Use EROOT with VDB_PATH in recent changes.Zac Medico2011-05-072-5/+4
|
* Scheduler: add queue for ebuild-locksZac Medico2011-05-071-2/+11
| | | | | | | | Use a separate queue for ebuild-locks when the merge queue allows more than 1 job (due to parallel-install), since the portage.locks module does not behave as desired if we try to lock the same file multiple times concurrently from the same process.
* Add FEATURES=parallel-install for finer locks.Zac Medico2011-05-073-2/+14
|
* vardbapi: acquire lock during counter_tick_coreZac Medico2011-05-071-9/+17
|
* Add vardbapi reentrant lock/unlock methods.Zac Medico2011-05-071-16/+38
|
* Rename FEATURES=no-ebuild-locks to ebuild-locks.Zac Medico2011-05-072-7/+10
|
* Use finer grained locks for install.David James2011-05-075-79/+132
| | | | | | | | | | | | | | | | | | | | | | | | | Narrow scope of merge locks to improve performance. Instead of locking the DB for the entire package merge, just lock it when we actually need to do so. Also add locks around conf_mem_file updating and pkg_* phases. Locking in pkg_* phases can be turned off with FEATURES="no-ebuild-locks" if you use ebuilds that are careful not to mess with each other during theses phases. The default is to leave this locking enabled. Given this new locking, I've improved the scheduler to run merge jobs in parallel. Time required for merging 348 packages with --usepkgonly: - Before patch: 29m50s - After patch: 10m2s - After patch w/o locks: 7m9s Change-Id: I63588c4cc59fa6fe2f8327ea1e4a9e71b241d4fe Review URL: http://gerrit.chromium.org/gerrit/498
* doebuild: use EbuildBuildDir for lockingZac Medico2011-05-071-2/+13
| | | | | | | | EbuildBuildDir also performs safe removal of the category when it is empty, so ebuild.sh/dyn_clean doesn't need to do it anymore. This fixes a race condition if one process is trying to remove the category directory while another one is trying to create it for PORTAGE_BUILDDIR.
* PreserveLibsRegistry: add lock/unlock assertionsZac Medico2011-05-071-1/+12
| | | | | Also, add comments to store() about unobvious interaction with locking due to atomic replacement of the inode.
* Remove redundant pruneNonExisting() call.Zac Medico2011-05-061-1/+0
| | | | | | Since commit f36b9fa38b5268c2a5579db62acec026625f84a9, the PreservedLibsRegistry automatically prunes itself each time that it is loaded.
* preserve-libs: fix linkmap logic for new plibsZac Medico2011-05-062-11/+40
| | | | | Together with commit f36b9fa38b5268c2a5579db62acec026625f84a9, hopefully this solves bug #366061.
* Cleanup preserved lib locking in portage.David James2011-05-063-124/+114
| | | | | | | | | | | | This change makes preserved lib modification atomic, and prepares us for narrowing the scope of the merge lock. BUG=chromium-os:14983 TEST=Ran test suite and some example emerges. Change-Id: I39abb6a5ec72be3274e508ef807ac1d9e69db1a8 Review URL: http://gerrit.chromium.org/gerrit/417
* depgraph: simplify break_refsv2.2.0_alpha31Zac Medico2011-05-052-21/+23
|
* emerge: fix misspell suggestion with categoryZac Medico2011-05-051-3/+2
| | | | A name collision in the "cp" variable caused it to malfunction.
* Update timestamps in headers of modified files.Zac Medico2011-05-052-2/+2
|
* add_pkg_deps: removal action discard DEPEND earlyZac Medico2011-05-041-0/+3
|
* add_pkg_deps: use dep priority to ignore blockersZac Medico2011-05-041-12/+10
|