@@ -22,11 +22,47 @@ approach, and while all header files have been ported (and successfully
22
22
compile), some preprocessor artifacts still need to be ported (currently
23
23
commented out and tagged with a ` FIXME ` note).
24
24
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.
30
66
31
67
### License
32
68
0 commit comments