Gentoo Websites Logo
Bug 476350 - emerge --keep-going should be able to do everything not blocked.
Summary: emerge --keep-going should be able to do everything not blocked.
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Enhancement/Feature Requests (show other bugs)
Hardware: All Linux
: Normal enhancement with 2 votes (vote)
Assignee: Portage team
Depends on:
Blocks: 300071
  Show dependency tree
Reported: 2013-07-10 06:06 UTC by Robert White
Modified: 2018-11-20 02:54 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Description Robert White 2013-07-10 06:06:18 UTC
When a package is blocked and the user has supplied --keep-going, and one or more packages not related to the blockage have been selected, the un blocked package shoudl still be built.

Example: packages A, B, C, D and E are due for update.

B needs C
C is blocked for some reason (so neither B nor C are safe to install/update).

A, D and E should still be processed if --keep-going has been specified.

If C is blocked because it's update conflicts with E, then A and D should still be processed.

Basically if something comes up blocked a list should be made of all the packages, then every package in the the blocking set is removed. Then the dependent packages who's install-or-update are dependent on the blocked update are removed, etc. A package that can be built using the existing install is not removed. Lather-rinse-repeat. If that itterative process finishes with a non-empty list then that is a list of packages that are "innocent" of the conflicts in the system and they can be safely updated.

Real World Example:

I am running ~amd64. app-emulation/emul-linux-x86-medialibs and app-emulation/emul-linux-x86-soundlibs are blocked right now with the the ABI_X86="64 32" make flag. This is bleeding edge and likely to snag.

None of that blockage should be holding back xterm, dhcp, dosfstools or ntp (etc, etc, etc).

Reproducible: Always
Comment 1 Thomas Capricelli 2018-11-20 02:54:07 UTC
It's getting worse and worse every week, probably because more and more packages fail now in the main tree. The result is that we cant update system at all, because there's always one package failing early and emerge wont keep going after this. This is getting critical.