Giter Site home page Giter Site logo

boost-feedstock's Introduction

About boost-feedstock

Feedstock license: BSD-3-Clause

Home: http://www.boost.org/

Package license: BSL-1.0

Summary: Free peer-reviewed portable C++ source libraries.

Development: https://github.com/boostorg/boost

Documentation: https://www.boost.org/doc/

Current build status

Azure
VariantStatus
linux_64 variant
linux_aarch64 variant
linux_ppc64le variant
osx_64 variant
osx_arm64 variant
win_64 variant

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Installing boost

Installing boost from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, boost, boost-cpp, libboost, libboost-devel, libboost-headers, libboost-python, libboost-python-devel can be installed with conda:

conda install boost boost-cpp libboost libboost-devel libboost-headers libboost-python libboost-python-devel

or with mamba:

mamba install boost boost-cpp libboost libboost-devel libboost-headers libboost-python libboost-python-devel

It is possible to list all of the versions of boost available on your platform with conda:

conda search boost --channel conda-forge

or with mamba:

mamba search boost --channel conda-forge

Alternatively, mamba repoquery may provide more information:

# Search all versions available on your platform:
mamba repoquery search boost --channel conda-forge

# List packages depending on `boost`:
mamba repoquery whoneeds boost --channel conda-forge

# List dependencies of `boost`:
mamba repoquery depends boost --channel conda-forge

About conda-forge

Powered by NumFOCUS

conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a feedstock.

A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by Azure, GitHub, CircleCI, AppVeyor, Drone, and TravisCI it is possible to build and upload installable packages to the conda-forge anaconda.org channel for Linux, Windows and OSX respectively.

To manage the continuous integration and simplify feedstock maintenance conda-smithy has been developed. Using the conda-forge.yml within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with conda smithy rerender.

For more information please check the conda-forge documentation.

Terminology

feedstock - the conda recipe (raw material), supporting scripts and CI configuration.

conda-smithy - the tool which helps orchestrate the feedstock. Its primary use is in the construction of the CI .yml files and simplify the management of many feedstocks.

conda-forge - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions)

Updating boost-feedstock

If you would like to improve the boost recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the conda-forge channel, whereupon the built conda packages will be available for everybody to install and use from the conda-forge channel. Note that all branches in the conda-forge/boost-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions.

In order to produce a uniquely identifiable distribution:

  • If the version of a package is not being increased, please add or increase the build/number.
  • If the version of a package is being increased, please remember to return the build/number back to 0.

Feedstock Maintainers

boost-feedstock's People

Contributors

beckermr avatar benmwebb avatar ccordoba12 avatar chrisburr avatar conda-forge-admin avatar conda-forge-curator[bot] avatar dolfim avatar github-actions[bot] avatar h-vetinari avatar hmaarrfk avatar isuruf avatar jakirkham avatar jan-janssen avatar jschueller avatar mariusvniekerk avatar matthiasdiener avatar mattip avatar mbargull avatar msarahan avatar ocefpaf avatar pavoljuhas avatar pkgw avatar regro-cf-autotick-bot avatar scopatz avatar sdebionne avatar soapza avatar tadeu avatar tschoonj avatar wesm avatar xhochy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boost-feedstock's Issues

Boost headers issues

It seems our recent builds of Boost now do not have headers for Boost.Python on OS X or Linux. However, on Windows it appears all of the headers are included.

cc @isuruf @jschueller

Boost Numpy missing

Boost 1.63.0 introduced new Boost Numpy bindings. There are not built here, I guess because numpy is not found.

What about including numpy as a dependency?

Why no ICU on windows?

How are you able to write portable code using boost if you don't build it using the same dependencies?

Missing CMake Config for Static Variant

Issue:

(see full environment list below)

