Opened 10 months ago

Last modified 10 months ago

#72017 assigned defect

py313-krb5 @0.7.0: OSError: dlopen(libkrb5.so, 6): image not found

Reported by: barracuda156 Owned by: petrrr
Priority: Normal Milestone:
Component: ports Version: 2.10.5
Keywords: tiger leopard snowleopard Cc:
Port: py313-krb5

Description

--->  Checksumming krb5-0.7.0.tar.gz
--->  Extracting py313-krb5
--->  Extracting krb5-0.7.0.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/py-krb5/krb5-0.7.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
--->  Configuring py313-krb5
--->  Building py313-krb5
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/work 
* Getting build dependencies for wheel...
Using krb5-config at 'krb5-config'
Using libkrb5.so as Kerberos module for platform checks
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
    ~~~~^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
                             ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
    return hook(config_settings)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
    self.run_setup()
    ~~~~~~~~~~~~~~^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/setuptools/build_meta.py", line 320, in run_setup
    exec(code, locals())
    ~~~~^^^^^^^^^^^^^^^^
  File "<string>", line 209, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ctypes/__init__.py", line 390, in __init__
    self._handle = _dlopen(self._name, mode)
                   ~~~~~~~^^^^^^^^^^^^^^^^^^
OSError: dlopen(libkrb5.so, 6): image not found

ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/work 
Exit code: 1
Error: Failed to build py313-krb5: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-krb5/py313-krb5/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port py313-krb5 failed

Change History (8)

comment:1 Changed 10 months ago by barracuda156

Not surprising, since upstream requires either Heimdal or MIT Kerberos, while port does not depend on any. How this was supposed to work?

comment:2 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: snowleopard added
Summary: py313-krb5 fails to build: OSError: dlopen(libkrb5.so, 6): image not foundpy313-krb5 @0.7.0: OSError: dlopen(libkrb5.so, 6): image not found

libkrb5.dylib is shipped with macOS by Apple. However libkrb5.so doesn't appear to be, so indeed it seems like this shouldn't work. And if we were to want to use MacPorts libraries, then dlopen would have to specify the absolute path to the library it's opening.

We did get this same build failure on the Mac OS X 10.6 i386 buildbot worker but it succeeded on macOS 12 arm64 and macOS 13 x86_64 (and was not attempted on other builders since the port is marked platforms {darwin any}) so the build may be going through a different code path on older systems.

In the 10.6 build I see:

Using libkrb5.so as Kerberos module for platform checks

whereas on macOS 12 and 13 I see:

Using /System/Library/PrivateFrameworks/Heimdal.framework/Heimdal as Kerberos module for platform checks

This difference probably means that the port shouldn't be {darwin any} after all. If that's changed, the revision must be increased too.

comment:3 in reply to:  2 Changed 10 months ago by barracuda156

Replying to ryandesign:

libkrb5.dylib is shipped with macOS by Apple. However libkrb5.so doesn't appear to be, so indeed it seems like this shouldn't work. And if we were to want to use MacPorts libraries, then dlopen would have to specify the absolute path to the library it's opening.

We did get this same build failure on the Mac OS X 10.6 i386 buildbot worker but it succeeded on macOS 12 arm64 and macOS 13 x86_64 (and was not attempted on other builders since the port is marked platforms {darwin any}) so the build may be going through a different code path on older systems.

In the 10.6 build I see:

Using libkrb5.so as Kerberos module for platform checks

whereas on macOS 12 and 13 I see:

Using /System/Library/PrivateFrameworks/Heimdal.framework/Heimdal as Kerberos module for platform checks

This difference probably means that the port shouldn't be {darwin any} after all. If that's changed, the revision must be increased too.

I did not notice it is set as darwin any, that should be wrong indeed.

What worked for me was:

        depends_lib-append \
                    port:kerberos5
        build.env-append \
                    KRB5_KRB5CONFIG=${prefix}/bin/krb5-config \
                    KRB5_MAIN_LIB=${prefix}/lib/libkrb5.dylib

Perhaps the same can work for Apple kerberos.

Heimdal linking failed though:

--->  Building py312-krb5
Executing:  cd "/opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work 
* Getting build dependencies for wheel...
Using krb5-config at '/opt/local/libexec/heimdal/bin/krb5-config'
Using /opt/local/libexec/heimdal/lib/libkrb5.dylib as Kerberos module for platform checks
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
    return hook(config_settings)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
    self.run_setup()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/build_meta.py", line 320, in run_setup
    exec(code, locals())
  File "<string>", line 209, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/ctypes/__init__.py", line 379, in __init__
    self._handle = _dlopen(self._name, mode)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: dlopen(/opt/local/libexec/heimdal/lib/libkrb5.dylib, 6): Symbol not found: _hc_EVP_cc_sha256
  Referenced from: /opt/local/libexec/heimdal/lib/libhcrypto.4.dylib
  Expected in: dynamic lookup


ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Command failed:  cd "/opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work 
Exit code: 1

To try Heimdal instead of Kerberos, this could be set:

        depends_lib-append \
                    port:heimdal
        set heimdal_root \
                    ${prefix}/libexec/heimdal
        build.env-append \
                    KRB5_KRB5CONFIG=${heimdal_root}/bin/krb5-config \
                    KRB5_MAIN_LIB=${heimdal_root}/lib/libkrb5.dylib
Last edited 10 months ago by barracuda156 (previous) (diff)

comment:4 Changed 10 months ago by barracuda156

Yeah, the OS version works as well, but only if this is set:

    build.env-append \
                    KRB5_KRB5CONFIG=/usr/bin/krb5-config \
                    KRB5_MAIN_LIB=/usr/lib/libkrb5.dylib

darwin any has no effect, without it the build still fails without correct env settings.

Update. No, I was too quick to assume the system one works. It fails on extension:

--->  Building py312-krb5
Executing:  cd "/opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work 
* Getting build dependencies for wheel...
Using krb5-config at '/usr/bin/krb5-config'
Using /usr/lib/libkrb5.dylib as Kerberos module for platform checks
Compiling src/krb5/_ccache.pyx
Skipping src/krb5/_ccache_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_ccache_match.pyx
Skipping src/krb5/_ccache_support_switch.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_cccol.pyx
Skipping src/krb5/_chpw_message_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_context.pyx
Compiling src/krb5/_context_mit.pyx
Compiling src/krb5/_creds.pyx
Skipping src/krb5/_creds_marshal_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_creds_opt.pyx
Skipping src/krb5/_creds_opt_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_set_in_ccache.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_set_pac_request.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_exceptions.pyx
Compiling src/krb5/_keyblock.pyx
Compiling src/krb5/_keyblock_mit.pyx
Compiling src/krb5/_kt.pyx
Skipping src/krb5/_kt_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_kt_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_kt_have_content.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_principal.pyx
Skipping src/krb5/_principal_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_set_password.pyx
Compiling src/krb5/_string.pyx
Skipping src/krb5/_string_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_ccache.pyx because it changed.
Compiling src/krb5/_ccache_match.pyx because it changed.
Compiling src/krb5/_cccol.pyx because it changed.
Compiling src/krb5/_context.pyx because it changed.
Compiling src/krb5/_context_mit.pyx because it changed.
Compiling src/krb5/_creds.pyx because it changed.
Compiling src/krb5/_creds_opt.pyx because it changed.
Compiling src/krb5/_exceptions.pyx because it changed.
Compiling src/krb5/_keyblock.pyx because it changed.
Compiling src/krb5/_keyblock_mit.pyx because it changed.
Compiling src/krb5/_kt.pyx because it changed.
Compiling src/krb5/_principal.pyx because it changed.
Compiling src/krb5/_set_password.pyx because it changed.
Compiling src/krb5/_string.pyx because it changed.
[ 1/14] Cythonizing src/krb5/_ccache.pyx
[ 2/14] Cythonizing src/krb5/_ccache_match.pyx
[ 3/14] Cythonizing src/krb5/_cccol.pyx
[ 4/14] Cythonizing src/krb5/_context.pyx
[ 5/14] Cythonizing src/krb5/_context_mit.pyx
[ 6/14] Cythonizing src/krb5/_creds.pyx
[ 7/14] Cythonizing src/krb5/_creds_opt.pyx
[ 8/14] Cythonizing src/krb5/_exceptions.pyx
[ 9/14] Cythonizing src/krb5/_keyblock.pyx
[10/14] Cythonizing src/krb5/_keyblock_mit.pyx
[11/14] Cythonizing src/krb5/_kt.pyx
[12/14] Cythonizing src/krb5/_principal.pyx
[13/14] Cythonizing src/krb5/_set_password.pyx
[14/14] Cythonizing src/krb5/_string.pyx
running egg_info
writing src/krb5.egg-info/PKG-INFO
writing dependency_links to src/krb5.egg-info/dependency_links.txt
writing top-level names to src/krb5.egg-info/top_level.txt
reading manifest file 'src/krb5.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files found matching '.coverage'
warning: no previously-included files found matching '.gitignore'
warning: no previously-included files found matching '.pre-commit-config.yaml'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
adding license file 'LICENSE'
writing manifest file 'src/krb5.egg-info/SOURCES.txt'
* Building wheel...
Using krb5-config at '/usr/bin/krb5-config'
Using /usr/lib/libkrb5.dylib as Kerberos module for platform checks
Compiling src/krb5/_ccache.pyx
Skipping src/krb5/_ccache_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_ccache_match.pyx
Skipping src/krb5/_ccache_support_switch.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_cccol.pyx
Skipping src/krb5/_chpw_message_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_context.pyx
Compiling src/krb5/_context_mit.pyx
Compiling src/krb5/_creds.pyx
Skipping src/krb5/_creds_marshal_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_mit.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_creds_opt.pyx
Skipping src/krb5/_creds_opt_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_set_in_ccache.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_creds_opt_set_pac_request.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_exceptions.pyx
Compiling src/krb5/_keyblock.pyx
Compiling src/krb5/_keyblock_mit.pyx
Compiling src/krb5/_kt.pyx
Skipping src/krb5/_kt_mit.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_kt_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Skipping src/krb5/_kt_have_content.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_principal.pyx
Skipping src/krb5/_principal_heimdal.pyx as it is not supported by the selected Kerberos implementation.
Compiling src/krb5/_set_password.pyx
Compiling src/krb5/_string.pyx
Skipping src/krb5/_string_mit.pyx as it is not supported by the selected Kerberos implementation.
running bdist_wheel
running build
running build_py
creating build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/__init__.py -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_adpi.py -> build/lib.macosx-10.6-ppc-cpython-312/krb5
running egg_info
writing src/krb5.egg-info/PKG-INFO
writing dependency_links to src/krb5.egg-info/dependency_links.txt
writing top-level names to src/krb5.egg-info/top_level.txt
reading manifest file 'src/krb5.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files found matching '.coverage'
warning: no previously-included files found matching '.gitignore'
warning: no previously-included files found matching '.pre-commit-config.yaml'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
adding license file 'LICENSE'
writing manifest file 'src/krb5.egg-info/SOURCES.txt'
copying src/krb5/_ccache.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_ccache_match.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_ccache_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_ccache_support_switch.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_cccol.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_chpw_message_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_context.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_context_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_marshal_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_opt.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_opt_heimdal.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_opt_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_opt_set_in_ccache.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_creds_opt_set_pac_request.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_exceptions.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_keyblock.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_keyblock_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_kt.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_kt_have_content.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_kt_heimdal.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_kt_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_principal.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_principal_heimdal.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_set_password.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_string.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/_string_mit.pyi -> build/lib.macosx-10.6-ppc-cpython-312/krb5
copying src/krb5/py.typed -> build/lib.macosx-10.6-ppc-cpython-312/krb5
running build_ext
building 'krb5._ccache' extension
creating build/temp.macosx-10.6-ppc-cpython-312/src/krb5
/usr/bin/gcc-4.2 -arch ppc -isysroot/ -std=c99 -Isrc/krb5 -I/opt/local/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c src/krb5/_ccache.c -o build/temp.macosx-10.6-ppc-cpython-312/src/krb5/_ccache.o
src/krb5/_ccache.c:1770: error: expected specifier-qualifier-list before ‘krb5_init_creds_context’
src/krb5/_ccache.c: In function ‘__pyx_pf_4krb5_7_ccache_26cc_switch’:
src/krb5/_ccache.c:23789: warning: implicit declaration of function ‘krb5_cc_switch’
error: command '/usr/bin/gcc-4.2' failed with exit code 1

