Re: Generic binaries depending on libcurl3

Thomas Leonard <[email protected]> Mon, 9 Dec 2019 12:06:15 +0000
Newsgroups gmane.comp.file-systems.zero-install.devel
Message-ID <CAG4opy-LTZ3ZSKd9mdEtfAijaC88oK+jWq_dM9a9_fdno6MHBw@mail.gmail.com>
On Sat, 23 Nov 2019 at 14:03, Thomas Leonard <[email protected]> wrote:
>
> On Sun, 17 Nov 2019 at 18:37, Bastian Eicher <[email protected]> wrote:
> >
> > The generic Linux binaries for 0install
> > (https://0install.net/injector.html#linux-generic) depend on libcurl3.
> > However, this library is no longer available in Debian starting with Buster
> > or Ubuntu starting with 18.10.
> >
> > Installing the suggested replacement library libcurl4 results in:
> > 0install: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3'
> > not found (required by 0install)
> >
> > Maybe we should look back into possibilities for statically linking
> > 0install's dependencies?
>
> This Dockerfile seems to work now (using the latest Alpine edge,
> building from a 0install Git clone):
[...]

I tried a few more things with this. The situation is:

- If we statically link everything on Alpine then we can't use GTK,
because the statically-linked libmusl doesn't support dynamic linking.
- If we dynamically link libmusl then we get a dependency on libmusl
and it doesn't work anywhere except Alpine.
- If we build on Debian then we only get a dependency on glibc, but it
has lots of symbols that aren't on Alpine, etc.

I also tried using cohttp/ocaml-tls as an alternative to libcurl
(https://github.com/0install/0install/pull/122). That avoids the above
problems, but it seems that ocaml-tls doesn't work with all web-sites.
For example, the set of ciphers supported by GitLab doesn't seem to
intersect with the set supported by ocaml-tls, so you just get a
handshake failure.

We could use cohttp with openssl, but I seem to recall that openssl is
no better at binary compatibility than libcurl.


-- 
talex5 (GitHub/Twitter)        http://roscidus.com/blog/
GPG: 5DD5 8D70 899C 454A 966D  6A51 7513 3C8F 94F6 E0CC