1 |
v2, with additional 'emerge --deselect': |
2 |
--- |
3 |
Title: LibreSSL support discontinued |
4 |
Author: Michał Górny <mgorny@g.o> |
5 |
Posted: 202x-xx-xx |
6 |
Revision: 1 |
7 |
News-Item-Format: 2.0 |
8 |
Display-If-Installed: dev-libs/libressl |
9 |
|
10 |
Starting 2021-02-01, Gentoo will no longer actively pursue supporting |
11 |
dev-libs/libressl as an alternative to dev-libs/openssl. While it will |
12 |
still be possible for expert users to use LibreSSL on their systems, |
13 |
we are only going to provide support for OpenSSL-based systems. Most |
14 |
importantly, we are no longer going to maintain downstream patches for |
15 |
LibreSSL support -- it will rely on either package upstreams merging |
16 |
such patches themselves, or LibreSSL upstream finally working towards |
17 |
better OpenSSL compatibility. |
18 |
|
19 |
On 2021-02-01, we will mask the relevant USE flags and packages. If |
20 |
you |
21 |
wish to continue using LibreSSL, you will be able to undo these masks |
22 |
for the time being. However, as packages drop patching for LibreSSL |
23 |
and the library is eventually removed from ::gentoo, it will become |
24 |
necessary to use the user-maintained LibreSSL overlay [1]. As long- |
25 |
term |
26 |
support for LibreSSL is not guaranteed, we recommend switching |
27 |
to OpenSSL instead. More information on removal can be found |
28 |
on the relevant bug [2]. |
29 |
|
30 |
To switch before the aforementioned date, remove 'libressl' from your |
31 |
USE flags and CURL_SSL targets. Afterwards, it is recommended to |
32 |
prefetch all the necessary distfiles before proceeding with the system |
33 |
upgrade, in case wget(1) becomes broken in the process: |
34 |
|
35 |
emerge --fetchonly dev-libs/openssl net-misc/wget |
36 |
emerge --fetchonly --changed-use @world |
37 |
|
38 |
A --changed-use @world upgrade should automatically cause LibreSSL |
39 |
to be replaced by OpenSSL, and all affected packages to be rebuilt: |
40 |
|
41 |
emerge --deselect dev-libs/libressl |
42 |
emerge --changed-use @world |
43 |
|
44 |
|
45 |
LibreSSL has been forked off OpenSSL in 2014 to address a number of |
46 |
problems with the original package. However, since then OpenSSL |
47 |
development gained speed and the original reasons for the fork no |
48 |
longer |
49 |
apply. Furthermore, LibreSSL started to repeatedly fall behind |
50 |
and cause growing compatibility problems. While initially these |
51 |
problems were related to packages using old/insecure OpenSSL APIs, |
52 |
today |
53 |
they are mostly related to LibreSSL missing newer OpenSSL APIs |
54 |
(yet declaring false compatibility with newer OpenSSL versions). |
55 |
|
56 |
With the little testing it gets, our developers and users had to put |
57 |
a significant effort into fixing upstream packages. In some cases |
58 |
(e.g. Qt), upstream has explicitly refused to support LibreSSL, forcing |
59 |
us to maintain the patches forever. This in turn means that |
60 |
security fixes, regular version bumps or end-user system upgrades are |
61 |
often delayed because of necessary LibreSSL patching. What is even |
62 |
worse, major runtime issues managed to sneak in that broke production |
63 |
systems running LibreSSL in the past. |
64 |
|
65 |
To the best of our knowledge, the only benefit LibreSSL has over |
66 |
OpenSSL |
67 |
right now is the additional libtls library. For this reason, we have |
68 |
packaged dev-libs/libretls which is a port of this library that links |
69 |
to OpenSSL. |
70 |
|
71 |
All these issued considered, we came to the conclusion that OpenSSL |
72 |
should remain the only supported production option for Gentoo systems. |
73 |
While the flexibility of Gentoo should make it possible to keep using |
74 |
LibreSSL going forward, the effort necessary to provide first-class |
75 |
official support for LibreSSL has proven to outweigh the benefit. |
76 |
|
77 |
[1] https://gitweb.gentoo.org/repo/proj/libressl.git/tree/README.md |
78 |
[2] https://bugs.gentoo.org/762847 |
79 |
--- |
80 |
|
81 |
|
82 |
|
83 |
|
84 |
-- |
85 |
Best regards, |
86 |
Michał Górny |