Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[package] <proposal>/<7.3.1>: Unable to run conan install for newer boost versions #11207

Closed
Jean1995 opened this issue Jun 15, 2022 · 14 comments
Labels
bug Something isn't working

Comments

@Jean1995
Copy link
Contributor

Package and Environment Details

  • Package Name/Version: proposal/7.3.1
  • Operating System+version: MacOS 12.4
  • Compiler+version: clang 13.1.6
  • Conan version: conan 1.49.0
  • Python version: Python 3.9.14

Conan profile

[settings]
os=Macos
os_build=Macos
arch=armv8
arch_build=armv8
compiler=apple-clang
compiler.version=13
compiler.libcxx=libc++
build_type=Release
[options]
[conf]
[build_requires]
[env]

Steps to reproduce

If I try to install the dependencies for proposal, for example by running conan install . in conan-center-index/recipes/proposal/all, I get the error message

ERROR: There are invalid packages (packages that cannot exist for this configuration):
cubicinterpolation/0.1.4: Invalid ID: cubicinterpolation requires non header-only boost with these components: filesystem, math, serialization

and the packages overview tells me

    cubicinterpolation/0.1.4:INVALID - Invalid
See the full log here
(xxxx) xxxx@xxxx all % conan install .
Configuration:
[settings]
arch=armv8
arch_build=armv8
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=13
os=Macos
os_build=Macos
[options]
[build_requires]
[env]

fmt/8.0.1: Main binary package 'f6f0bd9a24061ce292df409b9e672062a0b73d15' missing. Using compatible package '2ab5e7a71f81ed7ec68723743c780f2a172fdd49'
libbacktrace/cci.20210118: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
libiconv/1.16: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
zlib/1.2.12: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
spdlog/1.9.2: Main binary package '7bc12695dccd21e519e3b613259859d5d4e7d5f9' missing. Using compatible package '3f5404f0cb554852906516936ff0eff86715f40b'
conanfile.py (proposal/None): Installing package
Requirements
    boost/1.78.0 from 'conancenter' - Cache
    bzip2/1.0.8 from 'conancenter' - Cache
    cubicinterpolation/0.1.4 from 'conancenter' - Cache
    eigen/3.3.9 from 'conancenter' - Cache
    fmt/8.0.1 from 'conancenter' - Cache
    libbacktrace/cci.20210118 from 'conancenter' - Cache
    libiconv/1.16 from 'conancenter' - Cache
    nlohmann_json/3.10.5 from 'conancenter' - Cache
    spdlog/1.9.2 from 'conancenter' - Cache
    zlib/1.2.12 from 'conancenter' - Cache
Packages
    boost/1.78.0:d19fb5a1a1f707ae3bfa5cd218d2158540168ef4 - Missing
    bzip2/1.0.8:04a1cd7b8d0e23ed1028e44c0af8793aa780b953 - Cache
    cubicinterpolation/0.1.4:INVALID - Invalid
    eigen/3.3.9:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
    fmt/8.0.1:2ab5e7a71f81ed7ec68723743c780f2a172fdd49 - Download
    libbacktrace/cci.20210118:095512ed878f14a09dd732e9f6868729dd437529 - Cache
    libiconv/1.16:095512ed878f14a09dd732e9f6868729dd437529 - Cache
    nlohmann_json/3.10.5:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
    spdlog/1.9.2:3f5404f0cb554852906516936ff0eff86715f40b - Download
    zlib/1.2.12:095512ed878f14a09dd732e9f6868729dd437529 - Cache

Installing (downloading, building) binaries...
ERROR: There are invalid packages (packages that cannot exist for this configuration):
cubicinterpolation/0.1.4: Invalid ID: cubicinterpolation requires non header-only boost with these components: filesystem, math, serialization

However, if I change the boost version to ´boost/1.75.0´ (or older), for example by conan install . --require-override=boost/1.75.0, this does not happen.

See the full log here
(xxxx) xxxx@xxxx all % conan install . --require-override=boost/1.75.0
Configuration:
[settings]
arch=armv8
arch_build=armv8
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=13
os=Macos
os_build=Macos
[options]
[build_requires]
[env]

