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

Upgrade FBOS dependencies to 2024.09.16.00 #11018

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions CMake/resolve_dependency_modules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@ by Velox. See details on bundling below.
| re2 | 2021-04-01 | Yes |
| fmt | 10.1.1 | Yes |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this folly version also uses fmt11? Or is it backwards compatible?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is backwards compatible. I had originally planned to also upgrade fmt to 11 but there is another PR that needs to be merged first that prepares the code for fmt 11.
Upgrading fmt is next.

Copy link
Collaborator

@majetideepak majetideepak Sep 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is backward compatible since Meta internally is still on fmt9 but on latest folly.

| simdjson | 3.9.3 | Yes |
| folly | v2024.05.20.00 | Yes |
| fizz | v2024.05.20.00 | No |
| wangle | v2024.05.20.00 | No |
| mvfst | v2024.05.20.00 | No |
| fbthrift | v2024.05.20.00 | No |
| fast_float | v6.1.6 | Yes |
| folly | v2024.09.16.00 | Yes |
| fizz | v2024.09.16.00 | No |
| wangle | v2024.09.16.00 | No |
| mvfst | v2024.09.16.00 | No |
| fbthrift | v2024.09.16.00 | No |
| libstemmer | 2.2.0 | Yes |
| DuckDB (testing) | 0.8.1 | Yes |
| cpr (testing) | 1.10.15 | Yes |
Expand Down
34 changes: 34 additions & 0 deletions CMake/resolve_dependency_modules/fast_float.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 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.
include_guard(GLOBAL)

set(VELOX_FAST_FLOAT_VERSION 6.1.6)
set(VELOX_FAST_FLOAT_BUILD_SHA256_CHECKSUM
4458aae4b0eb55717968edda42987cabf5f7fc737aee8fede87a70035dba9ab0)
set(VELOX_FAST_FLOAT_SOURCE_URL
"https://github.com/fastfloat/fast_float/archive/v${VELOX_FAST_FLOAT_VERSION}.tar.gz"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this URL path is broken. I think we expect https://github.com/fastfloat/fast_float/archive/refs/tags/v${VELOX_FAST_FLOAT_VERSION}.tar.gz

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This URL works for me. I can navigate in the browser and download it (https://github.com/fastfloat/fast_float/archive/v6.1.6.tar.gz) This is used when you bundle folly. Other than that it should not come up.

)

resolve_dependency_url(FAST_FLOAT)

message(STATUS "Building fast_float from source")
FetchContent_Declare(
fast_float
URL ${VELOX_FAST_FLOAT_SOURCE_URL}
URL_HASH ${VELOX_FAST_FLOAT_BUILD_SHA256_CHECKSUM})

FetchContent_MakeAvailable(fast_float)
# Folly searches for the header path directly so need to make sure to search in
# the dependency path.
list(APPEND CMAKE_PREFIX_PATH "${fast_float_SOURCE_DIR}")
6 changes: 4 additions & 2 deletions CMake/resolve_dependency_modules/folly/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@
project(Folly)
cmake_minimum_required(VERSION 3.14)

set(VELOX_FOLLY_BUILD_VERSION v2024.05.20.00)
set(VELOX_FOLLY_BUILD_VERSION v2024.09.16.00)
set(VELOX_FOLLY_BUILD_SHA256_CHECKSUM
f4a450e59f0b74d1b0b4e5c55ae38e820166c95d02f8a8a298e54a49a90aa057)
0a375f2f3e15a2679b4d21fa1064986830a52f59c74d82b3bda1aeeea4e77da0)
set(VELOX_FOLLY_SOURCE_URL
"https://github.com/facebook/folly/releases/download/${VELOX_FOLLY_BUILD_VERSION}/folly-${VELOX_FOLLY_BUILD_VERSION}.tar.gz"
)

set(fast_float_SOURCE BUNDLED)
resolve_dependency(fast_float)
resolve_dependency_url(FOLLY)

message(STATUS "Building Folly from source")
Expand Down
25 changes: 14 additions & 11 deletions CMake/resolve_dependency_modules/folly/folly-gflags-glog.patch
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
# limitations under the License.
--- a/CMake/folly-deps.cmake
+++ b/CMake/folly-deps.cmake
@@ -52,19 +52,20 @@ find_package(DoubleConversion MODULE REQUIRED)
list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
@@ -55,19 +55,23 @@ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR})
find_package(FastFloat MODULE REQUIRED)
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${FASTFLOAT_INCLUDE_DIR})

-find_package(Gflags MODULE)
-set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND})
-if(LIBGFLAGS_FOUND)
Expand All @@ -27,12 +27,14 @@
+find_package(gflags)
+set(FOLLY_HAVE_LIBGFLAGS ${gflags_FOUND})
+if(gflags_FOUND)
+ list(APPEND FOLLY_LINK_LIBRARIES ${gflags_LIBRARY})
+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${gflags_INCLUDE_DIR})
+ set(FOLLY_LIBGFLAGS_LIBRARY ${gflags_LIBRARY})
+ set(FOLLY_LIBGFLAGS_INCLUDE ${gflags_INCLUDE_DIR})
+ list(APPEND FOLLY_LINK_LIBRARIES ${gflags_LIBRARY})
+ list(APPEND FOLLY_INCLUDE_DIRECTORIES ${gflags_INCLUDE_DIR})
+ set(FOLLY_LIBGFLAGS_LIBRARY ${gflags_LIBRARY})
+ set(FOLLY_LIBGFLAGS_INCLUDE ${gflags_INCLUDE_DIR})
+ message(STATUS "gflags_INCLUDE_DIR: ${gflags_INCLUDE_DIR}")
+ message(STATUS "gflags_LIBRARY: ${gflags_LIBRARY}")
endif()

