[MacPorts] #70127: Using a newer libcurl from "base"
MacPorts
noreply at macports.org
Sat Jun 1 11:58:55 UTC 2024
#70127: Using a newer libcurl from "base"
--------------------------+--------------------
Reporter: RJVB | Owner: (none)
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: base | Version:
Resolution: | Keywords:
Port: |
--------------------------+--------------------
Comment (by RJVB):
Replying to [comment:4 kencu]:
> If that is actually not necessary, and the libcurl abi has not changed
in years and the calls and structures remain the exact same over all the
years —- that would be…unexpected…. but would make things much simpler.
For OS X 10.9 my memory tells me I saw "2.7.2" in the system curl-config
yesterday; I think that rather means the system has version 7.2.x . My
Linux rig has system libcurl 7.35.0 . Both systems have `port:curl`
currently at 8.7.1 . I have done the hack I described on both, making it
`Pextlib.so` link to a copy of `libcurl` (`+gnutls` as stated) installed
in the same directory. A bit more involved to achieve on Linux but we
don't need to get into that here.
And as said, I have yet to notice any problems.
Which isn't in fact unexpected at all if you look at the SOVERSION, which
has been `4` since those 2.7 series AFAICT. In fact, the DebUntu packaging
suggests that even applications built against SOVERSION 3 can run against
SOVERSION 4; the library's runtime package is called `libcurl3` (or
`libcurl3-gnutls`) and installs `libcurl.so.4.3.0` which gets exposed as
both `libcurl.so.4` (as you'd expect) but also as `libcurl.so.3` . I
actually had to double-check if that wasn't a hack I made, but no, it's
really packaged like that. I think we can trust the people behind Debian
(and the commercial entity behind Ubuntu) to have checked the validity of
this thoroughly. MacPorts probably only uses a subset of libcurl
functionality, too.
As usual one should expect to be able to build against one version and
then run against an older version. But that should never be the case here.
FWIW, I been using `port:MacPorts-devel` for years now to
build+destroot+(d)pkg my MacPorts installs (sorry but not sorry to
whomever it was who told me once that "MacPorts is not a build system" ;)
). That means I have a certain preference to keep the number of
assumptions about local modifications/additions to system software as
small as possible.
(It also means I was quite annoyed I had to restore and maintain the
`dpkg` functionality but that's yet another issue.)
Anyway, how much work and how tricky would it be to make `curl.c` load
whatever it needs from libcurl dynamically? I'm not against digging into
that but if there's already idea of what I'd be getting into I also not
against knowing that beforehand :)
--
Ticket URL: <https://trac.macports.org/ticket/70127#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list