| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The io.open() function is the same as the built-in open() function in
python3, and its implementation is optimized in python-2.7 and later.
In addition to the possible performance improvement, this also allows
us to avoid any future compatibility issues with codecs.open() that
may arise if it is delegated to the built-in open() function as
discussed in PEP 400.
The main caveat involved with io.open() is that TextIOWrapper.write()
raises TypeError if given raw bytes, unlike the streams returned from
codecs.open(). This is mainly an issue for python2 since literal
strings are raw bytes. We handle this by wrapping TextIOWrapper.write()
arguments with our _unicode_decode() function. Also, the
atomic_ofstream class overrides the write() method in python2 so that
it performs automatic coercion to unicode when necessary.
|
| |
|
|
|
|
|
| |
This should make it easier to debug cases like bug 374423,
among others.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The flags from REQUIRED_USE were added to affecting_use, which was not
really necessary and was a bad idea because a number of flags in
affecting_use affects our number of loops exponentially. This will fix
bug #374397 in which the large number of flags in the REQUIRED_USE of
dev-lang/php-5.3.6-r1 triggered execution of 2 ^ 45 loops.
|
|
|
|
|
|
| |
Special handling for missing IUSE that was introduced in commit
9a193d42032005396800eb30e550691513529c79 is also useful in one
more spot.
|
|
|
|
|
| |
This might help in some cases like bug 374397 where we're
troubleshooting the circular_dependency code.
|
|
|
|
|
| |
Python's cartesian product function does exactly what we want, so use
it to simplify our code.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The feature is as it sounds- primarily useful for temporary
trees or instances where manifests aren't used.
Signed-off-by: Brian Harring <ferringb@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
|
| |
This will allow us to safely use the ldconfig -X option for all
ldconfig calls, an thereby avoid having ldconfig override our own
soname symlink policy which allows preserve-libs to work correctly
when libraries are downgraded as discussed in bug 373341.
|
| |
|
| |
|
|
|
|
|
| |
This allows the merge list display to account for repository-level
USE_EXPAND and USE_EXPAND_HIDDEN settings (see bug #370693).
|
| |
|
| |
|
|
|
|
|
| |
Obviously, we don't want to consider the input cp as a possible
suggestion, as reported in bug 372033.
|
|
|
|
|
| |
This prevents get_dep_chain from triggering a KeyError some cases as
reported in bug #371767.
|
|
|
|
|
|
|
|
| |
Built/installed packages have frozen USE settings, so there's no sense
in considering them for autounmask USE config changes. They'll simply
be rejected by select_package, and an unbuilt ebuild will be selected
instead. This will fix bug 371423 by avoiding unnecessary use_reduce
calls on the deps of installed packages.
|
| |
|
|
|
|
|
|
|
|
|
| |
In the case of multiple runtime cycles, where some cycles
may depend on smaller independent cycles, it's optimal
to merge smaller independent cycles before other cycles
that depend on them. Therefore, we search for the
smallest cycle in order to try and identify and prefer
these smaller independent cycles.
|
| |
|
| |
|
|
|
|
|
|
| |
This allows us to avoid the less efficient runtime cycle pathway for
cases in which an asap node is a leaf if medium_soft deps are ignored.
Ths should increase efficiency without changing behavior.
|
| |
|
|
|
|
|
|
|
| |
When gathering the nodes belonging to a runtime cycle, we want to
minimize the number of nodes gathered, since this tends to produce
a more optimal merge order. Ignoring all medium_soft deps serves
this purpose.
|
| |
|
|
|
|
|
| |
This ensures that all asap_nodes are explored before setting
prefer_asap to False.
|
| |
|
|
|
|
| |
This code is only intended when more than one node is selected.
|
|
|
|
|
|
| |
When USE flags are removed, it can be essential to see all broken
reverse dependencies here, so don't omit any. If the list is long,
people can simply use a pager.
|
|
|
|
|
| |
It can be essential to see all the packages here, so don't omit any.
If the list is long, people can simply use a pager.
|
|
|
|
|
|
| |
In some cases, the asap_nodes code caused selection of a large runtime
cycle that was obviously sub-optimal. Now such cases are detected and
avoided.
|
|
|
|
|
|
| |
These callers don't intend to make WIFSIGNALED return True, so they
need to shift their codes 8 bits to the left. This ensures that
commit 88f5bf84e2fd23125910b2ecaffc035971445696 behaves as intended.
|
|
|
|
| |
This will fix bug #368817.
|
| |
|
|
|
|
|
| |
When masked by EAPI, metadata is mostly useless since it doesn't
contain essential things like SLOT.
|
|
|
|
| |
This will fix bug #370465.
|
|
|
|
|
|
| |
This is intended to clarify the messages shown in bug #370295, so that
it's obvious when a package is a member of the system set due to it
being a virtual provider.
|
| |
|
|
|
|
|
| |
This is needed for EAPI="4-python" added in commit
586760f37fb9784327d8447182d49810662f4427.
|
| |
|
| |
|