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] boost/1.85.0: missing 'boost_stacktrace_from_exception', 'boost_stacktrace_backtrace', 'boost_locale' #24313

Closed
denismakogon opened this issue Jun 13, 2024 · 14 comments
Assignees
Labels
bug Something isn't working

Comments

@denismakogon
Copy link

denismakogon commented Jun 13, 2024

Description

Unable to install boost 1.85.0 due to missing packages:

boost/1.85.0: WARN: Boost component 'locale' is missing libraries. Try building boost with '-o boost:without_locale'. (Option is not guaranteed to exist)
boost/1.85.0: WARN: Boost component 'stacktrace_backtrace' is missing libraries. Try building boost with '-o boost:without_stacktrace_backtrace'. (Option is not guaranteed to exist)
boost/1.85.0: WARN: Boost component 'stacktrace_from_exception' is missing libraries. Try building boost with '-o boost:without_stacktrace_from_exception'. (Option is not guaranteed to exist)
ERROR: boost/1.85.0: Error in package_info() method, line 1970
	raise ConanException(f"These libraries were expected to be built, but were not built: {non_built}")
	ConanException: These libraries were expected to be built, but were not built: {'boost_stacktrace_from_exception', 'boost_stacktrace_backtrace', 'boost_locale'}

Package and Environment Details

  • Operating System+version: macos latest
  • Compiler+version: GCC 14
  • Conan version: conan 2.4
  • Python version: Python 3.12

Conan profile

[settings]
arch=x86_64
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=14
os=Macos

[buildenv]
CC=/usr/bin/clang
CXX=/usr/bin/clang++

Steps to reproduce

Create conanfile.txt with the following content:

[requires]
boost/1.85.0

[generators]
CMakeDeps
CMakeToolchain

run:

conan install . --output-folder=build --build=missing

more details available here: https://github.com/denismakogon/judy/actions/runs/9500317683/job/26183105246#step:7:2279

Logs

logs can be found here https://github.com/denismakogon/judy/actions/runs/9500317683/job/26183105246#step:7:2279

@denismakogon denismakogon added the bug Something isn't working label Jun 13, 2024
@denismakogon
Copy link
Author

The same issue to 1.82.0-1.85.0!

@denismakogon
Copy link
Author

1.81.0 on macOS is affected as well:

boost/1.81.0: WARN: Boost component 'locale' is missing libraries. Try building boost with '-o boost:without_locale'. (Option is not guaranteed to exist)
boost/1.81.0: WARN: Boost component 'stacktrace_backtrace' is missing libraries. Try building boost with '-o boost:without_stacktrace_backtrace'. (Option is not guaranteed to exist)
ERROR: boost/1.81.0: Error in package_info() method, line 1970
	raise ConanException(f"These libraries were expected to be built, but were not built: {non_built}")
	ConanException: These libraries were expected to be built, but were not built: {'boost_stacktrace_backtrace', 'boost_locale'}

@AbrilRBS
Copy link
Member

Pinging @uilianries for this one

@uilianries
Copy link
Member

Thank you for reporting, I'll take a look tomorrow.

@uilianries uilianries self-assigned this Jun 18, 2024
@uilianries
Copy link
Member

I'm not able to reproduce the same error as reported, I'm using Mac M1 (armv8) and when cross-building to x86_64 the error does not trigger. I'll check with someone with intel machine. In the CI we using only Mac M1 as well, that's why we didn't see this error at first sight.

I didn't check the code, but I remember from last time there is a condition about stacktrace and intel, to build or not some parts.

@denismakogon
Copy link
Author

@uilianries look at GitHub Action logs I've attached (via link). All worked normally since October 2023 until we tried to move towards a newer boost version. But later we figured out that even version 1.82.0 (that we have used since October) no longer works with the GitHub Actions.

@uilianries
Copy link
Member

@denismakogon yes, I checked that log and looks good. Another thing is be able to debug the recipe 😁 thanks for commenting

@denismakogon
Copy link
Author

@uilianries I'd be happy to keep helping you.

@denismakogon
Copy link
Author

Just FYI, I was able to solve this problem with the following options:

[options]
boost/*:with_stacktrace_backtrace=False
boost/*:without_locale=True

Interestingly, without_locale isn't documented but supported (implicitly), I found it in the code.

@uilianries
Copy link
Member

@denismakogon Thank you for your feedback! Tomorrow I'll revisit it. Last time I needed to check boost stacktrace, because in 1.85.0 they introduced stacktrace_from_exception which has some logic using x86_64 arch. Probably that change in the Conan recipe is the your bug.

@Jackson-soft
Copy link

same issue

@uilianries
Copy link
Member

@denismakogon Sorry the delay, I checked again this issue, and looking into your log, it has a configuration mismatch: The Mac OS used to build is ARM, as pointed here: https://github.com/denismakogon/judy/actions/runs/9500317683/job/26183105246#step:1:8

Then, the detected profile is ARM as well and Apple Clang 15, but it's replaced by the default profile in the repository, that points x86_64 and Apple Clang 14:

Then, the build does not follow what the system reflects:

  conan install . --output-folder=build --build=missing
  cd build
  cp ../toolchains/macos-x86_64.cmake conan_toolchain.cmake
  LIB_SUFFIX="-macos-x86_64" cmake ..  -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
  cmake --build .
  file lib*
  cp libjudy* ../libs/
  rm -fr *
  shell: /bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    HOMEBREW_NO_INSTALL_FROM_API: 

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=14
os=Macos
[buildenv]
CC=/usr/bin/clang
CXX=/usr/bin/clang++

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=apple-clang
compiler.cppstd=gnu17
compiler.libcxx=libc++
compiler.version=14
os=Macos
[buildenv]
CC=/usr/bin/clang
CXX=/usr/bin/clang++

It should use the detected profile as build profile instead, then, use the x86_64 as host profile, it will generate x86_64 binaries, but preserve your build system.

I tried to reproduce your error using a similar repository, but no error occurs: https://github.com/uilianries/validate-boost-macos/actions/runs/10078081754/job/27862155592

So I opened a PR to your project fixing the current configuration: denismakogon/judy#28

@denismakogon
Copy link
Author

thx, a lot! It helped me to get through. Issue resolved.

@uilianries
Copy link
Member

@denismakogon Thank you for your feedbacK!!

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

Successfully merging a pull request may close this issue.

4 participants