[Bug 273960] security/py-cryptography: `make test` fails with 'DEFAULT_VERSIONS+=ssl=openssl30'

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 20 Sep 2023 08:18:20 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273960

            Bug ID: 273960
           Summary: security/py-cryptography: `make test` fails with
                    'DEFAULT_VERSIONS+=ssl=openssl30'
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: sunpoet@FreeBSD.org
          Reporter: yasu@freebsd.org
             Flags: maintainer-feedback?(sunpoet@FreeBSD.org)
          Assignee: sunpoet@FreeBSD.org

On 13.2-RELEASE amd64 I add 'DEFAULT_VERSIONS+=ssl=openssl30' to /etc/make.conf
and do `cd /usr/ports/security/py-cryptography; make test`. Then it fails as
following.

----------------------------------------------------------------------
cd
/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/cryptography-41.0.3
&& /usr/bin/env
PYTHONPATH=/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/stage/usr/local/lib/python3.9/site-packages
/usr/local/bin/python3.9 -m pytest -k '' -rs -v -o addopts= 
ImportError while loading conftest
'/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/cryptography-41.0.3/tests/conftest.py'.
tests/conftest.py:9: in <module>
    from cryptography.hazmat.backends.openssl import backend as openssl_backend
../stage/usr/local/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/__init__.py:7:
in <module>
    from cryptography.hazmat.backends.openssl.backend import backend
../stage/usr/local/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py:13:
in <module>
    from cryptography import utils, x509
../stage/usr/local/lib/python3.9/site-packages/cryptography/x509/__init__.py:7:
in <module>
    from cryptography.x509 import certificate_transparency
../stage/usr/local/lib/python3.9/site-packages/cryptography/x509/certificate_transparency.py:11:
in <module>
    from cryptography.hazmat.bindings._rust import x509 as rust_x509
E   ImportError:
/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/stage/usr/local/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so:
Undefined symbol "EVP_default_properties_is_fips_enabled"
*** Error code 4

Stop.
make: stopped in /usr/ports/security/py-cryptography
----------------------------------------------------------------------

I check shared libraies liked to _rust.abi3.so and get following result.

----------------------------------------------------------------------
root@rolling-vm-freebsd5[93]# ldd
/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/stage/usr/local/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so 
/usr0/freebsd/ports/work/usr/ports/security/py-cryptography/work-py39/stage/usr/local/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so:
        libssl.so.111 => /usr/lib/libssl.so.111 (0x22a9a2f7f000)
        libcrypto.so.111 => /lib/libcrypto.so.111 (0x22a9a42f5000)
        libthr.so.3 => /lib/libthr.so.3 (0x22a9a55c6000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x22a9a5719000)
        libc.so.7 => /lib/libc.so.7 (0x22a99f91d000)
root@rolling-vm-freebsd5[94]#
----------------------------------------------------------------------

Since 'DEFAULT_VERSIONS+=ssl=openssl30' is added to /etc/make.conf,
libcrypto.so and libssl.so from openssl30 package should be linked. As you can
see, however, what are really linked are ones in base system. And probably this
is the cause of the runtime error.

I'm far from familiar with Rust. But I guess options to specify header files
path (${OPENSSLINC}) and libraries path (${OPENSSLLIB}) need to be passed to
Rust compiler.

-- 
You are receiving this mail because:
You are the assignee for the bug.