summaryrefslogtreecommitdiffstats
path: root/pym/portage/util/_dyn_libs
Commit message (Collapse)AuthorAgeFilesLines
* display_preserved_libs: move to separate fileZac Medico2012-10-141-0/+79
|
* Replace @returns with @return.Zac Medico2012-03-271-1/+1
|
* mtimedb: fix hexversion for python issue 5729Zac Medico2012-03-221-1/+1
|
* PreservedLibsRegistry: try to parse as JSON firstZac Medico2012-03-221-3/+3
|
* PreservedLibsRegistry: enable JSON write supportZac Medico2012-03-211-2/+2
| | | | JSON read support has been available since portage-2.2.0_alpha89.
* pruneNonExisting: handle eselect-opengl symlinksv2.2.0_alpha90Zac Medico2012-03-041-3/+33
| | | | | | | | | | | Only count symlinks as preserved if they still point to a hardink in the same directory, in order to handle cases where a tool such as eselect-opengl has updated the symlink to point to a hardlink in a different directory (see bug #406837). The unused hardlink is automatically found by _find_unused_preserved_libs, since the soname symlink no longer points to it. After the hardlink is removed by _remove_preserved_libs, it calls pruneNonExisting which eliminates the irrelevant symlink from the registry here.
* PreservedLibsRegistry: add JSON read/writeZac Medico2012-02-171-10/+51
| | | | | | | | Support serialization as JSON instead of pickle, so that /var/lib/portage/preserved_libs_registry is human readable/writable, for those rare cases where it may be useful. Currently, pickle is still used for writes. The plan is to migrate to JSON after JSON read has been supported for some time.
* LinkageMapELF: handle null bytes in NEEDED.ELF.2Zac Medico2012-01-311-0/+7
| | | | | This avoids an error from os.stat: TypeError: must be encoded string without NULL bytes, not str
* Handle unpickle EOFError.Zac Medico2011-09-031-4/+10
|
* Handle unpickle AttributeError (bug #381705).Zac Medico2011-09-031-1/+1
|
* python3.2 fixes: ResourceWarning: unclosed fileZac Medico2011-08-261-0/+1
|
* python3.2 fixes: ResourceWarning: unclosed fileZac Medico2011-08-241-3/+7
|
* Fix a typo in the previous commit.v2.2.0_alpha47Zac Medico2011-07-231-1/+1
|
* LinkageMapELF.getOwners(): add note about plibsZac Medico2011-07-231-0/+5
| | | | | | For preserved libraries, the owner(s) may have been been previously uninstalled, but these uninstalled owners can be returned by this method since they are registered in the PreservedLibsRegistry.
* LinkageMapELF: fix reversed x, cpv var refsZac Medico2011-07-231-1/+1
| | | | This was an error in commit f393413c3f823ef4a60acfcc41c3920933510fc1.
* LinkageMapELF: remove 5-tuple unpack codeZac Medico2011-07-221-17/+22
|
* LinkageMapELF: add getOwners() method and use itZac Medico2011-07-221-13/+41
| | | | | | This preserves the owner information inside LinkageMap.rebuild() and uses it to implement a getOwners() method, which makes it possible to efficiently lookup owners of library providers and consumers.
* LinkageMapELF: use a class for _obj_properiesZac Medico2011-07-221-11/+31
| | | | | This simplifies the interface, avoiding the need for hardcoded indexes and making it easy to add new attributes.
* LinkageMapELF: optimize memory usageZac Medico2011-07-221-9/+20
| | | | | | | This reduces memory consumption by approximately 30%, by replacing mutable set instances with arrays, tuples, and frozensets where appropriate. Also, identical frozenset instances are shared when available.
* Optimize LinkageMapELF.findConsumers().Zac Medico2011-07-201-7/+8
| | | | | If there are no non-excluded providers then there's no need to search for satisfied consumers.
* Fix unused case in LinkageMapELF.findConsumers().Zac Medico2011-07-191-8/+12
| | | | | | Currently, we never pass in more that one package via the exclude_providers argument, so we never trigger the flaw in the logic that this fixes.
* preserve-libs: search for alt providers of sonameZac Medico2011-07-171-8/+50
| | | | | | This will fix bug #289180 by making LinkageMapELF.findconsumers() exclude consumers from the results in cases when they are satisfied by an alternative provider of the required soname.
* LinkageMapElf.findConsumers(): fix $ROOT handlingZac Medico2011-06-301-1/+2
| | | | | The code which checks the soname symlink was missing a join with $ROOT.
* LinkageMapElf: clarify findConsumers soname codeZac Medico2011-06-301-4/+4
| | | | | | Here it referred to an soname symlink as a "master" link, which was inconsistent with the meaning of "master" link used in the isMasterLink() method.
* LinkageMapElf.isMasterLink(): handle libprocZac Medico2011-06-301-1/+10
| | | | | The version component of the libproc-3.2.8.so soname is formed slightly differently than most other libraries.
* Fix a typo in a docstring.Zac Medico2011-06-301-1/+1
|
* LinkageMapELF.isMasterLink(): literally compareZac Medico2011-06-301-3/+5
| | | | | | Comparing the lengths of the names alone seems like too much of an assumption, so literally compare the beginning of the soname to the basename of the given file.
* Only create soname symlinks in global libdirs.Zac Medico2011-06-291-1/+1
| | | | | This prevents false positives for private libraries installed by pre-built packages under /opt.
* _LibGraphNode: re-use the _key attributeZac Medico2011-05-141-3/+10
| | | | | | This allows us to avoid repeating any previous stat calls, which helps to avoid potential race conditions due to inconsistent stat results when the file system is being modified concurrently.
* LinkageMapELF: remove unused importsv2.2.0_alpha32Zac Medico2011-05-082-4/+2
|
* PreservedLibsRegistry: normalize counter as strZac Medico2011-05-081-4/+22
|
* linkmap: use exclude_pkgs for the registry tooZac Medico2011-05-081-2/+9
|
* linkmap: check for access before locking vardbapiZac Medico2011-05-071-2/+5
|
* Use EROOT with VDB_PATH in recent changes.Zac Medico2011-05-071-3/+2
|
* Use finer grained locks for install.David James2011-05-071-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* 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.
* preserve-libs: fix linkmap logic for new plibsZac Medico2011-05-061-6/+27
| | | | | Together with commit f36b9fa38b5268c2a5579db62acec026625f84a9, hopefully this solves bug #366061.
* Cleanup preserved lib locking in portage.David James2011-05-061-13/+19
| | | | | | | | | | | | 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
* Show paths of corrupt NEEDED.ELF.2 files.Zac Medico2010-10-211-6/+10
|
* remove double prefix in LinkageMapELFFabian Groffen2010-09-291-6/+6
|
* use ROOT iso EROOT with PreservedLibsRegistry, since all entries already ↵Fabian Groffen2010-09-291-5/+5
| | | | have EPREFIX
* Rename vardbapi.plib_registry to vardbapi._plib_registry since I'mZac Medico2010-08-291-2/+2
| | | | | | trying to minimize the diff between the master branch and upcoming 2.1.9 branch which will not have preserve-libs support but will still have the code in private and disabled form.
* Move LinkageMap to a new portage.util._dyn_libs.LinkageMapELF module.Zac Medico2010-08-291-0/+633
|
* Move PreservedLibsRegistry to a new ↵Zac Medico2010-08-292-0/+139
portage.util._dyn_libs.PreservedLibsRegistry module.