Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 43619 - make --resume always work as expected
Summary: make --resume always work as expected
Status: RESOLVED WONTFIX
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - External Interaction (show other bugs)
Hardware: All All
: High normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-03 09:31 UTC by John Richard Moser
Modified: 2005-08-16 19:09 UTC (History)
0 users

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 John Richard Moser 2004-03-03 09:31:02 UTC
--resume
        Resumes the last merge operation.  Please note that this operation will
        only return  an error  on failure.  If there is nothing for portage to
        do, then portage will exit with a message and a success condition.

<the emerge man page; formatting adapted>

This is the documentation for the --resume function of emerge.

Currently, when something breaks, portage drops out, and thus you get:

rot@icebox # emerge --resume
resuming merge...


Some people do multiple merges at once when they don't overlap.  I often do emerge -eU world when getting a new compiler or testing new cflags (though sometimes I grep out the use from IUSE in /var/db/pkg).  --resume becomes useless often, because the /var/cache/edb/mtimedb gets fragged by the multiple portage runs if more than one dies.

Why not create /var/cache/edb/mtimedb.<console>?  Then I'd have:

vc/1:  root@icebox # emerge -eU world
vc/2:  root@icebox # emerge --oneshot dillo imagemagick xfree
pty4:  root@icebox # emerge mplayer
/var/cache/edb/mtimedb.{vc.1,vc.2,pty4}

Then if they ALL break, emerge --resume will work as expected in all cases.  Also, if logging off and back on, it will STILL work.

Also, emerge --resume=vc/1 on vc/4 would resume from mtimedb.vc.1, for completeness.

The point of this is that the documentation does not specify what the "last merge operation" is.  It is implied by wording that this means the last merge operation system-wide; however, this COULD be interpreted as the last merge operation in the session.  This would come close to fitting the latter, but would also allow the merge to be resumed when the session is lost (log out/back in, system crash, etc).  In either case, the functionality is still very useful.
Comment 1 Alec Warner (RETIRED) archtester gentoo-dev Security 2005-08-16 19:09:27 UTC
Portage lacks concurrency support for proper parallel merging.  Stopping and 
starting multiple merges using the suggested --resume functionality would make 
things worse in this regard, and there is no way to gaurentee that all merges 
would complete in a sane way.