| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This avoids an error from os.stat:
TypeError: must be encoded string without NULL bytes, not str
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This was an error in commit f393413c3f823ef4a60acfcc41c3920933510fc1.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This simplifies the interface, avoiding the need for hardcoded indexes
and making it easy to add new attributes.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
If there are no non-excluded providers then there's no need to search
for satisfied consumers.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The code which checks the soname symlink was missing a join with
$ROOT.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The version component of the libproc-3.2.8.so soname is formed
slightly differently than most other libraries.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This prevents false positives for private libraries installed by
pre-built packages under /opt.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Together with commit f36b9fa38b5268c2a5579db62acec026625f84a9,
hopefully this solves bug #366061.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|