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

[Bug] Build breaks with boost-libs-1.87.0: fatal error: 'boost/asio/io_service.hpp' file not found #475

Open
1 of 2 tasks
yurivict opened this issue Feb 16, 2025 · 9 comments · May be fixed by #477
Open
1 of 2 tasks

Comments

@yurivict
Copy link

Search before asking

  • I searched in the issues and found nothing similar.

Version

In file included from /usr/ports/net-p2p/pulsar-client-cpp/work/pulsar-client-cpp-3.7.0/lib/BatchMessageKeyBasedContainer.cc:24:
/usr/ports/net-p2p/pulsar-client-cpp/work/pulsar-client-cpp-3.7.0/lib/ClientConnection.h:34:10: fatal error: 'boost/asio/io_service.hpp' file not found
   34 | #include <boost/asio/io_service.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Version: 3.7.0
clang-19
FreeBSD 14.2

Minimal reproduce step

n/a

What did you expect to see?

n/a

What did you see instead?

n/a

Anything else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@BewareMyPower
Copy link
Contributor

It's recommended to build via vcpkg so that the dependency version could be consistent with the tests. Boost might introduce breaking changes so that it's hard to maintain code compatibility with all versions. Currently the tested version is 1.83:

"version>=": "1.83.0"

I tried upgrading the dependency to 1.86 before but the PR is drafted due to my lack of time recently:

"version>=": "1.83.0"

@yurivict
Copy link
Author

It's recommended to build via vcpkg [...]

Ports/packages can't do this. They always use other packages as dependencies.

@BewareMyPower
Copy link
Contributor

They always use other packages as dependencies.

Sorry I don't understand it. Did you mean your project depends on Boost 1.87 so that the version is pinned?

BTW, it's acceptable to support latest Boost version. I tried upgrading Boost to 1.86 before (#459) but it's not in progress now due to lack of time.

@yurivict
Copy link
Author

Sorry I don't understand it. Did you mean your project depends on Boost 1.87 so that the version is pinned?

The version is pinned because only one boost version can be installed in the system at any given time.

@yurivict
Copy link
Author

yurivict commented Mar 6, 2025

Can boost compatibility be fixed?

@BewareMyPower
Copy link
Contributor

Yes, but I'm busy recently. It should not be a hard job, let me try today.

@BewareMyPower
Copy link
Contributor

BewareMyPower commented Mar 7, 2025

I just tried 1.87. There are many API changes not only just the io_service, so it still needs some time to adapt the latest Boost.Asio API.

@BewareMyPower
Copy link
Contributor

As a workaround, you can add Asio (not Boost.Asio) directly into your project and build with -DUSE_ASIO=ON option.

@BewareMyPower
Copy link
Contributor

I drafted a PR (#477) but might not have time addressing failed tests (if possible) next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants