| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This code was intended to iterate over packages in descending order,
but match_pkgs() returns them in ascending order, so we need to
reverse it.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is required in order for dep_zapdeps to work as intended for
solving cases of bug #264434 in which there is an installed
package that may need to be uninstalled in order to resolve blockers.
It fixes a failure to resolve blockers when attempting to replace
media-video/ffmpeg with media-video/libav (symptom is similar to
bug #339164, but with new-style virtual instead of old-style PROVIDE
virtual).
|
| |
|
| |
|
|
|
|
|
| |
The 2.1.9 branch already does the same thing since commit
65736474c0d70cb10ff1290b3787b61d8a502aed.
|
| |
|