| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This re-implements the fix from commit
21330075f07248765016e104b3ba8216903f1ecb, without introducing the
unwanted behavior reported in bug 382557. This involves checking the
direct dependencies of virtual slot updates to make sure they are all
visible, before pulling them in.
|
|
|
|
|
|
| |
This reverts the behavior change from commit
21330075f07248765016e104b3ba8216903f1ecb, since it's too aggressive in
pulling in new virtual slots that may have masked dependencies.
|
|
|
|
|
|
|
| |
This re-implements the change from commit
21330075f07248765016e104b3ba8216903f1ecb in order to avoid executing
unnessary virtual slot expansion code when the given atom specifies a
slot or --update is enabled.
|
|
|
|
| |
This ensures that USE deps and repo deps are preserved here.
|
| |
|
|
|
|
|
|
|
|
| |
Previously, the virtual cost minimization code from bug #141118 would
prevent virtual dependencies from pulling in new slots. That behavior
was not desired for --update, so now it's fixed to pull in the latest
slot available. This allows virtual/jdk-1.7.0 to be pulled in by
dependencies when --update is enabled.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now, the --rebuild-if-* flags only rebuild packages that are used at
both run-time and build-time. This doesn't help for packages that are used
only at build-time (for example, static libaries).
Rebuilding packages whenever a build-time dependency is changed is easier to
understand and explain, and it handles all cases correctly.
BUG=chromium-os:15517
TEST=Run emerge test suite.
Change-Id: Iae8dab24e8acb6625bc1a0ce41862e90b232eb84
|
|
|
|
| |
This should fix some cases of bug 378187.
|
| |
|
|
|
|
|
| |
This makes contradictory things like `emerge -e @system --exclude gcc`
work as expected.
|
|
|
|
|
|
| |
This removes a very subtle difference in --noreplace package selection
logic which is not very useful and triggers strange package selection
choices in some cases, as reported in bug #375571.
|
| |
|
| |
|
|
|
|
|
| |
This is a major regression that has been triggering lots of complaints
about emerge --keep-going.
|
|
|
|
|
|
| |
Due to a quirk in python import behavior, this only failed
nondeterministically. However, the new preinst sanity test in the
portage-9999 ebuild tends to trigger it more often for some people.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
This might help in some cases like bug 374397 where we're
troubleshooting the circular_dependency code.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When masked by EAPI, metadata is mostly useless since it doesn't
contain essential things like SLOT.
|
|
|
|
| |
This will fix bug #370465.
|
| |
|
|
|
|
|
| |
This is needed for EAPI="4-python" added in commit
586760f37fb9784327d8447182d49810662f4427.
|
| |
|
| |
|
|
|
|
| |
This will fix bug #369985.
|
|
|
|
|
|
|
|
|
|
|
| |
Now that --autounmask is enabled by default, people are dealing with
local masks that trigger unsatisfied dependencies often complain about
--autounmask behavior being inappropriate for their situation.
Therefore, show a helpful note when the autounmask code is triggered
and --quiet is not enabled:
NOTE: This --autounmask behavior can be disabled by setting
EMERGE_DEFAULT_OPTS="--autounmask=n" in make.conf.
|
|
|
|
|
|
| |
We want to force new_protect_filename to ensure that the user will see
all our changes via etc-update, even if file_to_write_to doesn't exist
yet.
|