Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 283354

Summary: emerge should try excruciatingly hard not to break on an update world
Product: Portage Development Reporter: John Klehm <xixsimplicityxix>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: enhancement    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description John Klehm 2009-08-31 19:02:00 UTC
I run into issues when I use emerge update world on stable.  Yes I know they are solvable by using testing in the keywords file, but still there is room for improvement.

Yes I'm aware of --keep-going. Even with that it still breaks on the following scenario.

If I am running stable but have a few testing ebuilds installed I run into the case where the a new testing ebuild will be released and it will have deps that I dont have the testing keyword enabled for.  There should be an option for either or both of the following behaviors:

1) Portage tries to emerge a testing ebuild encounters a dep in testing that it only has the stable keyword for.  The dep in this case "inherits" the testing keyword from the pulling package.  The emerge completes successfully and the update world completes successfully.

For the sake of this bug lets refer to this as --deps-inherit-keyword.

2) Portage tries to emerge a testing ebuild and encounters a dep that it only has the stable keyword for.  The ebuild inherits the block from the dep and is skipped in an update world.  The emerge of that specific package is skipped and the update world completes successfully.

For the sake of this bug lets call this --skip-on-dep-block.

This would make update world much more robust.  My driving desire is that I want update --deep --newuse --keep-going world  running in a cron job and be able to count on that it will update the system when the ebuilds go stable (even if it has to wait for the deps to go stable).  It should never break and always update what it can and log when it cant.

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2009-09-01 07:41:25 UTC
(In reply to comment #0)
> 1) Portage tries to emerge a testing ebuild encounters a dep in testing that it
> only has the stable keyword for.  The dep in this case "inherits" the testing
> keyword from the pulling package.  The emerge completes successfully and the
> update world completes successfully.

This is somewhat related to bug 280097.

> 2) Portage tries to emerge a testing ebuild and encounters a dep that it only
> has the stable keyword for.  The ebuild inherits the block from the dep and is
> skipped in an update world.  The emerge of that specific package is skipped and
> the update world completes successfully.

This is already handled automatically by the code from bug 137562.