Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ABI bump should trigger rebuild of dependencies #34

Open
1 task done
bluescarni opened this issue Mar 21, 2024 · 0 comments
Open
1 task done

ABI bump should trigger rebuild of dependencies #34

bluescarni opened this issue Mar 21, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@bluescarni
Copy link

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Hello,

after the update to version 3.11.3, using packages such as json_schema_validator

https://github.com/conda-forge/json_schema_validator-feedstock

fails with missing symbols such as:

symbol lookup error: [...] undefined symbol: _ZN8nlohmann11json_schema14json_validatorC1ESt8functionIFvRKNS_8json_uriERNS_16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerES9_IhSaIhEEvEEEES2_IFvRKSF_SO_EE

Which demangles to:

nlohmann::json_schema::json_validator::json_validator(std::function<void (nlohmann::json_uri const&, nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>&)>, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)

This happens because in the minor version bump from 3.11.2 to 3.11.3 the ABI tag in the inline namespace was changed from json_abi_v3_11_2 to json_abi_v3_11_3.

Do we have a mechanism to:

  1. enforce the rebuild of all packages depending on nlohmann_json, and
  2. prevent installation of ABI-incompatible versions in an environment?

I am aware of run_exports(), but I am not sure if it is applicable in this specific case because this is a header-only library.

Pinging @JohanMabille as I see his name in the 3.11.2 to 3.11.3 update PR :)

Installed packages

