Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 322199 - emerge needs continue/ignore options
Summary: emerge needs continue/ignore options
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Portage team
URL: N/A
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-31 12:36 UTC by Robert Bradbury
Modified: 2015-07-02 16:35 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Bradbury 2010-05-31 12:36:14 UTC
emerge needs two additional options to facilitate building packages.
1. --continue => continue last package emerge
2. --ignore => run makes through to completion ignoring errors

It is often the case (particularly if emerging with "USE+=doc" or with newer ebuilds) that the ebuild will "mostly" work and install a workable package but that cannot easily be done due to the way emerge interacts with the packages.

Reproducible: Always

Steps to Reproduce:
1. emerge boost     # (1.42)
2. emerge ncbi-tools++
3. ncbi-tools++ emerge fails due to compatibility problems with boost.

Actual Results:  
Emerges fail and require upstream interventions to fix.  But in theory users could patch/work-around ebuild problems and continue emerging.  This is like the "emerge --resume" option but at a slightly lower level.

Expected Results:  
It should be possible to (a) continue a failed emerge; (b) ignore errors during an emerge and get a partially built or mostly functional package without waiting for upstream paches/fixes to filter down.

The "--continue" option would assume that the "emerge" is in-progress.  I.e. that the packages have been extracted, patches have been completed and that the compile/load/test phase is in progress.  This would usually require simply restarting the "make" step of the ebuild process.  In some cases one might want to know if the failure happened in during the configuration phase and "reconfigure" (probably can be tested by seeing if the Makefile exists).

The "--ignore" option would run the "make" with the "-i" flag.  One can often have the case where one knows that errors may exist but one wants to know about all of the errors so one can correct them all in a single sitting.  This lessens the problem of emerge/edit/emerge/edit/emerge/edit that occurs with new packages or packages where dependencies may impact multiple files.  It also cuts down on the development time of constantly have to restart the emerge process (which would be lessened if "--continue" were implemented).

There are many cases I've encountered where Gentoo packages will not emerge over the last few years but I know enough about the tools (gcc, make, etc.) that I can go in correct the errors and allow a build to proceed.  There isn't an easy way currently for me to continue with a build through completion so that the Gentoo package databases are updated.  This avoids delays in having to wait for upstream patches to filter down to the end-user level.

See for example Bug #312921 for an example of this.  The ncbi-tools++ package is a good example of where these fixes are needed it is a large package (hours to compile) and seems to build almost completely properly without the correct version of boost.  One does not want to have to start a new emerge every time one encounters a minor problem with building this package.
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2010-05-31 21:10:09 UTC
What's wrong with the --resume and --keep-going options?
Comment 2 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2010-05-31 21:17:40 UTC
Okay, scratch my previous comment (I should really stop commenting bugs when I'm very tired).

Fact is, your idea of --continue would be hard to implement as emerge would never knew in which state the extracted source is. I personally would refuse a bug report when I'd know a user did some changes and then running --continue to just stumbling over another (user caused?) error.
It's similar with your idea of --ignore. When make emits an error in most cases it is one that should be fixed rather than ignoring it. What do you think would be the first advices in the forums when these features would be implemented? And don't get me started about the moaners that would then blame us for writing/committing crappy ebuilds.
I'm sure your suggestion is with good intentions in mind but I see too much potential for abuse of these features.
Comment 3 Alex Xu (Hello71) 2015-07-02 16:35:29 UTC
FEATURES=keepwork, DO NOT SUBMIT BUGS IF YOU HAVE ENABLED THIS.