Browse Source

Merge pull request #7019 from bket/openssl_statically_linked

OpenBSD only - statically link OpenSSL (#6474)
TW 2 years ago
parent
commit
4c5bcf5e43
1 changed files with 7 additions and 5 deletions
  1. 7 5
      setup.py

+ 7 - 5
setup.py

@@ -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(