[MacPorts] #64353: opencv3 has undocumented dependencies

MacPorts noreply at macports.org
Mon Jan 10 17:20:09 UTC 2022


#64353: opencv3 has undocumented dependencies
-------------------------+----------------------
  Reporter:  mouse07410  |      Owner:  mascguy
      Type:  defect      |     Status:  assigned
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:
Resolution:              |   Keywords:
      Port:  opencv3     |
-------------------------+----------------------

Comment (by kencu):

 Replying to [comment:36 mouse07410]:
 > > In each case, base selected your first default compiler. .  .  .
 > > I find it works exactly the way I would expect it to .  .  .
 >
 > I thought it should select the first compiler ''that satisfies all of
 the port constraints''!

 default_compilers is a bigger stick. It assumes you want to use that
 compiler as the default, and it returns your compiler list before things
 like openmp are considered:

 https://github.com/macports/macports-
 base/blob/ee6096ce3789742a7961b98bb87abf06b48d2d12/src/port1.0/portconfigure.tcl#L1247


 \\


 > Does not this ticket qualify as a reproducible example, using port
 {{{opencv3}}}?

 No.

 1. you indicated that you felt clang-9.0 was a bit old as the first
 macports-clang-N compiler to be used, and so Josh changed that, with
 already quite some opposition expressed about that change based on the
 newer compiler possibly breaking builds that currently work fine.
 2. you wanted the fix to be an even newer macports-clang compiler. See
 point 1.
 3. I suggested two different ways you could change things to the way you
 want them to be on your system. Either adjust
 {{{_resources/port1.0/compilers/clang_compilers.tcl#L16}}} as you wish, or
 set {{{default_compilers}}}. In your case, looks like the first option
 suits you better as you want MacPorts to override your choices based on
 settings in the Portfiles, but YMMV.

 Everything is working 100% as expected to me.

 \\






 > In fact, only if {{{macports-clang-13}}} is the ''first'' in the
 {{{default_compilers}}} list, it's picked. I think it's a reproducible
 evidence of the failure of the algorithm logic.
 >
 > Or am I missing something?

 Perhaps. I find it is reproducible evidence of the algorithm working.

 {{{default_compilers}}} is picking the first default compiler you
 specified.  It does not do a lot of further analysis. Everything is
 working 100% as expected to me.

 As above, you might prefer:

 To get what you want, which seems to be that you want 99.99% of the
 standard compiler selection mechanism working as it is, but you just want
 the order of macports-clang-N selection changing, you might be happier if
 you adjusted that list on your system slightly. It lives here:

 ​https://github.com/macports/macports-
 ports/blob/f26cfe7b3e3961d120d8b6212c219b9a752cddeb/_resources/port1.0/compilers/clang_compilers.tcl#L16

 and just add your macports-clang-13 to the top of your list instead of
 lower down (as it is now), or any order of compilers you care to use.

-- 
Ticket URL: <https://trac.macports.org/ticket/64353#comment:37>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list