[MacPorts] #15712: Add versions to platforms

MacPorts noreply at macports.org
Sat Mar 31 19:20:06 UTC 2018


#15712: Add versions to platforms
--------------------------+----------------------------
  Reporter:  raimue       |      Owner:  larryv
      Type:  enhancement  |     Status:  assigned
  Priority:  Normal       |  Milestone:  MacPorts 2.6.0
 Component:  base         |    Version:
Resolution:               |   Keywords:
      Port:               |
--------------------------+----------------------------

Comment (by mojca):

 In my opinion, if blacklisting and whitelisting are both present, then
 start with whitelist and additionally remove all blacklisted ones from
 that list. After all, if one dependency can only be installed on 10.13
 (say that's the whitelist) and the other dependency cannot be installed on
 anything newer than 10.9 (blacklist) ... you cannot really install that
 port, can you? Same with
 {{{
 #!C
 if (darwin_version == 13) {
   if (!(darwin_version > 9)) {
     printf("supported"); // this will not be printed
   }
 }
 }}}

 What we could also do is support just blacklisting. If one particular port
 is supported on `darwin10`, `darwin12` and `darwin13`, you do something in
 this sense (please ignore the exact syntax, I just want to convey the
 meaning for now):
 {{{
 platforms-blacklist[-append] {darwin < 10} darwin11 {darwin >= 14}
 }}}
 I would really like to see the ability to proliferate this information
 from PortGroups or potentially even dependencies. If one port depends on
 `qt5` which cannot be compiled on older systems, then this port (or any
 other dependent port of `qt5`) should have those darwin versions
 blacklisted as well.

 As far as the current meaning of `platforms` is concerned: given that we
 are developing and testing the packages almost exclusively on macOS
 anyway, I indeed find the current value of `platforms` of limited value.
 It's officially forbidden to exclude it, but we currently don't accept any
 package that would only compile on linux for example, so `darwin` would
 always be implied, while the lack of `linux` does not mean that the
 package cannot be compiled on linux and nobody would ever notice that this
 value is "missing".

 It could make more sense to use (pseudocode):
 {{{
 also-tested-on linux freebsd
 }}}

 or something along those lines. We currently have absolutely no way to
 actually tell that one particular package doesn't compile on linux or
 solaris (and most packages don't - not because the software would not
 compile, but because the Portfile is totally mac-centric).

 Totally off-topic. I was just reading Bootstrap tutorial, according to
 their logic we would specify (in pseudocode):
 {{{
 platforms blacklist-darwin-9-down blacklist-darwin-11 blacklist-
 darwin-14-up
 }}}
 They support whitelisting as well, but I didn't test what happens when you
 do both in the same string. If you do them separately (nested),
 blacklisting would always win.

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


More information about the macports-tickets mailing list