[paludis-dev] [Paludis] #1267: cave suggests "--permit-old-version" on keyword masked versions, that are newer than the latest unmasked version

Paludis trac-paludis at exherbo.org
Fri Oct 3 13:56:01 UTC 2014


#1267: cave suggests "--permit-old-version" on keyword masked versions, that are
newer than the latest unmasked version
-----------------------------+--------------------
    Reporter:  christian.    |      Owner:
        Type:  defect        |     Status:  new
    Priority:  Sometime      |  Milestone:
   Component:  clients/cave  |    Version:  0.82.0
  Resolution:                |   Keywords:
  Blocked By:                |   Blocking:
Distribution:  N/A           |
-----------------------------+--------------------

Comment (by christian.):

 '''TL;DR''': While revisiting this ticket, I just realized, that this
 report is invalid because it's based on a wrong assumption of mine. Sorry,
 for wasting your time.

 ----

 I was just checking if this report is still valid with 2.0.0: It is. Since
 I could not replicate the issue with the actual packages, I made a minimal
 test case:

 * 2 packages: `some-cat/target-1` and `some-cat/dependency-{1,2}`, all in
 slot "0", no sub-slots
 * `some-cat/target` has ''exact'' dependency `=some-cat/dependency-1`
 * it's actually much simpler than the original issue

 This is the resulting output:

 {{{
 # cave resolve some-cat/target --explain some-cat/dependency
 Done: 13 steps

 These are the actions I will take, in order:

 -n  some-cat/dependency:0::sandbox (not the best version) 1 to ::installed
     "dependency"
     build_options: symbols=split -dwarf_compress -optional_tests -trace
 work=tidyup
     Reasons: some-cat/target-1:0::sandbox
     Masked by keyword
         Keywords ~amd64 ~x86

 n   some-cat/target:0::sandbox 1 to ::installed
     "target"
     build_options: symbols=split -dwarf_compress -optional_tests -trace
 work=tidyup
     Reasons: target

 Total: 1 new installs

 Build Options:
     dwarf_compress:                Compress DWARF2+ debug information
     optional_tests:                Run tests considered by the package to
 be optional
     symbols:                       How to handle debug symbols in
 installed files
     trace:                         Trace actions executed by the package
 (very noisy, for debugging broken builds only)
     work:                          Whether to preserve or remove working
 directories

 I cannot proceed without being permitted to do the following:

 -n  some-cat/dependency:0::sandbox (not the best version) 1 to ::installed
     "dependency"
     build_options: symbols=split -dwarf_compress -optional_tests -trace
 work=tidyup
     Reasons: some-cat/target-1:0::sandbox
     Masked by keyword
         Keywords ~amd64 ~x86
     Cannot proceed without: --permit-old-version, being unmasked

 Explaining requested decisions:

 For some-cat/dependency:0::(install_to_slash):
     The following constraints were in action:
       * =some-cat/dependency-1, use existing if possible, installing to /
         Because of =some-cat/dependency-1 from some-
 cat/target-1:0::sandbox, key 'Build dependencies', labelled 'DEPEND'
     The decision made was:
         Use origin ID some-cat/dependency-1:0::sandbox
         Install to repository installed
 Executing pretend actions: 2 of 2

  * No unread news items found
 }}}

 and here it is with
 {{{
 =some-cat/dependency-1 ~amd64
 }}}
 in `keywords.conf`, whereas no "--permit-old-version" is needed

 {{{
  # cave resolve some-cat/target --explain some-cat/dependency
 Done: 13 steps

 These are the actions I will take, in order:

 n   some-cat/dependency:0::sandbox 1 to ::installed
     "dependency"
     build_options: symbols=split -dwarf_compress -optional_tests -trace
 work=tidyup
     Reasons: some-cat/target-1:0::sandbox

 n   some-cat/target:0::sandbox 1 to ::installed
     "target"
     build_options: symbols=split -dwarf_compress -optional_tests -trace
 work=tidyup
     Reasons: target

 Total: 2 new installs

 Build Options:
     dwarf_compress:                Compress DWARF2+ debug information
     optional_tests:                Run tests considered by the package to
 be optional
     symbols:                       How to handle debug symbols in
 installed files
     trace:                         Trace actions executed by the package
 (very noisy, for debugging broken builds only)
     work:                          Whether to preserve or remove working
 directories

 Explaining requested decisions:

 For some-cat/dependency:0::(install_to_slash):
     The following constraints were in action:
       * =some-cat/dependency-1, use existing if possible, installing to /
         Because of =some-cat/dependency-1 from some-
 cat/target-1:0::sandbox, key 'Build dependencies', labelled 'DEPEND'
     The decision made was:
         Use origin ID some-cat/dependency-1:0::sandbox
         Install to repository installed
 Executing pretend actions: 2 of 2

  * No unread news items found
 }}}

 I realize now, that the description is misleading and symptomatic for my
 misconception; should be more like: 'cave suggests "--permit-old-version"
 on keyword masked version, even if a newer (also masked) version would not
 satisfy constraints' and thus the report is basically invalid:

 If you put

 {{{
 some-cat/dependency ~amd64
 }}}

 into `keywords.conf` `--permit-old-version` is obviously required. I
 realize most people would not be that specific like me when unmasking a
 package. So I come to the conclusion that `cave` actually just covers all
 the bases (unmasking specific version or all versions) and there is really
 nothing to fix or improve here. Even if one might infer from the message
 `Cannot proceed without: --permit-old-version, being unmasked`, that the
 specific version must be unmasked, the other option (unmasking all
 versions) is possible and `cave` does not specify how the user should
 proceed. I would close this ticket as "invalid" if I could.

-- 
Ticket URL: <http://paludis.exherbo.org/trac/ticket/1267#comment:2>
Paludis <http://paludis.exherbo.org/>
Paludis, the Other Package Mangler


More information about the paludis-dev mailing list