-find_package(Glog MODULE)
-set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND})
-list(APPEND FOLLY_LINK_LIBRARIES ${GLOG_LIBRARY})
Expand All @@ -41,7 +43,8 @@
+set(FOLLY_HAVE_LIBGLOG ${glog_FOUND})
+list(APPEND FOLLY_LINK_LIBRARIES ${glog_LIBRARY})
+list(APPEND FOLLY_INCLUDE_DIRECTORIES ${glog_INCLUDE_DIR})
+message(STATUS "glog_INCLUDE_DIR: ${gflags_LINRARY}")

+message(STATUS "glog_INCLUDE_DIR: ${glog_INCLUDE_DIR}")
+message(STATUS "glog_LIBRARY: ${glog_LIBRARY}")

find_package(LibEvent MODULE REQUIRED)
list(APPEND FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB})
12 changes: 10 additions & 2 deletions scripts/setup-centos9.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,19 @@ set -efx -o pipefail
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
source $SCRIPTDIR/setup-helper-functions.sh
NPROC=$(getconf _NPROCESSORS_ONLN)
export CXXFLAGS=$(get_cxx_flags) # Used by boost.
export CXXFLAGS=$(get_cxx_flags) # Used by boost.
export CFLAGS=${CXXFLAGS//"-std=c++17"/} # Used by LZO.
CMAKE_BUILD_TYPE="${BUILD_TYPE:-Release}"
BUILD_DUCKDB="${BUILD_DUCKDB:-true}"
USE_CLANG="${USE_CLANG:-false}"
export INSTALL_PREFIX=${INSTALL_PREFIX:-"/usr/local"}
DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)/deps-download}

FB_OS_VERSION="v2024.05.20.00"
FB_OS_VERSION="v2024.09.16.00"
FMT_VERSION="10.1.1"
BOOST_VERSION="boost-1.84.0"
ARROW_VERSION="15.0.0"
FAST_FLOAT_VERSION="v6.1.6"

function dnf_install {
dnf install -y -q --setopt=install_weak_deps=False "$@"
Expand Down Expand Up @@ -209,6 +210,12 @@ function install_cuda {
dnf install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-devel-$(echo $1 | tr '.' '-')
}

function install_fast_float {
# Dependency of folly.
wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float
cmake_install_dir fast_float
}

function install_velox_deps {
run_and_time install_velox_deps_from_dnf
run_and_time install_conda
Expand All @@ -219,6 +226,7 @@ function install_velox_deps {
run_and_time install_boost
run_and_time install_protobuf
run_and_time install_fmt
run_and_time install_fast_float
run_and_time install_folly
run_and_time install_fizz
run_and_time install_wangle
Expand Down
9 changes: 8 additions & 1 deletion scripts/setup-macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ NPROC=$(getconf _NPROCESSORS_ONLN)
DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)}
MACOS_VELOX_DEPS="bison flex gflags glog googletest icu4c libevent libsodium lz4 lzo openssl protobuf@21 snappy xz zstd"
MACOS_BUILD_DEPS="ninja cmake"
FB_OS_VERSION="v2024.05.20.00"
FB_OS_VERSION="v2024.09.16.00"
FMT_VERSION="10.1.1"

function update_brew {
Expand Down Expand Up @@ -141,12 +141,19 @@ function install_re2 {
cmake_install_dir re2 -DRE2_BUILD_TESTING=OFF
}

function install_fast_float {
# Dependency of folly.
wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float
cmake_install_dir fast_float
}

function install_velox_deps {
run_and_time install_velox_deps_from_brew
run_and_time install_ranges_v3
run_and_time install_double_conversion
run_and_time install_re2
run_and_time install_fmt
run_and_time install_fast_float
run_and_time install_folly
run_and_time install_fizz
run_and_time install_wangle
Expand Down
10 changes: 9 additions & 1 deletion scripts/setup-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,11 @@ function install_clang15 {
${SUDO} apt install ${CLANG_PACKAGE_LIST} -y
}

FB_OS_VERSION="v2024.05.20.00"
FB_OS_VERSION="v2024.09.16.00"
FMT_VERSION="10.1.1"
BOOST_VERSION="boost-1.84.0"
ARROW_VERSION="15.0.0"
FAST_FLOAT_VERSION="v6.1.6"

# Install packages required for build.
function install_build_prerequisites {
Expand Down Expand Up @@ -222,10 +223,17 @@ function install_cuda {
$SUDO apt install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-dev-$(echo $1 | tr '.' '-')
}

function install_fast_float {
# Dependency of folly.
wget_and_untar https://github.com/fastfloat/fast_float/archive/refs/tags/${FAST_FLOAT_VERSION}.tar.gz fast_float
cmake_install_dir fast_float
}

function install_velox_deps {
run_and_time install_velox_deps_from_apt
run_and_time install_fmt
run_and_time install_boost
run_and_time install_fast_float
run_and_time install_folly
run_and_time install_fizz
run_and_time install_wangle
Expand Down
Loading