Created attachment 659368 [details] emerge --info Ever since I began using FEATURES=getbinpkg, I've had a problem with @world updates missing some packages that need upgrading. I'll provide an example to demonstrate what I mean. First, with FEATURES=getbinpkg (enabled via make.conf): $ sudo emerge -puDN @world These are the packages that would be merged, in order: Calculating dependencies... done! Total: 0 packages, Size of downloads: 0 KiB Then, with FEATURES=-getbinpkg explicitly on the command line: $ sudo FEATURES=-getbinpkg emerge -puDN @world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-lang/go-1.14.8:0/1.14.8::gentoo [1.14.7:0/1.14.7::gentoo] 22,008 KiB [ebuild U ] dev-perl/File-Which-1.230.0::gentoo [1.220.0::gentoo] USE="-pwhich* -test" 23 KiB [ebuild U ] dev-ruby/minitest-5.14.2:5::gentoo [5.14.1:5::gentoo] USE="-doc -test" RUBY_TARGETS="(-ruby24%) -ruby25 -ruby26 ruby27" 83 KiB Total: 3 packages (3 upgrades), Size of downloads: 22,114 KiB If I explicitly specify the packages on the command line, everything works as expected: $ sudo emerge -p1 go File-Which minitest These are the packages that would be merged, in order: Calculating dependencies... done! [binary U ] dev-lang/go-1.15.1:0/1.15.1::gentoo [1.14.7:0/1.14.7::gentoo] 122,123 KiB [binary U ] dev-perl/File-Which-1.230.0::gentoo [1.220.0::gentoo] USE="-pwhich* -test" 27 KiB [ebuild U ] dev-ruby/minitest-5.14.2:5::gentoo [5.14.1:5::gentoo] USE="-doc -test" RUBY_TARGETS="(-ruby24%) -ruby25 -ruby26 ruby27" 83 KiB Total: 3 packages (3 upgrades, 2 binaries), Size of downloads: 122,232 KiB Most dependencies get picked up correctly when running emerge -uDN @world, but there are often some that get missed unless I disable getbinpkg, but I haven't yet been able to figure out the cause.
I dug into the cases from the example below, and it seems that getbinpkg causes BDEPEND (and possibly PDEPEND) dependencies to be ignored. Here's what pulls in each of those packages: dev-lang/go: listed as a BDEPEND of net-p2p/syncthing. However, syncthing is built locally and does not come from the binary package server. dev-perl/File-Which: listed as an RDEPEND of dev-perl/Alien-Build, which in turn is listed as a BDEPEND of dev-perl/Alien-Libxml2 dev-ruby/minitest: listed as a PDEPEND of dev-lang/ruby. Again, dev-lang/ruby is built locally and does not come from the binary package server.
You need to use --with-bdeps=y if you want to force BDEPEND to be installed for binary packages.
Note that behavior that you see is a result of the --with-bdeps-auto option which was added for bug 598444.
Also note that changing the default behavior would be disruptive to existing users of binary packages, which is why you need to explicitly specify --with-bdeps=y if you want the BDEPEND.
Yep, --with-bdeps=y fixed it for me. Sorry for the noise - I did search through the man pages before filing, but didn't use the right queries.