Ticket #1286 (new defect)

Opened 4 years ago

Need Changes confused by suboptions and :* option dependencies

Reported by: moben Owned by:
Priority: Sometime Milestone:
Component: core/paludis/resolver Version: 1.4.1
Keywords: Cc:
Blocked By: Blocking:
Distribution: Exherbo

Description

For :*? dependencies on suboptions, paludis suggests non-sensical changes. Where only one suboption would need to be enabled, it suggests to enable all but the one that is enabled in user configuration.

For :* and :*= dependencies, it seems unable to come up with any suggestion.

Minimal example:

test/a-1.exheres-0

PLATFORMS="~amd64"                                                                                  
MYOPTIONS="python_abis: 2.7 3.2 3.3
test/b-1.exheres-0

PLATFORMS="~amd64"                                                                                  
MYOPTIONS="python_abis: 2.7 3.2 3.3
DEPENDENCIES="test/a[python_abis:*?]"
paludis/options.conf

test/a python_abis: -2.7 3.3
test/b python_abis: 2.7
cave resolve a b -X a

These are the actions I will take, in order:

n   test/a:0::test 1 to ::installed
    You need to change: PYTHON_ABIS: -2.7 -> 2.7 -3.2 -> 3.2 3.3 -> -3.3 No changes needed: build_options: symbols=compress jobs=5 dwarf_compress recommended_tests -trace work=tidyup
    Reasons requiring changes: restarted because of test/b-1:0::test Reasons: target, test/b-1:0::test

n   test/b:0::test 1 to ::installed
    PYTHON_ABIS: 2.7 -3.2 -3.3 build_options: symbols=compress jobs=5 dwarf_compress recommended_tests -trace work=tidyup
    Reasons: target

Total: 1 new installs

I cannot proceed without being permitted to do the following:

n   test/a:0::test 1 to ::installed
    You need to change: PYTHON_ABIS: -2.7 -> 2.7 -3.2 -> 3.2 3.3 -> -3.3 No changes needed: build_options: symbols=compress jobs=5 dwarf_compress recommended_tests -trace work=tidyup
    Reasons requiring changes: restarted because of test/b-1:0::test Reasons: target, test/b-1:0::test
    Cannot proceed without: user configuration changes

Explaining requested decisions:

For test/a:0::(install_to_slash):
    The following constraints were in action:
      * test/a, never using existing, installing to /
        Because of target
      * test/a[python_abis:*?], use existing if possible, installing to /
        Because of test/a[python_abis:*?] from test/b-1:0::test, key 'Dependencies', labelled 'build, run'
      * test/a[python_abis:2.7(-)][python_abis:3.2(-)][-python_abis:3.3(-)], use existing if possible, installing to /
        Because of restarted because of test/a[python_abis:*?] from test/b-1:0::test, key 'Dependencies', labelled 'build, run'
    The decision made was:
        Use origin ID test/a-1:0::test
        Install to repository installed
Expected result:
…
n   test/a:0::test 1 to ::installed
    You need to change: PYTHON_ABIS: -2.7 -> 2.7 No changes needed: PYTHON_ABIS: -3.2 3.3
…
Note: See TracTickets for help on using tickets.