WARN: cubicinterpolation/0.1.4: requirement boost/1.78.0 overridden by proposal/None to boost/1.75.0
fmt/8.0.1: Main binary package 'f6f0bd9a24061ce292df409b9e672062a0b73d15' missing. Using compatible package '2ab5e7a71f81ed7ec68723743c780f2a172fdd49'
libbacktrace/cci.20210118: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
libiconv/1.16: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
zlib/1.2.12: Main binary package 'e98cc99c78f8ae352930d807a85fc7d6df891023' missing. Using compatible package '095512ed878f14a09dd732e9f6868729dd437529'
boost/1.75.0: WARN: Package binary is corrupted, removing: 2808d24eced91b8521decf16712784ff0ea07f52
spdlog/1.9.2: Main binary package '7bc12695dccd21e519e3b613259859d5d4e7d5f9' missing. Using compatible package '3f5404f0cb554852906516936ff0eff86715f40b'
conanfile.py (proposal/None): Installing package
Requirements
    boost/1.75.0 from 'conancenter' - Cache
    bzip2/1.0.8 from 'conancenter' - Cache
    cubicinterpolation/0.1.4 from 'conancenter' - Cache
    eigen/3.3.9 from 'conancenter' - Cache
    fmt/8.0.1 from 'conancenter' - Cache
    libbacktrace/cci.20210118 from 'conancenter' - Cache
    libiconv/1.16 from 'conancenter' - Cache
    nlohmann_json/3.10.5 from 'conancenter' - Cache
    spdlog/1.9.2 from 'conancenter' - Cache
    zlib/1.2.12 from 'conancenter' - Cache
Packages
    boost/1.75.0:2808d24eced91b8521decf16712784ff0ea07f52 - Missing
    bzip2/1.0.8:04a1cd7b8d0e23ed1028e44c0af8793aa780b953 - Cache
    cubicinterpolation/0.1.4:02a0947831ab9b4e320c93d808eb390f326c3fdf - Missing
    eigen/3.3.9:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
    fmt/8.0.1:2ab5e7a71f81ed7ec68723743c780f2a172fdd49 - Download
    libbacktrace/cci.20210118:095512ed878f14a09dd732e9f6868729dd437529 - Cache
    libiconv/1.16:095512ed878f14a09dd732e9f6868729dd437529 - Cache
    nlohmann_json/3.10.5:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Download
    spdlog/1.9.2:3f5404f0cb554852906516936ff0eff86715f40b - Download
    zlib/1.2.12:095512ed878f14a09dd732e9f6868729dd437529 - Cache

Installing (downloading, building) binaries...
ERROR: Missing binary: boost/1.75.0:2808d24eced91b8521decf16712784ff0ea07f52
ERROR: Missing binary: cubicinterpolation/0.1.4:02a0947831ab9b4e320c93d808eb390f326c3fdf

boost/1.75.0: WARN: Can't find a 'boost/1.75.0' package for the specified settings, options and dependencies:
- Settings: arch=armv8, build_type=Release, compiler=apple-clang, compiler.libcxx=libc++, compiler.version=13, os=Macos
- Options: addr2line_location=/usr/bin/addr2line, asio_no_deprecated=False, buildid=None, bzip2=True, debug_level=0, diagnostic_definitions=False, error_code_header_only=False, extra_b2_flags=None, fPIC=True, filesystem_no_deprecated=False, header_only=False, i18n_backend=deprecated, i18n_backend_iconv=libiconv, i18n_backend_icu=False, layout=system, lzma=False, magic_autolink=False, multithreading=True, namespace=boost, namespace_alias=False, pch=True, python_executable=None, python_version=None, segmented_stacks=False, shared=False, system_no_deprecated=False, system_use_utf8=False, visibility=hidden, with_stacktrace_backtrace=True, without_atomic=False, without_chrono=False, without_container=False, without_context=False, without_contract=False, without_coroutine=False, without_date_time=False, without_exception=False, without_fiber=True, without_filesystem=False, without_graph=False, without_graph_parallel=True, without_iostreams=False, without_json=True, without_locale=False, without_log=False, without_math=False, without_mpi=True, without_nowide=True, without_program_options=False, without_python=True, without_random=False, without_regex=False, without_serialization=False, without_stacktrace=False, without_system=False, without_test=False, without_thread=False, without_timer=False, without_type_erasure=False, without_wave=False, zlib=True, zstd=False, bzip2:build_executable=True, bzip2:fPIC=True, bzip2:shared=False, libbacktrace:fPIC=True, libbacktrace:shared=False, libiconv:fPIC=True, libiconv:shared=False, zlib:fPIC=True, zlib:shared=False
- Dependencies: zlib/1.2.12, bzip2/1.0.8, libbacktrace/cci.20210118, libiconv/1.16
- Requirements: bzip2/1.Y.Z, libbacktrace/cci.20210118, libiconv/1.Y.Z, zlib/1.Y.Z
- Package ID: 2808d24eced91b8521decf16712784ff0ea07f52

