Gentoo Archives: gentoo-dev

From: Alexey Sokolov <alexey+gentoo@××××××××.org>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Discontinuing LibreSSL support?
Date: Tue, 29 Dec 2020 13:43:20
Message-Id: CAHK_jdjt7WwWbsDaXxYN7x+GRRck-E4TV9Q7T+Fd+DihJBHe7A@mail.gmail.com
In Reply to: Re: [gentoo-dev] [RFC] Discontinuing LibreSSL support? by David Seifert
1 вт, 29 дек. 2020 г. в 13:33, David Seifert <soap@g.o>:
2 >
3 > On Tue, 2020-12-29 at 13:21 +0000, Peter Stuge wrote:
4 > > Michał Górny wrote:
5 > > > > 2. Install them into different prefixes (eg /usr/lib/openssl +
6 > > > > /usr/lib/libressl and have the linker link to a specific version,
7 > > > > /usr/include/{openssl,libressl} too).
8 > > >
9 > > > For the record, this is something I've been wondering about for a
10 > > > long
11 > > > time. However, there are two problems with that: a small one
12 > > > and a huge one.
13 > > >
14 > > > The small problem is that this requires a lot of additional
15 > > > downstream
16 > > > work. I mean, you have to explicitly support the choice in ebuilds,
17 > > > and this means making things even harder for newcomers.
18 > >
19 > > pkg-config/pkgconf and .pc files can help with this part, taking care
20 > > of all abstraction if/when downstream uses a libressl.pc.
21 >
22 > As we have learned from the ncurses[tinfo] debacle, 80% of build systems
23 > don't use the .pc files, and just guess "-lssl" flags and a bunch of
24 > include dirs. Hence, this boils down to patching a mountain of build
25 > systems again, which while being the ultimately correct way, is a pipe
26 > dream.
27
28 If it's the ultimately correct way, such patches can be sent upstream,
29 regardless of whether libressl stays.
30
31 >
32 > > > The big problem is that (unless I'm mistaken) we won't be able to
33 > > > load
34 > > > LibreSSL and OpenSSL to the same executable. So we'd actually have
35 > > > to
36 > > > enforce that the whole link chain links to the same SSL provider,
37 > > > and effectively land pretty close to where we are now.
38 > >
39 > > I'd suggest investigating whether symbol versioning could help with
40 > > this,
41 > > or if the only way forward would indeed be to require some symbol
42 > > mangling/rewriting.
43 >
44 > While this sounds like a theoretical solution, it isn't tractable
45 > because
46 > 1. We're inventing our own ABI that is incompatible with everyone else's
47 > 2. We'd have to maintain a huge swamp of downstream patches
48 > 3. ABI can still break even with perfect symbol versioning
49 >
50 >