conda-forge / boost-cpp-feedstock

A conda-smithy repository for boost-cpp.
BSD 3-Clause "New" or "Revised" License
6 stars 39 forks source link

Issue with latest build #114

Closed mikemhenry closed 2 years ago

mikemhenry commented 2 years ago

Issue:

Pretty sure that this PR broke something https://github.com/conda-forge/boost-cpp-feedstock/pull/113


Environment (conda list):

``` $ conda list # packages in environment at /home/mmh/miniconda3/envs/rdkit-test: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge boost 1.74.0 py38h2b96118_5 conda-forge boost-cpp 1.74.0 h359cf19_6 conda-forge brotli 1.0.9 h7f98852_6 conda-forge brotli-bin 1.0.9 h7f98852_6 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge ca-certificates 2021.10.26 h06a4308_2 cairo 1.16.0 ha00ac49_1009 conda-forge certifi 2021.10.8 py38h578d9bd_1 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge 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 hab24e00_0 conda-forge fontconfig 2.13.94 ha180cfb_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fonttools 4.29.1 py38h497a2fe_0 conda-forge freetype 2.11.0 h70c0345_0 fribidi 1.0.10 h516909a_0 conda-forge gettext 0.21.0 hf68c758_0 giflib 5.2.1 h516909a_2 conda-forge greenlet 1.1.2 py38h709712a_1 conda-forge icu 69.1 h9c3ff4c_0 conda-forge jbig 2.1 h7f98852_2003 conda-forge jpeg 9e h7f98852_0 conda-forge kiwisolver 1.3.2 py38h1fd1430_1 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 3.0 h9c3ff4c_0 conda-forge libblas 3.9.0 13_linux64_openblas conda-forge libbrotlicommon 1.0.9 h7f98852_6 conda-forge libbrotlidec 1.0.9 h7f98852_6 conda-forge libbrotlienc 1.0.9 h7f98852_6 conda-forge libcblas 3.9.0 13_linux64_openblas conda-forge libdeflate 1.8 h7f98852_0 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 11.2.0 h1d223b6_12 conda-forge libgfortran-ng 11.2.0 h69a702a_12 conda-forge libgfortran5 11.2.0 h5c6108e_12 conda-forge libglib 2.70.2 h174f98d_1 conda-forge libgomp 11.2.0 h1d223b6_12 conda-forge libiconv 1.16 h516909a_0 conda-forge libimagequant 2.17.0 h7f98852_1 conda-forge liblapack 3.9.0 13_linux64_openblas conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libopenblas 0.3.18 pthreads_h8fe5266_0 conda-forge libpng 1.6.37 hed695b0_2 conda-forge libstdcxx-ng 11.2.0 he4da1e4_12 conda-forge libtiff 4.3.0 h6f004c6_2 conda-forge libuuid 2.32.1 h14c3975_1000 conda-forge libwebp 1.2.2 h3452ae3_0 conda-forge libwebp-base 1.2.2 h7f98852_1 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libxml2 2.9.12 h885dcf4_1 conda-forge libzlib 1.2.11 h36c2ea0_1013 conda-forge lz4-c 1.9.3 h9c3ff4c_1 conda-forge matplotlib-base 3.5.1 py38hf4fb855_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge ncurses 6.3 h9c3ff4c_0 conda-forge numpy 1.22.2 py38h6ae9a64_0 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openssl 3.0.0 h7f98852_2 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge pandas 1.4.0 py38h43a58ef_0 conda-forge pcre 8.45 h9c3ff4c_0 conda-forge pillow 9.0.1 py38he2f12e7_0 conda-forge pip 22.0.3 pyhd8ed1ab_0 conda-forge pixman 0.40.0 h36c2ea0_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge pycairo 1.20.1 py38hf61ee4a_1 conda-forge pyparsing 3.0.7 pyhd8ed1ab_0 conda-forge python 3.8.12 h0744224_3_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python_abi 3.8 2_cp38 conda-forge pytz 2021.3 pyhd8ed1ab_0 conda-forge rdkit 2021.09.3 py38h8c3fb5a_0 conda-forge readline 8.1.2 h7f8727e_1 reportlab 3.5.68 py38hadf75a6_1 conda-forge setuptools 60.7.1 py38h578d9bd_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sqlalchemy 1.4.31 py38h497a2fe_0 conda-forge sqlite 3.37.0 h9cd32fc_0 conda-forge tk 8.6.11 h27826a3_1 conda-forge unicodedata2 14.0.0 py38h497a2fe_0 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge xorg-kbproto 1.0.7 h14c3975_1002 conda-forge xorg-libice 1.0.10 h516909a_0 conda-forge xorg-libsm 1.2.3 hd9c2040_1000 conda-forge xorg-libx11 1.7.2 h7f98852_0 conda-forge xorg-libxau 1.0.9 h14c3975_0 conda-forge xorg-libxdmcp 1.1.3 h516909a_0 conda-forge xorg-libxext 1.3.4 h7f98852_1 conda-forge xorg-libxrender 0.9.10 h7f98852_1003 conda-forge xorg-renderproto 0.11.1 h14c3975_1002 conda-forge xorg-xextproto 7.3.0 h14c3975_1002 conda-forge xorg-xproto 7.0.31 h14c3975_1007 conda-forge xz 5.2.5 h516909a_1 conda-forge zlib 1.2.11 h36c2ea0_1013 conda-forge zstd 1.5.2 ha95c52a_0 conda-forge ```