# packages in environment at /home/yardbird/miniconda3/envs/godot_cpp:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
_sysroot_linux-64_curr_repodata_hack 3                   h69a702a_13    conda-forge
accessible-pygments       0.0.4              pyhd8ed1ab_0    conda-forge
alabaster                 0.7.16             pyhd8ed1ab_0    conda-forge
babel                     2.14.0             pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.12.2             pyha770c72_0    conda-forge
binutils                  2.40                 hdd6e379_0    conda-forge
binutils_impl_linux-64    2.40                 hf600244_0    conda-forge
binutils_linux-64         2.40                 hbdbef99_2    conda-forge
breathe                   4.35.0             pyhd8ed1ab_1    conda-forge
brotli-python             1.1.0           py310hc6cd4ac_1    conda-forge
brotlipy                  0.7.0           py310h2372a71_1006    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.25.0               hd590300_0    conda-forge
c-compiler                1.7.0                hd590300_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cereal                    1.3.2                hd8ed1ab_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py310h2fee648_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
clang-format              17.0.6          default_hb11cfb5_2    conda-forge
clang-format-14           14.0.6          default_h7634d5b_1    conda-forge
clang-format-17           17.0.6          default_hb11cfb5_2    conda-forge
clang-tools               12.0.1          default_ha53f305_3    conda-forge
cmake                     3.28.1               hcfe8598_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
cryptography              41.0.7          py310hb8475ec_1    conda-forge
curl                      8.5.0                hca28451_0    conda-forge
cxx-compiler              1.7.0                h00ab1b0_0    conda-forge
docutils                  0.19            py310hff52083_1    conda-forge
doxygen                   1.10.0               h661eb56_0    conda-forge
eigen                     3.4.0                h00ab1b0_0    conda-forge
expat                     2.5.0                hcb278e6_1    conda-forge
fortran-compiler          1.7.0                heb67821_0    conda-forge
gcc                       12.3.0               h8d2909c_2    conda-forge
gcc_impl_linux-64         12.3.0               he2b93b0_3    conda-forge
gcc_linux-64              12.3.0               h76fc315_2    conda-forge
gfortran                  12.3.0               h499e0f7_2    conda-forge
gfortran_impl_linux-64    12.3.0               hfcedea8_3    conda-forge
gfortran_linux-64         12.3.0               h7fe76b4_2    conda-forge
gxx                       12.3.0               h8d2909c_2    conda-forge
gxx_impl_linux-64         12.3.0               he2b93b0_3    conda-forge
gxx_linux-64              12.3.0               h8a814eb_2    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagesize                 1.4.1              pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
json_schema_validator     2.1.0                h59595ed_1    conda-forge
kernel-headers_linux-64   4.18.0               he073ed8_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
libblas                   3.9.0           20_linux64_openblas    conda-forge
libcblas                  3.9.0           20_linux64_openblas    conda-forge
libclang                  12.0.1          default_ha53f305_4    conda-forge
libclang-cpp12            12.0.1          default_ha53f305_4    conda-forge
libclang-cpp14            14.0.6          default_h7634d5b_1    conda-forge
libclang-cpp17            17.0.6          default_hb11cfb5_2    conda-forge
libclang13                17.0.6          default_ha2b6cf4_2    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-devel_linux-64     12.3.0             h8bca6fd_103    conda-forge
libgcc-ng                 13.2.0               h807b86a_3    conda-forge
libgfortran-ng            13.2.0               h69a702a_3    conda-forge
libgfortran5              13.2.0               ha4646dd_3    conda-forge
libgomp                   13.2.0               h807b86a_3    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
liblapack                 3.9.0           20_linux64_openblas    conda-forge
liblapacke                3.9.0           20_linux64_openblas    conda-forge
libllvm12                 12.0.1               hf817b99_2    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libllvm17                 17.0.6               h5cf9203_0    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.25          pthreads_h413a1c8_0    conda-forge
libsanitizer              12.3.0               h0f45ef3_3    conda-forge
libsqlite                 3.44.2               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-devel_linux-64  12.3.0             h8bca6fd_103    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_3    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libuv                     1.46.0               hd590300_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.11.6               h232c23b_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
markupsafe                2.1.3           py310h2372a71_1    conda-forge
mimalloc                  2.1.2                h59595ed_1    conda-forge
mold                      2.4.0                h76aa41c_0    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
ninja                     1.11.1               h924138e_0    conda-forge
nlohmann_json             3.11.3               h59595ed_0    conda-forge
openssl                   3.2.1                hd590300_1    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pip                       23.3.2             pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydata-sphinx-theme       0.15.1             pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pyopenssl                 23.3.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.10.13         hd12c33a_1_cpython    conda-forge
python_abi                3.10                    4_cp310    conda-forge
pytz                      2023.3.post1       pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py310h2372a71_1    conda-forge
readline                  8.2                  h8228510_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rhash                     1.4.4                hd590300_0    conda-forge
setuptools                69.0.3             pyhd8ed1ab_0    conda-forge
snowballstemmer           2.2.0              pyhd8ed1ab_0    conda-forge
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
sphinx                    6.2.1              pyhd8ed1ab_0    conda-forge
sphinx-book-theme         1.1.0              pyhd8ed1ab_0    conda-forge
sphinxcontrib-applehelp   1.0.7              pyhd8ed1ab_0    conda-forge
sphinxcontrib-devhelp     1.0.5              pyhd8ed1ab_0    conda-forge
sphinxcontrib-htmlhelp    2.0.4              pyhd8ed1ab_0    conda-forge
sphinxcontrib-jsmath      1.0.1                      py_0    conda-forge
sphinxcontrib-qthelp      1.0.6              pyhd8ed1ab_0    conda-forge
sphinxcontrib-serializinghtml 1.1.9              pyhd8ed1ab_0    conda-forge
sqlite                    3.44.2               h2c6b66d_0    conda-forge
sysroot_linux-64          2.28                 he073ed8_0    conda-forge
tbb                       2021.11.0            h00ab1b0_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
typing-extensions         4.9.0                hd8ed1ab_0    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzdata                    2023d                h0c530f3_0    conda-forge
urllib3                   2.1.0              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

Environment info

mamba version : 1.5.7
     active environment : godot_cpp
    active env location : /home/yardbird/miniconda3/envs/godot_cpp
            shell level : 3
       user config file : /home/yardbird/.condarc
 populated config files : /home/yardbird/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.10.14.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=zen3
                          __conda=24.1.2=0
                          __cuda=12.4=0
                          __glibc=2.39=0
                          __linux=6.7.5=0
                          __unix=0=0
       base environment : /home/yardbird/miniconda3  (writable)
      conda av data dir : /home/yardbird/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          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
          package cache : /home/yardbird/miniconda3/pkgs
                          /home/yardbird/.conda/pkgs
       envs directories : /home/yardbird/miniconda3/envs
                          /home/yardbird/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.10.14 Linux/6.7.5 gentoo/2.15 glibc/2.39 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.7
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False
@bluescarni bluescarni added the bug Something isn't working label Mar 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant