conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
950 stars 1.73k forks source link

[package] boost/any: Doesn't find python development libs #14908

Closed xahon closed 1 year ago

xahon commented 1 year ago

Description

Trying to build boost with python support (1.80.0 with without_python = False), fails to find development libraries. Libraries are at path /usr/lib/x86_64-linux-gnu

> ls -lha /usr/lib/x86_64-linux-gnu/ | grep python
lrwxrwxrwx   1 root root    51 дек 17 23:41 libpyldb-util.cpython-310-x86-64-linux-gnu.so.2 -> libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.4.4
-rw-r--r--   1 root root   19K июл 27 14:27 libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.4.4
lrwxrwxrwx   1 root root    54 дек 17 23:41 libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2 -> libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3
-rw-r--r--   1 root root   19K янв 13  2022 libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3
lrwxrwxrwx   1 root root    58 ноя 14 19:10 libpython3.10.a -> ../python3.10/config-3.10-x86_64-linux-gnu/libpython3.10.a
lrwxrwxrwx   1 root root    18 ноя 14 19:10 libpython3.10.so -> libpython3.10.so.1
lrwxrwxrwx   1 root root    20 ноя 14 19:10 libpython3.10.so.1 -> libpython3.10.so.1.0
-rw-r--r--   1 root root  5,6M ноя 14 19:10 libpython3.10.so.1.0
lrwxrwxrwx   1 root root    53 дек 17 23:42 libsamba-policy.cpython-310-x86-64-linux-gnu.so.0 -> libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1
-rw-r--r--   1 root root   63K июл 28 15:07 libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1

Conan tries to search for these libs but at wrong path /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu which doesn't exist. I've checked the recipe and there are some lines that make this join to support "masd".

https://github.com/conan-io/conan-center-index/blob/8b3c7ac87fccd44d30ae18890823f386d3e12a02/recipes/boost/all/conanfile.py#L696-L705

I think it is for crossbuild, isn't it? I'm trying to build natively, without crossbuild

Output of these env variables from my shell:

$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"
/usr/lib/x86_64-linux-gnu
$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LDLIBRARY'))"
libpython3.10.so
$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LIBRARY'))"
libpython3.10.a
$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))"
x86_64-linux-gnu
$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('multiarchsubdir'))"
/x86_64-linux-gnu
$ "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('WITH_DYLD'))"
0

Package and Environment Details

conanfile.py

from conans import ConanFile

class Project(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "cmake_find_package_multi"

    def requirements(self):
        self.requires("boost/1.80.0")

    def configure(self):
        self.options["boost"].without_python = False

Conan profile

[settings] arch=x86_64 arch_build=x86_64 build_type=Debug compiler=clang compiler.libcxx=libstdc++11 compiler.version=11 os=Linux os_build=Linux [options] [build_requires] [env]

Steps to reproduce

conanfile.py and profile are attached above. Just a regular conan install should trigger the issue

Logs

Click to expand log ``` boost/1.80.0: Applying build-requirement: b2/4.9.2 boost/1.80.0: WARN: Build folder is dirty, removing it: /home/ilya/.conan/data/boost/1.80.0/_/_/build/b99138b8750812002e16557c3f4193ac61994e60 boost/1.80.0: Building your package in /home/ilya/.conan/data/boost/1.80.0/_/_/build/b99138b8750812002e16557c3f4193ac61994e60 boost/1.80.0: Generator txt created conanbuildinfo.txt boost/1.80.0: Calling generate() boost/1.80.0: Aggregating env generators boost/1.80.0: Calling build() boost/1.80.0: WARN: replace_in_file didn't find pattern '/* thread_local */' in '/home/ilya/.conan/data/boost/1.80.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file. boost/1.80.0: WARN: replace_in_file didn't find pattern '/* static __thread */' in '/home/ilya/.conan/data/boost/1.80.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file. boost/1.80.0: WARN: replace_in_file didn't find pattern 'local generic-os = [ set.difference $(all-os) : aix darwin vxworks solaris osf hpux ] ;' in '/home/ilya/.conan/data/boost/1.80.0/_/_/source/src/tools/build/src/tools/gcc.jam' file. boost/1.80.0: WARN: replace_in_file didn't find pattern 'local no-threading = android beos haiku sgi darwin vxworks ;' in '/home/ilya/.conan/data/boost/1.80.0/_/_/source/src/tools/build/src/tools/gcc.jam' file. boost/1.80.0: WARN: replace_in_file didn't find pattern ' @numa' in '/home/ilya/.conan/data/boost/1.80.0/_/_/source/src/libs/fiber/build/Jamfile.v2' file. boost/1.80.0: WARN: Patching user-config.jam boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sys; print('{}.{}'.format(sys.version_info[0], sys.version_info[1]))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_path('include'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_path('platinclude'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('INCLUDEDIR'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_python_inc())" boost/1.80.0: (failed) boost/1.80.0: checking /usr/include/python3.10/Python.h boost/1.80.0: found Python.h: /usr/include/python3.10/Python.h boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LIBRARY'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LDLIBRARY'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('LIBDIR'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('multiarchsubdir'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sysconfig; print(sysconfig.get_config_var('WITH_DYLD'))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sys; print('{}.{}'.format(sys.version_info[0], sys.version_info[1]))" boost/1.80.0: running "/usr/bin/python3" -c "from __future__ import print_function; import sys; print(getattr(sys, 'abiflags', ''))" boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python3.10.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python310.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python3.10.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python310.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python3.10.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python310.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python3.10.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/python310.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython310.dylib boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython310.so boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython310.dll.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython3.10.a boost/1.80.0: checking /usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/libpython310.a boost/1.80.0: boost/1.80.0: ERROR: Package 'b99138b8750812002e16557c3f4193ac61994e60' build failed boost/1.80.0: WARN: Build folder /home/ilya/.conan/data/boost/1.80.0/_/_/build/b99138b8750812002e16557c3f4193ac61994e60/build-debug ERROR: boost/1.80.0: Invalid configuration: couldn't locate python libraries - make sure you have installed python development files ```
uilianries commented 1 year ago

Related to https://github.com/conan-io/conan-center-index/issues/8158 and https://github.com/conan-io/conan-center-index/issues/13045

xahon commented 1 year ago

Ok, closing as duplicate