From 8ceb4715b211fa1f2bc9f63ac4d28ff8e7766854 Mon Sep 17 00:00:00 2001 From: Utkarsh Srivastava Date: Mon, 3 Mar 2025 12:57:28 +0530 Subject: [PATCH] Fix RPM build on RHEL8 & friends Signed-off-by: Utkarsh Srivastava fix rhel typo Signed-off-by: Utkarsh Srivastava Fix RPM Builds for RHEL8 & friends Signed-off-by: Utkarsh Srivastava --- src/deploy/NVA_build/Base.Dockerfile | 1 + src/deploy/RPM_build/RPM.Dockerfile | 6 +++++- src/deploy/RPM_build/noobaa.spec | 4 ++++ src/native/s3select/s3select.gyp | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/deploy/NVA_build/Base.Dockerfile b/src/deploy/NVA_build/Base.Dockerfile index 83b9a2352b..de2c67dd05 100644 --- a/src/deploy/NVA_build/Base.Dockerfile +++ b/src/deploy/NVA_build/Base.Dockerfile @@ -32,6 +32,7 @@ RUN ./src/deploy/NVA_build/clone_s3select_submodules.sh RUN ln -s /lib64/libboost_thread.so.1.66.0 /lib64/libboost_thread.so.1.75.0 || true #Pass BUILD_S3SELECT down to GYP native build. #S3Select will be built only if this parameter is equal to "1". +#Next step would fail for RHEL8 and derivates RUN GYP_DEFINES="BUILD_S3SELECT=$BUILD_S3SELECT BUILD_S3SELECT_PARQUET=$BUILD_S3SELECT_PARQUET" npm run build ############################################################## diff --git a/src/deploy/RPM_build/RPM.Dockerfile b/src/deploy/RPM_build/RPM.Dockerfile index fb0eeec5eb..42848ad9eb 100644 --- a/src/deploy/RPM_build/RPM.Dockerfile +++ b/src/deploy/RPM_build/RPM.Dockerfile @@ -38,6 +38,9 @@ COPY ./src/deploy/standalone/noobaa-logrotate ./src/deploy/standalone/noobaa-log COPY ./src/manage_nsfs ./src/manage_nsfs COPY ./src/nc ./src/nc +# Install GCC11 toolchain on Centos8 to match the default toolchain of Centos9 +RUN if [ "$CENTOS_VER" == "8" ];then dnf install -y -q gcc-toolset-11; fi + WORKDIR /build COPY ./src/deploy/RPM_build/* ./ @@ -54,4 +57,5 @@ ENV BUILD_S3SELECT_PARQUET=${BUILD_S3SELECT_PARQUET} ENV CENTOS_VER=${CENTOS_VER} ENV SRPM_ONLY=${SRPM_ONLY} RUN mkdir -p /export -CMD ./packagerpm.sh /export /build +# Set GCC Toolset in path - won't exist in RHEL9 but that's OK +CMD PATH=/opt/rh/gcc-toolset-11/root/bin:$PATH ./packagerpm.sh /export /build diff --git a/src/deploy/RPM_build/noobaa.spec b/src/deploy/RPM_build/noobaa.spec index da14d339f5..7b307886cc 100644 --- a/src/deploy/RPM_build/noobaa.spec +++ b/src/deploy/RPM_build/noobaa.spec @@ -31,6 +31,9 @@ BuildRequires: make BuildRequires: gcc-c++ BuildRequires: boost-devel BuildRequires: libcap-devel +%if "%{CENTOS_VER}" == "8" +BuildRequires: gcc-toolset-11 +%endif Recommends: jemalloc @@ -43,6 +46,7 @@ NooBaa is a data service for cloud environments, providing S3 object-store inter %setup -n noobaa -q %build +PATH=/opt/rh/gcc-toolset-11/root/bin:$PATH NODEJS_VERSION="%{nodever}" SKIP_NODE_INSTALL=1 source src/deploy/NVA_build/install_nodejs.sh $NODEJS_VERSION diff --git a/src/native/s3select/s3select.gyp b/src/native/s3select/s3select.gyp index 863c896e39..c459d23725 100644 --- a/src/native/s3select/s3select.gyp +++ b/src/native/s3select/s3select.gyp @@ -4,6 +4,7 @@ 'target_name': 's3select', 'type': 'static_library', 'cflags_cc!': ['-fno-rtti'], + 'cflags_cc': ['-std=c++17'], 'include_dirs': [ '<@(napi_include_dirs)', '../../../submodules/s3select/include',