Today I got this: ================================================================================ # emerge -pvuDN --complete-graph y --with-bdeps y --rebuild-if-new-rev y world [ebuild r U ] dev-libs/icu-51.1:0/51.1 [49.1.2:0/0] USE="-debug -doc +-examples -static-libs" 21,304 kB [ebuild rR ] dev-libs/libxml2-2.9.0-r2:2 USE="icu lzma readline {test} +-debug -examples -ipv6 -python -static-libs" PYTHON_TARGETS="python2_7 +-python2_5 -python2_6" 15,094 kB [ebuild rR ] dev-db/sqlite-3.7.15.2:3 USE="extensions fts3 icu readline +{test} threadsafe -debug -doc -secure-delete -soundex -static-libs -tcl +-unlock-notify" 4,889 kB [ebuild U ] app-arch/tar-1.26-r1 [1.26] USE="nls -minimal% -static -xattr%" +2,285 kB ================================================================================ But then: ================================================================================ # emerge -BquDN --complete-graph y --with-bdeps y --keep-going y world >>> Verifying ebuild manifests >>> Emerging (1 of 4) dev-libs/icu-51.1 >>> Emerging (2 of 4) dev-libs/libxml2-2.9.0-r2 >>> Emerging (3 of 4) dev-db/sqlite-3.7.15.2 >>> Emerging (4 of 4) app-arch/tar-1.26-r1 ================================================================================ But it makes no sense to emerge rR-rebuilds (--rebuild-if-new-rev) with -B. In case of normal (not sub-slot) upgrades, the implied rR-rebuilds are not emerged by -B, which is the correct behavior. Bug appeared with upgrade to portage-2.1.11.62 from the previous x86 stable version. Reproducible: Always
The previous version I had was portage-2.1.11.55, FWIW.
As a workaround, you should be able to use --exclude icu. The --buildpkg only code has always assumed (not a regression) that all packages are being merged, which is obviously an incorrect assumption.
(In reply to comment #2) > As a workaround, you should be able to use --exclude icu. > > The --buildpkg only code has always assumed (not a regression) that all > packages are being merged, which is obviously an incorrect assumption. I would want and expect emerge to build icu, but not the rR's - that's my line of thought. Just the way emerge deals with normal upgrades. If icu weren't sub-slotted ("U", not "rU"), emerge wouldn't attempt to rebuild libxml2 and sqlite with buildpkgonly; only icu and tar. That's correct AFAIK and emerge behaved that way even before (in the "U"s).
Anyway, --buildpkgonly code has never had the ability to distinguish between packages being merged and packages only being built. So, it can't be a regression.