OpenBSD only - statically link OpenSSL (#6474)

Avoid conflicting with shared libcrypto from the base OS pulled in via
dependencies.
This commit is contained in:
Björn Ketelaars 2022-09-10 17:23:56 +02:00
parent b6469bb7d7
commit 730fca5bcc
1 changed files with 7 additions and 5 deletions

View File

@ -154,13 +154,15 @@ if not on_rtd:
f"or ensure {lib_pkg_name}.pc is in PKG_CONFIG_PATH."
)
crypto_ldflags = []
crypto_extra_objects = []
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"]
# Use openssl (not libressl) because we need AES-OCB via EVP api. Link
# it statically to avoid conflicting with shared libcrypto from the base
# OS pulled in via dependencies.
crypto_ext_lib = {"include_dirs": ["/usr/local/include/eopenssl11"]}
crypto_extra_objects += ["/usr/local/lib/eopenssl11/libcrypto.a"]
else:
crypto_ext_lib = lib_ext_kwargs(pc, "BORG_OPENSSL_PREFIX", "crypto", "libcrypto", ">=1.1.1")
@ -168,7 +170,7 @@ if not on_rtd:
dict(sources=[crypto_ll_source]),
crypto_ext_lib,
dict(extra_compile_args=cflags),
dict(extra_link_args=crypto_ldflags),
dict(extra_objects=crypto_extra_objects),
)
compress_ext_kwargs = members_appended(