commit: f2c5f11d347c69f0d3d60576e61056e53c628245 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Sep 16 20:17:42 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Sep 16 20:17:42 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2c5f11d
dev-cpp/folly: fix build w/ boost-1.89 Choose the hack approach and require >=1.71. Closes: https://bugs.gentoo.org/962946 Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/folly-2025.04.14.00-boost-1.89.patch | 22 ++++ dev-cpp/folly/folly-2025.04.14.00-r2.ebuild | 123 +++++++++++++++++++++ 2 files changed, 145 insertions(+) diff --git a/dev-cpp/folly/files/folly-2025.04.14.00-boost-1.89.patch b/dev-cpp/folly/files/folly-2025.04.14.00-boost-1.89.patch new file mode 100644 index 000000000000..eb9e55e5739c --- /dev/null +++ b/dev-cpp/folly/files/folly-2025.04.14.00-boost-1.89.patch @@ -0,0 +1,22 @@ +https://bugs.gentoo.org/962946 +https://github.com/facebook/folly/issues/2489 +--- a/CMake/folly-config.cmake.in ++++ b/CMake/folly-config.cmake.in +@@ -38,7 +38,6 @@ find_dependency(Boost 1.51.0 MODULE + filesystem + program_options + regex +- system + thread + REQUIRED + ) +--- a/CMake/folly-deps.cmake ++++ b/CMake/folly-deps.cmake +@@ -41,7 +41,6 @@ find_package(Boost 1.51.0 MODULE + filesystem + program_options + regex +- system + thread + REQUIRED + ) diff --git a/dev-cpp/folly/folly-2025.04.14.00-r2.ebuild b/dev-cpp/folly/folly-2025.04.14.00-r2.ebuild new file mode 100644 index 000000000000..bdb37c3b957d --- /dev/null +++ b/dev-cpp/folly/folly-2025.04.14.00-r2.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# dev-cpp/edencommon +# dev-cpp/fb303 +# dev-cpp/fbthrift +# dev-cpp/fizz +# dev-cpp/folly +# dev-cpp/mvfst +# dev-cpp/wangle +# dev-util/watchman + +inherit flag-o-matic cmake toolchain-funcs + +DESCRIPTION="An open-source C++ library developed and used at Facebook" +HOMEPAGE="https://github.com/facebook/folly" +SRC_URI="https://github.com/facebook/folly/releases/download/v${PV}/${PN}-v${PV}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm64 ~ppc64" +IUSE="io-uring llvm-libunwind test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/bzip2 + app-arch/lz4:= + app-arch/snappy:= + app-arch/xz-utils + app-arch/zstd:= + dev-cpp/fast_float:= + dev-cpp/gflags:= + dev-cpp/glog:=[gflags] + >=dev-libs/boost-1.71:=[context] + dev-libs/double-conversion:= + dev-libs/libaio + dev-libs/libevent:= + dev-libs/libfmt:= + dev-libs/libsodium:= + dev-libs/openssl:= + sys-libs/zlib + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + io-uring? ( >=sys-libs/liburing-2.10:= ) +" +DEPEND=" + ${RDEPEND} + sys-libs/binutils-libs + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-2024.11.04.00-musl-fix.patch + "${FILESDIR}"/${PN}-2025.04.14.00-boost-1.89.patch +) + +src_unpack() { + # Workaround for bug #889420 + mkdir -p "${S}" || die + cd "${S}" || die + default +} + +src_prepare() { + # Folly has no configuration option for disabling io_uring support + # so we need to patch it out. + if use !io-uring; then + eapply "${FILESDIR}"/${PN}-2025.04.14.00-force-liburing-off.patch + eapply "${FILESDIR}"/${PN}-2025.04.14.00-CMake-Avoid-finding-liburing.patch + fi + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_DIR="$(get_libdir)/cmake/${PN}" + -DLIB_INSTALL_DIR="$(get_libdir)" + + -DBUILD_TESTS=$(usex test) + + # https://github.com/gentoo/gentoo/pull/29393 + -DCMAKE_LIBRARY_ARCHITECTURE=$(usex amd64 x86_64 ${ARCH}) + ) + + # https://github.com/facebook/folly/issues/1984 + use arm64 && append-cxxflags "-flax-vector-conversions" + + cmake_src_configure +} + +src_test() { + CMAKE_SKIP_TESTS=( + # Mysterious "invalid json" failure + io_async_ssl_session_test.SSLSessionTest + singleton_thread_local_test.SingletonThreadLocalDeathTest + # TODO: All SIGSEGV, report upstream! + 'concurrency_concurrent_hash_map_test.*' + ) + + if use arm64; then + CMAKE_SKIP_TESTS+=( + # Tests are flaky/timing dependent on both QEMU chroot and real hardware + io_async_hh_wheel_timer_test.HHWheelTimerTest + # Times out on real hardware + concurrent_skip_list_test.ConcurrentSkipList + futures_retrying_test.RetryingTest.largeRetries + ) + fi + + if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then + CMAKE_SKIP_TESTS+=( + # Aborts with libc++. + # https://github.com/facebook/folly/issues/2345 + buffered_atomic_test.BufferedAtomic.singleThreadUnguardedAccess + ) + fi + + cmake_src_test +}
