Skip to content

Commit

Permalink
Extend the README, add instructions and support period
Browse files Browse the repository at this point in the history
  • Loading branch information
Geod24 committed Jun 7, 2022
1 parent 0c05031 commit d41eac1
Showing 1 changed file with 41 additions and 5 deletions.
46 changes: 41 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,47 @@ approach, and while all header files have been ported (and successfully
compile), some preprocessor artifacts still need to be ported (currently
commented out and tagged with a `FIXME` note).

The latest version of this package aims to provide compatibility with
[current versions of OpenSSL](https://www.openssl.org/news/changelog.html);
to facilitate this, a build script will detect the OpenSSL version on the
host system and configure the bindings appropriately. This will be done
automatically when using these bindings with Dub.
### Compatibility

The latest version (v3.x and later) of this package aims to provide compatibility with
[current versions of OpenSSL](https://www.openssl.org/news/changelog.html).

The supported versions are all versions available on non-EOL Ubuntu LTS,
which is roughly equivalent to a 10 years support.
For Ubuntu versions under standard support, the version can be checked online,
for example [here](https://packages.ubuntu.com/jammy/openssl).

| Ubuntu version | OpenSSL version | Supported until |
|:--------------------:|:---------------:|:---------------:|
| 14.04 (Trusty) | [1.0.1f](https://web.archive.org/web/20161208174333/https://packages.ubuntu.com/trusty/openssl) | April 2024 |
| 16.04 (Xenial) | [1.0.2g](https://web.archive.org/web/20161021100827/http://packages.ubuntu.com/xenial/openssl) | April 2026 |
| 18.04 (Bionic) | [1.1.0g / 1.1.1](https://web.archive.org/web/20161021100827/http://packages.ubuntu.com/xenial/openssl) | April 2028 |
| 20.04 (Focal) | [1.1.1f](https://web.archive.org/web/20210417090632/https://packages.ubuntu.com/focal/openssl) | April 2030 |
| 22.04 (Jammy) | [3.0.2](https://web.archive.org/web/20220606092159/https://packages.ubuntu.com/jammy/openssl) | April 2032 |


To allow supporting multiple OpenSSL versions from the same D bindings,
a build script exists to detect the OpenSSL version on the host system,
which then writes a version file the bindings will use.
This script depends on `pkg-config` being present, and is automatically
invoked when building with `dub`.

Other build systems can invoke the script directly and compile those bindings
with `DeimosOpenSSLAutoDetect`.

When using Windows or wanting to avoid the script,
`dub` users should depend on the subconfiguration `library-manual-version`,
and define the version in their dub file (e.g. `"versions" : [ "DeimosOpenSSL_3_0" ]`).

A list of all available versions can be found in [deimos.openssl.opensslv](source/deimos/openssl/opensslv.d).

Only minor versions are listen, patch versions are binary compatible with one another.
We use "minor" and "patch" with the [intended SemVer meaning](https://semver.org/).
For example, 1.1.1g and 1.1.1a are two different patch releases of the same minor.
Since OpenSSL v3.0.0, correct SemVer versioning is used.

All users not using the script should define the version corresponding to their OpenSSL version.
In the event no version is defined, the bindings will default to v1.1.0h.

### License

Expand Down

0 comments on commit d41eac1

Please sign in to comment.