ERROR: Missing prebuilt package for 'boost/1.75.0', 'cubicinterpolation/0.1.4'
Use 'conan search boost/1.75.0 --table=table.html -r=remote' and open the table.html file to see available packages
Or try to build locally from sources with '--build=boost --build=cubicinterpolation'

More Info at 'https://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package'

Apparently, versions boost/1.75.0 and older are working, while versions boost/1.76.0 and newer throw this error. Since I am able to build the cubicinterpolation package by itself without a problem, I guess that this is a problem of the proposal conanfile? Did something change within boost or the boost conan package that causes problems here?

Logs

No response

@Jean1995 Jean1995 added the bug Something isn't working label Jun 15, 2022
@uilianries
Copy link
Member

@Jean1995 are you running Mac M1 machine, or cross-building from Intel to ARM?

@uilianries
Copy link
Member

I can confirm your behavior on Mac M1

@Jean1995
Copy link
Contributor Author

@uilianries I have this issue on an actual Mac M1 machine. This issue has been reported by another user (on a M1 machine), and I've been able to reproduce this locally on another M1.

@uilianries
Copy link
Member

@Jean1995 Boost::Math has been removed to the package ID ca20ccd5a0746355cb94d1b5e0f6d0ad6cf4237c (Boost/1.78.0). I'll take a look about it.

@Jean1995
Copy link
Contributor Author

I also just realized that this error is thrown from here because self.options["boost"].without_math is true for boost versions 1.76.0 and newer, while it has been false for boost versions 1.75.0 and older.

@SSE4
Copy link
Contributor

SSE4 commented Jun 15, 2022

boost math requires C++11 (or later) since some recent release. you have to add compiler.cppstd=11 or higher to you profile, if you plan to use boost math, or any other components requiring later C++ standard.

@Jean1995
Copy link
Contributor Author

Jean1995 commented Jun 15, 2022

Does this mean that every user has to manually adjust their conan profile, or is this something that can be done/checked automatically within the conanfile?

@SSE4
Copy link
Contributor

SSE4 commented Jun 15, 2022

Does this mean that every user has to manually adjust their conan profile, or is this something that can be done/checked automatically within the conanfile?

it is recommended to always construct your profiles manually, according to your need. some users need to support old C++ standard, some tends to stick to bleeding edge. conan isn't telepathic, and cannot predict everyone's needs. it tries to auto-detect some reasonable defaults, but obviously, it's not 100% accurate, and never will be. right now, the reasonable default is to use your compiler's default C++ standard.

@uilianries
Copy link
Member

@SSE4 I was reading the discuss #5246 (comment) we reached a place where it affected a consolidated package in Conan Center. We have few options now, add math to Boost and patch c++11 support (ugly), or keep proposal package broken, or maybe, use an outdated Boost version from Conan Center

@SSE4
Copy link
Contributor

SSE4 commented Jun 15, 2022

@SSE4 I was reading the discuss #5246 (comment) we reached a place where it affected a consolidated package in Conan Center. We have few options now, add math to Boost and patch c++11 support (ugly), or keep proposal package broken, or maybe, use an outdated Boost version from Conan Center

I understand everyone's frustration. there are two things that will help to alleviate the issue:

@uilianries
Copy link
Member

Apple defaults to C++20 in next release

Well, we can wait it I think 🥲

@Jean1995
Copy link
Contributor Author

Is there a way to make this at least a bit more "user-friendly" for people trying to use the package, but not knowing that this issue is due to their missing compiler.cppstd setting?

I've been thinking about adding something like if self.settings.compiler.get_safe("cppstd") is None to the conanfile of proposal or cubicinterpolation and add some output that this setting is required.
However, I feel like this should probably be directly inside the conanfile of boost?

Otherwise, would it be ok to temporarily downgrade the requirement of cubicinterpolation to boost/1.75.0 as this is sufficient for the package (at the moment)?

@uilianries
Copy link
Member

Otherwise, would it be ok to temporarily downgrade the requirement of cubicinterpolation to boost/1.75.0 as this is sufficient for the package (at the moment)?

Yes. need to add a #TODO note in the recipe, but it sounds like our best option for the moment.

@Jean1995
Copy link
Contributor Author

With ##11307, this is fixed for now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants