[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