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

Bug 257132

Summary: --keep-going should (not) be made a default
Product: Portage Development Reporter: Casey Jones <jonescaseyb>
Component: Core - ConfigurationAssignee: Portage team <dev-portage>
Status: RESOLVED WONTFIX    
Severity: enhancement CC: jer
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Casey Jones 2009-01-31 19:43:46 UTC
When I do:  emerge -uavD world, to update my system, and if a package fails to compile, the whole operation fails.

I believe that Portage should keep going and compiling packages that don't depend on the failed package.  For example, if firefox fails to compile, it should move on to other packages, like wine.  Wine doesn't need firefox, so it should be compiled.

I'm still learning Python, and I'm not really sure how Portage works, so I can't really fix this, but I'll try to give some psuedo code:  (Sorry, C syntax is all I know :P)

boolean test = compile(somePackage);
if(!test){
remove(packagesThatDependOn(somePackage));
continue;
}


Reproducible: Always

Steps to Reproduce:
1. emerge -u world
2. failed compile

Actual Results:  
Emerge fails completely

Expected Results:  
Continue compiling packages that don't depend on the failed package.
Comment 1 Michael Mair-Keimberger 2009-01-31 19:46:44 UTC
Hmm, ever tried the --keep-going option?

" Continue as much as possible after an error. When an error occurs, dependencies are recalculated for remaining packages  and  any  with
              unsatisfied dependencies are automatically dropped. Also see the related --skipfirst option."
Comment 2 Casey Jones 2009-01-31 20:11:57 UTC
Perhaps it should be enabled by default?  Is there any reason why it shouldn't?
Comment 3 emerald 2009-01-31 20:26:05 UTC
Use EMERGE_DEFAULT_OPTS in make.conf, a global default would probably counterintuitive and counterproductive.
Comment 4 Casey Jones 2009-01-31 20:36:12 UTC
I don't see how it's counterintuitive or counterproductive.

Is there any risk to enabling it?
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2009-02-02 17:08:15 UTC
(In reply to comment #4)
> I don't see how it's counterintuitive or counterproductive.
> 
> Is there any risk to enabling it?

Yes, because in the end people see the process has finished and may not heed the warnings that some packages actually failed to build, particularly when dozens of packages are emerged in the same go. The current default behaviour is to make the admin stop and fix the problem instead of trying to paste over it while breakage builds upon breakage because everything seems alright.
Comment 6 Zac Medico gentoo-dev 2009-02-02 18:58:06 UTC
We have to be very careful about changing default behavior because it affects everyone and even the slightest change can potentially upset lots of users. I agree with comment #5. If you want it enabled by default then use EMERGE_DEFAULT_OPTS.