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

Failed to build on Ubuntu 24.04 #447

Closed
phoenixlam opened this issue Jun 20, 2024 · 3 comments
Closed

Failed to build on Ubuntu 24.04 #447

phoenixlam opened this issue Jun 20, 2024 · 3 comments

Comments

@phoenixlam
Copy link

Anyone can provide the build script for Ubuntu 24.04?

@mszabo-wikia
Copy link
Contributor

mszabo-wikia commented Jun 21, 2024

Hello,

The easiest would probably be to base your buildenv on https://gerrit.wikimedia.org/r/plugins/gitiles/operations/debs/mcrouter/+/refs/heads/master. Once you swap out for an Ubuntu base image, you'll likely need to change some APT dependencies (e.g. the boost version) and pin the other FB library dependencies to a more recent commit. The latest vYYYY.MM.DD tags usually work well together, but there are often cases where the OSS build for one of the deps is broken on a given tag, in which case you'll need to pin that particular dep to a newer or older, working, tag.

Once you do that, you'll also need to apply #445 as part of your build process since the autotools build is out of sync with recent changes.

Hope this helps.

@guieusebiogaspar
Copy link

Did the devs stopped working on these scripts?

@mszabo-wikia
Copy link
Contributor

mszabo-wikia commented Aug 4, 2024

I would assume so. I have made a PR to replace the autotools build system with CMake, which should then allow building mcrouter using the getdeps.py script used by other Meta OSS C++ projects, such as fbthrift. That script automates the process of obtaining or compiling dependencies, so it should be much simpler to use, and it should obviate the need for such per distro/per release scripts. If you'd like to, you can try it by checking out #449.

facebook-github-bot pushed a commit to facebook/hhvm that referenced this issue Dec 19, 2024
Summary:
The OSS autotools build has been nonfunctional for about a year. While facebook/mcrouter#449 would be a better long-term approach to fixing the build since it would also bring it in sync with other Meta OSS projects and enable testing in CI, fixing the existing build until there's movement on that front would at least provide a signal on whether the OSS version is buildable at all.

So:
* Introduce new Ubuntu 24.04 build files and use them in CI. I'll remove build files, Dockerfiles etc. for ancient Ubuntu and CentOS versions in a followup PR.
* Pin fmtlib to 11.0.2, like fbcode_builder does, and skip building its test suite to not waste time.
* Use Ninja to generate and build CMake-based dependencies.
* Use googletest, gmock and zstd as packaged by Ubuntu rather than building their older versions from source.
* Introduce and use a new define `MCROUTER_OSS_BUILD` to mark OSS-specific conditional compilation blocks. This could probably replace the existing `LIBMC_FBTRACE_DISABLE` and `DISABLE_COMPRESSION` defines too, as long as those aren't used outside of the OSS build.
* Fix OSS build failures that have gone undetected due to CI being broken:
  * Add a shim for the SR-specific method `HostInfoLocation::hostUniqueKey` (used since 85facb9200dea75e661447ed11e05806f42de65f).
  * Remove redundant CarbonRouterInstance deletion logging that was using a Meta-specific include (used since 6c2142acd8e69edd40eed70a93ea17ee2909287d).
  * Disable client identity propagation in the OSS build since it relies on Meta-specific code (used since 2f32271533fdf54ce71cfb65f6fda3c621f076a4).

Fixes facebook/mcrouter#453, fixes facebook/mcrouter#444, fixes facebook/mcrouter#447 etc.

X-link: facebook/mcrouter#457

Reviewed By: lenar-f

Differential Revision: D67428119

Pulled By: disylh

fbshipit-source-id: a22e7616d9b82875611e45bf1df40a771db569d9
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.

3 participants