mirror of
https://github.com/borgbackup/borg.git
synced 2026-10-12 02:11:36 +00:00
borg2 - Support other OpenSSL versions on OpenBSD
`setup.py` hardcoded crypto library paths for OpenBSD, causing build issue when OpenBSD drops specific OpenSSL version. Solution is to make paths configurable. Addresses #8553.
This commit is contained in:
Vendored
+1
@@ -84,6 +84,7 @@ def packages_openbsd
|
||||
pkg_add openssl%3.0
|
||||
pkg_add py3-pip
|
||||
pkg_add py3-virtualenv
|
||||
echo 'export BORG_OPENSSL_NAME=eopenssl30' >> ~vagrant/.bash_profile
|
||||
EOF
|
||||
end
|
||||
|
||||
|
||||
@@ -662,6 +662,9 @@ operations), see \fI\%tempfile\fP for details.
|
||||
.B Building:
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
.B BORG_OPENSSL_NAME
|
||||
Defines the subdirectory name for OpenSSL (setup.py).
|
||||
.TP
|
||||
.B BORG_OPENSSL_PREFIX
|
||||
Adds given OpenSSL header file directory to the default locations (setup.py).
|
||||
.TP
|
||||
|
||||
@@ -198,6 +198,8 @@ Directories and files:
|
||||
operations), see tempfile_ for details.
|
||||
|
||||
Building:
|
||||
BORG_OPENSSL_NAME
|
||||
Defines the subdirectory name for OpenSSL (setup.py).
|
||||
BORG_OPENSSL_PREFIX
|
||||
Adds given OpenSSL header file directory to the default locations (setup.py).
|
||||
BORG_LIBACL_PREFIX
|
||||
|
||||
@@ -132,23 +132,23 @@ if not on_rtd:
|
||||
f"or ensure {lib_pkg_name}.pc is in PKG_CONFIG_PATH."
|
||||
)
|
||||
|
||||
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 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/eopenssl30"]}
|
||||
crypto_extra_objects += ["/usr/local/lib/eopenssl30/libcrypto.a"]
|
||||
openssl_prefix = os.environ.get("BORG_OPENSSL_PREFIX", "/usr/local")
|
||||
openssl_name = os.environ.get("BORG_OPENSSL_NAME", "eopenssl33")
|
||||
crypto_ext_lib = dict(
|
||||
include_dirs=[os.path.join(openssl_prefix, "include", openssl_name)],
|
||||
extra_objects=[os.path.join(openssl_prefix, "lib", openssl_name, "libcrypto.a")],
|
||||
)
|
||||
else:
|
||||
crypto_ext_lib = lib_ext_kwargs(pc, "BORG_OPENSSL_PREFIX", "crypto", "libcrypto", ">=1.1.1")
|
||||
|
||||
crypto_ext_kwargs = members_appended(
|
||||
dict(sources=[crypto_ll_source]),
|
||||
crypto_ext_lib,
|
||||
dict(extra_compile_args=cflags),
|
||||
dict(extra_objects=crypto_extra_objects),
|
||||
dict(sources=[crypto_ll_source]), crypto_ext_lib, dict(extra_compile_args=cflags)
|
||||
)
|
||||
|
||||
compress_ext_kwargs = members_appended(
|
||||
|
||||
Reference in New Issue
Block a user