[MacPorts] #57794: wget: needs libmetalink and gpgme dependencies (or drop --with-metalink) (was: port:wget needs depspecs for metalink and gpgme (or drop --with-metalink))
MacPorts
noreply at macports.org
Thu Mar 14 00:53:42 UTC 2024
#57794: wget: needs libmetalink and gpgme dependencies (or drop --with-metalink)
---------------------+------------------------
Reporter: RJVB | Owner: ryandesign
Type: defect | Status: accepted
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: wget |
---------------------+------------------------
Changes (by ryandesign):
* status: assigned => accepted
* cc: janstary (added)
Comment:
I seem to have missed this ticket.
Replying to [ticket:57794 RJVB]:
> Port:wget is configured with `--with-metalink` but does not require
`port:libmetalink` and `port:gpgme` (which is an additional requirement
for this feature).
> PS: why the `--disable-xattr` and (to a lesser extent) `--disable-rpath`
configure options?
Looking at `git blame`, all three flags were
[changeset:126f8d18bf1c975c4f1dd32430c324bf770c3e4d/macports-ports added
by Jan] six years ago. [comment:ticket:56076:6 As I said in another
ticket], Jan's intention was not to enable or disable anything; it was to
make explicit what the configure script was already choosing to do before,
but a few mistakes were made, such as the unintentional disabling of
digest authentication which had to be re-enabled again. Looks like the
attempted enabling of metalink without also adding the libmetalink and
gpgme dependencies is another so I'll fix that.
I don't see a reason to add libassuan or libgpg-error dependencies. wget
does not link with them. They are both dependencies of gpgme; libgpgme
links with them. Back when this ticket was filed five years ago, gpgme had
a bug where its pkg-config file stated that users of gpgme needed to link
with libassuan and libgpg-error directly. (We call this "overlinking.")
That bug was
[https://github.com/gpg/gpgme/commit/4583ab77e5af3f0da5b307a169d07b58dddf652f
fixed in gpgme] in 2021. So it's not about keeping the dependency list as
short as possible; it's about specifying those libraries that the port
links with directly, and ensuring that the software is actually using the
libraries that it links with directly.
I also pointed out in [comment:ticket:56076:6 that comment] that disabling
of xattr support was a change. Looks like xattr support doesn't require
any additional libraries. I don't know why we'd want to disable it so I'll
turn it back on.
As for rpath, I really don't know. I know that dyld in macOS gained the
ability to work with libraries whose install names begin with `@rpath` in
Mac OS X 10.5 and that an executable or other library that wants to use
such a library needs to have an `LC_RPATH` attribute that specifies what
`@rpath` should be replaced with to actually find the library. I don't
know whether `--enable-rpath` is intended to build a library with an
`@rpath` install name, to add the `LC_RPATH` attribute to a library or
executable, both, or neither. Since macOS didn't have rpath support prior
to Mac OS X 10.5 and got along fine without it, I tend not to understand
why we would ever want to use it. Indeed, at times, we've had ports that
decided to build their libraries with `@rpath` and it caused problems and
they had to be changed to not do that; #61735 was an example of that. wget
doesn't install any libraries, and the executable that it installs is
linked with libraries installed by MacPorts which don't use `@rpath`, so I
can't see anything in the wget port that would need rpath. If I remove
`--disable-rpath` from the Portfile, then I find no case-insensitive
matches for `rpath` in the build log, so I don't think this option is
doing anything for us at all. So I don't have a strong opinion one way or
the other as to whether this flag should stay or go.
--
Ticket URL: <https://trac.macports.org/ticket/57794#comment:7>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list