Often when doing revdep-rebuild after a significant USE change, there will be a lot of broken packages with hidden interdependancies which mean incomplete passes. The failed emerges can be skipped over with -- --keep-going added to revdep-rebuild, but it'd be really awesome if we also had a --retry-failed (only valid in combination with --keep-going?) which would retry all the failed packages after it finishes the entire list. --retry-failed should keep track and if at least one of the previous failed emerges completes successfully, it should continue to iterate. If no packages emerge successfully this time around it should stop and exit with the list of failed packages as is shown now. A good example of this is world being compiled with +xcb, then later -xcb. There's a -huge- list of libraries and binaries affected by this and it takes several passes of revdep-rebuild to get everything fixed. Reproducible: Always Steps to Reproduce:
Hmm, fundamentally, is this idea different from until revdep-rebuild -- --keep-going; do : done ?
Created attachment 193387 [details, diff] r-r--keep-going.patch This is a patch against svn revdep-rebuild, it simply adds '--keep-going' to EMERGE_DEFAULT_OPTS I haven't tested it comprehensively. Let me know how it does.
./29/#gentoo-portage.log:12:51 < Calchan> kojiro, ping, how about changing the emerge --oneshot in revdep-rebuild to emerge --oneshot --keep-going ? ./29/#gentoo-portage.log:15:55 < Calchan> kojiro, I had opened a bug with such a request but that predates --keep-going and that wasn't a sensible thing to do at that time
I was just about to opened a similar bug report. I have dozens of hosts where revdep-rebuild stops once after a while. Provided it re-emerges packages mostly in random order it is meaningless to stop after one broken. Yes, it should add --kee-going to emerge args. And yes, would be nice if at the end it would re-try the failed packages once more hoping the required libs were fixed meanwhile.
We are not going to add --keep-going to the revdep-rebuild default emerge command. If you want revdep-rebuild to use --keep-going do the following: revdep-rebuild -- --keep-going
I misread this bug re-opening.