diff --git a/Vagrantfile b/Vagrantfile index 7c4ce7651..eac31e5e8 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -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 diff --git a/docs/man/borg.1 b/docs/man/borg.1 index 4d235eae7..5d2d922b8 100644 --- a/docs/man/borg.1 +++ b/docs/man/borg.1 @@ -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 diff --git a/docs/usage/general/environment.rst.inc b/docs/usage/general/environment.rst.inc index d88133fa0..54be64432 100644 --- a/docs/usage/general/environment.rst.inc +++ b/docs/usage/general/environment.rst.inc @@ -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 diff --git a/setup.py b/setup.py index 2d4346927..b25191d73 100644 --- a/setup.py +++ b/setup.py @@ -132,23 +132,23 @@ def lib_ext_kwargs(pc, prefix_env_var, lib_name, lib_pkg_name, pc_version, lib_s 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(