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

Update dependencies #4595

Merged
merged 11 commits into from Jul 13, 2023
Merged

Update dependencies #4595

merged 11 commits into from Jul 13, 2023

Conversation

thejohnfreeman
Copy link
Collaborator

This change updates our dependencies to the most recent versions in Conan Center. cassandra-cpp-driver cannot compile as C++20. I don't know how the Clio team is doing it.

The only code changes required are related to (a) missing includes and (b) multiple string_views in Boost. rippled uses Boost.Beast which now uses a boost::core::string_view that is different from boost::utility::string_view. boost::core::string_view was added to Boost on Oct 4, 2021, after the release of 1.77 which we had been using, and before the release of 1.78. It is missing the to_string() method that boost::utility::string_view has and that we had been calling.

@scottschurr
Copy link
Collaborator

FWIW, this branch does not build for me on my local machine. I'm using clang on macOS. Conan is apparently using boost 1.77. I made a commit that does build on my local machine. Basically I turned selected implicit conversions to std::string into explicit conversions to std::string. However I can't swear it will build for anybody else. The commit is topmost here, just in case it is useful: https://github.com/scottschurr/rippled/commits/john-deps

@scottschurr
Copy link
Collaborator

Okay, that last comment was not accurate since I did not clear the ~/.conan/data cache. I still have two build problems using macOS, clang 13 and boost 1.82.0. The top-most commit here fixes the two build errors that I saw: https://github.com/scottschurr/rippled/commits/john-deps

@thejohnfreeman
Copy link
Collaborator Author

Those fixes worked for me on macOS 12.6.3, Clang 14.0.0, Boost 1.82.0. I copied them over. Let's see how they do in CI. CI uses Clang 16. I'm installing that in my VM for testing now.

@thejohnfreeman
Copy link
Collaborator Author

Clang 16 fails because of a compiler regression involving -std=c++20 and concept template parameters. There is a workaround patch for the Boost.Beast source, but I am testing a compiler flag workaround.

@thejohnfreeman
Copy link
Collaborator Author

Compiler flag worked. No errors, but have some residual warnings. Will work on eliminating them.

Copy link
Collaborator

@scottschurr scottschurr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Latest version is working for me. Thanks for doing this!

@intelliot intelliot added Build System Dependencies Issues associated with 3rd party dependencies (RocksDB, SQLite, etc) labels Jun 30, 2023
@intelliot intelliot requested a review from seelabs June 30, 2023 05:52
@seelabs
Copy link
Collaborator

seelabs commented Jun 30, 2023

I'm seeing the following error:

ERROR: Conflict in googleapis/cci.20221108:
    'googleapis/cci.20221108' requires 'protobuf/3.21.4' while 'googleapis/cci.20221108' requires 'protobuf/3.21.9'.
    To fix this conflict you need to override the package 'protobuf' in your root package.
CMake Error at /usr/share/cmake/Modules/CMakeDetermineSystem.cmake:154 (message):
  Could not find toolchain file:
  conan-dependencies/build/generators/conan_toolchain.cmake
Call Stack (most recent call first):
  CMakeLists.txt:14 (project)

I haven't looked into this yet, just posting the issue in case anyone knows of a quick fix.

@scottschurr
Copy link
Collaborator

@seelabs, I saw that error. As I recall it was cleaned up when I cleared my ~/.conan/data directory. Something to try if you haven't done that yet.

@seelabs
Copy link
Collaborator

seelabs commented Jun 30, 2023

@scottschurr Thanks! That got me past that error.

@thejohnfreeman
Copy link
Collaborator Author

RocksDB 6.x.x is not ready for GCC 13 (facebook/rocksdb#11157). I'll try adapting a recipe for RocksDB 8.x.x Monday and test compile our code against it.

@seelabs
Copy link
Collaborator

seelabs commented Jul 3, 2023

I was able to build and test this with gcc 13, but only by manually editing some files in .conan/data for both rocksdb and boost (both required adding a new #include <cstdint>). I don't think this is a reason to hold up the PR though. We can add patches to support gcc13 in a different PRl

Copy link
Collaborator

@ximinez ximinez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds fine in Windows. I'm curious to see how this interacts with #4596

@intelliot
Copy link
Collaborator

for next week: if this is ready to merge, go ahead and bring it up-to-date with the base branch (preferably with a merge commit).

(I don't have permission to push to the PR branch)

@intelliot intelliot added this to the 1.12 milestone Jul 12, 2023
@intelliot
Copy link
Collaborator

Suggested commit message:

Update dependencies (#4595)

Use the most recent versions in ConanCenter.

* Due to a bug in Clang 16, you may get a compile error:
  "call to 'async_teardown' is ambiguous"
  * A compiler flag workaround is documented in `BUILD.md`.
* At this time, building this with gcc 13 may require editing some files
  in `.conan/data`
  * A patch to support gcc13 may be added in a later PR.

---------

Co-authored-by: Scott Schurr <scott@ripple.com>

@intelliot intelliot merged commit cb09e61 into XRPLF:develop Jul 13, 2023
15 checks passed
@thejohnfreeman thejohnfreeman deleted the deps branch July 13, 2023 17:42
@intelliot
Copy link
Collaborator

intelliot commented Jul 14, 2023

Note:

If you had built the project prior to this commit:

After this commit, you may need to:

  1. Remove or empty your build directory.
  2. Remove the Conan cache, i.e. rm -rf ~/.conan/data
  3. Re-run conan install. See https://github.com/XRPLF/rippled/blob/develop/BUILD.md#build-and-test

intelliot added a commit that referenced this pull request Aug 11, 2023
ckeshava pushed a commit to ckeshava/rippled that referenced this pull request Sep 22, 2023
Use the most recent versions in ConanCenter.

* Due to a bug in Clang 16, you may get a compile error:
  "call to 'async_teardown' is ambiguous"
  * A compiler flag workaround is documented in `BUILD.md`.
* At this time, building this with gcc 13 may require editing some files
  in `.conan/data`
  * A patch to support gcc13 may be added in a later PR.

---------

Co-authored-by: Scott Schurr <scott@ripple.com>
ckeshava pushed a commit to ckeshava/rippled that referenced this pull request Sep 25, 2023
Use the most recent versions in ConanCenter.

* Due to a bug in Clang 16, you may get a compile error:
  "call to 'async_teardown' is ambiguous"
  * A compiler flag workaround is documented in `BUILD.md`.
* At this time, building this with gcc 13 may require editing some files
  in `.conan/data`
  * A patch to support gcc13 may be added in a later PR.

---------

Co-authored-by: Scott Schurr <scott@ripple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build System Dependencies Issues associated with 3rd party dependencies (RocksDB, SQLite, etc)
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

5 participants