From a2c3eae3156b1a7cc2181566cd2a7ef69f1ab85b Mon Sep 17 00:00:00 2001 From: proller Date: Sat, 20 Jan 2018 00:33:48 +0300 Subject: [PATCH] Builder fixes. Fix unbundled cctz --- debian/.pbuilderrc | 18 +++++++++++++++--- libs/libcommon/cmake/find_cctz.cmake | 7 ++++--- libs/libcommon/src/DateLUTImpl.cpp | 4 ++-- release | 14 ++++++++++++-- utils/build/build_debian.sh | 2 +- utils/build/build_debian_unbundled.sh | 25 +++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 11 deletions(-) create mode 100755 utils/build/build_debian_unbundled.sh diff --git a/debian/.pbuilderrc b/debian/.pbuilderrc index 31f09959c7..ae8ddc19cb 100644 --- a/debian/.pbuilderrc +++ b/debian/.pbuilderrc @@ -1,3 +1,6 @@ +# +# sudo apt install pbuilder fakeroot debhelper debian-archive-keyring debian-keyring +# # ubuntu: # prepare old (trusty or earlier) host system: # sudo ln -s gutsy /usr/share/debootstrap/scripts/artful @@ -58,7 +61,8 @@ DEBIAN_MIRROR="deb.debian.org" UBUNTU_MIRROR="mirror.yandex.ru" # Set a default distribution if none is used. Note that you can set your own default (i.e. ${DIST:="unstable"}). -: ${DIST:="$(lsb_release --short --codename)"} +HOST_DIST=`lsb_release --short --codename` +: ${DIST:="$HOST_DIST"} # Optionally change Debian codenames in $DIST to their aliases. case "$DIST" in @@ -100,8 +104,16 @@ if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS" fi # APTKEYRINGS=/usr/share/keyrings/debian-archive-keyring.gpg - # sudo apt install debian-archive-keyring - DEBOOTSTRAPOPTS+=( '--keyring' '/usr/share/keyrings/debian-archive-keyring.gpg' ) + + case "$HOST_DIST" in + "trusty" ) + DEBOOTSTRAPOPTS+=( '--no-check-gpg' ) + ;; + *) + DEBOOTSTRAPOPTS+=( '--keyring' '/usr/share/keyrings/debian-archive-keyring.gpg' ) + # DEBOOTSTRAPOPTS+=( '--keyring' '/usr/share/keyrings/debian-keyring.gpg' ) + esac + elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then # Ubuntu configuration OSNAME=ubuntu diff --git a/libs/libcommon/cmake/find_cctz.cmake b/libs/libcommon/cmake/find_cctz.cmake index b123114abe..88877ba3c6 100644 --- a/libs/libcommon/cmake/find_cctz.cmake +++ b/libs/libcommon/cmake/find_cctz.cmake @@ -2,18 +2,19 @@ option (USE_INTERNAL_CCTZ_LIBRARY "Set to FALSE to use system cctz library inste if (USE_INTERNAL_CCTZ_LIBRARY AND NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cctz/include/cctz/time_zone.h") message (WARNING "submodule contrib/cctz is missing. to fix try run: \n git submodule update --init --recursive") + set (MISSING_INTERNAL_CCTZ_LIBRARY 1) set (USE_INTERNAL_CCTZ_LIBRARY 0) endif () if (NOT USE_INTERNAL_CCTZ_LIBRARY) find_library (CCTZ_LIBRARY cctz) - find_path (CCTZ_INCLUDE_DIR NAMES civil_time.h PATHS ${CCTZ_INCLUDE_PATHS}) + find_path (CCTZ_INCLUDE_DIR NAMES cctz/civil_time.h PATHS ${CCTZ_INCLUDE_PATHS}) endif () if (CCTZ_LIBRARY AND CCTZ_INCLUDE_DIR) -else () +elseif (NOT MISSING_INTERNAL_CCTZ_LIBRARY) set (USE_INTERNAL_CCTZ_LIBRARY 1) - set (CCTZ_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/cctz/include/cctz") + set (CCTZ_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/cctz/include") set (CCTZ_LIBRARY cctz) endif () diff --git a/libs/libcommon/src/DateLUTImpl.cpp b/libs/libcommon/src/DateLUTImpl.cpp index 123d1f12e7..cc913e4896 100644 --- a/libs/libcommon/src/DateLUTImpl.cpp +++ b/libs/libcommon/src/DateLUTImpl.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include diff --git a/release b/release index 2930f402f2..4deb6ace45 100755 --- a/release +++ b/release @@ -37,6 +37,10 @@ do elif [[ $1 == '--pbuilder' ]]; then USE_PBUILDER=1 shift + elif [[ $1 == '--fast' ]]; then + # Wrong but fast pbuilder mode: create base package with all depends + EXTRAPACKAGES+=" debhelper cmake gcc-7 g++-7 libc6-dev libmariadbclient-dev libicu-dev libltdl-dev libreadline-dev libssl-dev unixodbc-dev psmisc gdb bash expect python python-lxml python-termcolor curl perl sudo" + shift else echo "Unknown option $1" exit 2 @@ -54,7 +58,7 @@ then # GLIBC_COMPATIBILITY отключен по умолчанию export DEB_CC=clang-5.0 export DEB_CXX=clang++-5.0 - export EXTRAPACKAGES=clang-5.0 + EXTRAPACKAGES+=" clang-5.0 " elif [[ $BUILD_TYPE == 'valgrind' ]]; then LIBTCMALLOC_OPTS="-DENABLE_TCMALLOC=0" VERSION_POSTFIX+=-$BUILD_TYPE @@ -70,6 +74,7 @@ fi CMAKE_FLAGS=" $LIBTCMALLOC_OPTS -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DUSE_EMBEDDED_COMPILER=1 $CMAKE_FLAGS" export CMAKE_FLAGS +export EXTRAPACKAGES REVISION+=$VERSION_POSTFIX echo -e "\nCurrent revision is $REVISION" @@ -86,7 +91,12 @@ else export SET_BUILDRESULT=${SET_BUILDRESULT:=$CURDIR/..} . $CURDIR/debian/.pbuilderrc if [[ -n "$FORCE_PBUILDER_CREATE" || ! -e "$BASETGZ" ]] ; then - sudo --preserve-env pbuilder create --configfile $CURDIR/debian/.pbuilderrc + sudo --preserve-env pbuilder create --configfile $CURDIR/debian/.pbuilderrc $PBUILDER_OPT fi + + if [[ -n "$PBUILDER_UPDATE" ]] ; then + sudo --preserve-env pbuilder update --configfile $CURDIR/debian/.pbuilderrc $PBUILDER_OPT + fi + pdebuild --configfile $CURDIR/debian/.pbuilderrc -- $PBUILDER_OPT fi diff --git a/utils/build/build_debian.sh b/utils/build/build_debian.sh index 0386bc31af..0766f9137a 100755 --- a/utils/build/build_debian.sh +++ b/utils/build/build_debian.sh @@ -8,7 +8,7 @@ # install compiler and libs sudo apt install -y git bash cmake gcc-7 g++-7 libicu-dev libreadline-dev libmysqlclient-dev unixodbc-dev libltdl-dev libssl-dev # for -DUNBUNDLED=1 mode: -#sudo apt install -y libboost-dev zlib1g-dev liblz4-dev libdouble-conversion-dev libzstd-dev libre2-dev libzookeeper-mt-dev libsparsehash-dev librdkafka-dev libcapnp-dev libpoco-dev libsparsehash-dev libgoogle-perftools-dev libunwind-dev +#sudo apt install -y libboost-dev zlib1g-dev liblz4-dev libdouble-conversion-dev libzstd-dev libre2-dev libzookeeper-mt-dev libsparsehash-dev librdkafka-dev libcapnp-dev libpoco-dev libsparsehash-dev libgoogle-perftools-dev libunwind-dev libgtest-dev libcctz-dev # install testing only stuff if you want: sudo apt install -y python python-lxml python-termcolor curl perl diff --git a/utils/build/build_debian_unbundled.sh b/utils/build/build_debian_unbundled.sh new file mode 100755 index 0000000000..acdaa1287f --- /dev/null +++ b/utils/build/build_debian_unbundled.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../.. && pwd) + +DIST=${DIST:="unstable"} +export DIST + +cd $ROOT_DIR +. $ROOT_DIR/debian/.pbuilderrc +if [[ -n "$FORCE_PBUILDER_CREATE" || ! -e "$BASETGZ" ]] ; then + sudo --preserve-env pbuilder create --configfile $ROOT_DIR/debian/.pbuilderrc $PBUILDER_OPT +fi + +env TEST_RUN=1 \ + `# Skip tests:` \ + `# 00281 requires internal compiler` \ + `# 00416 requires patched poco from contrib/` \ + TEST_OPT="--no-long --skip 00281 00416" \ + TEST_TRUE=false \ + CMAKE_FLAGS="-DUNBUNDLED=1" \ + `# Use all possible contrib libs from system` \ + `# psmisc - killall` \ + `# gdb - symbol test in pbuilder` \ + EXTRAPACKAGES="psmisc gdb clang-5.0 libc++abi-dev libc++-dev libboost-dev libboost-program-options-dev zlib1g-dev liblz4-dev libdouble-conversion-dev libzookeeper-mt-dev libsparsehash-dev librdkafka-dev libpoco-dev libsparsehash-dev libgoogle-perftools-dev libzstd-dev libre2-dev libunwind-dev libgtest-dev libcctz-dev" \ + pdebuild --configfile $ROOT_DIR/debian/.pbuilderrc