Skip to content

Undefined CLASS64 enum using underlying lief==0.16.1 #5626

@eekcoopuw

Description

@eekcoopuw

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

Conda-build appears to use a library called lief to identify types of binaries. With an upgrade from lief 0.14.1 to lief 0.16.1 or 0.16.3, I now get this stack trace, which appears to be a static incompatibility between conda-build 25.1.2 and lief 0.16.x.

    Traceback (most recent call last):                                                                    
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda/exception_handler.py", line 17, in __call__
        return func(*args, **kwargs)                                                                      
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda/cli/main.py", line 78, in main_subshell
        exit_code = do_call(args, parser)
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda/cli/conda_argparse.py", line 142, in do_call
        result = plugin_subcommand.action(getattr(args, "_args", args))
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/plugin.py", line 17, in build
        return execute(args)                                                                              
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 622, in execute
        api.build(                                                                                        
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/api.py", line 211, in build
        return build_tree(      
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/build.py", line 3656, in build_tree
        packages_from_this = build(      
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/build.py", line 2767, in build
        newly_built_packages = bundlers[pkg_type](
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/build.py", line 1870, in bundle_conda
        files = post_process_files(metadata, initial_files)
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/build.py", line 1650, in post_process_files
        post_build(m, new_files, build_python=python)                                
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/post.py", line 1764, in post_build
        check_overlinking(m, files, host_prefix)                                                          
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/post.py", line 1589, in check_overlinking
        return check_overlinking_impl(                                                                    
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/post.py", line 1449, in check_overlinking_impl
        all_needed_dsos, needed_dsos_for_file = _collect_needed_dsos(    
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/post.py", line 864, in _collect_needed_dsos
        needed = get_linkages_memoized(                                                                   
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 1204, in __call__
        value = self.func(*args, **kw)                                                                    
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 1233, in get_linkages_memoized
        return get_linkages(      
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 640, in get_linkages
        result_lief = inspect_linkages_lief(
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 491, in inspect_linkages_lief
        if binary.type == ELF_CLASS.CLASS64:
      File "<redacted>/miniconda3/envs/fhs-bin-model/lib/python3.10/enum.py", line 437, in __getattr__
        raise AttributeError(name) from None
    AttributeError: CLASS64                                                                               

I can see that CLASS64 and CLASS32 were defined as enum values in lief 0.14.1 but it looks like they don't exist in lief 0.16.1. Whether this is a bug in conda-build or a breaking change in lief, I'm not sure.

Conda Info

active environment : fhs-bin-model
    active env location : <redacted>/miniconda3/envs/fhs-bin-model
            shell level : 1
       user config file : <redacted>/.condarc
 populated config files : <redacted>/miniconda3/.condarc
                          <redacted>/.condarc
          conda version : 24.11.1
    conda-build version : not installed
         python version : 3.12.8.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=ivybridge
                          __conda=24.11.1=0
                          __glibc=2.31=0
                          __linux=5.4.0=0
                          __unix=0=0
       base environment : <redacted>/miniconda3  (writable)
      conda av data dir : <redacted>/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : <redacted>/miniconda3/pkgs
                          <redacted>/.conda/pkgs
       envs directories : <redacted>/miniconda3/envs
                          <redacted>/.conda/envs
               platform : linux-64
             user-agent : conda/24.11.1 requests/2.32.3 CPython/3.12.8 Linux/5.4.0-200-generic ubuntu/20.04.6 glibc/2.31 solver/libmamba conda-libmamba-solver/24.9.0 libmambapy/1.5.11 aau/0.5.0 c/. s/. e/.
                UID:GID : 701310:50513
             netrc file : None
           offline mode : False

Conda Config

==> <redacted>/miniconda3/.condarc <==
channels:
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r

==> <redacted>/.condarc <==
channels:
  - defaults
  - conda-forge

Conda list

# packages in environment at <redacted>/miniconda3/envs/fhs-bin-model:
#                                                                                                         
# Name                    Version                   Build  Channel      
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
_r-mutex                  1.0.1               anacondar_1    conda-forge
alabaster                 1.0.0                    pypi_0    pypi       
archspec                  0.2.5              pyhd8ed1ab_0    conda-forge
attrs                     25.1.0             pyh71513ae_0    conda-forge     
babel                     2.17.0                   pypi_0    pypi       
backports-tarfile         1.2.0                    pypi_0    pypi       
bandit                    1.8.3                    pypi_0    pypi       
beautifulsoup4            4.13.3             pyha770c72_0    conda-forge    
binutils_impl_linux-64    2.43                 h4bf12b8_2    conda-forge
black                     24.4.2                   pypi_0    pypi          
boltons                   24.0.0             pyhd8ed1ab_1    conda-forge
brotli-python             1.1.0           py310hf71b8c6_2    conda-forge
build                     0.10.0                   pypi_0    pypi       
bwidget                   1.10.1               ha770c72_0    conda-forge
bzip2                     1.0.8                h5eee18b_6    defaults   
c-ares                    1.34.4               hb9d3cd8_0    conda-forge
ca-certificates           2025.1.31            hbcca054_0    conda-forge
cairo                     1.16.0            ha61ee94_1012    conda-forge
certifi                   2025.1.31          pyhd8ed1ab_0    conda-forge
cffi                      1.17.1          py310h8deb56e_0    conda-forge
chardet                   5.2.0           py310hff52083_2    conda-forge
charset-normalizer        3.4.1              pyhd8ed1ab_0    conda-forge
click                     8.1.8              pyh707e725_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_1    conda-forge
conda                     23.9.0          py310hff52083_2    conda-forge
conda-build               25.1.2          py310hff52083_1    conda-forge
conda-index               0.5.0              pyhd8ed1ab_0    conda-forge
conda-package-handling    2.4.0              pyh7900ff3_2    conda-forge
conda-package-streaming   0.11.0             pyhd8ed1ab_0    conda-forge
conda-verify              3.4.2              pyhd8ed1ab_1    conda-forge
coverage                  7.2.7                    pypi_0    pypi       
cryptography              44.0.1          py310h6c63255_0    conda-forge
curl                      8.1.2                h409715c_0    conda-forge
docutils                  0.21.2                   pypi_0    pypi       
dparse                    0.6.4                    pypi_0    pypi       
exceptiongroup            1.2.2                    pypi_0    pypi       
fhs-bin-model             3.0.5                    pypi_0    pypi    
filelock                  3.17.0             pyhd8ed1ab_0    conda-forge
flake8                    6.0.0                    pypi_0    pypi       
flake8-annotations        3.0.1                    pypi_0    pypi       
flake8-bandit             4.1.1                    pypi_0    pypi       
flake8-black              0.3.6                    pypi_0    pypi
flake8-docstrings         1.7.0                    pypi_0    pypi
flake8-isort              6.0.0                    pypi_0    pypi       
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_3    conda-forge
fontconfig                2.15.0               h7e30c49_1    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
frozendict                2.4.6           py310ha75aee5_0    conda-forge
future                    1.0.0              pyhd8ed1ab_2    conda-forge
gcc_impl_linux-64         14.2.0               h6b349bd_1    conda-forge
gettext                   0.23.1               h5888daf_0    conda-forge
gettext-tools             0.23.1               h5888daf_0    conda-forge
gfortran_impl_linux-64    14.2.0               hc73f493_1    conda-forge
gmp                       6.3.0                hac33072_2    conda-forge
graphite2                 1.3.13            h59595ed_1003    conda-forge
gsl                       2.7                  he838d99_0    conda-forge
gxx_impl_linux-64         14.2.0               h2c03514_1    conda-forge
h2                        4.2.0              pyhd8ed1ab_0    conda-forge
harfbuzz                  6.0.0                h8e241bc_0    conda-forge
hpack                     4.1.0              pyhd8ed1ab_0    conda-forge
hyperframe                6.1.0              pyhd8ed1ab_0    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
idna                      3.10               pyhd8ed1ab_1    conda-forge   
imagesize                 1.4.1                    pypi_0    pypi
importlib-metadata        6.1.0                    pypi_0    pypi       
importlib_resources       6.5.2              pyhd8ed1ab_0    conda-forge
iniconfig                 2.0.0                    pypi_0    pypi       
isort                     5.12.0                   pypi_0    pypi       
jaraco-classes            3.4.0                    pypi_0    pypi       
jaraco-context            6.0.1                    pypi_0    pypi       
jaraco-functools          4.1.0                    pypi_0    pypi       
jeepney                   0.8.0                    pypi_0    pypi       
jinja2                    3.1.5              pyhd8ed1ab_0    conda-forge
jpeg                      9e                   h0b41bf4_3    conda-forge
jsonpatch                 1.33               pyhd8ed1ab_1    conda-forge
jsonpointer               3.0.0           py310hff52083_1    conda-forge
jsonschema                4.23.0             pyhd8ed1ab_1    conda-forge
jsonschema-specifications 2024.10.1          pyhd8ed1ab_1    conda-forge
kaisa                     1.1.7                    pypi_0    pypi
kernel-headers_linux-64   3.10.0              he073ed8_18    conda-forge
keyring                   25.6.0                   pypi_0    pypi
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.20.1               h81ceb04_0    conda-forge
ld_impl_linux-64          2.43                 h712a8e2_2    conda-forge   
lerc                      4.0.0                h27087fc_0    conda-forge
libarchive                3.6.2                h3d51595_0    conda-forge
libasprintf               0.23.1               h8e693c7_0    conda-forge
libasprintf-devel         0.23.1               h8e693c7_0    conda-forge
libblas                   3.9.0           28_h59b9bed_openblas    conda-forge
libcblas                  3.9.0           28_he106b2a_openblas    conda-forge
libcurl                   8.1.2                h409715c_0    conda-forge
libdeflate                1.17                 h0b41bf4_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.6.4                h5888daf_0    conda-forge
libffi                    3.4.4                h6a678d5_1    defaults   
libgcc                    14.2.0               h77fa898_1    conda-forge
libgcc-devel_linux-64     14.2.0             h41c2201_101    conda-forge
libgcc-ng                 14.2.0               h69a702a_1    conda-forge
libgettextpo              0.23.1               h5888daf_0    conda-forge
libgettextpo-devel        0.23.1               h5888daf_0    conda-forge
libgfortran               14.2.0               h69a702a_1    conda-forge
libgfortran-ng            14.2.0               h69a702a_1    conda-forge
libgfortran5              14.2.0               hd5240d6_1    conda-forge
libglib                   2.78.1               hebfc3b9_0    conda-forge
libgomp                   14.2.0               h77fa898_1    conda-forge
libhwloc                  2.9.1                hd6dc26d_0    conda-forge
libiconv                  1.18                 h4ce23a2_0    conda-forge
liblapack                 3.9.0           28_h7ac8fdf_openblas    conda-forge
liblief                   0.16.2               h5888daf_0    conda-forge
libnghttp2                1.64.0               h161d5f1_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.28          pthreads_h94d23a6_1    conda-forge
libpng                    1.6.46               h943b412_0    conda-forge
libsanitizer              14.2.0               h2a3dede_1    conda-forge   
libsqlite                 3.45.2               h2797004_0    conda-forge
libssh2                   1.11.1               hf672d98_0    conda-forge
libstdcxx                 14.2.0               hc0a3c3a_1    conda-forge
libstdcxx-devel_linux-64  14.2.0             h41c2201_101    conda-forge
libstdcxx-ng              14.2.0               h4852527_1    conda-forge
libtiff                   4.5.0                h6adf6a1_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.5.0                h851e524_0    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.10.3               hca2bb57_4    conda-forge
libzlib                   1.3.1                hb9d3cd8_2    conda-forge
lief                      0.16.3                   pypi_0    pypi    
lz4-c                     1.9.4                hcb278e6_0    conda-forge
lzo                       2.10              hd590300_1001    conda-forge
make                      4.4.1                hb9d3cd8_2    conda-forge
markdown-it-py            3.0.0                    pypi_0    pypi       
markupsafe                3.0.2           py310h89163eb_1    conda-forge
mbedtls                   3.5.1                h5888daf_1    conda-forge
mccabe                    0.7.0                    pypi_0    pypi       
mdurl                     0.1.2                    pypi_0    pypi       
menuinst                  2.2.0           py310hff52083_0    conda-forge
metis                     5.1.0             hd0bcaf9_1007    conda-forge
more-itertools            10.6.0             pyhd8ed1ab_0    conda-forge
mpfr                      4.2.1                h90cbb55_3    conda-forge
mypy                      1.11.2                   pypi_0    pypi       
mypy-extensions           1.0.0                    pypi_0    pypi    
ncurses                   6.4                  h6a678d5_0    defaults   
nh3                       0.2.20                   pypi_0    pypi       
numpy                     2.2.3                    pypi_0    pypi       
openssl                   3.4.1                h7b32b05_0    conda-forge
packaging                 24.2               pyhd8ed1ab_2    conda-forge
pandas                    1.5.3                    pypi_0    pypi
pango                     1.50.14              hd33c08f_0    conda-forge
patch                     2.7.6             h7f98852_1002    conda-forge
patchelf                  0.17.2               h58526e2_0    conda-forge
pathspec                  0.12.1                   pypi_0    pypi
pbr                       6.1.1                    pypi_0    pypi
pcre2                     10.40                hc3806b6_0    conda-forge
pip                       25.0.1                   pypi_0    pypi
pixman                    0.44.2               h29eaf8c_0    conda-forge
pkginfo                   1.12.1.1                 pypi_0    pypi
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_2    conda-forge
platformdirs              4.3.6                    pypi_0    pypi
pluggy                    1.5.0              pyhd8ed1ab_1    conda-forge
psutil                    6.1.1           py310ha75aee5_0    conda-forge
pthread-stubs             0.4               hb9d3cd8_1002    conda-forge
pycodestyle               2.10.0                   pypi_0    pypi
pycosat                   0.6.6           py310ha75aee5_2    conda-forge
pycparser                 2.22               pyh29332c3_1    conda-forge
pydocstyle                6.3.0                    pypi_0    pypi
pyflakes                  3.0.1                    pypi_0    pypi
pygments                  2.19.1                   pypi_0    pypi
pyopenssl                 25.0.0             pyhd8ed1ab_0    conda-forge
pyproject-hooks           1.2.0                    pypi_0    pypi
pysocks                   1.7.1              pyha55dd90_7    conda-forge
pytest                    7.2.2                    pypi_0    pypi
pytest-cov                4.0.0                    pypi_0    pypi
python                    3.10.13         hd12c33a_1_cpython    conda-forge
python-dateutil           2.8.2                    pypi_0    pypi
python-libarchive-c       5.1             py310hff52083_1    conda-forge
python_abi                3.10                    5_cp310    conda-forge
pytz                      2025.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.2           py310h89163eb_2    conda-forge
r-base                    4.2.2                ha7d60f8_3    conda-forge
r-lattice                 0.22_6            r42h57805ef_0    conda-forge
r-matrix                  1.5_4             r42he1ae0d6_0    conda-forge
r-rcpp                    1.0.12            r42h7df8631_0    conda-forge
r-rcppeigen               0.3.4.0.0         r42h08d816e_0    conda-forge
r-tmb                     1.9.1             r42h9f5de39_1    conda-forge
readline                  8.2                  h5eee18b_0    defaults
readme-renderer           44.0                     pypi_0    pypi
referencing               0.36.2             pyh29332c3_0    conda-forge
requests                  2.32.3             pyhd8ed1ab_1    conda-forge
requests-toolbelt         1.0.0                    pypi_0    pypi
rfc3986                   2.0.0                    pypi_0    pypi
rich                      13.9.4                   pypi_0    pypi
ripgrep                   14.1.1               h8fae777_0    conda-forge
rpds-py                   0.22.3          py310h505e2c1_0    conda-forge
rpy2                      3.5.7           py310r42h0a54255_0    conda-forge
ruamel-yaml               0.18.10                  pypi_0    pypi
ruamel-yaml-clib          0.2.12                   pypi_0    pypi
safety                    2.3.4                    pypi_0    pypi
scikit-sparse             0.4.8           py310hedf46ba_1    conda-forge
scipy                     1.15.2          py310h1d65ade_0    conda-forge
secretstorage             3.3.3                    pypi_0    pypi
sed                       4.8                  he412f7d_0    conda-forge
setuptools                75.8.0          py310h06a4308_0    defaults
simplegeneric             0.8.1              pyhd8ed1ab_2    conda-forge
six                       1.17.0             pyhd8ed1ab_0    conda-forge
snowballstemmer           2.2.0                    pypi_0    pypi
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
sphinx                    8.1.3                    pypi_0    pypi
sphinx-autodoc-typehints  2.5.0                    pypi_0    pypi
sphinx-rtd-theme          3.0.2                    pypi_0    pypi
sphinxcontrib-applehelp   2.0.0                    pypi_0    pypi
sphinxcontrib-devhelp     2.0.0                    pypi_0    pypi
sphinxcontrib-htmlhelp    2.1.0                    pypi_0    pypi
sphinxcontrib-jquery      4.1                      pypi_0    pypi
sphinxcontrib-jsmath      1.0.1                    pypi_0    pypi
sphinxcontrib-qthelp      2.0.0                    pypi_0    pypi
sphinxcontrib-serializinghtml 2.0.0                    pypi_0    pypi
sqlite                    3.45.2               h2c6b66d_0    conda-forge
stevedore                 5.4.0                    pypi_0    pypi
structlog                 22.3.0                   pypi_0    pypi
suitesparse               5.10.1               h9e50725_1    conda-forge
sysroot_linux-64          2.17                h0157908_18    conda-forge
tbb                       2021.9.0             hf52228f_0    conda-forge
testfixtures              7.1.0                    pypi_0    pypi
tiny-structured-logger    3.2.13                   pypi_0    pypi
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tktable                   2.10                 h8bc8fbc_6    conda-forge
tomli                     2.2.1              pyhd8ed1ab_1    conda-forge
tomlkit                   0.13.2                   pypi_0    pypi
tqdm                      4.67.1             pyhd8ed1ab_1    conda-forge
truststore                0.10.1             pyh29332c3_0    conda-forge
twine                     4.0.2                    pypi_0    pypi
typing-extensions         4.12.2               hd8ed1ab_1    conda-forge
typing_extensions         4.12.2             pyha770c72_1    conda-forge
tzdata                    2025a                h04d1e81_0    defaults
tzlocal                   5.3             py310hff52083_0    conda-forge
urllib3                   2.3.0              pyhd8ed1ab_0    conda-forge
uw-ihme-fhs-versions      2.1.38                   pypi_0    pypi
wheel                     0.45.1          py310h06a4308_0    defaults
xdoctest                  1.1.6                    pypi_0    pypi
xorg-kbproto              1.0.7             hb9d3cd8_1003    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.8.4                h0b41bf4_0    conda-forge
xorg-libxau               1.0.12               hb9d3cd8_0    conda-forge
xorg-libxdmcp             1.1.5                hb9d3cd8_0    conda-forge
xorg-libxext              1.3.4                h0b41bf4_2    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-libxt                1.3.0                hd590300_0    conda-forge
xorg-renderproto          0.11.1            hb9d3cd8_1003    conda-forge
xorg-xextproto            7.3.0             hb9d3cd8_1004    conda-forge
xorg-xproto               7.0.31            hb9d3cd8_1008    conda-forge
xz                        5.6.4                h5eee18b_1    defaults
yaml                      0.2.5                h7f98852_2    conda-forge
zipp                      3.21.0             pyhd8ed1ab_1    conda-forge
zlib                      1.3.1                hb9d3cd8_2    conda-forge
zstandard                 0.23.0          py310ha39cb0e_1    conda-forge
zstd                      1.5.6                ha6fb4c9_0    conda-forge

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type::bugdescribes erroneous operation, use severity::* to classify the type

    Type

    No type

    Projects

    Status

    🏁 Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions