Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 257009

Summary: sys-apps/portage: emerge --ask prompt user if they would like to unmerge a blocker that exists in world file
Product: Portage Development Reporter: Jeremy Olexa (darkside) (RETIRED) <darkside>
Component: Enhancement/Feature RequestsAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: enhancement CC: esigra, pacho, roumano
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 300071, 376695    

Description Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2009-01-30 22:54:17 UTC
(Sorry if this is a dupe, i looked...honest =P )

In this situation:

%% sudo emerge -av postfix
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild  N    ] net-mail/mailwrapper-0.2.1  0 kB                                
[ebuild  N    ] mail-mta/postfix-2.5.5  USE="dovecot-sasl ldap mailwrapper mysql sasl ssl -cdb -hardened -ipv6 -mbox -nis -pam -postgres (-selinux) -vda" 0 kB  
[blocks B     ] mail-mta/exim ("virtual/mta" is blocking mail-mta/exim-4.69)
Total: 2 packages (2 new), Size of downloads: 0 kB
Conflict: 1 block (1 unsatisfied)                                               

 * Error: The above package list contains packages which cannot be              
 * installed at the same time on the same system.

It would be convienient if portage prompted to unmerge the offender. As in, "blocker $foo exists in the world file, would you like to unmerge this before continuing? (yes/no)"

This makes sense because I invoked emerge with -a, so it should ask me. Also, I explicitly called for the mutual blocker to be installed, it didn't get pulled in by something else.

Thanks for consideration. ;)
Comment 1 Zac Medico gentoo-dev 2014-12-26 13:33:45 UTC
We can fit this calculation into the depgraph _solve_non_slot_operator_slot_conflicts method, since blocker conflicts are very similar to slot conflicts.

We can add an --auto-unmask-keep-world [y|n] option, enable --auto-unmask-write for world and world_sets in /var/lib/portage, and add /var/lib/portage to CONFIG_PROTECT.