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