Skip to content

Commit d41eac1

Browse files
committed
Extend the README, add instructions and support period
1 parent 0c05031 commit d41eac1

File tree

1 file changed

+41
-5
lines changed

1 file changed

+41
-5
lines changed

README.md

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,47 @@ approach, and while all header files have been ported (and successfully
2222
compile), some preprocessor artifacts still need to be ported (currently
2323
commented out and tagged with a `FIXME` note).
2424

25-
The latest version of this package aims to provide compatibility with
26-
[current versions of OpenSSL](https://www.openssl.org/news/changelog.html);
27-
to facilitate this, a build script will detect the OpenSSL version on the
28-
host system and configure the bindings appropriately. This will be done
29-
automatically when using these bindings with Dub.
25+
### Compatibility
26+
27+
The latest version (v3.x and later) of this package aims to provide compatibility with
28+
[current versions of OpenSSL](https://www.openssl.org/news/changelog.html).
29+
30+
The supported versions are all versions available on non-EOL Ubuntu LTS,
31+
which is roughly equivalent to a 10 years support.
32+
For Ubuntu versions under standard support, the version can be checked online,
33+
for example [here](https://packages.ubuntu.com/jammy/openssl).
34+
35+
| Ubuntu version | OpenSSL version | Supported until |
36+
|:--------------------:|:---------------:|:---------------:|
37+
| 14.04 (Trusty) | [1.0.1f](https://web.archive.org/web/20161208174333/https://packages.ubuntu.com/trusty/openssl) | April 2024 |
38+
| 16.04 (Xenial) | [1.0.2g](https://web.archive.org/web/20161021100827/http://packages.ubuntu.com/xenial/openssl) | April 2026 |
39+
| 18.04 (Bionic) | [1.1.0g / 1.1.1](https://web.archive.org/web/20161021100827/http://packages.ubuntu.com/xenial/openssl) | April 2028 |
40+
| 20.04 (Focal) | [1.1.1f](https://web.archive.org/web/20210417090632/https://packages.ubuntu.com/focal/openssl) | April 2030 |
41+
| 22.04 (Jammy) | [3.0.2](https://web.archive.org/web/20220606092159/https://packages.ubuntu.com/jammy/openssl) | April 2032 |
42+
43+
44+
To allow supporting multiple OpenSSL versions from the same D bindings,
45+
a build script exists to detect the OpenSSL version on the host system,
46+
which then writes a version file the bindings will use.
47+
This script depends on `pkg-config` being present, and is automatically
48+
invoked when building with `dub`.
49+
50+
Other build systems can invoke the script directly and compile those bindings
51+
with `DeimosOpenSSLAutoDetect`.
52+
53+
When using Windows or wanting to avoid the script,
54+
`dub` users should depend on the subconfiguration `library-manual-version`,
55+
and define the version in their dub file (e.g. `"versions" : [ "DeimosOpenSSL_3_0" ]`).
56+
57+
A list of all available versions can be found in [deimos.openssl.opensslv](source/deimos/openssl/opensslv.d).
58+
59+
Only minor versions are listen, patch versions are binary compatible with one another.
60+
We use "minor" and "patch" with the [intended SemVer meaning](https://semver.org/).
61+
For example, 1.1.1g and 1.1.1a are two different patch releases of the same minor.
62+
Since OpenSSL v3.0.0, correct SemVer versioning is used.
63+
64+
All users not using the script should define the version corresponding to their OpenSSL version.
65+
In the event no version is defined, the bindings will default to v1.1.0h.
3066

3167
### License
3268

0 commit comments

Comments
 (0)