ERROR Backend subprocess exited when trying to invoke build_wheel
Command failed:  cd "/opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work/krb5-0.7.0" && /opt/local/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 -m build --no-isolation --wheel --outdir /opt/local/var/macports/build/_opt_local_ppcports_python_py-krb5/py312-krb5/work 
Exit code: 1
Error: Failed to build py312-krb5: command execution failed
Last edited 10 months ago by barracuda156 (previous) (diff)

comment:5 in reply to:  4 ; Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to barracuda156:

darwin any has no effect, without it the build still fails without correct env settings.

darwin any doesn't have "no effect". It tells MacPorts that the contents of the port are expected to be essentially identical regardless which Darwin version produced it, so the archive name contains "any" instead of the OS version and only one buildbot builder will build it. If the contents are not in fact essentially identical, then some users may get non-working software if they get our precompiled archives. For example, if the software contains compiled Mach-O binaries, as this port does, and the one build machine that built it was a "new" OS version, then the binary may fail to work at all on an "old" OS version since the binary was built for a newer macOS deployment target.

Last edited 10 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

In ee9c0ae24611ca0abb6870411fe36da631cb2504/macports-ports (master):

py-krb5: Not platforms {darwin any}

See: #72017

comment:7 in reply to:  2 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: tiger leopard added

Replying to ryandesign:

the build may be going through a different code path on older systems.

Indeed setup.py has code to use the private heimdal framework only on Mac OS X 10.7 and later:

    macos_native = False
    if sys.platform == "darwin":
        mac_ver = [int(v) for v in platform.mac_ver()[0].split(".")]
        macos_native = mac_ver >= [10, 7, 0]

comment:8 in reply to:  5 Changed 10 months ago by barracuda156

Replying to ryandesign:

Replying to barracuda156:

darwin any has no effect, without it the build still fails without correct env settings.

darwin any doesn't have "no effect".

In the context I simply meant it is unrelated to the problem, and removing that line does not fix the build.

Note: See TracTickets for help on using tickets.