borgbackup / borg

Deduplicating archiver with compression and authenticated encryption.
https://www.borgbackup.org/
Other
11.24k stars 744 forks source link

borg2: `setup.py` does not support OpenBSD's current versions #8553

Open dertuxmalwieder opened 3 days ago

dertuxmalwieder commented 3 days ago

Have you checked borgbackup docs, FAQ, and open GitHub issues?

Yep.

Is this a BUG / ISSUE report or a QUESTION?

Bug, basically.

System information. For client/server mode post info for both machines.

Your borg version (borg -V).

None (can't).

Operating system (distribution) and version.

OpenBSD 7.6.

Describe the problem you're observing.

It is currently not possible to run pipx install borgbackup==2.0.0b14 on OpenBSD:

src/borg/crypto/low_level.c:16241:37: error: use of undeclared identifier 'EVP_aes_256_ocb'

As OpenBSD defaults to LibreSSL, Borg's setup.py contains a workaround; alas, that's outdated:

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"]

OpenBSD does not have OpenSSL 3.0 anymore (currently, 1.1, 3.2 and 3.3 are there), so trying to use this hard-coded path will fail.

Solution (idea)

Make the crypto library path(s) configurable (or, at least, the eopenssl30 part), so when OpenBSD drops 3.2 and 3.3, the port maintainer(s) only need to change an environment variable.