CodeCommitsIssuesPull requestsActionsInsightsSecurity
CLICKHOUSE-3713

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

debian/.pbuilderrc

206lines · modecode

1#
2# sudo apt install pbuilder fakeroot debhelper debian-archive-keyring debian-keyring
3#
4# ubuntu:
5# prepare old (trusty or earlier) host system:
6# sudo ln -s gutsy /usr/share/debootstrap/scripts/artful
7# sudo ln -s gutsy /usr/share/debootstrap/scripts/bionic
8# build ubuntu:
9# sudo DIST=trusty pbuilder create --configfile debian/.pbuilderrc && DIST=trusty pdebuild --configfile debian/.pbuilderrc
10# sudo DIST=xenial pbuilder create --configfile debian/.pbuilderrc && DIST=xenial pdebuild --configfile debian/.pbuilderrc
11# sudo DIST=zesty pbuilder create --configfile debian/.pbuilderrc && DIST=zesty pdebuild --configfile debian/.pbuilderrc
12# sudo DIST=artful pbuilder create --configfile debian/.pbuilderrc && DIST=artful pdebuild --configfile debian/.pbuilderrc
13# sudo DIST=bionic pbuilder create --configfile debian/.pbuilderrc && DIST=bionic pdebuild --configfile debian/.pbuilderrc
14# sudo DIST=devel pbuilder create --configfile debian/.pbuilderrc && DIST=devel pdebuild --configfile debian/.pbuilderrc
15# build debian:
16# sudo DIST=stable pbuilder create --configfile debian/.pbuilderrc && DIST=stable pdebuild --configfile debian/.pbuilderrc
17# sudo DIST=testing pbuilder create --configfile debian/.pbuilderrc && DIST=testing pdebuild --configfile debian/.pbuilderrc
18# sudo DIST=unstable pbuilder create --configfile debian/.pbuilderrc && DIST=unstable pdebuild --configfile debian/.pbuilderrc
19# sudo DIST=experimental pbuilder create --configfile debian/.pbuilderrc && DIST=experimental pdebuild --configfile debian/.pbuilderrc
20# build i386 experimental:
21# sudo DIST=trusty ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=trusty ARCH=i386 pdebuild --configfile debian/.pbuilderrc
22# sudo DIST=xenial ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=xenial ARCH=i386 pdebuild --configfile debian/.pbuilderrc
23# sudo DIST=zesty ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=zesty ARCH=i386 pdebuild --configfile debian/.pbuilderrc
24# sudo DIST=artful ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=artful ARCH=i386 pdebuild --configfile debian/.pbuilderrc
25# sudo DIST=bionic ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=bionic ARCH=i386 pdebuild --configfile debian/.pbuilderrc
26# sudo DIST=stable ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=stable ARCH=i386 pdebuild --configfile debian/.pbuilderrc
27# sudo DIST=testing ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=testing ARCH=i386 pdebuild --configfile debian/.pbuilderrc
28# sudo DIST=experimental ARCH=i386 pbuilder create --configfile debian/.pbuilderrc && DIST=experimental ARCH=i386 pdebuild --configfile debian/.pbuilderrc
29# use only clang:
30# env DEB_CC=clang-5.0 DEB_CXX=clang++-5.0 EXTRAPACKAGES="clang-5.0" DIST=artful pdebuild --configfile debian/.pbuilderrc
31# clang+asan:
32# env DEB_CC=clang-5.0 DEB_CXX=clang++-5.0 EXTRAPACKAGES="clang-5.0 libc++abi-dev libc++-dev" CMAKE_FLAGS="-DENABLE_TCMALLOC=0 -DENABLE_UNWIND=0 -DCMAKE_BUILD_TYPE=Asan" DIST=artful pdebuild --configfile debian/.pbuilderrc
33# clang+tsan:
34# env DEB_CC=clang-5.0 DEB_CXX=clang++-5.0 EXTRAPACKAGES="clang-5.0 libc++abi-dev libc++-dev" CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=Tsan" DIST=artful pdebuild --configfile debian/.pbuilderrc
35# without sse for old systems and some VM:
36# env DH_VERBOSE=1 CMAKE_FLAGS="-DHAVE_SSE41=0 -DHAVE_SSE42=0 -DHAVE_POPCNT=0 -DHAVE_SSE2_INTRIN=0 -DSSE2FLAG=' ' -DHAVE_SSE42_INTRIN=0 -DSSE4FLAG=' ' -DHAVE_PCLMULQDQ_INTRIN=0 -DPCLMULFLAG=' '" DIST=artful pdebuild --configfile debian/.pbuilderrc
37
38# Note: on trusty host creating some future dists can fail (debootstrap error).
39
40# Your packages built here: /var/cache/pbuilder/*-*/result
41
42# from https://wiki.debian.org/PbuilderTricks :
43
44# Codenames for Debian suites according to their alias. Update these when
45# needed.
46UNSTABLE_CODENAME="sid"
47TESTING_CODENAME="buster"
48STABLE_CODENAME="stretch"
49STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports"
50
51# List of Debian suites.
52DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME $STABLE_BACKPORTS_SUITE
53 "experimental" "unstable" "testing" "stable")
54
55# List of Ubuntu suites. Update these when needed.
56UBUNTU_SUITES=("bionic" "artful" "zesty" "xenial" "trusty" "devel")
57
58# Mirrors to use. Update these to your preferred mirror.
59DEBIAN_MIRROR=${DEBIAN_MIRROR:=deb.debian.org}
60UBUNTU_MIRROR=${UBUNTU_MIRROR:=archive.ubuntu.com}
61
62#DEBIAN_MIRROR="mirror.yandex.ru"
63#UBUNTU_MIRROR="mirror.yandex.ru"
64
65# Set a default distribution if none is used. Note that you can set your own default (i.e. ${DIST:="unstable"}).
66HOST_DIST=`lsb_release --short --codename`
67: ${DIST:="$HOST_DIST"}
68
69# Optionally change Debian codenames in $DIST to their aliases.
70case "$DIST" in
71 $UNSTABLE_CODENAME)
72 DIST="unstable"
73 ;;
74 $TESTING_CODENAME)
75 DIST="testing"
76 ;;
77 $STABLE_CODENAME)
78 DIST="stable"
79 ;;
80esac
81
82# Optionally set the architecture to the host architecture if none set. Note
83# that you can set your own default (i.e. ${ARCH:="i386"}).
84: ${ARCH:="$(dpkg --print-architecture)"}
85
86NAME="$DIST"
87if [ -n "${ARCH}" ]; then
88 NAME="$NAME-$ARCH"
89 DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
90fi
91
92BASETGZ=${SET_BASETGZ}
93BASETGZ=${BASETGZ:="/var/cache/pbuilder/$NAME-base.tgz"}
94DISTRIBUTION="$DIST"
95BUILDRESULT=${SET_BUILDRESULT}
96BUILDRESULT=${BUILDRESULT:="/var/cache/pbuilder/$NAME/result/"}
97APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
98BUILDPLACE="/var/cache/pbuilder/build/"
99ALLOWUNTRUSTED=${SET_ALLOWUNTRUSTED:=${ALLOWUNTRUSTED}}
100
101#DEBOOTSTRAPOPTS=( '--variant=buildd' $SET_DEBOOTSTRAPOPTS )
102
103
104if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then
105 # Debian configuration
106 OSNAME=debian
107 MIRRORSITE="http://$DEBIAN_MIRROR/$OSNAME/"
108 COMPONENTS="main contrib non-free"
109 if $(echo "$STABLE_CODENAME stable" | grep -q $DIST); then
110 OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS"
111 fi
112 # APTKEYRINGS=/usr/share/keyrings/debian-archive-keyring.gpg
113
114 case "$HOST_DIST" in
115 "trusty" )
116 DEBOOTSTRAPOPTS+=( '--no-check-gpg' )
117 ;;
118 *)
119 DEBOOTSTRAPOPTS+=( '--keyring' '/usr/share/keyrings/debian-archive-keyring.gpg' )
120 # DEBOOTSTRAPOPTS+=( '--keyring' '/usr/share/keyrings/debian-keyring.gpg' )
121 esac
122
123elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then
124 # Ubuntu configuration
125 OSNAME=ubuntu
126 MIRRORSITE="http://$UBUNTU_MIRROR/$OSNAME/"
127 COMPONENTS="main restricted universe multiverse"
128
129 OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $DIST-updates main restricted universe multiverse"
130 OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $DIST-security main restricted universe multiverse"
131
132 case "$DIST" in
133 "trusty" | "xenial" )
134 OTHERMIRROR="$OTHERMIRROR | deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/$OSNAME $DIST main"
135 ALLOWUNTRUSTED=yes
136 ;;
137 esac
138
139 # deb http://apt.llvm.org/zesty/ llvm-toolchain-zesty-5.0 main
140else
141 echo "Unknown distribution: $DIST"
142 exit 1
143fi
144
145echo "using $NAME $OSNAME $DIST $ARCH $LOGNAME"
146
147case "$DIST" in
148 "trusty")
149 # ccache broken
150 ;;
151 *)
152 CCACHEDIR=${SET_CCACHEDIR:="/var/cache/pbuilder/ccache"}
153 ;;
154esac
155
156# old systems with default gcc <= 6
157case "$DIST" in
158 "trusty" | "xenial" | "stable" )
159 export DEB_CC=gcc-7
160 export DEB_CXX=g++-7
161 ;;
162esac
163
164case "$DIST" in
165 "bionic" )
166 EXTRAPACKAGES+=" liblld-6.0-dev libclang-6.0-dev liblld-6.0 "
167 export CMAKE_FLAGS="-DENABLE_EMBEDDED_COMPILER=1 -DLLVM_VERSION_POSTFIX=-6.0 $CMAKE_FLAGS"
168 ;;
169 "artful" | "experimental" | "unstable" | "testing" )
170 EXTRAPACKAGES+=" liblld-5.0-dev libclang-5.0-dev liblld-5.0 "
171 export CMAKE_FLAGS="-DENABLE_EMBEDDED_COMPILER=1 $CMAKE_FLAGS"
172 ;;
173esac
174
175# bundled zookeepeer have broken asm
176case "$ARCH" in
177 "arm64")
178 EXTRAPACKAGES+=" libzookeeper-mt-dev "
179 ;;
180esac
181
182# will test symbols
183EXTRAPACKAGES+=" gdb "
184
185[[ $CCACHE_PREFIX == 'distcc' ]] && EXTRAPACKAGES+=" $CCACHE_PREFIX "
186
187export DEB_BUILD_OPTIONS=parallel=`nproc`
188
189# Floating bug with permissions:
190[ -n "$CCACHEDIR" ] && sudo mkdir -p $CCACHEDIR
191[ -n "$CCACHEDIR" ] && sudo chmod -R a+rwx $CCACHEDIR || true
192# chown -R $BUILDUSERID:$BUILDUSERID $CCACHEDIR
193
194
195# Use current dir to make package (by default should have src archive)
196# echo "3.0 (native)" > debian/source/format
197# OR
198# pdebuild --debbuildopts "--source-option=--format=\"3.0 (native)\""
199# OR
200DEBBUILDOPTS="--source-option=--format=\"3.0 (native)\""
201
202HOOKDIR="debian/pbuilder-hooks"
203
204#echo "DEBOOTSTRAPOPTS=${DEBOOTSTRAPOPTS[@]}"
205#echo "ALLOWUNTRUSTED=${ALLOWUNTRUSTED} OTHERMIRROR=${OTHERMIRROR}"
206#echo "EXTRAPACKAGES=${EXTRAPACKAGES}"