use openssl on openbsd, fixes #6474

This commit is contained in:
Thomas Waldmann 2022-04-14 12:14:15 +02:00
parent 3ef355a98f
commit c592b20262
3 changed files with 10 additions and 1 deletions

1
Vagrantfile vendored
View File

@ -78,6 +78,7 @@ def packages_openbsd
pkg_add lz4
pkg_add zstd
pkg_add git # no fakeroot
pkg_add openssl%1.1
pkg_add py3-pip
pkg_add py3-virtualenv
EOF

View File

@ -162,7 +162,7 @@ following dependencies first:
* `Python 3`_ >= 3.9.0, plus development headers.
* Libraries (library plus development headers):
- OpenSSL_ >= 1.1.1
- OpenSSL_ >= 1.1.1 (LibreSSL will not work)
- libacl_ (which depends on libattr_)
- liblz4_ >= 1.7.0 (r129)
- libzstd_ >= 1.3.0

View File

@ -23,6 +23,7 @@ sys.path += [os.path.dirname(__file__)]
import setup_docs
is_win32 = sys.platform.startswith('win32')
is_openbsd = sys.platform.startswith('openbsd')
# Number of threads to use for cythonize, not used on windows
cpu_threads = multiprocessing.cpu_count() if multiprocessing and multiprocessing.get_start_method() != 'spawn' else None
@ -156,9 +157,15 @@ if not on_rtd:
f"or ensure {lib_pkg_name}.pc is in PKG_CONFIG_PATH."
)
crypto_ldflags = []
if is_win32:
crypto_ext_lib = lib_ext_kwargs(
pc, 'BORG_OPENSSL_PREFIX', 'libcrypto', 'libcrypto', '>=1.1.1', lib_subdir='')
elif is_openbsd:
# use openssl (not libressl) because we need AES-OCB and CHACHA20-POLY1305 via EVP api
crypto_ext_lib = lib_ext_kwargs(
pc, 'BORG_OPENSSL_PREFIX', 'crypto', 'libecrypto11', '>=1.1.1')
crypto_ldflags += ['-Wl,-rpath=/usr/local/lib/eopenssl11']
else:
crypto_ext_lib = lib_ext_kwargs(
pc, 'BORG_OPENSSL_PREFIX', 'crypto', 'libcrypto', '>=1.1.1')
@ -167,6 +174,7 @@ if not on_rtd:
dict(sources=[crypto_ll_source, crypto_helpers]),
crypto_ext_lib,
dict(extra_compile_args=cflags),
dict(extra_link_args=crypto_ldflags),
)
compress_ext_kwargs = members_appended(