[MacPorts] #64291: gettext libraries are not automatically installed universal when required

MacPorts noreply at macports.org
Sat Dec 25 16:20:02 UTC 2021


#64291: gettext libraries are not automatically installed universal when required
------------------------+---------------------
 Reporter:  ryandesign  |      Owner:  (none)
     Type:  defect      |     Status:  new
 Priority:  Normal      |  Milestone:
Component:  ports       |    Version:  2.7.1
 Keywords:  universal   |       Port:  gettext
------------------------+---------------------
 Per #64288, libintl.dylib was not installed universal when a port was
 installed that required it (MacVim, which only supports x86_64, on an
 arm64 machine). I believe this happened because gettext was recently split
 into several subports. The libraries are now in the gettext-runtime port.
 But MacVim still declares a dependency only on the parent gettext port,
 which itself declares `installs_libs no`. While this is true, it causes
 MacPorts not to check the architectures of gettext or apparently any of
 its dependencies such as gettext-runtime.

 The intended solution is for all ports that use gettext to declare correct
 dependencies on exactly which components they use. See
 https://github.com/macports/macports-
 ports/pull/7399#issuecomment-650851785:

 > Additionally ports that depend on gettext should change their
 dependencies. So a port that previously used:
 >
 > {{{
 > depends_lib         port:gettext
 > }}}
 >
 > would change it to:
 >
 > {{{
 > depends_build       port:gettext
 > depends_lib         port:gettext-runtime
 > }}}
 >
 > Making this change in the almost 500 ports that use gettext isn't going
 to be fun.

 I originally said that `license_noconflict gettext` would need to be set
 in each port too, but then suggested that we might be able to remove that
 requirement if we split the ports further and added `installs_libs no` to
 gettext, both of which were subsequently done. When I made that suggestion
 I was only thinking of the distributability implications of `installs_libs
 no`; I hadn't considered that it would turn off the architecture checks.

 Maybe the best workaround for now is to comment out `installs_libs no` in
 gettext. Does anyone agree or have a better solution?

 Or should we make a mad replacement of all gettext dependencies in all
 ports? Technically that should be accompanied by a revbump for each port
 which will take a terribly long time to build. Probably best if we clearly
 communicate the need to change the gettext dependency in each port on the
 mailing list and give maintainers some time to make the change naturally
 as each port is updated. We can do a batch fix of remaining ports at a
 later time.

-- 
Ticket URL: <https://trac.macports.org/ticket/64291>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list