This error occurs while compiling either osmium tool (https://github.com/osmcode/osmium-tool) or libLAS (https://github.com/libLAS/libLAS).
Both libraries use CMake, and set "Boost_USE_STATIC_LIBS=ON". All fine and good, I've verified that this 'boost' package from conda-forge provides both static and shared libraries. The problem is caused by missing CMake configuration from Boost, for the shared variant.

For example, for boost-chrono, in D:\cvrs-root-test\Library\lib\cmake\boost_chrono-1.74.0\boost_chrono-config.cmake, there is this glob logic to find all build variants:
file(GLOB __boost_variants "${CMAKE_CURRENT_LIST_DIR}/libboost_chrono-variant*.cmake")

But this is the directory listing under Library\lib\cmake\boost_chrono-1.74.0

boost

So it has libboost_chrono-variant-shared.cmake, but seems to be missing something like libboost_chrono-variant-static.cmake. This causes the find_package(Boost... call to fail when Boost_USE_STATIC_LIBS is ON.

I've tried building with it off, but get other linking errors. I have verified that I am able to compile and link some simple boost example programs in the environment (with dynamic linking). So I think that means these libraries really do need static linking, I'm not exactly clear on why though.

Full error:

CMake Error at D:/cvrs-root-test/Library/lib/cmake/Boost-1.74.0/BoostConfig.cmake:141 (find_package):
  Found package configuration file:

    D:/cvrs-root-test/Library/lib/cmake/boost_program_options-1.74.0/boost_program_options-config.cmake

  but it set boost_program_options_FOUND to FALSE so package
  "boost_program_options" is considered to be NOT FOUND.  Reason given by
  package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * boost_program_options.lib (shared, Boost_USE_STATIC_LIBS=ON)
$ conda info

     active environment : D:\cvrs-root-test
    active env location : D:\cvrs-root-test
            shell level : 2
       user config file : C:\Users\nmaxwell\.condarc
 populated config files : C:\Users\nmaxwell\.condarc
          conda version : 4.10.3
    conda-build version : 3.20.5
         python version : 3.8.5.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : C:\Users\nmaxwell\Anaconda3  (writable)
      conda av data dir : C:\Users\nmaxwell\Anaconda3\etc\conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\nmaxwell\Anaconda3\pkgs
                          C:\Users\nmaxwell\.conda\pkgs
                          C:\Users\nmaxwell\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\nmaxwell\Anaconda3\envs
                          C:\Users\nmaxwell\.conda\envs
                          C:\Users\nmaxwell\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.10.3 requests/2.24.0 CPython/3.8.5 Windows/10 Windows/10.0.18362
          administrator : False
             netrc file : None
           offline mode : False

$ conda list

# Name                    Version                   Build  Channel
blas                      1.0                         mkl
blas-devel                3.9.0              11_win64_mkl    conda-forge
blosc                     1.21.0               h0e60522_0    conda-forge
boost                     1.74.0           py38h1266d08_3    conda-forge
boost-cpp                 1.74.0               h5b4e17d_4    conda-forge
bzip2                     1.0.8                h8ffe710_4    conda-forge
c-compiler                1.3.0                h8ffe710_0    conda-forge
ca-certificates           2021.10.8            h5b45459_0    conda-forge
cairo                     1.16.0            hb19e0ff_1008    conda-forge
cfitsio                   3.470                h0af3d06_7    conda-forge
clangdev                  5.0.0                   flang_3  [flang]  conda-forge
cmake                     3.21.3               h39d44d4_0    conda-forge
compilers                 1.3.0                h57928b3_0    conda-forge
cpp-filesystem            1.3.8                h5362a0b_0    conda-forge
cudatoolkit               11.4.2               h0e0bcb6_9    conda-forge
curl                      7.79.1               h789b8ee_1    conda-forge
cxx-compiler              1.3.0                h2d74725_0    conda-forge
dlib                      19.22.0          py38h085cf52_0    conda-forge
draco                     1.4.1                h5362a0b_0    conda-forge
eigen                     3.4.0                h2d74725_0    conda-forge
expat                     2.4.1                h39d44d4_0    conda-forge
filelock                  3.3.0              pyhd8ed1ab_0    conda-forge
flang                     5.0.0           he025d50_20180525    conda-forge
flang_win-64              5.0.0           h13ae965_20180526    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.1            h1989441_1005    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fortran-compiler          1.3.0                h9655429_0    conda-forge
freeglut                  3.2.1                h0e60522_2    conda-forge
freetype                  2.10.4               h546665d_1    conda-forge
freexl                    1.0.6                ha8e266a_0    conda-forge
gdal                      3.3.2            py38hc3a09ef_4    conda-forge
geos                      3.9.1                h39d44d4_2    conda-forge
geotiff                   1.7.0                h350af67_3    conda-forge
gettext                   0.19.8.1          ha2e2712_1008    conda-forge
git                       2.33.0               h57928b3_2    conda-forge
gtest                     1.10.0               h2d74725_7    conda-forge
hdf4                      4.2.15               h0e5069d_3    conda-forge
hdf5                      1.12.1          nompi_h2a0e4a3_101    conda-forge
icu                       68.1                 h0e60522_0    conda-forge
intel-openmp              2021.3.0          h57928b3_3372    conda-forge
jasper                    2.0.14               h77af90b_2    conda-forge
jbig                      2.1               h8d14728_2003    conda-forge
jpeg                      9d                   h8ffe710_0    conda-forge
jsoncpp                   1.9.4                h2d74725_3    conda-forge
kealib                    1.4.14               h8995ca9_3    conda-forge
krb5                      1.19.2               hbae68bd_2    conda-forge
laszip                    3.4.3                h6538335_1    conda-forge
laz-perf                  2.1.0            py38h885f38d_3    conda-forge
lcms2                     2.12                 h2a16943_0    conda-forge
lerc                      2.2.1                h0e60522_0    conda-forge
libblas                   3.9.0              11_win64_mkl    conda-forge
libcblas                  3.9.0              11_win64_mkl    conda-forge
libclang                  11.1.0          default_h5c34c98_1    conda-forge
libcurl                   7.79.1               h789b8ee_1    conda-forge
libdeflate                1.7                  h8ffe710_5    conda-forge
libffi                    3.4.2                h0e60522_4    conda-forge
libflac                   1.3.3                h0e60522_1    conda-forge
libflang                  5.0.0           h6538335_20180525    conda-forge
libgdal                   3.3.2                h08edb8f_4    conda-forge
libglib                   2.68.4               h3be07f2_1    conda-forge
libiconv                  1.16                 he774522_0    conda-forge
libkml                    1.3.0             h9859afa_1014    conda-forge
liblapack                 3.9.0              11_win64_mkl    conda-forge
liblapacke                3.9.0              11_win64_mkl    conda-forge
libnetcdf                 4.8.1           nompi_h1cc8e9d_101    conda-forge
libogg                    1.3.4                h8ffe710_1    conda-forge
libopencv                 4.5.3            py38hb110498_5    conda-forge
libopus                   1.3.1                h8ffe710_1    conda-forge
libpng                    1.6.37               h1d00b33_2    conda-forge
libpq                     13.3                 hfcc5ef8_1    conda-forge
libprotobuf               3.18.1               h7755175_0    conda-forge
librttopo                 1.1.0                hb340de5_6    conda-forge
libsndfile                1.0.31               h0e60522_1    conda-forge
libspatialindex           1.9.3                h39d44d4_4    conda-forge
libspatialite             5.0.1                h6a90f17_9    conda-forge
libssh2                   1.10.0               h680486a_2    conda-forge
libtiff                   4.3.0                h0c97f57_1    conda-forge
libvorbis                 1.3.7                h0e60522_0    conda-forge
libwebp-base              1.2.1                h8ffe710_0    conda-forge
libxml2                   2.9.12               hf5bbc77_0    conda-forge
libzip                    1.8.0                hfed4ece_1    conda-forge
libzlib                   1.2.11            h8ffe710_1013    conda-forge
llvm-meta                 5.0.0                         0    conda-forge
lz4-c                     1.9.3                h8ffe710_1    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
mkl                       2021.3.0           hb70f87d_564    conda-forge
mkl-devel                 2021.3.0           h57928b3_565    conda-forge
mkl-include               2021.3.0           hb70f87d_564    conda-forge
mkl-service               2.4.0            py38h294d835_0    conda-forge
mkl_fft                   1.3.0            py38h277e83a_2
msys2-conda-epoch         20160418                      1    conda-forge
ninja                     1.10.2               h2d74725_1    conda-forge
nitro                     2.7.dev6             h33f27b4_3    conda-forge
numpy                     1.21.2           py38h089cfbf_0    conda-forge
opencv                    4.5.3            py38haa244fe_5    conda-forge
openjpeg                  2.4.0                hb211442_1    conda-forge
openmp                    5.0.0                    vc14_1    conda-forge
openssl                   1.1.1l               h8ffe710_0    conda-forge
pcre                      8.45                 h0e60522_0    conda-forge
pdal                      2.3.0                h610f668_8    conda-forge
pip                       21.2.4             pyhd8ed1ab_0    conda-forge
pixman                    0.40.0               h8ffe710_0    conda-forge
pkg-config                0.29.2            h2bf4dc2_1008    conda-forge
pkgconfig                 1.5.5            py38haa244fe_0    conda-forge
poppler                   21.09.0              h24fffdf_3    conda-forge
poppler-data              0.4.11               hd8ed1ab_0    conda-forge
postgresql                13.3                 h1c22c4f_1    conda-forge
proj                      8.1.1                h1cfcee9_2    conda-forge
protobuf                  3.18.1           py38h885f38d_0    conda-forge
py-opencv                 4.5.3            py38h595d716_5    conda-forge
pybind11                  2.8.0            py38hbd9d945_0    conda-forge
pybind11-global           2.8.0            py38hbd9d945_0    conda-forge
python                    3.8.12          h7840368_1_cpython    conda-forge
python_abi                3.8                      2_cp38    conda-forge
qt                        5.12.9               h5909a2a_4    conda-forge
rapidjson                 1.1.0             ha925a31_1002    conda-forge
rtree                     0.9.7            py38h8b54edf_2    conda-forge
scipy                     1.7.1            py38ha1292f7_0    conda-forge
setuptools                58.2.0           py38haa244fe_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
sqlite                    3.36.0               h8ffe710_2    conda-forge
tbb                       2021.3.0             h2d74725_0    conda-forge
tiledb                    2.3.4                h78dabda_0    conda-forge
tk                        8.6.11               h8ffe710_1    conda-forge
ucrt                      10.0.20348.0         h57928b3_0    conda-forge
vc                        14.2                 hb210afc_5    conda-forge
vs2015_runtime            14.29.30037          h902a5da_5    conda-forge
vs2017_win-64             19.16.27038          h2e3bad8_2    conda-forge
vswhere                   2.8.4                h57928b3_0    conda-forge
wheel                     0.37.0             pyhd8ed1ab_1    conda-forge
xerces-c                  3.2.3                h0e60522_2    conda-forge
xsimd                     7.6.0                h2d74725_0    conda-forge
xtensor                   0.23.10              h5362a0b_0    conda-forge
xtensor-blas              0.19.1               h5362a0b_0    conda-forge
xtensor-io                0.12.9               h5362a0b_0    conda-forge
xtensor-python            0.25.3           py38hf0438ff_0    conda-forge
xtl                       0.7.2                h5362a0b_1    conda-forge
xz                        5.2.5                h62dcd97_1    conda-forge
zlib                      1.2.11            h8ffe710_1013    conda-forge
zstd                      1.5.0                h6255e5f_0    conda-forge

Missing components showing up in dependent packages

In the boost unification (#164), we tried as much as possible - aside from the output reshuffling - to keep the build exactly as before. In particular, the build script is taken essentially verbatim from the previous boost-cpp (with the exception of adding the python build to have all the headers at once).

However, during the migration I'm now seeing cases of missing components, e.g. here

-- Could NOT find Boost (missing: system serialization iostreams) (found suitable version "1.82.0", minimum required is "1.58.0")

or here

Could NOT find Boost (missing: thread system date_time chrono) (found suitable version "1.82.0", minimum required is "1.55.0")

These all sound very stdlib-related, so perhaps those feedstocks are defaulting to a too-old C++ version?

boost/assert.hpp Missing

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

After installing all packages, I still cannot find a boost/assert.hpp in the conda-forge install.

Usually, this file is part of the default boost headers that are installed.

Installed packages

conda list:

...
boost 1.82.0 h781c19f_6 conda-forge
boost-cpp 1.82.0 h44aadfe_6 conda-forge
libboost 1.82.0 h6fcfa73_6 conda-forge
libboost-devel 1.82.0 h00ab1b0_6 conda-forge
libboost-headers 1.82.0 ha770c72_6 conda-forge
libboost-python 1.82.0 py311h92ebd52_6 conda-forge
libboost-python-devel 1.82.0 py311h781c19f_6 conda-forge
...



### Environment info

`conda info`:

...
            environment : warpx-openmp-dev (active)
           env location : /home/axel/micromamba/envs/warpx-openmp-dev
      user config files : /home/axel/.mambarc
 populated config files : 
       libmamba version : 1.3.1
     micromamba version : 1.3.1
           curl version : libcurl/7.87.0 OpenSSL/3.0.8 zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0
     libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2
       virtual packages : __unix=0=0
                          __linux=6.2.0=0
                          __glibc=2.35=0
                          __archspec=1=x86_64
                          __cuda=12.3=0
               channels : 
       base environment : /home/axel/micromamba
               platform : linux-64

Boost.Python and segmentation faults with numpy 1.21

Issue:

Due to NEP 42 being accepted as being the new datatype system for numpy 1.21, C++ extensions wrapped with Boost.Python will get segmentation faults. There is an issue created upstream by @jawsc-alan (boostorg/python#376). @dwpaley did the work to find the commit where the behavior changed. It is also possible to reproduce the behavior in numpy 1.20 by building with the NPY_USE_NEW_CASTINGIMPL environment variable.

Most likely, Boost.Python will need to be updated to handle the new datatype system.

PR to enable testing NEP 42 (numpy/numpy#17401)
PR to set NEP 42 as the default (numpy/numpy#18676)


Environment (conda list):
$ conda list


Details about conda and system ( conda info ):
$ conda info

Boost and python versions

I expected conda to lower the problems with mixing python versions when distribution an application using Boost.Python, but reading e.g. #1 it seems that even here it is always a topic.

In particular I'm trying to make a package which depends on boost-python and I get some weird failure in the tests, as if the python/numpy versions do not match. Is there a way to force the version of python to be the same as the one used for building boost? Or the other way around.

I tried to make a simple test that I pushed as a PR conda-forge/staged-recipes#2056.
Could you please help debugging the simple example?

Thanks!

'boost/python.hpp' file not found

Issue:
the boost/python.hpp file is not found when trying to compile

Used this to install boost into active conda env: conda install -c conda-forge boost


Environment (conda list):

# Name                    Version                   Build  Channel
absl-py                   0.4.0                     <pip>
astor                     0.7.1                     <pip>
bleach                    1.5.0                     <pip>
boost                     1.68.0           py36h3e44d54_0    conda-forge
boost-cpp                 1.68.0               h3a22d5f_0    conda-forge
bzip2                     1.0.6                         1    conda-forge
ca-certificates           2018.8.24            ha4d7672_0    conda-forge
certifi                   2018.8.24                py36_1    conda-forge
cycler                    0.10.0                    <pip>
decorator                 4.3.0                     <pip>
Deprecated                1.2.1                     <pip>
gast                      0.2.0                     <pip>
graphviz                  0.9                       <pip>
grpcio                    1.14.1                    <pip>
h5py                      2.8.0                     <pip>
html5lib                  0.9999999                 <pip>
icu                       58.2                 hfc679d8_0    conda-forge
Keras                     2.1.6                     <pip>
kiwisolver                1.0.1                     <pip>
libcxx                    4.0.1                h579ed51_0  
libcxxabi                 4.0.1                hebd6815_0  
libedit                   3.1.20170329         hb402a30_2  
libffi                    3.2.1                h475c297_4  
libgfortran               3.0.1                h93005f0_2  
libopenblas               0.2.20               hdc02c5d_7  
Markdown                  2.6.11                    <pip>
matplotlib                2.2.3                     <pip>
ncurses                   6.1                  h0a44026_0  
networkx                  2.1                       <pip>
numpy                     1.14.3           py36he6379a5_1  
numpy                     1.15.1                    <pip>
numpy-base                1.14.3           py36h7ef55bc_1  
opencv-python             3.4.2.17                  <pip>
openssl                   1.0.2p               h470a237_0    conda-forge
Pillow                    5.2.0                     <pip>
pip                       10.0.1                   py36_0  
protobuf                  3.6.1                     <pip>
psutil                    5.4.7                     <pip>
pydot                     1.2.4                     <pip>
pyparsing                 2.2.0                     <pip>
python                    3.6.6                hc167b69_0  
python-dateutil           2.7.3                     <pip>
pytz                      2018.5                    <pip>
PyWavelets                0.5.2                     <pip>
PyYAML                    3.13                      <pip>
readline                  7.0                  hc1231fa_4  
scikit-image              0.13.1                    <pip>
scipy                     1.1.0                     <pip>
setuptools                40.0.0                   py36_0  
six                       1.11.0                    <pip>
sqlite                    3.24.0               ha441bb4_0  
tensorboard               1.8.0                     <pip>
tensorflow                1.8.0                     <pip>
termcolor                 1.1.0                     <pip>
tk                        8.6.7                h35a86e2_3  
Werkzeug                  0.14.1                    <pip>
wheel                     0.31.1                   py36_0  
wrapt                     1.10.11                   <pip>
xz                        5.2.4                h1de35cc_4  
zlib                      1.2.11               hf3cbc9b_2  


Details about conda and system ( conda info ):
     active environment : tf
    active env location : /Users/arjundesai/anaconda3/envs/tf
            shell level : 1
       user config file : /Users/arjundesai/.condarc
 populated config files : 
          conda version : 4.5.11
    conda-build version : 3.10.5
         python version : 3.6.5.final.0
       base environment : /Users/arjundesai/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/osx-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/osx-64
                          https://repo.anaconda.com/pkgs/pro/noarch
          package cache : /Users/arjundesai/anaconda3/pkgs
                          /Users/arjundesai/.conda/pkgs
       envs directories : /Users/arjundesai/anaconda3/envs
                          /Users/arjundesai/.conda/envs
               platform : osx-64
             user-agent : conda/4.5.11 requests/2.18.4 CPython/3.6.5 Darwin/17.7.0 OSX/10.13.6
                UID:GID : 501:20
             netrc file : None
           offline mode : False

Boost.MPI

Is there any plan to compile also Boost.MPI?

Unresolved symbol errors in boost_regex related to icu58

Issue: Unresolved symbols related to icu (coming from boost_regex and others)

I have a package that relies on the conda-forge build of boost, which is used by the bioconda project. However, the package fails to compile under OSX. The relevant CI logs are available here. Essentially, however, it seems unable to find a number of symbols originating in the icu58 library. This results in a large number of linker errors like the following:

Undefined symbols for architecture x86_64:
  "icu_58::Locale::Locale(icu_58::Locale const&)", referenced from:
      boost::basic_regex<int, boost::icu_regex_traits>::imbue(icu_58::Locale) in libboost_regex.a(icu.o)
      boost::icu_regex_traits::imbue(icu_58::Locale) in libboost_regex.a(icu.o)
      boost::re_detail_106700::icu_regex_traits_implementation::icu_regex_traits_implementation(icu_58::Locale const&) in libboost_regex.a(icu.o)
  "icu_58::Locale::Locale()", referenced from:
      boost::re_detail_106700::regex_data<int, boost::icu_regex_traits>::regex_data() in libboost_regex.a(icu.o)
  "icu_58::Locale::~Locale()", referenced from:
      boost::basic_regex<int, boost::icu_regex_traits>::imbue(icu_58::Locale) in libboost_regex.a(icu.o)
      boost::icu_regex_traits::imbue(icu_58::Locale) in libboost_regex.a(icu.o)
      void boost::detail::sp_pointer_construct<boost::re_detail_106700::icu_regex_traits_implementation, boost::re_detail_106700::icu_regex_traits_implementation>(boost::shared_ptr<boost::re_detail_106700::icu_regex_traits_implementation>*, boost::re_detail_106700::icu_regex_traits_implementation*, boost::detail::shared_count&) in libboost_regex.a(icu.o)
      boost::detail::sp_counted_impl_p<boost::re_detail_106700::icu_regex_traits_implementation>::dispose() in libboost_regex.a(icu.o)
      boost::re_detail_106700::icu_regex_traits_implementation::icu_regex_traits_implementation(icu_58::Locale const&) in libboost_regex.a(icu.o)
      boost::re_detail_106700::regex_data<int, boost::icu_regex_traits>::regex_data() in libboost_regex.a(icu.o)
  "icu_58::Collator::createInstance(icu_58::Locale const&, UErrorCode&)", referenced from:
      boost::re_detail_106700::icu_regex_traits_implementation::icu_regex_traits_implementation(icu_58::Locale const&) in libboost_regex.a(icu.o)
  "_u_charFromName_58", referenced from:
      boost::icu_regex_traits::lookup_collatename(int const*, int const*) const in libboost_regex.a(icu.o)
  "_u_charType_58", referenced from:
      boost::icu_regex_traits::isctype(int, unsigned long long) const in libboost_regex.a(icu.o)
  "_u_digit_58", referenced from:
      boost::icu_regex_traits::isctype(int, unsigned long long) const in libboost_regex.a(icu.o)
      boost::re_detail_106700::basic_regex_parser<int, boost::icu_regex_traits>::unescape_character() in libboost_regex.a(icu.o)
      boost::re_detail_106700::basic_regex_parser<int, boost::icu_regex_traits>::parse_repeat_range(bool) in libboost_regex.a(icu.o)
      boost::re_detail_106700::basic_regex_parser<int, boost::icu_regex_traits>::parse_backref() in libboost_regex.a(icu.o)
      boost::re_detail_106700::basic_regex_parser<int, boost::icu_regex_traits>::parse_perl_extension() in libboost_regex.a(icu.o)
      boost::re_detail_106700::basic_regex_parser<int, boost::icu_regex_traits>::parse_extended_escape() in libboost_regex.a(icu.o)
  "_u_isblank_58", referenced from:
      boost::icu_regex_traits::isctype(int, unsigned long long) const in libboost_regex.a(icu.o)
...

Looking at the environment, however, it's clear that the icu58 dependency is found and installed. So, it's not clear to me why these symbols can't be found. Any help would be greatly appreciated.

CMake: Could NOT find Boost

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

*I'm not sure if this is strictly related to this feedstock. *

I'm using some header-only math functions from Boost. I can just install libboost-headers. I still use the Boost::headers target, such that my library has a find_dependency(Boost REQUIRED) call. The FindBoost is I believe provided by CMake and not by this feedstock.

Yet on my Linux machine I keep getting an error

  CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
    Could NOT find Boost (missing: Boost_INCLUDE_DIR)
  Call Stack (most recent call first):
    /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
    /usr/share/cmake/Modules/FindBoost.cmake:2344 (find_package_handle_standard_args)
    /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
    /home/tdegeus/miniforge3/envs/code_epm_jed/lib/cmake/prrng/prrngConfig.cmake:31 (find_dependency)
    CMakeLists.txt:42 (find_package)

Strangely I'm not getting this error in the equivalent CI : https://github.com/tdegeus/GooseEPM/actions/runs/7017121385/job/19089767396

Installed packages

conda list
# packages in environment at /home/tdegeus/miniforge3/envs/code_epm_jed:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
alabaster                 0.7.13             pyhd8ed1ab_0    conda-forge
autodocsumm               0.2.11             pyhd8ed1ab_0    conda-forge
babel                     2.13.1             pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py312h30efb56_1    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.22.1               hd590300_0    conda-forge
ca-certificates           2023.11.17           hbcca054_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
certifi                   2023.11.17         pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py312hf06ca03_0    conda-forge
cfgv                      3.3.1              pyhd8ed1ab_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
cmake                     3.27.8               hcfe8598_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
conda_envfile             0.4.2              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.0           py312h8572e83_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
deprecation               2.1.0              pyh9f0ad1d_0    conda-forge
distlib                   0.3.7              pyhd8ed1ab_0    conda-forge
distro                    1.8.0              pyhd8ed1ab_0    conda-forge
docopt                    0.6.2                      py_1    conda-forge
docutils                  0.17.1          py312h7900ff3_4    conda-forge
doxygen                   1.9.8                h661eb56_0    conda-forge
enstat                    0.9.7              pyhd8ed1ab_0    conda-forge
filelock                  3.13.1             pyhd8ed1ab_0    conda-forge
fonttools                 4.45.1          py312h98912ed_0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
ghostscript               10.02.1              h59595ed_0    conda-forge
goosehdf5                 0.26.1             pyhd8ed1ab_0    conda-forge
goosempl                  0.14.0             pyhd8ed1ab_0    conda-forge
gooseslurm                0.13.4             pyhd8ed1ab_0    conda-forge
h5glance                  0.8.1              pyhd8ed1ab_0    conda-forge
h5py                      3.10.0          nompi_py312h819072b_100    conda-forge
hdf5                      1.14.2          nompi_h4f84152_100    conda-forge
htmlgen                   2.0.0              pyhd8ed1ab_0    conda-forge
identify                  2.5.32             pyhd8ed1ab_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagesize                 1.4.1              pyhd8ed1ab_0    conda-forge
importlib-metadata        6.8.0              pyha770c72_0    conda-forge
jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py312h8572e83_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lcms2                     2.15                 hb7c19ff_3    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libblas                   3.9.0           20_linux64_openblas    conda-forge
libboost-headers          1.83.0               ha770c72_0    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcblas                  3.9.0           20_linux64_openblas    conda-forge
libcurl                   8.4.0                hca28451_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    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
libiconv                  1.17                 h166bdaf_0    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
liblapack                 3.9.0           20_linux64_openblas    conda-forge
libnghttp2                1.58.0               h47da74e_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.25          pthreads_h413a1c8_0    conda-forge
libpng                    1.6.39               h753d276_0    conda-forge
libsqlite                 3.44.2               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_3    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libuv                     1.46.0               hd590300_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
markupsafe                2.1.3           py312h98912ed_1    conda-forge
mathjax                   3.2.2                ha770c72_0    conda-forge
matplotlib-base           3.8.2           py312he5832f3_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mv_regex                  0.3.0              pyhd8ed1ab_0    conda-forge
mycluster                 1.6                      pypi_0    pypi
ncurses                   6.4                  h59595ed_2    conda-forge
ninja                     1.11.1               h924138e_0    conda-forge
nodeenv                   1.8.0              pyhd8ed1ab_0    conda-forge
numpy                     1.26.2          py312heda63a1_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.0                hd590300_1    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
parallel                  20231122             ha770c72_0    conda-forge
pdfcombine                1.1.5              pyhd8ed1ab_0    conda-forge
perl                      5.32.1          4_hd590300_perl5    conda-forge
pillow                    10.1.0          py312hf3581a9_0    conda-forge
pip                       23.3.1             pyhd8ed1ab_0    conda-forge
platformdirs              4.0.0              pyhd8ed1ab_0    conda-forge
pre-commit                3.5.0              pyha770c72_0    conda-forge
prettytable               3.9.0              pyhd8ed1ab_0    conda-forge
prrng                     1.12.0               h00ab1b0_3    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pybind11                  2.11.1          py312h8572e83_2    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pybind11-global           2.11.1          py312h8572e83_2    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.12.0          hab00c5b_0_cpython    conda-forge
python-cppcolormap        1.4.5           py312h5b9907d_1    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-gooseeye           0.8.0           py312h5b9907d_0    conda-forge
python_abi                3.12                    4_cp312    conda-forge
pytz                      2023.3.post1       pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py312h98912ed_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
scikit-build              0.17.6             pyh4af843d_0    conda-forge
scipy                     1.11.4          py312heda63a1_0    conda-forge
setuptools                68.2.2             pyhd8ed1ab_0    conda-forge
setuptools-scm            8.0.4              pyhd8ed1ab_0    conda-forge
setuptools_scm            8.0.4                hd8ed1ab_0    conda-forge
shelephant                0.24.0             pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snowballstemmer           2.2.0              pyhd8ed1ab_0    conda-forge
sphinx                    5.0.0              pyh6c4a22f_1    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              pyhd8ed1ab_0    conda-forge
sphinxcontrib-qthelp      1.0.6              pyhd8ed1ab_0    conda-forge
sphinxcontrib-serializinghtml 1.1.9              pyhd8ed1ab_0    conda-forge
termcolor                 2.3.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
tqdm                      4.66.1             pyhd8ed1ab_0    conda-forge
typing-extensions         4.8.0                hd8ed1ab_0    conda-forge
typing_extensions         4.8.0              pyha770c72_0    conda-forge
tzdata                    2023c                h71feb2d_0    conda-forge
ukkonen                   1.0.1           py312h8572e83_4    conda-forge
urllib3                   2.1.0              pyhd8ed1ab_0    conda-forge
virtualenv                20.24.7            pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.12             pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xsimd                     10.0.0               h924138e_0    conda-forge
xtensor                   0.24.7               h00ab1b0_0    conda-forge
xtensor-python            0.26.1          py312hfb10629_2    conda-forge
xtl                       0.7.5                hf52228f_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
zstd                      1.5.5                hfc55251_0    conda-forge

Environment info

conda info

     active environment : code_epm_jed
    active env location : /home/tdegeus/miniforge3/envs/code_epm_jed
            shell level : 2
       user config file : /home/tdegeus/.condarc
 populated config files : /home/tdegeus/miniforge3/.condarc
                          /home/tdegeus/.condarc
          conda version : 23.10.0
    conda-build version : not installed
         python version : 3.11.6.final.0
       virtual packages : __archspec=1=icelake
                          __glibc=2.28=0
                          __linux=4.18.0=0
                          __unix=0=0
       base environment : /home/tdegeus/miniforge3  (writable)
      conda av data dir : /home/tdegeus/miniforge3/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/tdegeus/miniforge3/pkgs
                          /home/tdegeus/.conda/pkgs
       envs directories : /home/tdegeus/miniforge3/envs
                          /home/tdegeus/.conda/envs
               platform : linux-64
             user-agent : conda/23.10.0 requests/2.31.0 CPython/3.11.6 Linux/4.18.0-348.23.1.el8_5.x86_64 rhel/8.5 glibc/2.28 solver/libmamba conda-libmamba-solver/23.11.1 libmambapy/1.5.3
                UID:GID : 177478:10532
             netrc file : None
           offline mode : False

System layout for windows

Since conda has vc features, it's fine to have system layout instead of appending the compiler version in the dll names.

(One advantage would be that cmake's FindBoost.cmake script will be able to find newer boost libraries without requiring patches like, conda-forge/cmake-feedstock#29)

Issues after 1.64 update

After the update from 1.63 to 1.64, our conda-based CI over at pagmo is failing on linux/osx. Python3-based builds are unable to detect the Boost Python libs:

https://travis-ci.org/esa/pagmo2/jobs/228139108

Python2-based builds compile but they are giving an error which is reminiscent of when there is a mismatch bettwen Python version and Boost.Python version:

https://travis-ci.org/esa/pagmo2/jobs/228139109

(see the last line: ImportError: dynamic module does not define init function (initcore))

Weirdly enough, the appveyor builds are ok:

https://ci.appveyor.com/project/ci4esa/pagmo2/build/job/p4dr4u8x5phkoet3

(nevermind the test failure, I am breaking code in that PR :)

I suspect that the issue on linux/osx is partly connected to the fact that, in 1.64, there's fewer .so files in the lib directory: with respect to 1.63, for instance, the libboost_python.so.1.64.0 is missing, and there is only libboost_python3.so.1.64.0 file, which I believe is what is bothering CMake?

No idea about the Python 2 failure though. Switching back to 1.63 in our CI restores the situation:

https://travis-ci.org/esa/pagmo2/jobs/228251332
https://travis-ci.org/esa/pagmo2/jobs/228251334

(again, nevermind the test failures)

Add more file tests

We just added static libraries. However, our testing of these is a bit incomplete at the moment. For instance, we are not testing Windows static libraries, which start with libboost_*. Also, we should make sure we are really testing all the static libraries on the Unix platforms.

How to force boost 1.78 in conda-forge package?

Comment:

I am creating a new build for pixsfm (I am not the maintainer), that needs to run with pycolmap 0.4.0 and ceres-solver 2.1.0, due to the issues listed in conda-forge/pixsfm-feedstock#17. In short: the package does not work with pycolmap >= 0.5.0 and ceres-solver >= 2.2.0.

The package does not really need libboost for building or host, but it requires boost-cpp=1.78 to be linked in as running dependency, because pycolmap 0.4.0, so I need to add it in deps.run. That way, it compiles and finishes correctly with ./build-locally.py.

However, when building in the CI pipeline, boost-cpp seems to be superseeded. The message from conda-forge-webservices says:

The boost-cpp output has been superseded by libboost-devel (as of 1.82), which now comes with a run-export (on libboost) as well. In case you only needed the boost headers, you should use libboost-headers.

I understand this is due to a recent consolidation of boost. However, in the CI, the building process seems to fail because it tries to install versions of pycolmap that run on libboost >=1.82.0,<1.83.0a0, so I get the error:

  - package pycolmap-0.4.0-cuda112py310h2ee5878_5 requires ceres-solver >=2.2.0,<2.3.0a0, but none of the providers can be installed

More details in the PR.

This is telling me that my specification of boost-cpp =1.78=* is being ignored, and libboost only has versions from 1.82 onwards.

How can I solve this?

Missing static libraries?

Comment:

I am trying to update a bioconda recipe for a package requiring the BOOST static libraries to build (SKESA).
However, it seems that the static libraries are missing from the /lib folder of the conda environment.

On debian 10:

 mamba create -n boost boost zlib

~/anaconda3/envs/boost/include/boost/ exists
~/anaconda3/envs/boost/lib contains the libboost_xxx.so files but no libboost_xxx.a file.

Looking at the recipe here it seems like the static libraries should be installed. I am a bit confused with the otrher stock (boost-cpp) for which the static libraries are not installed. The mamba log lists both packages:

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆ/  /โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
        โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—
        โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘
        โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘
        โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•  โ•šโ•โ•

        mamba (1.0.0) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ


Looking for: ['boost', 'zlib']

pkgs/main/linux-64                                            No change
bioconda/linux-64                                             No change
bioconda/noarch                                               No change
r/linux-64                                                    No change
pkgs/main/noarch                                              No change
pkgs/r/linux-64                                               No change
pkgs/r/noarch                                                 No change
r/noarch                                                      No change
conda-forge/noarch                                  10.7MB @   2.8MB/s  4.1s
conda-forge/linux-64                                28.7MB @   5.1MB/s  6.6s
Transaction

  Prefix: /home/debian/anaconda3/envs/boost

  Updating specs:

   - boost
   - zlib


  Package               Version  Build                Channel                    Size
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Install:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

  + _libgcc_mutex           0.1  conda_forge          conda-forge/linux-64     Cached
  + _openmp_mutex           4.5  2_gnu                conda-forge/linux-64     Cached
  + boost                1.80.0  py311h59ea3da_4      conda-forge/linux-64     Cached
  + boost-cpp            1.80.0  h75c5d50_0           conda-forge/linux-64     Cached
  + bzip2                 1.0.8  h7f98852_4           conda-forge/linux-64     Cached
  + ca-certificates   2022.12.7  ha878542_0           conda-forge/linux-64     Cached
  + icu                    70.1  h27087fc_0           conda-forge/linux-64     Cached
  + ld_impl_linux-64       2.39  hcc3a1bd_1           conda-forge/linux-64     Cached
  + libblas               3.9.0  16_linux64_openblas  conda-forge/linux-64     Cached
  + libcblas              3.9.0  16_linux64_openblas  conda-forge/linux-64     Cached
  + libffi                3.4.2  h7f98852_5           conda-forge/linux-64     Cached
  + libgcc-ng            12.2.0  h65d4601_19          conda-forge/linux-64     Cached
  + libgfortran-ng       12.2.0  h69a702a_19          conda-forge/linux-64     Cached
  + libgfortran5         12.2.0  h337968e_19          conda-forge/linux-64     Cached
  + libgomp              12.2.0  h65d4601_19          conda-forge/linux-64     Cached
  + liblapack             3.9.0  16_linux64_openblas  conda-forge/linux-64     Cached
  + libnsl                2.0.0  h7f98852_0           conda-forge/linux-64     Cached
  + libopenblas          0.3.21  pthreads_h78a6416_3  conda-forge/linux-64     Cached
  + libsqlite            3.40.0  h753d276_0           conda-forge/linux-64     Cached
  + libstdcxx-ng         12.2.0  h46fd767_19          conda-forge/linux-64     Cached
  + libuuid              2.32.1  h7f98852_1000        conda-forge/linux-64     Cached
  + libzlib              1.2.13  h166bdaf_4           conda-forge/linux-64     Cached
  + ncurses                 6.3  h27087fc_1           conda-forge/linux-64     Cached
  + numpy                1.24.0  py311hbde0eaa_0      conda-forge/linux-64     Cached
  + openssl               3.0.7  h0b41bf4_1           conda-forge/linux-64     Cached
  + pip                  22.3.1  pyhd8ed1ab_0         conda-forge/noarch       Cached
  + python               3.11.0  ha86cf86_0_cpython   conda-forge/linux-64     Cached
  + python_abi             3.11  3_cp311              conda-forge/linux-64     Cached
  + readline                8.2  h5eee18b_0           pkgs/main/linux-64       Cached
  + setuptools           65.6.3  pyhd8ed1ab_0         conda-forge/noarch       Cached
  + tk                   8.6.12  h27826a3_0           conda-forge/linux-64     Cached
  + tzdata                2022g  h191b570_0           conda-forge/noarch       Cached
  + wheel                0.38.4  pyhd8ed1ab_0         conda-forge/noarch       Cached
  + xz                    5.2.8  h5eee18b_0           pkgs/main/linux-64       Cached
  + zlib                 1.2.13  h166bdaf_4           conda-forge/linux-64     Cached
  + zstd                  1.5.2  h6239696_4           conda-forge/linux-64     Cached

  Summary:

  Install: 36 packages

  Total download: 0 B

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Confirm changes: [Y/n] Y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

To activate this environment, use

     $ mamba activate boost

To deactivate an active environment, use

     $ mamba deactivate

What am I missing?

Add missing new (built) cobalt library

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Release 1.84 introduced two new libraries, one of them needs to be built: libboost-cobalt

Installed packages

# Name                    Version                   Build  Channel
libboost                  1.84.0               hcc118f5_1    conda-forge
libboost-devel            1.84.0               h91493d7_1    conda-forge
libboost-headers          1.84.0               h57928b3_1    conda-forge

Environment info

active environment : bliss2
    active env location : C:\Miniconda3\envs\bliss2
            shell level : 2
       user config file : C:\Users\debionne\.condarc
 populated config files : C:\Miniconda3\.condarc
                          C:\Users\debionne\.condarc
          conda version : 23.7.1
    conda-build version : not installed
         python version : 3.9.16.final.0
       virtual packages : __archspec=1=x86_64
                          __win=0=0
       base environment : C:\Miniconda3  (writable)
      conda av data dir : C:\Miniconda3\etc\conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : C:\Miniconda3\pkgs
                          C:\Users\debionne\.conda\pkgs
                          C:\Users\debionne\AppData\Local\conda\conda\pkgs
       envs directories : C:\Miniconda3\envs
                          C:\Users\debionne\.conda\envs
                          C:\Users\debionne\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/23.7.1 requests/2.27.1 CPython/3.9.16 Windows/10 Windows/10.0.19045
          administrator : True
             netrc file : None
           offline mode : False

boost 1.70 build error

linux: pentantic error (works with boost 1.68)

[3/45] Building CXX object CMakeFiles/ocl.dir/pythonlib/ocl_algo.cpp.o
FAILED: CMakeFiles/ocl.dir/pythonlib/ocl_algo.cpp.o 
$BUILD_PREFIX/bin/x86_64-conda_cos6-linux-gnu-c++  -Docl_EXPORTS -I. -I$PREFIX/include/python3.6m -I$SRC_DIR/src/cutters -I$SRC_DIR/src/geo -I$SRC_DIR/src/algo -I$SRC_DIR/src/dropcutter -I$SRC_DIR/src/common -I$SRC_DIR/src -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -I$PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/opencamlib-2018.08 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -fopenmp -O3 -DNDEBUG -fPIC   -Wall -Wno-deprecated -pedantic-errors -std=gnu++11 -MD -MT CMakeFiles/ocl.dir/pythonlib/ocl_algo.cpp.o -MF CMakeFiles/ocl.dir/pythonlib/ocl_algo.cpp.o.d -o CMakeFiles/ocl.dir/pythonlib/ocl_algo.cpp.o -c $SRC_DIR/src/pythonlib/ocl_algo.cpp
In file included from $PREFIX/include/boost/python/object/function_handle.hpp:8:0,
                 from $PREFIX/include/boost/python/converter/arg_to_python.hpp:19,
                 from $PREFIX/include/boost/python/call.hpp:15,
                 from $PREFIX/include/boost/python/object_core.hpp:14,
                 from $PREFIX/include/boost/python/args.hpp:22,
                 from $PREFIX/include/boost/python.hpp:11,
                 from $SRC_DIR/src/pythonlib/ocl_algo.cpp:22:
$PREFIX/include/boost/python/detail/caller.hpp:127:2: error: extra ';' [-Wpedantic]

maybe this should be reported to boost directly.

Boost 1.66 not working with CMake

This is not really a Boost issue, rather a CMake one, but I figured it would be worth to record it here.

Since version 1.66, the name of the Boost libraries includes a tag representing the architecture the library was built for (e.g., x64). CMake's FindBoost gets confused by this new tag, and it fails to find the Boost Python library on our CI pipeline:

https://ci.appveyor.com/project/ci4esa/pagmo2/build/1.0.827/job/9hpk9pcjbc004o19#L702

The issue has been reported and discussed here:

https://gitlab.kitware.com/cmake/cmake/issues/17575

Should we try to include one of the proposed solutions as a patch to the current conda CMake version? Or should we just wait for a proper CMake update?

As it stands, Boost 1.66 is unusable in CMake projects.

Need to package both static and dynamic libraries for components

Currently only dynamic libraries are being built. This causes problems in projects with build dependencies on boost requiring the static libraries:

https://circleci.com/gh/conda-forge/staged-recipes/3253

CMake Error at /opt/conda/envs/_build/share/cmake-3.5/Modules/FindBoost.cmake:1647 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.60.0

  Boost include path: /opt/conda/envs/_build/include

  Could not find the following static Boost libraries:

          boost_filesystem
          boost_thread
          boost_unit_test_framework
          boost_date_time
          boost_atomic

If no one beats me to it, here is one example of building the complete Boost library stack:

https://github.com/cloudera/native-toolchain/blob/master/source/boost/build.sh

Package debug libraries

I am not too familiar with conda-forge, but I just recently discovered this package and conda-installed it, and noticed that the debug libraries are not included. This is an issue at least on Windows, where it is not recommended - and may not even work - to combine the Boost release libraries with a debug build.

When building Boost, this is controlled by the "variant" option AFAIK, which can be set to either debug or release (or both).

After some searching I realize that this issue may also be relevant for the boost-cpp feedstock.

Tests are not comprehensive

By taking a quick look at this repository I see that besides checking for existence of files it does not contain any other tests. Is there any make check or similar that can be added here?

Boost and MPI

How hard would it be to include MPI support? Any plans for this? Or do you think this should better be done with a "split", i.e. a seperate boost-mpi package?

Currently we are putting MPI in our boost recipe (for linux only) as in
https://github.com/xdata-skylark/libskylark/tree/master/conda/boost
but obviously we would love to be able to just point to the "official" conda-forge package(s) for the dependencies :)

split into two packages?

The boost headers are about 169 MB extracted. Seems a little silly to have them installed. That said, I understand that this kind of optimization is not something that was in the ethos of conda.

I just wanted to flag this.

Set -std=c++17 with next boost migration

Currently, our clangxx on macOS builds with -std=c++14 whereas the gcc on Linux builds with -std=c++17. We should change macOS to also use -std=c++17.

While in general there seem not to be any breaking ABI changes with this switch, boost breaks conda-forge/boost-cpp-feedstock#43.

When boost gets upgraded next time, we likely need a migration anyway. We should use that opportunity to change the CXXFLAGS for clangxx to include -std=c++17 as boost seems to be the only library affected by these issues.

Segfault when using new packages, not when using cf201901

After the compiler migration, boost-python on Mac seems to have a major problem. Under certain common scenarios, the new package segfaults.

Here's a tiny example repo that reproduces the problem:
https://github.com/stuarteberg/testboost

I would appreciate it if someone with a Mac could verify the problem on their own machine.

Have a look at compare.sh to see what I mean. Basically, if I use:

conda install boost=1.68 -c conda-forge/label/cf201901

...then the module builds correctly and can be used without a segfault. But if I use:

conda install boost=1.68 -c conda-forge

... then the resulting compiled extension can't even be imported without triggering a segfault.

Here's the output from running compare.sh on my machine. Notice that the "old" build prints "hello world", but the "new" build segfaults.

In this example, I'm using boost=1.68, but I've tried several other versions (as old as 1.64), and that doesn't seem to make a difference.

Build/test output, comparing old vs. new
$ ./compare.sh
***********************************************************************
***********************************************************************
Creating old-build environment
***********************************************************************
***********************************************************************
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /miniforge/envs/old-build

  added / updated specs:
    - boost=1.68
    - clangxx_osx-64
    - cmake
    - python=3.6


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libcxx-4.0.1               |       h579ed51_0         957 KB  conda-forge/label/cf201901
    ------------------------------------------------------------
                                           Total:         957 KB

The following NEW packages will be INSTALLED:

  boost              conda-forge/label/cf201901/osx-64::boost-1.68.0-py36h3e44d54_1
  boost-cpp          conda-forge/label/cf201901/osx-64::boost-cpp-1.68.0-h3a22d5f_0
  bzip2              conda-forge/label/cf201901/osx-64::bzip2-1.0.6-1
  ca-certificates    conda-forge/label/cf201901/osx-64::ca-certificates-2018.11.29-ha4d7672_0
  cctools            conda-forge/osx-64::cctools-895-h7512d6f_0
  certifi            conda-forge/label/cf201901/osx-64::certifi-2018.11.29-py36_1000
  clang              conda-forge/osx-64::clang-4.0.1-h662ec87_0
  clang_osx-64       pkgs/main/osx-64::clang_osx-64-4.0.1-h1ce6c1d_11
  clangxx            pkgs/main/osx-64::clangxx-4.0.1-hc9b4283_0
  clangxx_osx-64     pkgs/main/osx-64::clangxx_osx-64-4.0.1-h22b1bf0_11
  cmake              conda-forge/label/cf201901/osx-64::cmake-3.13.2-h011004d_0
  compiler-rt        conda-forge/osx-64::compiler-rt-4.0.1-h5487866_0
  curl               conda-forge/label/cf201901/osx-64::curl-7.63.0-h74213dd_0
  expat              conda-forge/label/cf201901/osx-64::expat-2.2.5-hfc679d8_2
  icu                conda-forge/label/cf201901/osx-64::icu-58.2-hfc679d8_0
  krb5               conda-forge/label/cf201901/osx-64::krb5-1.16.3-hbb41f41_0
  ld64               conda-forge/osx-64::ld64-274.2-h7c2db76_0
  libblas            conda-forge/osx-64::libblas-3.8.0-6_openblas
  libcblas           conda-forge/osx-64::libcblas-3.8.0-6_openblas
  libcurl            conda-forge/label/cf201901/osx-64::libcurl-7.63.0-hbdb9355_0
  libcxx             conda-forge/label/cf201901/osx-64::libcxx-4.0.1-h579ed51_0
  libcxxabi          pkgs/main/osx-64::libcxxabi-4.0.1-hebd6815_0
  libedit            conda-forge/label/cf201901/osx-64::libedit-3.1.20170329-haf1bffa_1
  libffi             conda-forge/label/cf201901/osx-64::libffi-3.2.1-hfc679d8_5
  libgfortran        conda-forge/label/cf201901/osx-64::libgfortran-3.0.0-1001
  liblapack          conda-forge/osx-64::liblapack-3.8.0-6_openblas
  libssh2            conda-forge/label/cf201901/osx-64::libssh2-1.8.0-h5b517e9_3
  libuv              conda-forge/label/cf201901/osx-64::libuv-1.24.0-h470a237_0
  llvm               conda-forge/osx-64::llvm-4.0.1-hc748206_0
  llvm-lto-tapi      conda-forge/osx-64::llvm-lto-tapi-4.0.1-h6701bc3_0
  ncurses            conda-forge/label/cf201901/osx-64::ncurses-6.1-hfc679d8_2
  numpy              conda-forge/osx-64::numpy-1.16.3-py36hdf140aa_0
  openblas           conda-forge/label/cf201901/osx-64::openblas-0.3.5-ha44fe06_0
  openssl            conda-forge/label/cf201901/osx-64::openssl-1.0.2p-h470a237_2
  pip                conda-forge/label/cf201901/osx-64::pip-18.1-py36_1000
  python             conda-forge/label/cf201901/osx-64::python-3.6.7-h5001a0f_1
  readline           conda-forge/label/cf201901/osx-64::readline-7.0-haf1bffa_1
  rhash              conda-forge/label/cf201901/osx-64::rhash-1.3.6-h470a237_1
  setuptools         conda-forge/label/cf201901/osx-64::setuptools-40.6.3-py36_0
  sqlite             conda-forge/label/cf201901/osx-64::sqlite-3.26.0-hb1c47c0_0
  tk                 conda-forge/label/cf201901/osx-64::tk-8.6.9-ha92aebf_0
  wheel              conda-forge/label/cf201901/osx-64::wheel-0.32.3-py36_0
  xz                 conda-forge/label/cf201901/osx-64::xz-5.2.4-h470a237_1
  zlib               conda-forge/label/cf201901/osx-64::zlib-1.2.11-h470a237_4



Downloading and Extracting Packages
libcxx-4.0.1         | 957 KB    | ####################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate old-build
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Building with OLD packages
mkdir: build-old: File exists
Using /miniforge/envs/old-build/bin/python
Using /miniforge/envs/old-build/lib/libpython3.6m.dylib
-- Boost version: 1.68.0
-- Found boost_python library: /miniforge/envs/old-build/lib/libboost_python36.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /magnetic/workspace/testboost/build-old
[ 50%] Linking CXX shared library testboost.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[100%] Built target testboost
Testing with OLD packages
hello, world
0


***********************************************************************
***********************************************************************
Creating new-build environment
***********************************************************************
***********************************************************************
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /miniforge/envs/new-build

  added / updated specs:
    - boost=1.68
    - clangxx_osx-64
    - cmake
    - python=3.6


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libcxx-4.0.1               |       h579ed51_0         957 KB
    ------------------------------------------------------------
                                           Total:         957 KB

The following NEW packages will be INSTALLED:

  boost              conda-forge/osx-64::boost-1.68.0-py36h9888f84_1001
  boost-cpp          conda-forge/osx-64::boost-cpp-1.68.0-h6f8c590_1000
  bzip2              conda-forge/osx-64::bzip2-1.0.6-h1de35cc_1002
  ca-certificates    conda-forge/osx-64::ca-certificates-2019.3.9-hecc5488_0
  cctools            conda-forge/osx-64::cctools-895-h7512d6f_0
  certifi            conda-forge/osx-64::certifi-2019.3.9-py36_0
  clang              conda-forge/osx-64::clang-4.0.1-h662ec87_0
  clang_osx-64       pkgs/main/osx-64::clang_osx-64-4.0.1-h1ce6c1d_11
  clangxx            pkgs/main/osx-64::clangxx-4.0.1-hc9b4283_0
  clangxx_osx-64     pkgs/main/osx-64::clangxx_osx-64-4.0.1-h22b1bf0_11
  cmake              conda-forge/osx-64::cmake-3.14.3-hdd2e4aa_0
  compiler-rt        conda-forge/osx-64::compiler-rt-4.0.1-h5487866_0
  curl               conda-forge/osx-64::curl-7.64.1-h22ea746_0
  expat              conda-forge/osx-64::expat-2.2.5-h0a44026_1002
  icu                conda-forge/osx-64::icu-58.2-h0a44026_1000
  krb5               conda-forge/osx-64::krb5-1.16.3-hcfa6398_1001
  ld64               conda-forge/osx-64::ld64-274.2-h7c2db76_0
  libblas            conda-forge/osx-64::libblas-3.8.0-6_openblas
  libcblas           conda-forge/osx-64::libcblas-3.8.0-6_openblas
  libcurl            conda-forge/osx-64::libcurl-7.64.1-h16faf7d_0
  libcxx             pkgs/main/osx-64::libcxx-4.0.1-h579ed51_0
  libcxxabi          pkgs/main/osx-64::libcxxabi-4.0.1-hebd6815_0
  libedit            conda-forge/osx-64::libedit-3.1.20170329-hcfe32e1_1001
  libffi             conda-forge/osx-64::libffi-3.2.1-h6de7cb9_1006
  libgfortran        conda-forge/osx-64::libgfortran-3.0.1-0
  liblapack          conda-forge/osx-64::liblapack-3.8.0-6_openblas
  libssh2            conda-forge/osx-64::libssh2-1.8.2-hcdc9a53_2
  libuv              conda-forge/osx-64::libuv-1.28.0-h01d97ff_0
  llvm               conda-forge/osx-64::llvm-4.0.1-hc748206_0
  llvm-lto-tapi      conda-forge/osx-64::llvm-lto-tapi-4.0.1-h6701bc3_0
  ncurses            conda-forge/osx-64::ncurses-6.1-h0a44026_1002
  numpy              conda-forge/osx-64::numpy-1.16.3-py36hdf140aa_0
  openblas           conda-forge/osx-64::openblas-0.3.5-h436c29b_1001
  openssl            conda-forge/osx-64::openssl-1.1.1b-h01d97ff_2
  pip                conda-forge/osx-64::pip-19.1-py36_0
  python             conda-forge/osx-64::python-3.6.7-h8dc6b48_1004
  readline           conda-forge/osx-64::readline-7.0-hcfe32e1_1001
  rhash              conda-forge/osx-64::rhash-1.3.6-h1de35cc_1001
  setuptools         conda-forge/osx-64::setuptools-41.0.1-py36_0
  sqlite             conda-forge/osx-64::sqlite-3.26.0-h1765d9f_1001
  tk                 conda-forge/osx-64::tk-8.6.9-ha441bb4_1001
  wheel              conda-forge/osx-64::wheel-0.33.1-py36_0
  xz                 conda-forge/osx-64::xz-5.2.4-h1de35cc_1001
  zlib               conda-forge/osx-64::zlib-1.2.11-h1de35cc_1004



Downloading and Extracting Packages
libcxx-4.0.1         | 957 KB    | ####################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate new-build
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Building with NEW packages
mkdir: build-new: File exists
Using /miniforge/envs/new-build/bin/python
Using /miniforge/envs/new-build/lib/libpython3.6m.a
-- Boost version: 1.68.0
-- Found boost_python library: /miniforge/envs/new-build/lib/libboost_python36.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /magnetic/workspace/testboost/build-new
[100%] Built target testboost
Testing with NEW packages
./compare.sh: line 52: 70156 Segmentation fault: 11  PYTHONPATH=. python -c 'from testboost import greet; print(greet())'
139

Base Environment (conda list -n base):
$ conda --version
conda 4.6.14

$ conda list
# packages in environment at /miniforge:
#
# Name                    Version                   Build  Channel
anaconda-client           1.7.2                    py36_0
apipkg                    1.4                      pypi_0    pypi
argcomplete               1.8.2                    py36_0    conda-forge
arrow                     0.10.0                   pypi_0    pypi
asn1crypto                0.24.0                   py36_0
beautifulsoup4            4.5.3                    py36_0    conda-forge
binaryornot               0.4.4                    pypi_0    pypi
blinker                   1.4                        py_1    conda-forge
bzip2                     1.0.6                         1    conda-forge
ca-certificates           2019.3.9             hecc5488_0    conda-forge
certifi                   2019.3.9                 py36_0    conda-forge
cffi                      1.9.1                    py36_0
chardet                   3.0.4                    pypi_0    pypi
click                     6.7                      pypi_0    pypi
clyent                    1.2.2                    py36_1
conda                     4.6.14                   py36_0    conda-forge
conda-build               3.17.8                   py36_1    conda-forge
conda-build-all           1.1.1                      py_2    conda-forge
conda-env                 2.6.0                h36134e3_0
conda-forge-pinning       2019.04.18                    0    conda-forge
conda-smithy              3.3.3                      py_0    conda-forge
conda-verify              3.1.0                    py36_0
cryptography              2.6.1            py36h212c5bf_0    conda-forge
cryptography-vectors      2.3.1                 py36_1000    conda-forge/label/cf201901
curl                      7.64.1               h22ea746_0    conda-forge
decorator                 4.3.0                      py_0    conda-forge
dvid-resource-manager     0.1.post3            0_g3fbdf5d    flyem-forge
execnet                   1.5.0                    pypi_0    pypi
expat                     2.2.5                hfc679d8_2    conda-forge
filelock                  2.0.6                    py36_0    conda-forge
flake8                    3.3.0                    py36_0    conda-forge
flake8-import-order       0.12                     py36_0    conda-forge
future                    0.16.0                   pypi_0    pypi
gettext                   0.19.8.1          h46ab8bc_1002    conda-forge
git                       2.21.0          pl526h3e3e3d1_0    conda-forge
gitdb                     0.6.4                    py36_1    conda-forge
gitpython                 2.1.1                    py36_0    conda-forge
glob2                     0.6                        py_0    conda-forge
icu                       58.2                 h4b95b61_1
idna                      2.8                      py36_0
ipython_genutils          0.2.0                    py36_0    conda-forge
isodate                   0.6.0                      py_1    conda-forge
jinja2                    2.9.5                    py36_0    conda-forge
jinja2-time               0.2.0                    pypi_0    pypi
jsonschema                2.6.0                    py36_1    conda-forge
jupyter_core              4.4.0                      py_0    conda-forge
krb5                      1.16.3            hcfa6398_1001    conda-forge
libarchive                3.3.3                h786848e_5
libcurl                   7.64.1               h16faf7d_0    conda-forge
libcxx                    7.0.0                h2d50403_2    conda-forge
libedit                   3.1.20170329      hcfe32e1_1001    conda-forge
libffi                    3.2.1                hfc679d8_5    conda-forge
libiconv                  1.15                 h470a237_3    conda-forge
liblief                   0.9.0                h2a1bed3_0
libsodium                 1.0.10                        0    conda-forge
libssh2                   1.8.2                hcdc9a53_2    conda-forge
libxml2                   2.9.9                hab757c2_0
llvm-meta                 7.0.0                         0    conda-forge
lz4-c                     1.8.1.2              h1de35cc_0
lzo                       2.10                 h362108e_2
markupsafe                0.23                     py36_1    conda-forge
mccabe                    0.6.1                    py36_0    conda-forge
mock                      2.0.0                    py36_0    conda-forge
mocker                    1.1.1                    pypi_0    pypi
msrest                    0.6.6                      py_0    conda-forge
nbformat                  4.4.0                    py36_0    conda-forge
ncurses                   6.1                  hfc679d8_1    conda-forge
oauthlib                  3.0.1                      py_0    conda-forge
openssl                   1.1.1b               h01d97ff_2    conda-forge
pbr                       3.1.1                    py36_0    conda-forge
pep8-naming               0.4.1                    py36_0    conda-forge
perl                      5.26.2            haec8ef5_1006    conda-forge
pip                       9.0.1                    py36_1
pkginfo                   1.2.1                    py36_0    conda-forge
poyo                      0.4.1                    pypi_0    pypi
psutil                    5.4.5                    py36_0    conda-forge
publish-conda-stack       0.2.3.dev18               dev_0    <develop>
py                        1.4.34                   py36_0
py-lief                   0.9.0            py36hd4eaf27_0
pyasn1                    0.1.9                    py36_0
pycodestyle               2.3.1                    py36_0    conda-forge
pycosat                   0.6.3            py36hee92d8f_0
pycparser                 2.17                     py36_0
pycrypto                  2.6.1                    py36_4
pyflakes                  1.5.0                    py36_0    conda-forge
pygithub                  1.34                     py36_0    conda-forge
pyjwt                     1.5.2                    py36_0    conda-forge
pyopenssl                 16.2.0                   py36_0
pysocks                   1.6.8                    py36_0
pytest                    3.2.3                    py36_0    conda-forge
pytest-forked             0.2                      pypi_0    pypi
pytest-xdist              1.20.1                   pypi_0    pypi
python                    3.6.7             h8dc6b48_1004    conda-forge
python-dateutil           2.8.0                    pypi_0    pypi
python-libarchive-c       2.8                   py36_1004    conda-forge
pytz                      2017.2                   py36_0    conda-forge
pyyaml                    3.12                     py36_1    conda-forge
pyzmq                     16.0.2                   py36_2    conda-forge
readline                  7.0                  haf1bffa_1    conda-forge
requests                  2.21.0                   py36_0
requests-oauthlib         1.2.0                      py_0    conda-forge
ruamel.yaml               0.15.18                  py36_0    conda-forge
ruamel_yaml               0.11.14                  py36_1
setuptools                38.4.0                   py36_0
six                       1.10.0                   py36_0
smmap                     2.0.1                    py36_0    conda-forge
sqlite                    3.26.0            h1765d9f_1001    conda-forge
tk                        8.6.9                ha92aebf_0    conda-forge/label/cf201901
tqdm                      4.25.0                     py_0    conda-forge
traitlets                 4.3.2                    py36_0    conda-forge
urllib3                   1.24.1                   py36_0
vsts-python-api           0.1.22                     py_0    conda-forge
wheel                     0.29.0                   py36_0
whichcraft                0.4.1                    pypi_0    pypi
xz                        5.2.4                h470a237_1    conda-forge
yaml                      0.1.6                         0
zeromq                    4.2.1                         1    conda-forge
zlib                      1.2.11               h470a237_3    conda-forge
zstd                      1.3.7                h5bba6e5_0

Details about conda and system ( conda info ):
$ conda info

     active environment : base
    active env location : /miniforge
            shell level : 4
       user config file : /Users/bergs/.condarc
 populated config files : /miniforge/.condarc
          conda version : 4.6.14
    conda-build version : 3.17.8
         python version : 3.6.7.final.0
       base environment : /miniforge  (writable)
           channel URLs : https://conda.anaconda.org/flyem-forge/label/upgrade201904/osx-64
                          https://conda.anaconda.org/flyem-forge/label/upgrade201904/noarch
                          https://conda.anaconda.org/conda-forge/osx-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/osx-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /miniforge/pkgs
                          /Users/bergs/.conda/pkgs
       envs directories : /miniforge/envs
                          /Users/bergs/.conda/envs
               platform : osx-64
             user-agent : conda/4.6.14 requests/2.21.0 CPython/3.6.7 Darwin/16.7.0 OSX/10.12.6
                UID:GID : 1633079952:1899195968
             netrc file : None
           offline mode : False

Corrupted libs with osx-arm64 build?

Just noticed this in CI:

SafetyError: The package for libboost located at /Users/runner/miniforge3/pkgs/libboost-1.82.0-h72cdd8a_4
appears to be corrupted. The path 'lib/libboost_atomic.dylib'
has an incorrect size.
  reported size: 87312 bytes
  actual size: 86178 bytes

SafetyError: The package for libboost located at /Users/runner/miniforge3/pkgs/libboost-1.82.0-h72cdd8a_4
appears to be corrupted. The path 'lib/libboost_chrono.dylib'
has an incorrect size.
  reported size: 61328 bytes
  actual size: 60194 bytes

SafetyError: The package for libboost located at /Users/runner/miniforge3/pkgs/libboost-1.82.0-h72cdd8a_4
appears to be corrupted. The path 'lib/libboost_container.dylib'
has an incorrect size.
  reported size: 123552 bytes
  actual size: 122421 bytes

and so on...

This seems to have been overlooked in #164, unfortunately. ๐Ÿ˜‘

We did have some other SafetyErrors for the unification related to CMake metadata, which got fixed in 43373e6 and 3c87dcf; this could be similar in principle.

What I could imagine happening: we're generating signature with cctools upon first installation (for libboost), which changes the artefacts. Once we copy them again for libboost-devel, the signature doesn't get generated, and so conda gets confused with the sizes?

Missing libboost_python symbolic link

Unlike the package in the defaults channel, this package doesn't create a libboost_python symbolic link. This means that programs linking against libboost_python fail to find the correct shared object.

For example, on Linux:

  • Installing from defaults channel in a Python 3.7 conda environment:
(test) ~ โฏโฏโฏ conda install -c default boost
(test) ~ โฏโฏโฏ ls -l ~/.conda/envs/test/lib/libboost_python*
-rw-rw-r-- 2 lester lester 564K Jul  5  2018 /home/lester/.conda/envs/sire-test/lib/libboost_python37.a
lrwxrwxrwx 1 lester lester   27 Mar 22 16:04 /home/lester/.conda/envs/sire-test/lib/libboost_python37.so -> libboost_python37.so.1.67.0
-rwxrwxr-x 2 lester lester 320K Jul  5  2018 /home/lester/.conda/envs/sire-test/lib/libboost_python37.so.1.67.0
lrwxrwxrwx 1 lester lester   19 Mar 22 16:04 /home/lester/.conda/envs/sire-test/lib/libboost_python.a -> libboost_python37.a
lrwxrwxrwx 1 lester lester   27 Mar 22 16:04 /home/lester/.conda/envs/sire-test/lib/libboost_python.so -> libboost_python37.so.1.67.0
  • Installing from the conda-forge channel in the same Python 3.7 environment:
(test) ~ โฏโฏโฏ conda install -c conda-forge boost
(test) ~ โฏโฏโฏ ls -l ~/.conda/envs/test/lib/libboost_python*
-rw-rw-r-- 2 lester lester 583K Feb 10 21:27 /home/lester/.conda/envs/sire-test/lib/libboost_python37.a
lrwxrwxrwx 1 lester lester   27 Mar 22 16:12 /home/lester/.conda/envs/sire-test/lib/libboost_python37.so -> libboost_python37.so.1.69.0
-rwxrwxr-x 2 lester lester 317K Feb 10 21:28 /home/lester/.conda/envs/sire-test/lib/libboost_python37.so.1.69.0

The same behaviour is observed on macOS, where the libboost_python.dylib symbolic link is missing.

boost-python minimalistic example segfaults on macOS

Issue:

I experienced a segfault for a minimalistic boost-python example in conda environment on macosx.

The given example (see below) was tested on linux, windows and macos, each with and without conda and only the conda version for macos gives a segfault, so I assume its a specific conda related problem on macos.

It would be great if you know a solution or give me some hints to debug this problem.


Environment (conda list):
# packages in environment at /Users/florian/opt/anaconda3/envs/boost:
#
# Name                    Version                   Build  Channel
boost                     1.70.0           py36hbf1eeb5_1    conda-forge
boost-cpp                 1.70.0               h75728bb_2    conda-forge
bzip2                     1.0.8                h0b31af3_2    conda-forge
ca-certificates           2019.11.28           hecc5488_0    conda-forge
certifi                   2019.11.28               py36_0    conda-forge
icu                       64.2                 h6de7cb9_1    conda-forge
libblas                   3.8.0               14_openblas    conda-forge
libcblas                  3.8.0               14_openblas    conda-forge
libcxx                    9.0.1                         0    conda-forge
libcxxabi                 9.0.1                         0    conda-forge
libffi                    3.2.1             h6de7cb9_1006    conda-forge
libgfortran               4.0.0                         2    conda-forge
liblapack                 3.8.0               14_openblas    conda-forge
libopenblas               0.3.7                h3d69b6c_6    conda-forge
llvm-openmp               9.0.1                h40edb58_0    conda-forge
ncurses                   6.1               h0a44026_1002    conda-forge
numpy                     1.17.3           py36hde6bac1_0    conda-forge
openssl                   1.1.1d               h0b31af3_0    conda-forge
pip                       19.3.1                   py36_0    conda-forge
python                    3.6.7             h4285619_1006    conda-forge
readline                  8.0                  hcfe32e1_0    conda-forge
setuptools                44.0.0                   py36_0    conda-forge
sqlite                    3.30.1               h93121df_0    conda-forge
tk                        8.6.10               hbbe82c9_0    conda-forge
wheel                     0.33.6                   py36_0    conda-forge
xz                        5.2.4             h1de35cc_1001    conda-forge
zlib                      1.2.11            h0b31af3_1006    conda-forge

Details about conda and system ( conda info ):
     active environment : boost
    active env location : /Users/florian/opt/anaconda3/envs/boost
            shell level : 1
       user config file : /Users/florian/.condarc
 populated config files : /Users/florian/.condarc
          conda version : 4.8.0
    conda-build version : 3.18.11
         python version : 3.6.9.final.0
       virtual packages : __osx=10.15.1
       base environment : /Users/florian/opt/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/florian/opt/anaconda3/pkgs
                          /Users/florian/.conda/pkgs
       envs directories : /Users/florian/opt/anaconda3/envs
                          /Users/florian/.conda/envs
               platform : osx-64
             user-agent : conda/4.8.0 requests/2.22.0 CPython/3.6.9 Darwin/19.0.0 OSX/10.15.1
                UID:GID : 501:20
             netrc file : None
           offline mode : False

Steps to reproduce:

The minimalistic cpp example (save as bpt.cpp):

#include "boost/python.hpp"

double t1(){ return 1.0;}
int t2(){ return 2;} 

namespace bp = boost::python;
BOOST_PYTHON_MODULE(_bpt_){
    bp::def("t1", t1, ""); // works
    bp::def("t2", t2, ""); // will segfault
}

The python test file: (save as `bpt.py` )
import _bpt_
print(dir(_bpt_)) # shows the bound methods
print(_bpt_.t1()) # expecting 1 , works
print(_bpt_.t2()) # expection 2 , segfault

A Makefile to build the bindings (save as `Makefile` ) and you probably need to correct the ENV variable
TARGET=_bpt_

ENV=/Users/florian/opt/anaconda3/envs/boost

PYINC=-I $(ENV)/include/python3.6m/
BPLIB=$(ENV)/lib/libboost_python36.dylib
BPINC=-I $(ENV)/include
PYLIB=$(ENV)/lib/libpython3.6m.dylib

CXX=clang++ 
AR=clang++ -bundle

default:

        $(CXX) -fPIC -c bpt.cpp $(PYINC) $(BPINC)
        $(AR) -o $(TARGET).so *.o $(BPLIB) $(PYLIB)

test:
        python bpt.py

clean:
        rm -f *.o *.so *~

Finally create the environment and test the problem.
conda create -c conda-forge -n boost boost python=3.6
conda activate boost
make
make test

The binding with the int return value segfaults, also with long or size_t.
double, float, std::string etc. work without problem.

On the same machine everything works as expected with brew install and boost 1.72.

Best regards and thank you,
Carsten

boost-Python issue with Python 3.11

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Dear package managers,

As reported in conda-forge/eigenpy-feedstock#100 (comment), we currently have some known issues with boost-python and Python 3.11 regarding the support of enum types reported in this issue boostorg/python#385.
Would it be possible to patch the latest release of boost-python with the fix provided in boostorg/python#385?

Thanks in advance for your help and for your great efforts you put in conda,
Best,

Justin

Installed packages

None

Environment info

None

Boost.Python converter problem for Python 3.8.10 h3a889e0_1_cpython build for osx-64

Issue:

For the h3a889e0_1_cpython build of Python 3.8.10 for osx-64, the package I maintain has a problem with one of our conversions between Python and C++ using Boost.Python. To reproduce the issue on an Intel Mac,

  1. conda create -n test cctbx-base python=3.8.10=h3a889e0_1_cpython
  2. Run these commands in an interactive shell
conda activate test
python
>>> from scitbx.array_family import flex
>>> a = flex.complex_double([None])
>>> a[0]
(4e-323+0j)
>>>

What should happen is a TypeError because None should not be converted into a number for constructing a complex number. Sometimes, the value is (5e-323+0j). Generally, the argument is a list of numbers (e.g. [1, 2, 3j, 4+5j]). I have tested this on macOS 10.14.6, 10.15.7, and 11.4. They all show the same behavior.

To get the expected behavior, you can change the Python to the earlier build by running,

  1. conda activate test
  2. conda install python=3.8.10=h0e5c897_0_cpython
  3. Run the same commands in an interactive shell. The output should look like
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: No registered converter was able to produce a C++ rvalue of type std::__1::complex<double> from this Python object of type NoneType

So I thought the problem might be that the Boost.Python package is not compiled the same way as the latest Python 3.8.10 with macOS SDK 11.0 and linking to CoreFoundation. But I have rebuilt boost and cctbx-base with the latest SDK, with and without linking to CoreFoundation, but the problematic behavior persists for Python 3.8.10 (h3a889e0_1_cpython).

The normal behavior occurs in the osx-arm64 builds, which was another reason why I though boost was the issue, but Python 3.9.4 is fine even though it is built with macOS SDK 11 and links to CoreFoundation while boost is built with macOS SDK 10.9 (from looking at the build logs, but I could be misinterpreting the output).

Lastly, this different behavior is only for Python 3.8.10 (h3a889e0_1_cpython) on osx-64. The other platforms and other versions of Python behave properly. I am running nightly tests here (status badges at the bottom of the README).

The issue is also discussed here
conda-forge/cctbx-base-feedstock#22

Any suggestions for debugging are welcome. Thanks!


Environment (conda list):
$ conda list

# packages in environment at /Users/builder/software/miniconda3/envs/test:
#
# Name                    Version                   Build  Channel
biopython                 1.78             py38h96a0964_2    conda-forge
boost                     1.74.0           py38h692b87f_3    conda-forge
boost-cpp                 1.74.0               hff03dee_4    conda-forge
brotlipy                  0.7.0           py38h5406a74_1001    conda-forge
bzip2                     1.0.8                h0d85af4_4    conda-forge
ca-certificates           2021.5.30            h033912b_0    conda-forge
cctbx-base                2021.5           py38hfaf3399_0    conda-forge
certifi                   2021.5.30        py38h50d1736_0    conda-forge
cffi                      1.14.5           py38ha97d567_0    conda-forge
chardet                   4.0.0            py38h50d1736_1    conda-forge
cryptography              3.4.7            py38h1fa4640_0    conda-forge
cycler                    0.10.0                     py_2    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
future                    0.18.2           py38h50d1736_3    conda-forge
icu                       68.1                 h74dc148_0    conda-forge
idna                      2.10               pyh9f0ad1d_0    conda-forge
jbig                      2.1               h0d85af4_2003    conda-forge
jpeg                      9d                   hbcb3906_0    conda-forge
kiwisolver                1.3.1            py38hd9c93a9_1    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      2.2.1                h046ec9c_0    conda-forge
libblas                   3.9.0                9_openblas    conda-forge
libcblas                  3.9.0                9_openblas    conda-forge
libcxx                    11.1.0               habf9029_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libffi                    3.3                  h046ec9c_2    conda-forge
libgfortran               5.0.0           9_3_0_h6c81a4c_22    conda-forge
libgfortran5              9.3.0               h6c81a4c_22    conda-forge
liblapack                 3.9.0                9_openblas    conda-forge
libopenblas               0.3.15          openmp_h5e1b9a4_1    conda-forge
libpng                    1.6.37               h7cec526_2    conda-forge
libsvm                    325                  he49afe7_0    conda-forge
libtiff                   4.3.0                h1167814_1    conda-forge
libwebp-base              1.2.0                h0d85af4_2    conda-forge
llvm-openmp               11.1.0               hda6cdc1_1    conda-forge
lz4-c                     1.9.3                h046ec9c_0    conda-forge
matplotlib-base           3.4.2            py38h6152e83_0    conda-forge
mrcfile                   1.3.0              pyh44b312d_0    conda-forge
ncurses                   6.2                  h2e338ed_4    conda-forge
numpy                     1.20.3           py38had91d27_1    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h6e7aa92_1    conda-forge
openssl                   1.1.1k               h0d85af4_0    conda-forge
pillow                    8.2.0            py38h83525de_1    conda-forge
pip                       21.1.2             pyhd8ed1ab_0    conda-forge
psutil                    5.8.0            py38h96a0964_1    conda-forge
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pyopenssl                 20.0.1             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pysocks                   1.7.1            py38h50d1736_3    conda-forge
python                    3.8.10          h3a889e0_1_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python.app                1.3              py38h5406a74_4    conda-forge
python_abi                3.8                      1_cp38    conda-forge
readline                  8.1                  h05e3726_0    conda-forge
reportlab                 3.5.67           py38hf6ac518_0    conda-forge
requests                  2.25.1             pyhd3deb0d_0    conda-forge
setuptools                49.6.0           py38h50d1736_3    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
sqlite                    3.35.5               h44b9ce1_0    conda-forge
tk                        8.6.10               h0419947_1    conda-forge
tornado                   6.1              py38h5406a74_1    conda-forge
urllib3                   1.26.5             pyhd8ed1ab_0    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
xz                        5.2.5                haf1e3a3_1    conda-forge
zlib                      1.2.11            h7795811_1010    conda-forge
zstd                      1.5.0                h582d3a0_0    conda-forge

Details about conda and system ( conda info ):
$ conda info

     active environment : None
            shell level : 0
       user config file : /Users/builder/.condarc
 populated config files : /Users/builder/.condarc
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.8.10.final.0
       virtual packages : __osx=10.14.6=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/builder/software/miniconda3  (writable)
      conda av data dir : /Users/builder/software/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://conda.anaconda.org/conda-forge/osx-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://conda.anaconda.org/cctbx/osx-64
                          https://conda.anaconda.org/cctbx/noarch
                          https://conda.anaconda.org/phenix-project/osx-64
                          https://conda.anaconda.org/phenix-project/noarch
                          https://conda.anaconda.org/ambermd/osx-64
                          https://conda.anaconda.org/ambermd/noarch
          package cache : /Users/builder/software/miniconda3/pkgs
                          /Users/builder/.conda/pkgs
       envs directories : /Users/builder/software/miniconda3/envs
                          /Users/builder/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.1 CPython/3.8.10 Darwin/18.7.0 OSX/10.14.6
                UID:GID : 502:20
             netrc file : None
           offline mode : False

Boost system and filesystem

Hi maintainers,
I'm running into trouble when compiling something for bioconda which depends on boost 1.57.0. cmake complains boost-filesystem and boost-system are missing.

Since the original outside-conda compile script contains --with-system and --with-filesystem passed to bjam (b2), I wondered if it was a good idea to add those to this compile also, or that there may be another package for that.

Compile static libraries with -fPIC

Similar to other C++ libraries where we've addressed static linking issues, boost also needs -fPIC in its CXXFLAGS to be able to be statically linked when creating other shared libraries. It turns out that Ubuntu 14.04's boost also does not do this, and I just got this error in another build:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_filesystem.a(path.o): relocation R_X86_64_32S against `_ZNSs4_Rep20_S_empty_rep_storageE' can not be used when making a shared object; recompile with -fPIC
/usr/lib/x86_64-linux-gnu/libboost_filesystem.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

To be clear, the use case is creating libfoo.so with its dependencies statically linked (so users of libfoo do not need to install its transitive dependencies as other shared libraries). Is there some other way around this other than always compiling with -fPIC (the known solution)?

Setting Python version with conda-forge boost

Comment:

I've been pulling my hair out trying to build (Boost 1.82.0 version) boost.python in a conda environment running Python3.11. I've successfully built the boost.python.so libraries, but a subsequent compile of a c++ library using the correct Boost.Python includes and linker (from my Boost.Python build, which I've isolated in a ~/test_dir) results in abstract symbols being populated into the compiled c++ library. The library is completely unuseable. This happens even when compiling the simple "hello world" example directly from the Boost docs.

Today I discovered the conda-forge libraries for installing boost and boost.python into a conda env, but my big question is how do those libraries match up with whatever particular flavor of Python I might be using in that specific conda env? For example, I create a conda env with Python3.11, and want to build boost 1.82.0. What conda-forge files should I install? What if I want to run the Boost Python files in a different env running Python 3.7? Thanks.

Splitting Python portion into a separate package

So, I recently hit a painful problem and am now seriously considering following Homebrew's path of breaking Boost into a non-Python package and having a Boost.Python package for just that part. The reason I am thinking about doing this is that it is causing me trouble when I build with SCons and require Boost. The net effect I fear is we have some package that becomes pinned in some artificial manner against Python 2.x when it has no Python dependency outside of Boost.

In particular, I am working on a build of MongoDB. See this PR ( conda-forge/staged-recipes#392 ). I would be very curious to here others' thoughts about this proposal and if they have any other ideas about how to proceed.

boost-python minimalistic example throws malloc error on macOS

Issue:
This issue is a sequel to #81
I experience now a weird malloc problem for a minimalistic boost-python example using std::throw in conda environment on macosx.

The given example (see below) was tested on linux, windows and macos, and only the mac version for macos gives:

python(15723,0x109c09dc0) malloc: *** error for object 0x7f95c15011f8: pointer being freed was not allocated
python(15723,0x109c09dc0) malloc: *** set a breakpoint in malloc_error_break to debug

It would be great if you also know a solution or give me some hints to debug this problem.


Environment (conda list):

# Name                    Version                   Build  Channel
boost                     1.70.0           py36hbf1eeb5_1    conda-forge
boost-cpp                 1.70.0               h75728bb_2    conda-forge
bzip2                     1.0.8                h0b31af3_2    conda-forge
ca-certificates           2019.11.28           hecc5488_0    conda-forge
certifi                   2019.11.28               py36_0    conda-forge
icu                       64.2                 h6de7cb9_1    conda-forge
libblas                   3.8.0               14_openblas    conda-forge
libcblas                  3.8.0               14_openblas    conda-forge
libcxx                    9.0.1                         0    conda-forge
libcxxabi                 9.0.1                         0    conda-forge
libffi                    3.2.1             h6de7cb9_1006    conda-forge
libgfortran               4.0.0                         2    conda-forge
liblapack                 3.8.0               14_openblas    conda-forge
libopenblas               0.3.7                h3d69b6c_6    conda-forge
llvm-openmp               9.0.1                h40edb58_0    conda-forge
ncurses                   6.1               h0a44026_1002    conda-forge
numpy                     1.17.3           py36hde6bac1_0    conda-forge
openssl                   1.1.1d               h0b31af3_0    conda-forge
pip                       19.3.1                   py36_0    conda-forge
python                    3.6.7             h4285619_1006    conda-forge
readline                  8.0                  hcfe32e1_0    conda-forge
setuptools                44.0.0                   py36_0    conda-forge
sqlite                    3.30.1               h93121df_0    conda-forge
tk                        8.6.10               hbbe82c9_0    conda-forge
wheel                     0.33.6                   py36_0    conda-forge
xz                        5.2.4             h1de35cc_1001    conda-forge
zlib                      1.2.11            h0b31af3_1006    conda-forge

Details about conda and system ( conda info ):
active environment : base
    active env location : /Users/florian/opt/anaconda3
            shell level : 1
       user config file : /Users/florian/.condarc
 populated config files : /Users/florian/.condarc
          conda version : 4.8.0
    conda-build version : 3.18.11
         python version : 3.6.9.final.0
       virtual packages : __osx=10.15.1
       base environment : /Users/florian/opt/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/florian/opt/anaconda3/pkgs
                          /Users/florian/.conda/pkgs
       envs directories : /Users/florian/opt/anaconda3/envs
                          /Users/florian/.conda/envs
               platform : osx-64
             user-agent : conda/4.8.0 requests/2.22.0 CPython/3.6.9 Darwin/19.0.0 OSX/10.15.1
                UID:GID : 501:20
             netrc file : None
           offline mode : False

Steps to reproduce:

The minimalistic cpp example (save as bpt.cpp):

#include "boost/python.hpp"
#include <iostream>

void t(){
   std::cout << "test throw std::out_of_range" << std::endl;
   throw std::out_of_range ("std::out_of_range");
}

namespace bp = boost::python;
BOOST_PYTHON_MODULE(_bpt_){
    bp::def("t", t, "");
}

The python test file: (save as bpt.py )

import _bpt_

print(dir(_bpt_))

try:
    _bpt_.t()
except Exception as e:
    print("catched:", e) # Exception will not be catched but throws the malloc problem

A Makefile to build the bindings (save as Makefile ) and you probably need to correct the ENV variable

TARGET=_bpt_

ENV=/Users/florian/opt/anaconda3/envs/boost

PYINC=-I $(ENV)/include/python3.6m/
BPLIB=$(ENV)/lib/libboost_python36.dylib
BPINC=-I $(ENV)/include

CXX=clang++ 
AR=clang++ -bundle -undefined dynamic_lookup

default:

        $(CXX) -fPIC -c bpt.cpp $(PYINC) $(BPINC)
        $(AR) -o $(TARGET).so *.o $(BPLIB)

test:
        python bpt.py

clean:
        rm -f *.o *.so *~

Finally create the environment and test the problem.

conda create -c conda-forge -n boost boost python=3.6
conda activate boost
make
make test

The method t() should throw the exception but the uncatchable malloc problems occurs instead.

Best regards and thank you,
Carsten

Removing `gcc` package

We now have a C++11 capable gcc compiler in the docker image. It would be nice if you could do the following to try this.

  1. Fork this repo.
  2. Create a new branch
  3. Remove gcc and libgcc.
  4. Add, commit, push to your fork.
  5. Open a PR to remove them.
  6. Note in the PR that this issue is fixed by it.

Please ping me when you have done these things.

Can this create libboost_thread-mt.dylib for OS X systems?

I'm trying to compile a program (caffe) that expects libboost_thread-mt in addition to libboost_thread. Installing boost with brew creates this library, but not with conda-forge.

How can I get this package to include the -mt library as well?

Possible macOS ABI breakage in boost-python when boost-python is compiled with clang 13 and downstream packages with clang 14?

Comment:

Unfortunatly, I am not sure about this, but I tought opening an issue anyhow was useful to spread what we are seeing in some feedstocks.

In two different feedstocks, we experienced crashes with 63893 Illegal instruction: 4 error on importing the python module when due to re-rendering the downstream packages were compiled with clang 14, while everything was working fine with clang 13:

In one of these cases, for debugging we run the complete C++ testsuite compiled with clang 14 (conda-forge/pinocchio-feedstock#76), and everything works fine, so we think that the problem may be related to boost-python. At the moment we did not tried to recompile boost-python with clang 14 to see if it solves the problem, but one of the hypothesis is that for some reason the ABI of boost-python changes between clang 13 and clang 14.

I am aware that this is not a complete bug report, but I prefered anyhow to have a place were to track this and report what we find.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.