If there are 2 packages to emerge (w/ fetching the package before) what's about starting with the smaller of both packages ? Eg, in the sitation seen above sudo would be fetched, compiled and installed already when wine is fetched eventually, isn't it ? : ... Calculating dependencies .... done! [ebuild U ] app-admin/sudo-1.7.0 [1.6.9_p17] USE="pam -ldap -offensive (-selinux) -skey" 727 kB [ebuild U ] app-emulation/wine-1.1.14 [1.1.13] USE="X alsa cups dbus gecko jpeg ncurses opengl png ssl xml -esd -gnutls -hal -jack -lcms -ldap -nas -oss -samba -scanner -win64 -xcomposite -xinerama" 14,672 kB Total: 2 packages (2 upgrades), Size of downloads: 15,399 kB Would you like to merge these packages? [Yes/No] Reproducible: Always
You can already get a similar sort of behavior if you use --jobs for parallel builds. In this case, it doesn't have to try and guess which download will finish first. It just starts downloading both of them simultaneously and whichever one finishes downloading first will start building first. The same sort of thing applies to installation. Whichever one finishes building first will get installed first. Given this sort of behavior, I'm not sure if it's really worth creating a fetch optimization for the --jobs=1 case.
I don't think it's worth it. If you want a similar sort of optimization then you'll have to use at least --jobs=2. In case you aren't familiar with --jobs, you can see my blog post about it here: http://blogs.gentoo.org/zmedico/2008/07/23/portage_parallel_builds
*** Bug 304721 has been marked as a duplicate of this bug. ***