diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f79def97fef8..7c2a7665bb1d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -48,10 +48,10 @@ jobs: file: "scripts/check-container.dockfile" args: "cpu_target=avx" tags: "ghcr.io/facebookincubator/velox-dev:check-avx" - - name: Centos 8 + - name: Centos 9 file: "scripts/centos.dockerfile" args: "cpu_target=avx" - tags: "ghcr.io/facebookincubator/velox-dev:centos8" + tags: "ghcr.io/facebookincubator/velox-dev:centos9" - name: Dev file: "scripts/ubuntu-22.04-cpp.dockerfile" args: "" diff --git a/.github/workflows/experimental.yml b/.github/workflows/experimental.yml index 640eb610d73a..f6451f1cf8cd 100644 --- a/.github/workflows/experimental.yml +++ b/.github/workflows/experimental.yml @@ -134,7 +134,7 @@ jobs: - name: "Build" run: | cd velox - source /opt/rh/gcc-toolset-9/enable + source /opt/rh/gcc-toolset-12/enable make debug NUM_THREADS="${{ inputs.numThreads || 8 }}" MAX_HIGH_MEM_JOBS="${{ inputs.maxHighMemJobs || 8 }}" MAX_LINK_JOBS="${{ inputs.maxLinkJobs || 4 }}" EXTRA_CMAKE_FLAGS="-DVELOX_ENABLE_ARROW=ON ${{ inputs.extraCMakeFlags }}" ccache -s diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 64431f27c839..8679085b528b 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -61,7 +61,7 @@ jobs: VELOX_DEPENDENCY_SOURCE: SYSTEM simdjson_SOURCE: BUNDLED xsimd_SOURCE: BUNDLED - CUDA_VERSION: "11.8" + CUDA_VERSION: "12.4" steps: - uses: actions/checkout@v4 @@ -70,6 +70,15 @@ jobs: # it doesn't work run: git config --global --add safe.directory /__w/velox/velox + - name: Install Dependencies + run: | + # Allows to install arbitrary cuda-version whithout needing to update + # docker container before. It simplifies testing new/different versions + if ! yum list installed cuda-nvcc-$(echo ${CUDA_VERSION} | tr '.' '-') 1>/dev/null; then + source scripts/setup-centos9.sh + install_cuda ${CUDA_VERSION} + fi + - uses: assignUser/stash/restore@v1 with: path: '${{ env.CCACHE_DIR }}' @@ -82,6 +91,10 @@ jobs: - name: Make Release Build env: MAKEFLAGS: 'NUM_THREADS=8 MAX_HIGH_MEM_JOBS=4 MAX_LINK_JOBS=4' + CUDA_ARCHITECTURES: 70 + CUDA_COMPILER: /usr/local/cuda-${CUDA_VERSION}/bin/nvcc + # Set compiler to GCC 12 + CUDA_FLAGS: "-ccbin /opt/rh/gcc-toolset-12/root/usr/bin" run: | EXTRA_CMAKE_FLAGS=( "-DVELOX_ENABLE_BENCHMARKS=ON" @@ -92,6 +105,7 @@ jobs: "-DVELOX_ENABLE_GCS=ON" "-DVELOX_ENABLE_ABFS=ON" "-DVELOX_ENABLE_REMOTE_FUNCTIONS=ON" + "-DVELOX_ENABLE_GPU=ON" ) make release EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS[*]}" diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 483eb2cd5c83..8ec78a9f8970 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -89,7 +89,7 @@ jobs: # prevent errors when forks ff their main branch if: ${{ github.repository == 'facebookincubator/velox' }} runs-on: 16-core-ubuntu - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 timeout-minutes: 120 env: CCACHE_DIR: "/__w/velox/velox/.ccache" @@ -323,7 +323,7 @@ jobs: name: Presto Fuzzer if: ${{ needs.compile.outputs.presto_bias != 'true' }} runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 120 steps: @@ -395,7 +395,7 @@ jobs: presto-bias-fuzzer: name: Presto Bias Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile if: ${{ needs.compile.outputs.presto_bias == 'true' }} timeout-minutes: 120 @@ -447,7 +447,7 @@ jobs: spark-aggregate-fuzzer-run: name: Spark Aggregate Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 60 steps: @@ -482,7 +482,7 @@ jobs: spark-bias-fuzzer: name: Spark Bias Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile if: ${{ needs.compile.outputs.spark_bias == 'true' }} timeout-minutes: 120 @@ -527,7 +527,7 @@ jobs: name: Spark Fuzzer if: ${{ needs.compile.outputs.spark_bias != 'true' }} runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 120 steps: @@ -569,7 +569,7 @@ jobs: join-fuzzer-run: name: Join Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 120 steps: @@ -603,7 +603,7 @@ jobs: exchange-fuzzer-run: name: Exchange Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 120 steps: @@ -639,7 +639,7 @@ jobs: row-number-fuzzer-run: name: RowNumber Fuzzer runs-on: ubuntu-latest - container: ghcr.io/facebookincubator/velox-dev:centos8 + container: ghcr.io/facebookincubator/velox-dev:centos9 needs: compile timeout-minutes: 120 steps: diff --git a/docker-compose.yml b/docker-compose.yml index e5a91c901a78..c17e43d604b0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,6 +33,32 @@ services: - .:/velox:delegated command: scripts/docker-command.sh + adapters-cpp: + # Usage: + # docker-compose pull adapters-cpp or docker-compose build adapters-cpp + # or + # docker-compose run --rm adapters-cpp + # or + # docker-compose run -e NUM_THREADS= --rm adapters-cpp + # to set the number of threads used during compilation + # scripts/adapters.dockerfile uses SHELL which is not supported for OCI image format. + # podman users must specify "--podman-build-args='--format docker'" argument. + image: ghcr.io/facebookincubator/velox-dev:adapters + build: + context: . + dockerfile: scripts/adapters.dockerfile + args: + image: ghcr.io/facebookincubator/velox-dev:centos9 + environment: + NUM_THREADS: 8 # default value for NUM_THREADS + CCACHE_DIR: "/velox/.ccache" + EXTRA_CMAKE_FLAGS: -DVELOX_ENABLE_PARQUET=ON + -DVELOX_ENABLE_S3=ON + volumes: + - .:/velox:delegated + working_dir: /velox + command: /velox/scripts/docker-command.sh + centos-cpp: # Usage: # docker-compose pull centos-cpp or docker-compose build centos-cpp @@ -40,12 +66,12 @@ services: # or # docker-compose run -e NUM_THREADS= --rm centos-cpp # to set the number of threads used during compilation - image: ghcr.io/facebookincubator/velox-dev:centos8 + image: ghcr.io/facebookincubator/velox-dev:centos9 build: context: . dockerfile: scripts/centos.dockerfile args: - image: quay.io/centos/centos:stream8 + image: quay.io/centos/centos:stream9 environment: NUM_THREADS: 8 # default value for NUM_THREADS CCACHE_DIR: "/velox/.ccache" diff --git a/scripts/adapters.dockerfile b/scripts/adapters.dockerfile index 1b32fed7d695..73864ced11db 100644 --- a/scripts/adapters.dockerfile +++ b/scripts/adapters.dockerfile @@ -12,13 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. # Build the test and build container for presto_cpp -ARG image=ghcr.io/facebookincubator/velox-dev:centos8 +ARG image=ghcr.io/facebookincubator/velox-dev:centos9 FROM $image ARG cpu_target=avx ENV CPU_TARGET=$cpu_target COPY scripts/setup-adapters.sh / -RUN mkdir build && ( cd build && source /opt/rh/gcc-toolset-9/enable && \ +RUN mkdir build && ( cd build && source /opt/rh/gcc-toolset-12/enable && \ bash /setup-adapters.sh ) && rm -rf build && dnf remove -y conda && dnf clean all # install miniforge @@ -41,5 +41,5 @@ ENV HADOOP_HOME=/usr/local/hadoop \ LIBHDFS3_CONF=/velox/scripts/hdfs-client.xml \ PATH=/usr/local/hadoop/bin:${PATH} -ENTRYPOINT ["/bin/bash", "-c", "source /opt/rh/gcc-toolset-9/enable && exec \"$@\"", "--"] +ENTRYPOINT ["/bin/bash", "-c", "source /opt/rh/gcc-toolset-12/enable && exec \"$@\"", "--"] CMD ["/bin/bash"] diff --git a/scripts/centos-8-stream.dockerfile b/scripts/centos-8-stream.dockerfile deleted file mode 100644 index a6a4531c8ef8..000000000000 --- a/scripts/centos-8-stream.dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Build the test and build container for presto_cpp -# -FROM quay.io/centos/centos:stream8 - -ADD scripts /velox/scripts/ -RUN /velox/scripts/setup-centos8.sh - -WORKDIR /velox - diff --git a/scripts/centos.dockerfile b/scripts/centos.dockerfile index c61cca9472bc..36e2efad6c2e 100644 --- a/scripts/centos.dockerfile +++ b/scripts/centos.dockerfile @@ -12,25 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. # Build the test and build container for presto_cpp -ARG image=quay.io/centos/centos:stream8 +ARG image=quay.io/centos/centos:stream9 FROM $image ARG cpu_target=avx ENV CPU_TARGET=$cpu_target COPY scripts/setup-helper-functions.sh / -COPY scripts/setup-centos8.sh / +COPY scripts/setup-centos9.sh / # The removal of the build dir has to happen in the same layer as the build # to minimize the image size. gh & jq are required for CI -RUN mkdir build && ( cd build && bash /setup-centos8.sh ) && rm -rf build && \ +RUN mkdir build && ( cd build && bash /setup-centos9.sh ) && rm -rf build && \ dnf install -y -q 'dnf-command(config-manager)' && \ dnf config-manager --add-repo 'https://cli.github.com/packages/rpm/gh-cli.repo' && \ - dnf install -y -q gh jq python39 && \ - dnf clean all && \ - alternatives --remove python3 /usr/bin/python3.6 + dnf install -y -q gh jq && \ + dnf clean all -ENV CC=/opt/rh/gcc-toolset-9/root/bin/gcc \ - CXX=/opt/rh/gcc-toolset-9/root/bin/g++ +ENV CC=/opt/rh/gcc-toolset-12/root/bin/gcc \ + CXX=/opt/rh/gcc-toolset-12/root/bin/g++ -ENTRYPOINT ["/bin/bash", "-c", "source /opt/rh/gcc-toolset-9/enable && exec \"$@\"", "--"] +ENTRYPOINT ["/bin/bash", "-c", "source /opt/rh/gcc-toolset-12/enable && exec \"$@\"", "--"] CMD ["/bin/bash"] diff --git a/scripts/circleci-container.dockfile b/scripts/circleci-container.dockfile deleted file mode 100644 index af517edbc732..000000000000 --- a/scripts/circleci-container.dockfile +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Build the test and build container for presto_cpp -# -FROM quay.io/centos/centos:stream8 -ARG cpu_target -ENV CPU_TARGET=$cpu_target - -COPY scripts/setup-helper-functions.sh / -COPY scripts/setup-centos8.sh / -COPY scripts/setup-adapters.sh / -RUN mkdir build && ( cd build && bash /setup-centos8.sh ) && rm -rf build -RUN mkdir build && ( cd build && source /opt/rh/gcc-toolset-9/enable && \ - bash /setup-adapters.sh ) && rm -rf build diff --git a/scripts/prestojava-container.dockerfile b/scripts/prestojava-container.dockerfile index 005d481b5740..997d1beebb3c 100644 --- a/scripts/prestojava-container.dockerfile +++ b/scripts/prestojava-container.dockerfile @@ -13,7 +13,7 @@ # limitations under the License. # Build the test and build container for presto_cpp # -FROM ghcr.io/facebookincubator/velox-dev:centos8 +FROM ghcr.io/facebookincubator/velox-dev:centos9 ARG PRESTO_VERSION=0.286 diff --git a/scripts/setup-adapters.sh b/scripts/setup-adapters.sh index 7a487e877cce..bf5d99f41ace 100755 --- a/scripts/setup-adapters.sh +++ b/scripts/setup-adapters.sh @@ -61,7 +61,7 @@ function install_gcs-sdk-cpp { github_checkout abseil/abseil-cpp 20240116.2 --depth 1 cmake_install \ -DABSL_BUILD_TESTING=OFF \ - -DCMAKE_CXX_STANDARD=14 \ + -DCMAKE_CXX_STANDARD=17 \ -DABSL_PROPAGATE_CXX_STD=ON \ -DABSL_ENABLE_INSTALL=ON @@ -169,12 +169,12 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then # Dependencies of Azure Storage Blob cpp apt install -y openssl else # Assume Fedora/CentOS - yum -y install libxml2-devel libgsasl-devel libuuid-devel + dnf -y install libxml2-devel libgsasl-devel libuuid-devel krb5-devel # Dependencies of GCS, probably a workaround until the docker image is rebuilt - yum -y install curl-devel c-ares-devel + dnf -y install npm curl-devel c-ares-devel # Dependencies of Azure Storage Blob Cpp - yum -y install perl-IPC-Cmd - yum -y install openssl + dnf -y install perl-IPC-Cmd + dnf -y install openssl fi fi diff --git a/scripts/setup-centos9.sh b/scripts/setup-centos9.sh new file mode 100755 index 000000000000..8fa1a7946ae8 --- /dev/null +++ b/scripts/setup-centos9.sh @@ -0,0 +1,240 @@ +#!/bin/bash +# Copyright (c) Facebook, Inc. and its affiliates. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script documents setting up a Centos9 host for Velox +# development. Running it should make you ready to compile. +# +# Environment variables: +# * INSTALL_PREREQUISITES="N": Skip installation of packages for build. +# * PROMPT_ALWAYS_RESPOND="n": Automatically respond to interactive prompts. +# Use "n" to never wipe directories. +# +# You can also run individual functions below by specifying them as arguments: +# $ scripts/setup-centos9.sh install_googletest install_fmt +# + +set -efx -o pipefail +# Some of the packages must be build with the same compiler flags +# so that some low level types are the same size. Also, disable warnings. +SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") +source $SCRIPTDIR/setup-helper-functions.sh +CPU_TARGET="${CPU_TARGET:-avx}" +NPROC=$(getconf _NPROCESSORS_ONLN) +export CFLAGS=$(get_cxx_flags $CPU_TARGET) # Used by LZO. +export CXXFLAGS=$CFLAGS # Used by boost. +export CPPFLAGS=$CFLAGS # Used by LZO. +CMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}" +BUILD_DUCKDB="${BUILD_DUCKDB:-true}" +export CC=/opt/rh/gcc-toolset-12/root/bin/gcc +export CXX=/opt/rh/gcc-toolset-12/root/bin/g++ + +function dnf_install { + dnf install -y -q --setopt=install_weak_deps=False "$@" +} + +# Install packages required for build. +function install_build_prerequisites { + dnf update -y + dnf_install epel-release dnf-plugins-core # For ccache, ninja + dnf config-manager --set-enabled crb + dnf update -y + dnf_install ninja-build cmake ccache gcc-toolset-12 git wget which + dnf_install autoconf automake python3-devel pip libtool + pip install cmake==3.28.3 +} + +# Install dependencies from the package managers. +function install_velox_deps_from_dnf { + dnf_install libevent-devel \ + openssl-devel re2-devel libzstd-devel lz4-devel double-conversion-devel \ + libdwarf-devel elfutils-libelf-devel curl-devel libicu-devel bison flex \ + libsodium-devel zlib-devel + + # install sphinx for doc gen + pip install sphinx sphinx-tabs breathe sphinx_rtd_theme +} + +function install_conda { + dnf_install conda +} + +function install_gflags { + # Remove an older version if present. + dnf remove -y gflags + wget_and_untar https://github.com/gflags/gflags/archive/v2.2.2.tar.gz gflags + ( + cd gflags + cmake_install -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_gflags_LIB=ON -DLIB_SUFFIX=64 + ) +} + +function install_glog { + wget_and_untar https://github.com/google/glog/archive/v0.6.0.tar.gz glog + ( + cd glog + cmake_install -DBUILD_SHARED_LIBS=ON + ) +} + +function install_lzo { + wget_and_untar http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz lzo + ( + cd lzo + ./configure --prefix=/usr --enable-shared --disable-static --docdir=/usr/share/doc/lzo-2.10 + make "-j$(nproc)" + make install + ) +} + +function install_boost { + wget_and_untar https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz boost + ( + cd boost + ./bootstrap.sh --prefix=/usr/local + ./b2 "-j$(nproc)" -d0 install threading=multi --without-python + ) +} + +function install_snappy { + wget_and_untar https://github.com/google/snappy/archive/1.1.8.tar.gz snappy + ( + cd snappy + cmake_install -DSNAPPY_BUILD_TESTS=OFF + ) +} + +function install_fmt { + wget_and_untar https://github.com/fmtlib/fmt/archive/10.1.1.tar.gz fmt + ( + cd fmt + cmake_install -DFMT_TEST=OFF + ) +} + +function install_protobuf { + wget_and_untar https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protobuf-all-21.4.tar.gz protobuf + ( + cd protobuf + ./configure --prefix=/usr + make "-j${NPROC}" + make install + ldconfig + ) +} + +FB_OS_VERSION="v2024.04.01.00" + +function install_fizz { + wget_and_untar https://github.com/facebookincubator/fizz/archive/refs/tags/${FB_OS_VERSION}.tar.gz fizz + ( + cd fizz/fizz + cmake_install -DBUILD_TESTS=OFF + ) +} + +function install_folly { + wget_and_untar https://github.com/facebook/folly/archive/refs/tags/${FB_OS_VERSION}.tar.gz folly + ( + cd folly + cmake_install -DFOLLY_HAVE_INT128_T=ON + ) +} + +function install_wangle { + wget_and_untar https://github.com/facebook/wangle/archive/refs/tags/${FB_OS_VERSION}.tar.gz wangle + ( + cd wangle/wangle + cmake_install -DBUILD_TESTS=OFF + ) +} + +function install_fbthrift { + wget_and_untar https://github.com/facebook/fbthrift/archive/refs/tags/${FB_OS_VERSION}.tar.gz fbthrift + ( + cd fbthrift + cmake_install -Denable_tests=OFF -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=OFF + ) +} + +function install_mvfst { + wget_and_untar https://github.com/facebook/mvfst/archive/refs/tags/${FB_OS_VERSION}.tar.gz mvfst + ( + cd mvfst + cmake_install -DBUILD_TESTS=OFF + ) +} + +function install_duckdb { + if $BUILD_DUCKDB ; then + echo 'Building DuckDB' + wget_and_untar https://github.com/duckdb/duckdb/archive/refs/tags/v0.8.1.tar.gz duckdb + ( + cd duckdb + cmake_install -DBUILD_UNITTESTS=OFF -DENABLE_SANITIZER=OFF -DENABLE_UBSAN=OFF -DBUILD_SHELL=OFF -DEXPORT_DLL_SYMBOLS=OFF -DCMAKE_BUILD_TYPE=Release + ) + fi +} + +function install_cuda { + # See https://developer.nvidia.com/cuda-downloads + dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo + dnf install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-devel-$(echo $1 | tr '.' '-') +} + +function install_velox_deps { + run_and_time install_velox_deps_from_dnf + run_and_time install_conda + run_and_time install_gflags + run_and_time install_glog + run_and_time install_lzo + run_and_time install_snappy + run_and_time install_boost + run_and_time install_protobuf + run_and_time install_fmt + run_and_time install_folly + run_and_time install_fizz + run_and_time install_wangle + run_and_time install_mvfst + run_and_time install_fbthrift + run_and_time install_duckdb +} + +(return 2> /dev/null) && return # If script was sourced, don't run commands. + +( + if [[ $# -ne 0 ]]; then + # Activate gcc12; enable errors on unset variables afterwards. + source /opt/rh/gcc-toolset-12/enable || exit 1 + set -u + for cmd in "$@"; do + run_and_time "${cmd}" + done + echo "All specified dependencies installed!" + else + if [ "${INSTALL_PREREQUISITES:-Y}" == "Y" ]; then + echo "Installing build dependencies" + run_and_time install_build_prerequisites + else + echo "Skipping installation of build dependencies since INSTALL_PREREQUISITES is not set" + fi + # Activate gcc12; enable errors on unset variables afterwards. + source /opt/rh/gcc-toolset-12/enable || exit 1 + set -u + install_velox_deps + echo "All dependencies for Velox installed!" + dnf clean all + fi +) + diff --git a/scripts/spark-container.dockerfile b/scripts/spark-container.dockerfile index 579edeb2d4b5..4c7259506a8e 100644 --- a/scripts/spark-container.dockerfile +++ b/scripts/spark-container.dockerfile @@ -13,7 +13,7 @@ # limitations under the License. # Build the test and build container for presto_cpp # -FROM ghcr.io/facebookincubator/velox-dev:centos8 +FROM ghcr.io/facebookincubator/velox-dev:centos9 ARG SPARK_VERSION=3.5.1 diff --git a/velox/experimental/wave/common/tests/HashTestUtil.h b/velox/experimental/wave/common/tests/HashTestUtil.h index 43703f977127..ddebee017f41 100644 --- a/velox/experimental/wave/common/tests/HashTestUtil.h +++ b/velox/experimental/wave/common/tests/HashTestUtil.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include "velox/experimental/wave/common/Buffer.h" #include "velox/experimental/wave/common/HashTable.h"