Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 654782 - sys-apps/portage-2.3.35: --autounmask-write fails on non satisfiable USE dependencies
Summary: sys-apps/portage-2.3.35: --autounmask-write fails on non satisfiable USE depe...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS, REGRESSION
Depends on:
Blocks: 651804
  Show dependency tree
 
Reported: 2018-05-04 01:06 UTC by Manuel Rüger (RETIRED)
Modified: 2018-06-02 00:05 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Rüger (RETIRED) gentoo-dev 2018-05-04 01:06:32 UTC
Steps to reproduce:
1. set /etc/portage/package.use dev-python/PyQt5 webkit
2. emerge --autounmask-write =retext-7.0.1-r1

emerge --autounmask --autounmask-write \=retext-7.0.1-r1 --backtrack=0                                                                                                   :(
Calculating dependencies... done!

!!! All ebuilds that could satisfy "=retext-7.0.1-r1" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-editors/retext-7.0.1-r1::gentoo (masked by: ~amd64 keyword)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

Expected output:
Autounmask fails because use dependencies are not-satisfiable. PyQt5 has a either webkit or webengine use operator. Retext requires webengine. 


Solution to solve it:
1. set /etc/portage/package.use dev-python/PyQt5 webengine webchannel
2. emerge --autounmask-write =retext-7.0.1-r1
Comment 1 Zac Medico gentoo-dev 2018-05-04 01:53:09 UTC
The behavior changed with this patch for bug 622462:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=d7f2fbd4a649fc81f00a22eb1633a193a988b5da

The debug log ends like this:

> autounmask breakage detected
> 
> forced reinstall atoms:
> 
> 
> slot operator dependencies:
> 
> 
> forced rebuilds:
> 
> 
> 
> The following keyword changes are necessary to proceed:
>  (see "package.accept_keywords" in the portage(5) man page for more details)
> # required by =retext-7.0.1-r1 (argument)
> =app-editors/retext-7.0.1-r1 ~amd64
> 
> !!! The ebuild selected to satisfy "dev-python/PyQt5[gui,network,printsupport,webengine,widgets,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]" has unmet requirements.
> - dev-python/PyQt5-5.9.2::gentoo USE="-bluetooth -dbus -debug -declarative -designer -examples -gles2 -gui -help -location -multimedia -network -opengl -positioning -printsupport -sensors -serialport -sql -svg -testlib -webchannel -webengine -webkit -websockets -widgets -x11extras -xmlpatterns" PYTHON_TARGETS="python2_7 python3_4 python3_6 -python3_5"
> 
>   The following REQUIRED_USE flag constraints are unsatisfied:
>     webengine? ( widgets? ( webchannel ) )
> 
>   The above constraints are a subset of the following complete expression:
>     any-of ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) bluetooth? ( gui ) declarative? ( gui network ) designer? ( widgets ) help? ( gui widgets ) location? ( positioning ) multimedia? ( gui network ) opengl? ( gui widgets ) positioning? ( gui ) printsupport? ( gui widgets ) sensors? ( gui ) serialport? ( gui ) sql? ( widgets ) svg? ( gui widgets ) testlib? ( widgets ) webchannel? ( network ) webengine? ( network widgets? ( printsupport webchannel ) ) webkit? ( gui network printsupport widgets ) websockets? ( network ) widgets? ( gui ) xmlpatterns? ( network )
> 
> (dependency required by "app-editors/retext-7.0.1-r1::gentoo" [ebuild])
> (dependency required by "=retext-7.0.1-r1" [argument])
> .
> 
>       Arg: =retext-7.0.1-r1
>      Atom: =app-editors/retext-7.0.1-r1
> ... done!
> forced reinstall atoms:
> 
> 
> slot operator dependencies:
> 
> 
> forced rebuilds:
> 
> 
> 
> !!! All ebuilds that could satisfy "=retext-7.0.1-r1" have been masked.
> !!! One of the following masked packages is required to complete your request:
> - app-editors/retext-7.0.1-r1::gentoo (masked by: ~amd64 keyword)
> 
> For more information, see the MASKED PACKAGES section in the emerge
> man page or refer to the Gentoo Handbook.
>
Comment 3 Larry the Git Cow gentoo-dev 2018-05-04 17:12:06 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=ce150da22e351a7ba52a6390b9cb7aa076c0c8ce

commit ce150da22e351a7ba52a6390b9cb7aa076c0c8ce
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-05-04 03:21:40 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-05-04 17:11:07 +0000

    depgraph.autounmask_breakage_detected: ignore REQUIRED_USE violations (bug 654782)
    
    When autounmask USE changes violate REQUIRED_USE, rather than
    recalculate with autounmask disabled, display the autounmask USE
    changes along with the REQUIRED_USE violation. Adjust unit tests
    to allow for the autounmask USE changes that were previously
    discarded. For the case reported in bug 654782, the output will
    appear as follows:
    
    The following keyword changes are necessary to proceed:
     (see "package.accept_keywords" in the portage(5) man page for more details)
    # required by =retext-7.0.1-r1 (argument)
    =app-editors/retext-7.0.1-r1 ~amd64
    
    The following USE changes are necessary to proceed:
     (see "package.use" in the portage(5) man page for more details)
    # required by app-editors/retext-7.0.1-r1::gentoo
    # required by =retext-7.0.1-r1 (argument)
    >=dev-python/PyQt5-5.9.2 printsupport webengine network gui widgets
    
    !!! The ebuild selected to satisfy "dev-python/PyQt5[gui,network,printsupport,webengine,widgets,python_targets_python3_4(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)]" has unmet requirements.
    - dev-python/PyQt5-5.9.2::gentoo USE="-bluetooth -dbus -debug -declarative -designer -examples -gles2 -gui -help -location -multimedia -network -opengl -positioning -printsupport -sensors -serialport -sql -svg -testlib -webchannel -webengine -webkit -websockets -widgets -x11extras -xmlpatterns" PYTHON_TARGETS="python2_7 python3_4 python3_6 -python3_5"
    
      The following REQUIRED_USE flag constraints are unsatisfied:
        webengine? ( widgets? ( webchannel ) )
    
      The above constraints are a subset of the following complete expression:
        any-of ( python_targets_python2_7 python_targets_python3_4 python_targets_python3_5 python_targets_python3_6 ) bluetooth? ( gui ) declarative? ( gui network ) designer? ( widgets ) help? ( gui widgets ) location? ( positioning ) multimedia? ( gui network ) opengl? ( gui widgets ) positioning? ( gui ) printsupport? ( gui widgets ) sensors? ( gui ) serialport? ( gui ) sql? ( widgets ) svg? ( gui widgets ) testlib? ( widgets ) webchannel? ( network ) webengine? ( network widgets? ( printsupport webchannel ) ) webkit? ( gui network printsupport widgets ) websockets? ( network ) widgets? ( gui ) xmlpatterns? ( network )
    
    (dependency required by "app-editors/retext-7.0.1-r1::gentoo" [ebuild])
    (dependency required by "=retext-7.0.1-r1" [argument])
    
    Bug: https://bugs.gentoo.org/654782
    Reviewed-by: M. J. Everitt <m.j.everitt@iee.org>

 pym/_emerge/depgraph.py                            |  8 ++--
 pym/portage/tests/resolver/test_autounmask.py      | 48 ++++++++++++++++++++--
 pym/portage/tests/resolver/test_slot_collisions.py | 20 +++++----
 3 files changed, 61 insertions(+), 15 deletions(-)
Comment 4 Zac Medico gentoo-dev 2018-06-02 00:05:42 UTC
Fixed since portage-2.3.36.