I created a USE flag dep conflict today: www-servers/apache-2.4.4-r3 -threads dev-lang/php-* apache2 threads while php[apache2] depends on apache[threads=]. With --autounmask y the output is: ===================================================================== These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ~] www-servers/apache-2.4.4-r3:2 USE="ssl threads* -debug -doc -ldap (-selinux) -static -suexec" APACHE2_MODULES="access_compat alias auth_basic authn_core authn_file authz_core authz_host authz_user cgi deflate dir expires filter include log_config logio mime mime_magic negotiation rewrite setenvif socache_shmcb unixd userdir -actions -asis -auth_digest -authn_alias -authn_anon -authn_dbd -authn_dbm -authz_dbm -authz_groupfile -authz_owner -autoindex -cache -cache_disk -cern_meta -cgid -charset_lite -dav -dav_fs -dav_lock -dbd -dumpio -env -ext_filter -file_cache -headers -ident -imagemap -info -lbmethod_bybusyness -lbmethod_byrequests -lbmethod_bytraffic -lbmethod_heartbeat -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_fcgi -proxy_ftp -proxy_http -proxy_scgi -ratelimit -remoteip -reqtimeout -slotmem_shm -speling -status -substitute -unique_id -usertrack -version -vhost_alias" APACHE2_MPMS="prefork -event -itk -peruser -worker" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by dev-lang/php-5.3.23[apache2] # required by dev-php/pecl-apc-3.1.9-r2 # required by @selected # required by @world (argument) >=www-servers/apache-2.4.4-r3 threads ===================================================================== With --autounmask n the output is: ===================================================================== These are the packages that would be merged, in order: Calculating dependencies... done! emerge: there are no ebuilds built with USE flags to satisfy "www-servers/apache[threads=]". !!! One of the following packages is required to complete your request: - www-servers/apache-2.4.4-r3::gentoo (Change USE: +threads) - dev-lang/php-5.4.13::gentoo (Change USE: -threads) (dependency required by "dev-lang/php-5.4.13" [installed]) (dependency required by "www-apps/gallery-3.0.7" [installed]) (dependency required by "@selected" [set]) (dependency required by "@world" [argument]) ===================================================================== Emerge is obviously aware of the fact that switching to apache[threads] and php[-threads] are two correct ways to solving the conflict. I propose that --autounmask=y too offers both/all known alternatives, not just one. Emerge's behavior with --autounmask-write=y would be left unchanged, of course. Reproducible: Always
Another interesting e.g. -- emerge --autounmask=y --autounmask-backtrack=y --backtrack=300 -pv --getbinpkg --oneshot app-emulation/wine-vanilla These are the packages that would be merged, in order: Calculating dependencies ... done! The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by app-emulation/wine-vanilla (argument) >=app-emulation/wine-vanilla-6.0.2 -abi_x86_32 app-emulation/wine-vanilla abi_x86_32 is set in my package.use on purpose. and autounmask suggests that I has to be removed.