Details about conda and system ( conda info ):

``` $ conda info active environment : rdkit-test active env location : /home/mmh/miniconda3/envs/rdkit-test shell level : 2 user config file : /home/mmh/.condarc populated config files : /home/mmh/.condarc conda version : 4.11.0 conda-build version : 3.21.5 python version : 3.8.5.final.0 virtual packages : __cuda=11.4=0 __linux=5.15.11=0 __glibc=2.34=0 __unix=0=0 __archspec=1=x86_64 base environment : /home/mmh/miniconda3 (writable) conda av data dir : /home/mmh/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/mmh/miniconda3/pkgs /home/mmh/.conda/pkgs envs directories : /home/mmh/miniconda3/envs /home/mmh/.conda/envs platform : linux-64 user-agent : conda/4.11.0 requests/2.25.1 CPython/3.8.5 Linux/5.15.11-76051511-generic pop/21.04 glibc/2.34 UID:GID : 1000:1000 netrc file : None offline mode : False ```

To reproduce:

$ mamba create -n rdkit-test python=3.8 rdkit=2021.09.4
$ conda activate rdkit-test
$ python
>>> from rdkit.Chem.rdmolfiles import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mmh/miniconda3/envs/rdkit-test/lib/python3.8/site-packages/rdkit/Chem/__init__.py", line 23, in <module>
    from rdkit.Chem.rdmolfiles import *
ImportError: /home/mmh/miniconda3/envs/rdkit-test/lib/python3.8/site-packages/rdkit/Chem/../../../../libRDKitmaeparser.so.1: undefined symbol: _ZN5boost9iostreams4zlib8deflatedE

This error just started showing up on my CI and this looks like it just got released, looking at the timestamp on boost-cpp 1.74.0 https://anaconda.org/conda-forge/boost-cpp/files

If I install the last build mamba install boost-cpp=1.74.0=h359cf19_5 then the error goes away

isuruf commented 2 years ago

Probably needs a zlib in host.

benmwebb commented 2 years ago

I'm seeing the same issue with my feedstocks. Agreed, looks like zlib was pulled in implicitly before but not any more (doesn't look like PR #113 was at fault to me, maybe something else changed in the meantime).

The latest build reports zlib: no in Boost's configure output (at least on linux_64); the previous build reports zlib: yes in Boost's configure output.

benmwebb commented 2 years ago

More specifically, the boost::iostreams module was accidentally compiled without the zlib filter. I'm happy to contribute a PR to fix this, but I'd like to ensure that it stays fixed, since it crops up from time to time (e.g. in defaults ContinuumIO/anaconda-issues#414, ContinuumIO/anaconda-issues#9265). The most robust way to do that IMHO would be to compile and link a little C++ test program as part of the test suite, but I'm sure there are subtleties to making that work cross-platform. I can trawl through some feedstocks to see if I can find others where this is done, but if you know of any off hand, that would be most helpful!

arthurp commented 2 years ago

I wonder if it would be possible to force boost to try to build with a specific configuration. Then the build would fail if it was missing a library it needs for that configuration. That would avoid silent config changes like this.

benmwebb commented 2 years ago

This should be resolved now that #115 has been merged.

kcajf commented 2 years ago

It looks like in the latest builds, zlib has become disabled again. For example https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5baca359d/_apis/build/builds/489010/logs/27 this shows zlib: no. The linux-64/boost-cpp-1.77.0-he72f1d9_2.tar.bz2 build published 10 days ago is broken, whereas the linux-64/boost-cpp-1.77.0-h359cf19_1.tar.bz2 build published many months earlier is OK.

kcajf commented 2 years ago

I might be reading this wrongly, but it seems like https://github.com/conda-forge/boost-cpp-feedstock/pull/115 was not actually merged into main? for example, the recipe/test folder which tests for this failure isn't present on main.

jakirkham commented 2 years ago

@kcajf please file a new issue with all the information requested in the template. Thanks!