From 7474fbad83188305bd0fe1abf5013a57bbeb1e29 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Thu, 17 Sep 2026 10:10:24 +0100 Subject: [PATCH] getdeps: select EL-specific manifest sections by distro_family The manifests that mean "any Enterprise Linux 9" (or 8) spell it as distro=centos_stream, because CentOS Stream is what CI runs. That never matched AlmaLinux or Rocky, and after the previous change gave RHEL its own distro name it would not match RHEL either. The most consequential case is cachelib's gcc-toolset-14: without it an EL 9 build uses the default GCC 11 and fails to compile C++20 code although the toolset is right there in the repositories. Rewrite those sections with the distro_family variable introduced in the previous change, preserving each selector's meaning while extending it to the whole family: - all(distro=centos_stream,distro_vers=9) -> all(distro_family=rhel,distro_vers=9) cachelib, gcc12, gcc14, openr, python, python-setuptools, rebalancer, rebalancer-explorer - all(distro=centos_stream,distro_vers=8) -> all(distro_family=rhel,distro_vers=8) boost, boost-python - not(all(any(distro=centos_stream,distro=centos),distro_vers=8)) -> not(all(distro_family=rhel,distro_vers=8)) libmnl - not(any(all(distro=centos,distro_vers=8),all(distro=centos_stream,distro_vers=9))) -> not(all(distro_family=rhel,any(distro_vers=8,distro_vers=9))) lz4, lz4-python - rpms.any(distro=centos_stream,...,distro=fedora) -> rpms libaio, numa (every rpm distro ships libaio-devel and numactl-devel) - rpms.distro=centos_stream -> rpms.distro_family=rhel libaio-python "centos" was the old CentOS Linux 8 name and folds into the family. No manifest still selects on an individual EL distro name. This must land after the distro_family change: the expression parser rejects unknown selector variables, so on a getdeps without it these manifests fail to load. Tested with both changes applied: every manifest passes validate-manifest, and `install-system-deps --recursive --dry-run --os-type linux --distro rhel --distro-version 9 cachelib` now yields the same package set as --distro centos_stream, including gcc-toolset-14, libaio-devel and numactl-devel, where before it lacked all three. The openr, rebalancer and rebalancer-explorer hunks are the same mechanical rewrite but those projects were not built here. Co-Authored-By: Claude Fable 5.1 Signed-off-by: Michel Lind --- build/fbcode_builder/manifests/boost | 2 +- build/fbcode_builder/manifests/boost-python | 2 +- build/fbcode_builder/manifests/cachelib | 4 ++-- build/fbcode_builder/manifests/gcc12 | 2 +- build/fbcode_builder/manifests/gcc14 | 2 +- build/fbcode_builder/manifests/libaio | 2 +- build/fbcode_builder/manifests/libaio-python | 2 +- build/fbcode_builder/manifests/libmnl | 2 +- build/fbcode_builder/manifests/lz4 | 2 +- build/fbcode_builder/manifests/lz4-python | 2 +- build/fbcode_builder/manifests/numa | 2 +- build/fbcode_builder/manifests/openr | 4 ++-- build/fbcode_builder/manifests/python | 4 ++-- build/fbcode_builder/manifests/python-setuptools | 2 +- build/fbcode_builder/manifests/rebalancer | 4 ++-- build/fbcode_builder/manifests/rebalancer-explorer | 4 ++-- 16 files changed, 21 insertions(+), 21 deletions(-) diff --git a/build/fbcode_builder/manifests/boost b/build/fbcode_builder/manifests/boost index 77c0e63334..efa1278fc6 100644 --- a/build/fbcode_builder/manifests/boost +++ b/build/fbcode_builder/manifests/boost @@ -26,7 +26,7 @@ icu4c [pps] boost -[rpms.all(distro=centos_stream,distro_vers=8)] +[rpms.all(distro_family=rhel,distro_vers=8)] boost169 boost169-math boost169-test diff --git a/build/fbcode_builder/manifests/boost-python b/build/fbcode_builder/manifests/boost-python index 746e14629a..3ee5cd1a2e 100644 --- a/build/fbcode_builder/manifests/boost-python +++ b/build/fbcode_builder/manifests/boost-python @@ -22,7 +22,7 @@ icu4c [pps] boost -[rpms.all(distro=centos_stream,distro_vers=8)] +[rpms.all(distro_family=rhel,distro_vers=8)] boost169 boost169-math boost169-test diff --git a/build/fbcode_builder/manifests/cachelib b/build/fbcode_builder/manifests/cachelib index f45349765f..ee11ecca9e 100644 --- a/build/fbcode_builder/manifests/cachelib +++ b/build/fbcode_builder/manifests/cachelib @@ -31,10 +31,10 @@ xxhash # specific configuration we rely on the folly manifest to provide this # dependency to avoid duplication. -[rpms.all(distro=centos_stream,distro_vers=9)] +[rpms.all(distro_family=rhel,distro_vers=9)] gcc-toolset-14 -[cmake.defines.all(distro=centos_stream,distro_vers=9)] +[cmake.defines.all(distro_family=rhel,distro_vers=9)] CMAKE_C_COMPILER=/opt/rh/gcc-toolset-14/root/usr/bin/gcc CMAKE_CXX_COMPILER=/opt/rh/gcc-toolset-14/root/usr/bin/g++ diff --git a/build/fbcode_builder/manifests/gcc12 b/build/fbcode_builder/manifests/gcc12 index 039a552690..dc5cd6d602 100644 --- a/build/fbcode_builder/manifests/gcc12 +++ b/build/fbcode_builder/manifests/gcc12 @@ -1,5 +1,5 @@ [manifest] name = gcc12 -[rpms.all(distro=centos_stream,distro_vers=9)] +[rpms.all(distro_family=rhel,distro_vers=9)] gcc-toolset-12 diff --git a/build/fbcode_builder/manifests/gcc14 b/build/fbcode_builder/manifests/gcc14 index 45a9c238e6..1df2ce4095 100644 --- a/build/fbcode_builder/manifests/gcc14 +++ b/build/fbcode_builder/manifests/gcc14 @@ -1,5 +1,5 @@ [manifest] name = gcc14 -[rpms.all(distro=centos_stream,distro_vers=9)] +[rpms.all(distro_family=rhel,distro_vers=9)] gcc-toolset-14 diff --git a/build/fbcode_builder/manifests/libaio b/build/fbcode_builder/manifests/libaio index bff84fc5ee..98690fbfaa 100644 --- a/build/fbcode_builder/manifests/libaio +++ b/build/fbcode_builder/manifests/libaio @@ -5,7 +5,7 @@ name = libaio libaio-dev # AlmaLinux 8 ships libaio-devel in BaseOS; centos_stream and rocky too. -[rpms.any(distro=centos_stream,distro=alma,distro=rocky,distro=fedora)] +[rpms] libaio-devel [download] diff --git a/build/fbcode_builder/manifests/libaio-python b/build/fbcode_builder/manifests/libaio-python index d6189ea54e..2980951746 100644 --- a/build/fbcode_builder/manifests/libaio-python +++ b/build/fbcode_builder/manifests/libaio-python @@ -4,7 +4,7 @@ name = libaio-python [debs] libaio-dev -[rpms.distro=centos_stream] +[rpms.distro_family=rhel] libaio-devel [download] diff --git a/build/fbcode_builder/manifests/libmnl b/build/fbcode_builder/manifests/libmnl index 99861239d6..89228a3bf0 100644 --- a/build/fbcode_builder/manifests/libmnl +++ b/build/fbcode_builder/manifests/libmnl @@ -6,7 +6,7 @@ libmnl-devel # all centos 8 distros are missing this, # but its in fedora so may be back in a later version -[rpms.not(all(any(distro=centos_stream,distro=centos),distro_vers=8))] +[rpms.not(all(distro_family=rhel,distro_vers=8))] libmnl-static [debs] diff --git a/build/fbcode_builder/manifests/lz4 b/build/fbcode_builder/manifests/lz4 index 0a02f425a1..faa17b00b3 100644 --- a/build/fbcode_builder/manifests/lz4 +++ b/build/fbcode_builder/manifests/lz4 @@ -7,7 +7,7 @@ lz4 [rpms] lz4-devel # centos 8 and centos_stream 9 are missing this rpm -[rpms.not(any(all(distro=centos,distro_vers=8),all(distro=centos_stream,distro_vers=9)))] +[rpms.not(all(distro_family=rhel,any(distro_vers=8,distro_vers=9)))] lz4-static [debs] diff --git a/build/fbcode_builder/manifests/lz4-python b/build/fbcode_builder/manifests/lz4-python index 92cb2ad09f..e5eb1cb017 100644 --- a/build/fbcode_builder/manifests/lz4-python +++ b/build/fbcode_builder/manifests/lz4-python @@ -7,7 +7,7 @@ lz4 [rpms] lz4-devel # centos 8 and centos_stream 9 are missing this rpm -[rpms.not(any(all(distro=centos,distro_vers=8),all(distro=centos_stream,distro_vers=9)))] +[rpms.not(all(distro_family=rhel,any(distro_vers=8,distro_vers=9)))] lz4-static [debs] diff --git a/build/fbcode_builder/manifests/numa b/build/fbcode_builder/manifests/numa index fde53ca1d8..afc7c4429b 100644 --- a/build/fbcode_builder/manifests/numa +++ b/build/fbcode_builder/manifests/numa @@ -9,5 +9,5 @@ sha256 = f2672a0381cb59196e9c246bf8bcc43d5568bc457700a697f1a1df762b9af884 builder = autoconf subdir = numactl-2.0.19 -[rpms.any(distro=centos_stream,distro=fedora)] +[rpms] numactl-devel diff --git a/build/fbcode_builder/manifests/openr b/build/fbcode_builder/manifests/openr index 53cfbfca62..cf62eea710 100644 --- a/build/fbcode_builder/manifests/openr +++ b/build/fbcode_builder/manifests/openr @@ -60,10 +60,10 @@ googletest re2 range-v3 -[dependencies.all(distro=centos_stream,distro_vers=9)] +[dependencies.all(distro_family=rhel,distro_vers=9)] gcc12 -[cmake.defines.all(distro=centos_stream,distro_vers=9)] +[cmake.defines.all(distro_family=rhel,distro_vers=9)] CMAKE_C_COMPILER=/opt/rh/gcc-toolset-12/root/usr/bin/gcc CMAKE_CXX_COMPILER=/opt/rh/gcc-toolset-12/root/usr/bin/g++ diff --git a/build/fbcode_builder/manifests/python b/build/fbcode_builder/manifests/python index 017380d577..a3a3869e5c 100644 --- a/build/fbcode_builder/manifests/python +++ b/build/fbcode_builder/manifests/python @@ -5,12 +5,12 @@ name = python python@3.10 # sapling needs match statements with arrive in python 3.12 in centos 10 -[rpms.not(all(distro=centos_stream,distro_vers=9))] +[rpms.not(all(distro_family=rhel,distro_vers=9))] python3 python3-devel # Centos Stream 9 default python is 3.9, sapling needs 3.10+ -[rpms.all(distro=centos_stream,distro_vers=9)] +[rpms.all(distro_family=rhel,distro_vers=9)] python3.12 python3.12-devel diff --git a/build/fbcode_builder/manifests/python-setuptools b/build/fbcode_builder/manifests/python-setuptools index 1f6013ddc0..2f6c6e1e44 100644 --- a/build/fbcode_builder/manifests/python-setuptools +++ b/build/fbcode_builder/manifests/python-setuptools @@ -12,7 +12,7 @@ builder = python-wheel python3-setuptools # Centos Stream 9 default python is 3.9, sapling needs 3.10+ -[rpms.all(distro=centos_stream,distro_vers=9)] +[rpms.all(distro_family=rhel,distro_vers=9)] python3.12-setuptools [homebrew] diff --git a/build/fbcode_builder/manifests/rebalancer b/build/fbcode_builder/manifests/rebalancer index c83b597fbd..91a5c0b9c6 100644 --- a/build/fbcode_builder/manifests/rebalancer +++ b/build/fbcode_builder/manifests/rebalancer @@ -62,9 +62,9 @@ fbcode/algopt/rebalancer/oss_root = . fbcode/algopt/rebalancer = algopt/rebalancer fbcode/algopt/lp = algopt/lp -[dependencies.all(distro=centos_stream,distro_vers=9)] +[dependencies.all(distro_family=rhel,distro_vers=9)] clang19 -[cmake.defines.all(distro=centos_stream,distro_vers=9)] +[cmake.defines.all(distro_family=rhel,distro_vers=9)] CMAKE_C_COMPILER=clang-19 CMAKE_CXX_COMPILER=clang++-19 diff --git a/build/fbcode_builder/manifests/rebalancer-explorer b/build/fbcode_builder/manifests/rebalancer-explorer index 466bc08b54..938bb8a205 100644 --- a/build/fbcode_builder/manifests/rebalancer-explorer +++ b/build/fbcode_builder/manifests/rebalancer-explorer @@ -60,9 +60,9 @@ fbcode/algopt/rebalancer = algopt/rebalancer fbcode/algopt/lp = algopt/lp fbcode/rebalancer/explorer = rebalancer/explorer -[dependencies.all(distro=centos_stream,distro_vers=9)] +[dependencies.all(distro_family=rhel,distro_vers=9)] clang19 -[cmake.defines.all(distro=centos_stream,distro_vers=9)] +[cmake.defines.all(distro_family=rhel,distro_vers=9)] CMAKE_C_COMPILER=clang-19 CMAKE_CXX_COMPILER=clang++-19