-
Notifications
You must be signed in to change notification settings - Fork 809
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
fix build with boost 1.87 #2045
Conversation
What exactly is broken? While I'm in favor of switching to std::filesystem, it must be a complete replacement of boost::filesystem, not a mixed bag. Obviously it's got to pass CI. Considering that none of the CI jobs even built you must have turned off -Werror when you tested. Don't do that. |
it fails to build in our ports bulk build testing the update to 1.87b1, cf https://marc.info/?l=openbsd-ports&m=173219077014769&w=2 i've fixed the first error by replacing io_service by io_context, then stumbled upon the
my goal was to have gnucash building, i'm not a c++ hacker, and don't intend to convert the complete gnucash codebase. The patch is here as a start if other packagers for other OSes want to fix the potential build failure they see if they try with boost 1.87b1.
i didnt build from git so didn't switch |
i can't reproduce the error i was seeing, but it was a linking error that lead me to think that Now that i think of it, it's probably because i had a mixture of boost 1.84 & 1.87b1 installed at the same time, and since i've cleaned up the system i cant reproduce anymore. So technically, to fix the build with boost 1.87 only the Whether you want to take the rest of the patch to convert |
Yes, please. The boost/asio/io_context.h change requires at least Boot 1.66. We already have a soft-ish requirement on Boost 1.67, with an exception for >1.60 with a patch removing the use of the old |
fwiw there has to be something weird with directory iterators in boost 1.87, because when working on gnuradio i face those build errors:
im definitely not comfy with boost but this feels strange. |
It looks to me like a basic C++ issue: |
…since many releases)
io_context appeared in 1.66, and debian 10/ubuntu 20 had 1.67 or newer..
that note already specifies 1.67 is required.. |
Right, but the bit at the end about some distributions having patched earlier versions needs to go because you're removing the exception code that recognizes the patches. |
Thanks! |
replace the now dropped
recursive_directory_iterator
usage by https://en.cppreference.com/w/cpp/filesystem/copy which is present in c++17. tested to be backwards compatible at build and runtime with boost 1.84.