631 lines
20 KiB
Bash
Executable File
631 lines
20 KiB
Bash
Executable File
#!/bin/bash
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you 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.
|
|
|
|
#set -e
|
|
################################################################
|
|
# This script will download all thirdparties and java libraries
|
|
# which are defined in *vars.sh*, unpack patch them if necessary.
|
|
# You can run this script multi-times.
|
|
# Things will only be downloaded, unpacked and patched once.
|
|
################################################################
|
|
|
|
curdir=`dirname "$0"`
|
|
curdir=`cd "$curdir"; pwd`
|
|
|
|
if [[ -z "${STARROCKS_HOME}" ]]; then
|
|
STARROCKS_HOME=$curdir/..
|
|
fi
|
|
|
|
# include custom environment variables
|
|
if [[ -f ${STARROCKS_HOME}/custom_env.sh ]]; then
|
|
. ${STARROCKS_HOME}/custom_env.sh
|
|
fi
|
|
|
|
if [[ -z "${TP_DIR}" ]]; then
|
|
TP_DIR=$curdir
|
|
fi
|
|
|
|
if [ ! -f ${TP_DIR}/vars.sh ]; then
|
|
echo "vars.sh is missing".
|
|
exit 1
|
|
fi
|
|
. ${TP_DIR}/vars.sh
|
|
|
|
mkdir -p ${TP_DIR}/src
|
|
|
|
md5sum_bin=md5sum
|
|
if ! command -v ${md5sum_bin} >/dev/null 2>&1; then
|
|
echo "Warn: md5sum is not installed"
|
|
md5sum_bin=""
|
|
fi
|
|
|
|
md5sum_func() {
|
|
local FILENAME=$1
|
|
local DESC_DIR=$2
|
|
local MD5SUM=$3
|
|
|
|
if [ "$md5sum_bin" == "" ]; then
|
|
return 0
|
|
else
|
|
md5=`md5sum "$DESC_DIR/$FILENAME"`
|
|
if [ "$md5" != "$MD5SUM $DESC_DIR/$FILENAME" ]; then
|
|
echo "$DESC_DIR/$FILENAME md5sum check failed!"
|
|
echo -e "expect-md5 $MD5SUM \nactual-md5 $md5"
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
download_func() {
|
|
local FILENAME=$1
|
|
local DOWNLOAD_URL=$2
|
|
local DESC_DIR=$3
|
|
local MD5SUM=$4
|
|
|
|
if [ -z "$FILENAME" ]; then
|
|
echo "Error: No file name specified to download"
|
|
exit 1
|
|
fi
|
|
if [ -z "$DOWNLOAD_URL" ]; then
|
|
echo "Error: No download url specified for $FILENAME"
|
|
exit 1
|
|
fi
|
|
if [ -z "$DESC_DIR" ]; then
|
|
echo "Error: No dest dir specified for $FILENAME"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
SUCCESS=0
|
|
for attemp in 1 2; do
|
|
if [ -r "$DESC_DIR/$FILENAME" ]; then
|
|
if md5sum_func $FILENAME $DESC_DIR $MD5SUM; then
|
|
echo "Archive $FILENAME already exist."
|
|
SUCCESS=1
|
|
break;
|
|
fi
|
|
echo "Archive $FILENAME will be removed and download again."
|
|
rm -f "$DESC_DIR/$FILENAME"
|
|
else
|
|
echo "Downloading $FILENAME from $DOWNLOAD_URL to $DESC_DIR"
|
|
wget --progress=dot:mega --tries=3 --no-check-certificate $DOWNLOAD_URL -O $DESC_DIR/$FILENAME
|
|
if [ "$?"x == "0"x ]; then
|
|
if md5sum_func $FILENAME $DESC_DIR $MD5SUM; then
|
|
SUCCESS=1
|
|
echo "Success to download $FILENAME"
|
|
break;
|
|
fi
|
|
echo "Archive $FILENAME will be removed and download again."
|
|
rm -f "$DESC_DIR/$FILENAME"
|
|
else
|
|
echo "Failed to download $FILENAME. attemp: $attemp"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ $SUCCESS -ne 1 ]; then
|
|
echo "Failed to download $FILENAME"
|
|
fi
|
|
return $SUCCESS
|
|
}
|
|
|
|
# download thirdparty archives
|
|
echo "===== Downloading thirdparty archives..."
|
|
for TP_ARCH in ${TP_ARCHIVES[*]}
|
|
do
|
|
NAME=$TP_ARCH"_NAME"
|
|
MD5SUM=$TP_ARCH"_MD5SUM"
|
|
if test "x$REPOSITORY_URL" = x; then
|
|
URL=$TP_ARCH"_DOWNLOAD"
|
|
download_func ${!NAME} ${!URL} $TP_SOURCE_DIR ${!MD5SUM}
|
|
if [ "$?"x == "0"x ]; then
|
|
echo "Failed to download ${!NAME}"
|
|
exit 1
|
|
fi
|
|
else
|
|
URL="${REPOSITORY_URL}/${!NAME}"
|
|
download_func ${!NAME} ${URL} $TP_SOURCE_DIR ${!MD5SUM}
|
|
if [ "$?x" == "0x" ]; then
|
|
#try to download from home
|
|
URL=$TP_ARCH"_DOWNLOAD"
|
|
download_func ${!NAME} ${!URL} $TP_SOURCE_DIR ${!MD5SUM}
|
|
if [ "$?x" == "0x" ]; then
|
|
echo "Failed to download ${!NAME}"
|
|
exit 1 # download failed again exit.
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
echo "===== Downloading thirdparty archives...done"
|
|
|
|
# check if all tp archievs exists
|
|
echo "===== Checking all thirdpart archives..."
|
|
for TP_ARCH in ${TP_ARCHIVES[*]}
|
|
do
|
|
NAME=$TP_ARCH"_NAME"
|
|
if [ ! -r $TP_SOURCE_DIR/${!NAME} ]; then
|
|
echo "Failed to fetch ${!NAME}"
|
|
exit 1
|
|
fi
|
|
done
|
|
echo "===== Checking all thirdpart archives...done"
|
|
|
|
# unpacking thirdpart archives
|
|
echo "===== Unpacking all thirdparty archives..."
|
|
TAR_CMD="tar"
|
|
UNZIP_CMD="unzip"
|
|
SUFFIX_TGZ="\.(tar\.gz|tgz)$"
|
|
SUFFIX_XZ="\.tar\.xz$"
|
|
SUFFIX_ZIP="\.zip$"
|
|
SUFFIX_BZ2="\.bz2$"
|
|
# temporary directory for unpacking
|
|
# package is unpacked in tmp_dir and then renamed.
|
|
mkdir -p $TP_SOURCE_DIR/tmp_dir
|
|
for TP_ARCH in ${TP_ARCHIVES[*]}
|
|
do
|
|
NAME=$TP_ARCH"_NAME"
|
|
SOURCE=$TP_ARCH"_SOURCE"
|
|
|
|
if [ -z "${!SOURCE}" ]; then
|
|
continue
|
|
fi
|
|
|
|
if [ ! -d $TP_SOURCE_DIR/${!SOURCE} ]; then
|
|
if [[ "${!NAME}" =~ $SUFFIX_TGZ ]]; then
|
|
echo "$TP_SOURCE_DIR/${!NAME}"
|
|
echo "$TP_SOURCE_DIR/${!SOURCE}"
|
|
if ! $TAR_CMD xzf "$TP_SOURCE_DIR/${!NAME}" -C $TP_SOURCE_DIR/tmp_dir; then
|
|
echo "Failed to untar ${!NAME}"
|
|
exit 1
|
|
fi
|
|
elif [[ "${!NAME}" =~ $SUFFIX_XZ ]]; then
|
|
echo "$TP_SOURCE_DIR/${!NAME}"
|
|
echo "$TP_SOURCE_DIR/${!SOURCE}"
|
|
if ! $TAR_CMD xJf "$TP_SOURCE_DIR/${!NAME}" -C $TP_SOURCE_DIR/tmp_dir; then
|
|
echo "Failed to untar ${!NAME}"
|
|
exit 1
|
|
fi
|
|
elif [[ "${!NAME}" =~ $SUFFIX_ZIP ]]; then
|
|
if ! $UNZIP_CMD -q "$TP_SOURCE_DIR/${!NAME}" -d $TP_SOURCE_DIR/tmp_dir; then
|
|
echo "Failed to unzip ${!NAME}"
|
|
exit 1
|
|
fi
|
|
elif [[ "${!NAME}" =~ $SUFFIX_BZ2 ]]; then
|
|
echo "$TP_SOURCE_DIR/${!NAME}"
|
|
echo "$TP_SOURCE_DIR/${!SOURCE}"
|
|
if ! $TAR_CMD xjf "$TP_SOURCE_DIR/${!NAME}" -C $TP_SOURCE_DIR/tmp_dir; then
|
|
echo "Failed to untar ${!NAME}"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "nothing has been done with ${!NAME}"
|
|
continue
|
|
fi
|
|
mv $TP_SOURCE_DIR/tmp_dir/* $TP_SOURCE_DIR/${!SOURCE}
|
|
else
|
|
echo "${!SOURCE} already unpacked."
|
|
fi
|
|
done
|
|
rm -r $TP_SOURCE_DIR/tmp_dir
|
|
echo "===== Unpacking all thirdparty archives...done"
|
|
|
|
echo "===== Patching thirdparty archives..."
|
|
|
|
###################################################################################
|
|
# PATCHED_MARK is a empty file which will be created in some thirdparty source dir
|
|
# only after that thirdparty source is patched.
|
|
# This is to avoid duplicated patch.
|
|
###################################################################################
|
|
PATCHED_MARK="patched_mark"
|
|
|
|
# glog patch
|
|
cd $TP_SOURCE_DIR/$GLOG_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $GLOG_SOURCE == "glog-0.3.3" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.3.3-vlog-double-lock-bug.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.3.3-for-starrocks2.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.3.3-remove-unwind-dependency.patch
|
|
# patch Makefile.am to make autoreconf work
|
|
patch -p0 < $TP_PATCH_DIR/glog-0.3.3-makefile.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $GLOG_SOURCE == "glog-0.4.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.4.0-for-starrocks2.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.4.0-remove-unwind-dependency.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.4.0-add-handler-after-output-log.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $GLOG_SOURCE == "glog-0.7.1" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.7.1.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.7.1-add-handler-after-output-log.patch
|
|
patch -p1 < $TP_PATCH_DIR/glog-0.7.1-lwp.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $GLOG_SOURCE"
|
|
|
|
# re2 patch
|
|
cd $TP_SOURCE_DIR/$RE2_SOURCE
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/re2-2022-12-01.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $RE2_SOURCE"
|
|
|
|
# libevent patch
|
|
cd $TP_SOURCE_DIR/$LIBEVENT_SOURCE
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/libevent_on_free_cb.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $LIBEVENT_SOURCE"
|
|
|
|
# thrift patch
|
|
# cd $TP_SOURCE_DIR/$THRIFT_SOURCE
|
|
# if [ ! -f $PATCHED_MARK ]; then
|
|
# patch -p0 < $TP_PATCH_DIR/thrift-0.9.3-aclocal.patch
|
|
# touch $PATCHED_MARK
|
|
# fi
|
|
# cd -
|
|
# echo "Finished patching $THRIFT_SOURCE"
|
|
|
|
# lz4 patch to disable shared library
|
|
cd $TP_SOURCE_DIR/$LZ4_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $LZ4_SOURCE == "lz4-1.7.5" ]; then
|
|
patch -p0 < $TP_PATCH_DIR/lz4-1.7.5.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $LZ4_SOURCE"
|
|
|
|
cd $TP_SOURCE_DIR/$ROCKSDB_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $ROCKSDB_SOURCE == "rocksdb-6.22.1" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/rocksdb-6.22.1-metadata-header.patch
|
|
patch -p1 < $TP_PATCH_DIR/rocksdb-6.22.1-gcc14.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $ROCKSDB_SOURCE"
|
|
|
|
# brpc patch to disable shared library
|
|
cd $TP_SOURCE_DIR/$BRPC_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $BRPC_SOURCE == "brpc-0.9.5" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/brpc-0.9.5.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $BRPC_SOURCE == "brpc-0.9.7" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/brpc-0.9.7.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $BRPC_SOURCE == "brpc-1.3.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/brpc-1.3.0.patch
|
|
patch -p1 < $TP_PATCH_DIR/brpc-1.3.0-CVE-2023-31039.patch
|
|
patch -p1 < $TP_PATCH_DIR/brpc-1.3.0-2479.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $BRPC_SOURCE == "brpc-1.9.0" ]; then
|
|
patch < $TP_PATCH_DIR/brpc-1.9.0.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $BRPC_SOURCE"
|
|
|
|
# s2 patch to disable shared library
|
|
cd $TP_SOURCE_DIR/$S2_SOURCE
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/s2geometry-0.9.0.patch
|
|
# replace uint64 with uint64_t to make compiler happy
|
|
patch -p0 < $TP_PATCH_DIR/s2geometry-0.9.0-uint64.patch
|
|
patch -p1 < $TP_PATCH_DIR/s2geometry-0.9.0-cxx17.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $S2_SOURCE"
|
|
|
|
# ryu patch to detailed description
|
|
cd $TP_SOURCE_DIR/$RYU_SOURCE
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/ryu.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $RYU_SOURCE"
|
|
|
|
# patch boost-1.75.0 diff
|
|
cd $TP_SOURCE_DIR/$BOOST_SOURCE
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/boost-1.75.0.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $BOOST_SOURCE"
|
|
|
|
# patch protobuf-3.5.1
|
|
cd $TP_SOURCE_DIR/$PROTOBUF_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $PROTOBUF_SOURCE == "protobuf-3.5.1" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/protobuf-3.5.1.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $PROTOBUF_SOURCE"
|
|
|
|
# patch tcmalloc_hook
|
|
cd $TP_SOURCE_DIR/$GPERFTOOLS_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $GPERFTOOLS_SOURCE = "gperftools-gperftools-2.7" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/tcmalloc_hook.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $GPERFTOOLS_SOURCE"
|
|
|
|
# patch librdkafka
|
|
cd $TP_SOURCE_DIR/$LIBRDKAFKA_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $LIBRDKAFKA_SOURCE = "librdkafka-2.11.0" ]; then
|
|
patch -p0 < $TP_PATCH_DIR/librdkafka.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $LIBRDKAFKA_SOURCE"
|
|
|
|
# patch roaring-bitmap
|
|
cd $TP_SOURCE_DIR/$CROARINGBITMAP_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $CROARINGBITMAP_SOURCE = "CRoaring-0.2.60" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/roaring-bitmap-patch-v0.2.60.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $CROARINGBITMAP_SOURCE"
|
|
|
|
# patch pulsar
|
|
cd $TP_SOURCE_DIR/$PULSAR_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $PULSAR_SOURCE = "pulsar-client-cpp-3.3.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/pulsar.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $PULSAR_SOURCE"
|
|
|
|
# patch mariadb-connector-c-3.2.5
|
|
cd $TP_SOURCE_DIR/$MARIADB_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $MARIADB_SOURCE = "mariadb-connector-c-3.2.5" ]; then
|
|
patch -p0 < $TP_PATCH_DIR/mariadb-connector-c-3.2.5-for-starrocks-static-link.patch
|
|
touch $PATCHED_MARK
|
|
echo "Finished patching $MARIADB_SOURCE"
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $MARIADB_SOURCE = "mariadb-connector-c-3.1.14" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/mariadb-connector-c-3.1.14-gcc14.patch
|
|
touch $PATCHED_MARK
|
|
echo "Finished patching $MARIADB_SOURCE"
|
|
fi
|
|
|
|
# patch aws-sdk-cpp
|
|
cd $TP_SOURCE_DIR/$AWS_SDK_CPP_SOURCE
|
|
if [ $AWS_SDK_CPP_SOURCE = "aws-sdk-cpp-1.11.267" ]; then
|
|
if [ ! -f prefetch_crt_dep_ok ]; then
|
|
# make prefetch_crt_dependency.sh less chatty
|
|
patch -p1 < $TP_PATCH_DIR/aws-cpp-sdk-1.11.267-quiet-unzip-dependencies.patch || true
|
|
bash ./prefetch_crt_dependency.sh
|
|
touch prefetch_crt_dep_ok
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ]; then
|
|
patch -p1 < $TP_PATCH_DIR/aws-cpp-sdk-1.11.267-disable-chunked-upload.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
fi
|
|
cd -
|
|
echo "Finished patching $AWS_SDK_CPP_SOURCE"
|
|
|
|
# patch jemalloc_hook
|
|
cd $TP_SOURCE_DIR/$JEMALLOC_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $JEMALLOC_SOURCE = "jemalloc-5.3.0" ]; then
|
|
patch -p0 < $TP_PATCH_DIR/jemalloc_hook.patch
|
|
patch -p0 < $TP_PATCH_DIR/jemalloc_nallocx.patch
|
|
patch -p0 < $TP_PATCH_DIR/jemalloc_nodump.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $JEMALLOC_SOURCE"
|
|
|
|
# patch streamvbyte
|
|
cd $TP_SOURCE_DIR/$STREAMVBYTE_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $STREAMVBYTE_SOURCE = "streamvbyte-0.5.1" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/streamvbyte.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $STREAMVBYTE_SOURCE"
|
|
|
|
# patch hyperscan
|
|
cd $TP_SOURCE_DIR/$HYPERSCAN_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $HYPERSCAN_SOURCE = "hyperscan-5.4.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/hyperscan-5.4.0.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $HYPERSCAN_SOURCE"
|
|
|
|
# patch vpack
|
|
cd $TP_SOURCE_DIR/$VPACK_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $VPACK_SOURCE = "velocypack-XYZ1.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/velocypack-XYZ1.0.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $VPACK_SOURCE"
|
|
|
|
# patch avro-c and avro-cpp
|
|
cd $TP_SOURCE_DIR/$AVRO_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $AVRO_SOURCE = "avro-release-1.12.0" ]; then
|
|
# c patches
|
|
cd $TP_SOURCE_DIR/$AVRO_SOURCE
|
|
patch -p1 < $TP_PATCH_DIR/avro-1.12.0.c.patch
|
|
cp $TP_PATCH_DIR/avro-1.12.0.c.findjansson.patch ./lang/c/Findjansson.cmake
|
|
|
|
# c++ patches
|
|
patch -p1 < $TP_PATCH_DIR/avro-1.12.0.cpp.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $AVRO_SOURCE-c"
|
|
|
|
# patch serdes
|
|
cd $TP_SOURCE_DIR/$SERDES_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $SERDES_SOURCE = "libserdes-7.3.1" ]; then
|
|
patch -p0 < $TP_PATCH_DIR/libserdes-7.3.1.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
echo "Finished patching $SERDES_SOURCE"
|
|
cd -
|
|
|
|
# patch sasl2
|
|
cd $TP_SOURCE_DIR/$SASL_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $SASL_SOURCE = "cyrus-sasl-2.1.28" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/sasl2-add-k5support-link.patch
|
|
patch -p1 < $TP_PATCH_DIR/sasl2-gcc14.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
echo "Finished patching $SASL_SOURCE"
|
|
cd -
|
|
|
|
cd $TP_SOURCE_DIR/$RAPIDJSON_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $RAPIDJSON_SOURCE = "rapidjson-1.1.0" ]; then
|
|
patch -p1 < $TP_PATCH_DIR/rapidjson-gcc14.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
echo "Finished patching $RAPIDJSON_SOURCE"
|
|
cd -
|
|
|
|
# patch arrow
|
|
if [[ -d $TP_SOURCE_DIR/$ARROW_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$ARROW_SOURCE
|
|
if [ ! -f $PATCHED_MARK ] && [ $ARROW_SOURCE = "arrow-apache-arrow-5.0.0" ] ; then
|
|
# use our built jemalloc
|
|
patch -p1 < $TP_PATCH_DIR/arrow-5.0.0-force-use-external-jemalloc.patch
|
|
# fix exception handling
|
|
patch -p1 < $TP_PATCH_DIR/arrow-5.0.0-fix-exception-handling.patch
|
|
patch -p1 < $TP_PATCH_DIR/arrow-5.0.0-parquet-map-key.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
if [ ! -f $PATCHED_MARK ] && [ $ARROW_SOURCE = "arrow-apache-arrow-16.1.0" ] ; then
|
|
patch -p1 < $TP_PATCH_DIR/arrow-16.1.0-parquet-map-key.patch
|
|
patch -p1 < $TP_PATCH_DIR/arrow-16.1.0-use-zstd-1.5.7.patch
|
|
touch $PATCHED_MARK
|
|
fi
|
|
cd -
|
|
echo "Finished patching $ARROW_SOURCE"
|
|
fi
|
|
|
|
# patch bzip
|
|
if [[ -d $TP_SOURCE_DIR/$BZIP_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$BZIP_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $BZIP_SOURCE == "bzip2-1.0.8" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/bzip2-1.0.8.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $BZIP_SOURCE"
|
|
fi
|
|
|
|
# patch bitshuffle
|
|
if [[ -d $TP_SOURCE_DIR/$BITSHUFFLE_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$BITSHUFFLE_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $BITSHUFFLE_SOURCE == "bitshuffle-0.5.1" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/bitshuffle-0.5.1.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $BITSHUFFLE_SOURCE"
|
|
fi
|
|
|
|
# patch flatbuffers
|
|
if [[ -d $TP_SOURCE_DIR/$FLATBUFFERS_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$FLATBUFFERS_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $FLATBUFFERS_SOURCE == "flatbuffers-1.10.0" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/flat-buffers-1.10.0-no-stringop-overread.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $FLATBUFFERS_SOURCE"
|
|
fi
|
|
|
|
#patch clucene
|
|
if [[ -d $TP_SOURCE_DIR/$CLUCENE_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$CLUCENE_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/clucene-gcc14.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $CLUCENE_SOURCE"
|
|
fi
|
|
|
|
#patch poco
|
|
if [[ -d $TP_SOURCE_DIR/$POCO_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$POCO_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $POCO_SOURCE == "poco-1.12.5-release" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/poco-1.12.5-ca.patch"
|
|
patch -p1 < "$TP_PATCH_DIR/poco-1.12.5-zero-copy.patch"
|
|
patch -p1 < "$TP_PATCH_DIR/poco-1.12.5-keep-alive.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $POCO_SOURCE"
|
|
fi
|
|
|
|
# patch breakpad
|
|
|
|
if [[ -d $TP_SOURCE_DIR/$BREAK_PAD_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$BREAK_PAD_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $BREAK_PAD_SOURCE == "breakpad-2022.07.12" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/breakpad-2022.07.12.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $BREAK_PAD_SOURCE == "breakpad-2024.02.16" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/breakpad-2024.02.16.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $BREAK_PAD_SOURCE"
|
|
fi
|
|
|
|
# patch azure
|
|
if [[ -d $TP_SOURCE_DIR/$AZURE_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$AZURE_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $AZURE_SOURCE == "azure-storage-files-shares_12.12.0" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/azure-storage-files-shares_12.12.0.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $AZURE_SOURCE"
|
|
fi
|
|
|
|
#patch cctz
|
|
if [[ -d $TP_SOURCE_DIR/$CCTZ_SOURCE ]] ; then
|
|
cd $TP_SOURCE_DIR/$CCTZ_SOURCE
|
|
if [ ! -f "$PATCHED_MARK" ] && [[ $CCTZ_SOURCE == "cctz-2.3" ]] ; then
|
|
patch -p1 < "$TP_PATCH_DIR/cctz_civil_cache.patch"
|
|
patch -p1 < "$TP_PATCH_DIR/cctz_02_lookup_offset.patch"
|
|
touch "$PATCHED_MARK"
|
|
fi
|
|
cd -
|
|
echo "Finished patching $CCTZ_SOURCE"
|
|
fi
|