You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
ci: centos8 stream, rockylinux, deb upstream fmt dependency
This commit is contained in:
@ -1,27 +1,24 @@
|
||||
local events = ['pull_request', 'cron'];
|
||||
|
||||
local platforms = {
|
||||
develop: ['opensuse/leap:15', 'centos:7', 'centos:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
'develop-7': ['opensuse/leap:15', 'centos:7', 'centos:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
'develop-6': ['opensuse/leap:15', 'centos:7', 'centos:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
'develop-5': ['opensuse/leap:15', 'centos:7', 'centos:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
develop: ['opensuse/leap:15', 'centos:7', 'centos:8', 'rockylinux:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
'develop-6': ['opensuse/leap:15', 'centos:7', 'centos:8', 'rockylinux:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
'develop-5': ['opensuse/leap:15', 'centos:7', 'centos:8', 'rockylinux:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'],
|
||||
};
|
||||
|
||||
local platforms_arm = {
|
||||
develop: ['centos:8'],
|
||||
'develop-7': ['centos:8'],
|
||||
'develop-6': ['centos:8'],
|
||||
develop: ['rockylinux:8'],
|
||||
'develop-6': ['rockylinux:8'],
|
||||
};
|
||||
|
||||
local any_branch = '**';
|
||||
local platforms_custom = ['opensuse/leap:15', 'centos:7', 'centos:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'];
|
||||
local platforms_custom = ['opensuse/leap:15', 'centos:7', 'centos:8', 'rockylinux:8', 'debian:10', 'ubuntu:18.04', 'ubuntu:20.04'];
|
||||
local platforms_arm_custom = ['centos:8'];
|
||||
|
||||
local platforms_mtr = ['centos:7', 'centos:8', 'ubuntu:20.04'];
|
||||
|
||||
local server_ref_map = {
|
||||
develop: '10.8',
|
||||
'develop-7': '10.7',
|
||||
'develop-6': '10.6-enterprise',
|
||||
'develop-5': '10.5',
|
||||
'**': '10.8',
|
||||
@ -39,10 +36,10 @@ local gcc_update_alternatives = 'update-alternatives --install /usr/bin/gcc gcc
|
||||
local clang12_update_alternatives = 'update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-12 ';
|
||||
|
||||
|
||||
local yum_vault_mirror = "sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*; sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-*; dnf update -y; ";
|
||||
local rpm_build_deps = 'install -y lz4 systemd-devel git make libaio-devel openssl-devel boost-devel bison snappy-devel flex libcurl-devel libxml2-devel ncurses-devel automake libtool policycoreutils-devel rpm-build lsof iproute pam-devel perl-DBI cracklib-devel expect createrepo ';
|
||||
local centos7_build_deps = 'yum install -y epel-release centos-release-scl && yum install -y pcre2-devel devtoolset-10 devtoolset-10-gcc cmake3 lz4-devel && ln -s /usr/bin/cmake3 /usr/bin/cmake && . /opt/rh/devtoolset-10/enable ';
|
||||
local centos8_build_deps = yum_vault_mirror + ' yum install -y gcc-toolset-10 libarchive dnf-plugins-core cmake lz4-devel && . /opt/rh/gcc-toolset-10/enable && yum config-manager --set-enabled powertools ';
|
||||
local centos8_build_deps = 'dnf install -y gcc-toolset-10 libarchive cmake lz4-devel && . /opt/rh/gcc-toolset-10/enable ';
|
||||
local rockylinux8_powertools = "dnf install -y 'dnf-command(config-manager)' && dnf config-manager --set-enabled powertools ";
|
||||
local ubuntu18_04_deps = 'apt update && apt install -y gnupg wget && echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main" >> /etc/apt/sources.list && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && apt update && apt install -y clang-12 &&' + clang12_update_alternatives;
|
||||
local debian10_deps = 'apt update && apt install -y gnupg wget && echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-12 main" >> /etc/apt/sources.list && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && apt update && apt install -y clang-12 &&' + clang12_update_alternatives;
|
||||
local opensuse_build_deps = 'zypper install -y clang12 liblz4-devel cmake libboost_system-devel pcre2-devel libboost_filesystem-devel libboost_thread-devel libboost_regex-devel libboost_date_time-devel libboost_chrono-devel libboost_atomic-devel gcc-fortran gcc10 gcc10-c++ && ' + clang12_update_alternatives;
|
||||
@ -50,11 +47,12 @@ local deb_build_deps = 'apt update --yes && apt install --yes --no-install-recom
|
||||
local ubuntu20_04_deps = 'apt update --yes && apt install -y g++-10 git && ' + gcc_update_alternatives;
|
||||
|
||||
local platformMap(platform, arch) =
|
||||
local clang_force = if (arch == 'arm64') then " && export CXX=/usr/bin/clang++ && export CC=/usr/bin/clang " else '';
|
||||
local clang_force = if (arch == 'arm64') then ' && export CXX=/usr/bin/clang++ && export CC=/usr/bin/clang ' else '';
|
||||
local platform_map = {
|
||||
'opensuse/leap:15': opensuse_build_deps + ' && zypper ' + rpm_build_deps + clang_force + ' && cmake ' + cmakeflags + ' -DRPM=sles15 && make -j$(nproc) package',
|
||||
'centos:7': centos7_build_deps + ' && yum ' + rpm_build_deps + ' && cmake ' + cmakeflags + ' -DRPM=centos7 && make -j$(nproc) package',
|
||||
'centos:8': centos8_build_deps + ' && yum ' + rpm_build_deps + ' && cmake ' + cmakeflags + ' -DRPM=centos8 && make -j$(nproc) package',
|
||||
'centos:8': centos8_build_deps + ' && dnf ' + rpm_build_deps + ' && cmake ' + cmakeflags + ' -DRPM=centos8 && make -j$(nproc) package',
|
||||
'rockylinux:8': rockylinux8_powertools + ' && ' + centos8_build_deps + ' && dnf ' + rpm_build_deps + ' && cmake ' + cmakeflags + ' -DRPM=rockylinux8 && make -j$(nproc) package',
|
||||
'debian:10': deb_build_deps + " && CMAKEFLAGS='" + cmakeflags + " -DDEB=buster' debian/autobake-deb.sh",
|
||||
'ubuntu:18.04': ubuntu18_04_deps + ' && ' + deb_build_deps + " && CMAKEFLAGS='" + cmakeflags + " -DDEB=bionic' debian/autobake-deb.sh",
|
||||
'ubuntu:20.04': ubuntu20_04_deps + ' && ' + deb_build_deps + " && CMAKEFLAGS='" + cmakeflags + " -DDEB=focal' debian/autobake-deb.sh",
|
||||
@ -67,6 +65,7 @@ local testRun(platform) =
|
||||
'opensuse/leap:15': 'ctest -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'centos:7': 'ctest3 -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'centos:8': 'ctest3 -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'rockylinux:8': 'ctest3 -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'debian:10': 'cd builddir; ctest -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'ubuntu:18.04': 'cd builddir; ctest -R columnstore: -j $(nproc) --output-on-failure',
|
||||
'ubuntu:20.04': 'cd builddir; ctest -R columnstore: -j $(nproc) --output-on-failure',
|
||||
@ -78,7 +77,8 @@ local testPreparation(platform) =
|
||||
local platform_map = {
|
||||
'opensuse/leap:15': 'zypper install -y git boost-devel libboost_system-devel libboost_filesystem-devel libboost_thread-devel libboost_regex-devel libboost_date_time-devel libboost_chrono-devel libboost_atomic-devel cppunit-devel snappy-devel cmake',
|
||||
'centos:7': 'yum -y install epel-release && yum install -y git cppunit-devel cmake3 boost-devel snappy-devel',
|
||||
'centos:8': yum_vault_mirror + ' yum install -y dnf-plugins-core libarchive && yum config-manager --set-enabled powertools && yum install -y git lz4 cppunit-devel cmake3 boost-devel snappy-devel',
|
||||
'centos:8': 'dnf install -y git lz4 cppunit-devel cmake3 boost-devel snappy-devel',
|
||||
'rockylinux:8': rockylinux8_powertools + ' && dnf install -y git lz4 cppunit-devel cmake3 boost-devel snappy-devel',
|
||||
'debian:10': 'apt update && apt install --yes git libboost-all-dev libcppunit-dev libsnappy-dev cmake',
|
||||
'ubuntu:18.04': 'apt update && apt install --yes git libboost-all-dev libcppunit-dev libsnappy-dev cmake g++',
|
||||
'ubuntu:20.04': 'apt update && apt install --yes git libboost-all-dev libcppunit-dev libsnappy-dev cmake',
|
||||
@ -87,12 +87,12 @@ local testPreparation(platform) =
|
||||
|
||||
|
||||
local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
local pkg_format = if (std.split(platform, ':')[0] == 'centos' || std.split(platform, ':')[0] == 'opensuse/leap') then 'rpm' else 'deb',
|
||||
local pkg_format = if (std.split(platform, ':')[0] == 'centos' || std.split(platform, ':')[0] == 'opensuse/leap' || std.split(platform, ':')[0] == 'rockylinux') then 'rpm' else 'deb',
|
||||
local init = if (pkg_format == 'rpm') then '/usr/lib/systemd/systemd' else 'systemd',
|
||||
local mtr_path = if (pkg_format == 'rpm') then '/usr/share/mysql-test' else '/usr/share/mysql/mysql-test',
|
||||
local socket_path = if (pkg_format == 'rpm') then '/var/lib/mysql/mysql.sock' else '/run/mysqld/mysqld.sock',
|
||||
local config_path_prefix = if (pkg_format == 'rpm') then '/etc/my.cnf.d/' else '/etc/mysql/mariadb.conf.d/50-',
|
||||
local img = if (std.split(platform, ':')[0] == 'centos') then platform else 'romcheck/' + std.strReplace(platform, '/', '-'),
|
||||
local img = if (platform == 'centos:7' || std.split(platform, ':')[0] == 'rockylinux') then platform else 'romcheck/' + std.strReplace(platform, '/', '-'),
|
||||
local regression_ref = if (std.split(branch, '-')[0] == 'develop') then branch else 'develop-6',
|
||||
local branchp = if (branch == '**') then '' else branch,
|
||||
|
||||
@ -136,9 +136,7 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
commands: [
|
||||
'docker run --volume /sys/fs/cgroup:/sys/fs/cgroup:ro --env DEBIAN_FRONTEND=noninteractive --env MCS_USE_S3_STORAGE=0 --name smoke$${DRONE_BUILD_NUMBER} --privileged --detach ' + img + ' ' + init + ' --unit=basic.target',
|
||||
'docker cp result smoke$${DRONE_BUILD_NUMBER}:/',
|
||||
if (platform == 'centos:8') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "' + yum_vault_mirror + '"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release which rsyslog hostname && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (platform == 'centos:8') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "sed -i s/enabled=0/enabled=1/ /etc/yum.repos.d/*PowerTools.repo && yum install -y gtest"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos' || std.split(platform, ':')[0] == 'rockylinux') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release which rsyslog hostname procps-ng && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (pkg_format == 'deb') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} sed -i "s/exit 101/exit 0/g" /usr/sbin/policy-rc.d',
|
||||
if (pkg_format == 'deb') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "apt update --yes && apt install -y rsyslog hostname && apt install -y -f /result/*.' + pkg_format + '"' else '',
|
||||
if (std.split(platform, '/')[0] == 'opensuse') then 'docker exec -t smoke$${DRONE_BUILD_NUMBER} bash -c "zypper install -y which hostname rsyslog && zypper install -y --allow-unsigned-rpm /result/*.' + pkg_format + '"' else '',
|
||||
@ -161,9 +159,8 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
commands: [
|
||||
'docker run --volume /sys/fs/cgroup:/sys/fs/cgroup:ro --env MYSQL_TEST_DIR=' + mtr_path + ' --env DEBIAN_FRONTEND=noninteractive --env MCS_USE_S3_STORAGE=0 --name mtr$${DRONE_BUILD_NUMBER} --privileged --detach ' + img + ' ' + init + ' --unit=basic.target',
|
||||
'docker cp result mtr$${DRONE_BUILD_NUMBER}:/',
|
||||
if (platform == 'centos:8') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} bash -c "' + yum_vault_mirror + '"' else '',
|
||||
if (std.split(platform, '/')[0] == 'opensuse') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} bash -c "zypper install -y which hostname rsyslog patch perl-Data-Dumper-Concise perl-Memoize-ExpireLRU && zypper install -y --allow-unsigned-rpm /result/*.' + pkg_format + '"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release diffutils which rsyslog hostname patch perl-Data-Dumper perl-Getopt-Long perl-Memoize perl-Time-HiRes cracklib-dicts && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos' || std.split(platform, ':')[0] == 'rockylinux') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release diffutils which rsyslog hostname patch perl-Data-Dumper perl-Getopt-Long perl-Memoize perl-Time-HiRes cracklib-dicts procps-ng && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (pkg_format == 'deb') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} sed -i "s/exit 101/exit 0/g" /usr/sbin/policy-rc.d',
|
||||
if (pkg_format == 'deb') then 'docker exec -t mtr$${DRONE_BUILD_NUMBER} bash -c "apt update --yes && apt install -y rsyslog hostname patch && apt install -y -f /result/*.' + pkg_format + '"' else '',
|
||||
'docker cp mysql-test/columnstore mtr$${DRONE_BUILD_NUMBER}:' + mtr_path + '/suite/',
|
||||
@ -224,8 +221,7 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
'docker cp /mdb/' + builddir + '/storage/columnstore/columnstore/storage-manager regression$${DRONE_BUILD_NUMBER}:/',
|
||||
// check storage-manager unit test binary file
|
||||
'docker exec -t regression$${DRONE_BUILD_NUMBER} ls -l /storage-manager',
|
||||
if (platform == 'centos:8') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} bash -c "' + yum_vault_mirror + '"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release diffutils tar lz4 wget which rsyslog hostname && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (std.split(platform, ':')[0] == 'centos' || std.split(platform, ':')[0] == 'rockylinux') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} bash -c "yum install -y epel-release diffutils tar lz4 wget which rsyslog hostname procps-ng && yum install -y /result/*.' + pkg_format + '"' else '',
|
||||
if (pkg_format == 'deb') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} sed -i "s/exit 101/exit 0/g" /usr/sbin/policy-rc.d',
|
||||
if (pkg_format == 'deb') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} bash -c "apt update --yes && apt install -y tar liblz4-tool wget rsyslog hostname && apt install -y -f /result/*.' + pkg_format + '"' else '',
|
||||
if (std.split(platform, '/')[0] == 'opensuse') then 'docker exec -t regression$${DRONE_BUILD_NUMBER} bash -c "zypper install -y gzip tar lz4 wget which hostname rsyslog && zypper install -y --allow-unsigned-rpm /result/*.' + pkg_format + '"' else '',
|
||||
@ -362,7 +358,7 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
},
|
||||
{
|
||||
name: 'build',
|
||||
image: platform,
|
||||
image: img,
|
||||
volumes: [pipeline._volumes.mdb],
|
||||
environment: {
|
||||
DEBIAN_FRONTEND: 'noninteractive',
|
||||
@ -391,14 +387,10 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
// Leave test package for mtr
|
||||
"sed -i '/(mariadb|mysql)-test/d;/-test/d' debian/autobake-deb.sh",
|
||||
"sed -i '/test-embedded/d' debian/mariadb-test.install",
|
||||
// From Debian Bullseye/Ubuntu Groovy, liburing replaces libaio
|
||||
"apt-cache madison liburing-dev | grep 'liburing-dev' || sed 's/liburing-dev/libaio-dev/g' -i debian/control && sed '/-DIGNORE_AIO_CHECK=YES/d' -i debian/rules && sed '/-DWITH_URING=yes/d' -i debian/rules",
|
||||
// From Debian Buster/Ubuntu Focal onwards libpmem-dev is available
|
||||
"apt-cache madison libpmem-dev | grep 'libpmem-dev' || sed '/libpmem-dev/d' -i debian/control && sed '/-DWITH_PMEM/d' -i debian/rules",
|
||||
// Deb dependencies from server scripts
|
||||
if (pkg_format == 'deb') then "apt-cache madison liburing-dev | grep liburing-dev || sed 's/liburing-dev/libaio-dev/g' -i debian/control && sed '/-DIGNORE_AIO_CHECK=YES/d' -i debian/rules && sed '/-DWITH_URING=yes/d' -i debian/rules && apt-cache madison libpmem-dev | grep 'libpmem-dev' || sed '/libpmem-dev/d' -i debian/control && sed '/-DWITH_PMEM/d' -i debian/rules && sed '/libfmt-dev/d' -i debian/control" else '',
|
||||
// Change plugin_maturity level
|
||||
// "sed -i 's/BETA/GAMMA/' storage/columnstore/CMakeLists.txt",
|
||||
// Workaround till upstream removes 4535 workaround (workaround for workaround!)
|
||||
"sed -i '/MCOL-4535/,/^$/d' debian/autobake-deb.sh",
|
||||
testPreparation(platform),
|
||||
platformMap(platform, arch),
|
||||
if (pkg_format == 'rpm') then 'createrepo .' else 'dpkg-scanpackages ../ | gzip > ../Packages.gz',
|
||||
@ -406,7 +398,7 @@ local Pipeline(branch, platform, event, arch='amd64') = {
|
||||
},
|
||||
{
|
||||
name: 'unittests',
|
||||
image: platform,
|
||||
image: img,
|
||||
volumes: [pipeline._volumes.mdb],
|
||||
environment: {
|
||||
DEBIAN_FRONTEND: 'noninteractive',
|
||||
|
130
debian/autobake-deb.sh
vendored
130
debian/autobake-deb.sh
vendored
@ -1,130 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Build MariaDB .deb packages for test and release at mariadb.org
|
||||
#
|
||||
# Purpose of this script:
|
||||
# Always keep the actual packaging as up-to-date as possible following the latest
|
||||
# Debian policy and targeting Debian Sid. Then case-by-case run in autobake-deb.sh
|
||||
# tests for backwards compatibility and strip away parts on older builders or
|
||||
# specfic build environments.
|
||||
|
||||
# Exit immediately on any error
|
||||
set -e
|
||||
|
||||
# This file is invocated from Buildbot and Travis-CI to build deb packages.
|
||||
# As both of those CI systems have many parallel jobs that include different
|
||||
# parts of the test suite, we don't need to run the mysql-test-run at all when
|
||||
# building the deb packages here.
|
||||
export DEB_BUILD_OPTIONS="nocheck $DEB_BUILD_OPTIONS"
|
||||
|
||||
if [[ -d storage/columnstore/columnstore/debian ]]; then
|
||||
cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/
|
||||
echo >> debian/control
|
||||
cat storage/columnstore/columnstore/debian/control >> debian/control
|
||||
fi
|
||||
|
||||
# General CI optimizations to keep build output smaller
|
||||
if [[ $TRAVIS ]] || [[ $GITLAB_CI ]]
|
||||
then
|
||||
# On both Travis and Gitlab the output log must stay under 4MB so make the
|
||||
# build less verbose
|
||||
sed '/Add support for verbose builds/,/^$/d' -i debian/rules
|
||||
|
||||
# MCOL-4149: ColumnStore builds are so slow and big that they must be skipped on
|
||||
# both Travis-CI and Gitlab-CI
|
||||
sed 's|-DPLUGIN_COLUMNSTORE=YES|-DPLUGIN_COLUMNSTORE=NO|' -i debian/rules
|
||||
sed "/Package: mariadb-plugin-columnstore/,/^$/d" -i debian/control
|
||||
fi
|
||||
|
||||
# Don't build or try to put files in a package for selected plugins and compontents on Travis-CI
|
||||
# in order to keep build small (in both duration and disk space)
|
||||
if [[ $TRAVIS ]]
|
||||
then
|
||||
# Test suite package not relevant on Travis-CI
|
||||
sed 's|DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test|DINSTALL_MYSQLTESTDIR=false|' -i debian/rules
|
||||
sed '/Package: mariadb-test-data/,/^$/d' -i debian/control
|
||||
sed '/Package: mariadb-test$/,/^$/d' -i debian/control
|
||||
|
||||
# Extra plugins such as Mroonga, Spider, OQgraph, Sphinx and the embedded build can safely be skipped
|
||||
sed 's|-DDEB|-DPLUGIN_MROONGA=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_SPIDER=NO -DPLUGIN_OQGRAPH=NO -DPLUGIN_PERFSCHEMA=NO -DPLUGIN_SPHINX=NO -DWITH_EMBEDDED_SERVER=OFF -DDEB|' -i debian/rules
|
||||
sed "/Package: mariadb-plugin-mroonga/,/^$/d" -i debian/control
|
||||
sed "/Package: mariadb-plugin-rocksdb/,/^$/d" -i debian/control
|
||||
sed "/Package: mariadb-plugin-spider/,/^$/d" -i debian/control
|
||||
sed "/Package: mariadb-plugin-oqgraph/,/^$/d" -i debian/control
|
||||
sed "/ha_sphinx.so/d" -i debian/mariadb-server-10.*.install
|
||||
sed "/Package: libmariadbd19/,/^$/d" -i debian/control
|
||||
sed "/Package: libmariadbd-dev/,/^$/d" -i debian/control
|
||||
fi
|
||||
|
||||
if [[ $(arch) =~ i[346]86 ]]
|
||||
then
|
||||
sed "/Package: mariadb-plugin-rocksdb/,/^$/d" -i debian/control
|
||||
fi
|
||||
|
||||
# If rocksdb-tools is not available (before Debian Buster and Ubuntu Disco)
|
||||
# remove the dependency from the RocksDB plugin so it can install properly
|
||||
# and instead ship the one built from MariaDB sources
|
||||
if ! apt-cache madison rocksdb-tools | grep 'rocksdb-tools' >/dev/null 2>&1
|
||||
then
|
||||
sed '/rocksdb-tools/d' -i debian/control
|
||||
sed '/sst_dump/d' -i debian/not-installed
|
||||
echo "usr/bin/sst_dump" >> debian/mariadb-plugin-rocksdb.install
|
||||
fi
|
||||
|
||||
# From Debian Buster/Ubuntu Bionic, libcurl4 replaces libcurl3.
|
||||
if ! apt-cache madison libcurl4 | grep 'libcurl4' >/dev/null 2>&1
|
||||
then
|
||||
sed 's/libcurl4/libcurl3/g' -i debian/control
|
||||
fi
|
||||
|
||||
# Adjust changelog, add new version
|
||||
echo "Incrementing changelog and starting build scripts"
|
||||
|
||||
# Find major.minor version
|
||||
source ./VERSION
|
||||
UPSTREAM="${MYSQL_VERSION_MAJOR}.${MYSQL_VERSION_MINOR}.${MYSQL_VERSION_PATCH}${MYSQL_VERSION_EXTRA}"
|
||||
PATCHLEVEL="+maria"
|
||||
LOGSTRING="MariaDB build"
|
||||
CODENAME="$(lsb_release -sc)"
|
||||
EPOCH="1:"
|
||||
|
||||
dch -b -D "${CODENAME}" -v "${EPOCH}${UPSTREAM}${PATCHLEVEL}~${CODENAME}" "Automatic build with ${LOGSTRING}."
|
||||
|
||||
echo "Creating package version ${EPOCH}${UPSTREAM}${PATCHLEVEL}~${CODENAME} ... "
|
||||
|
||||
# On Travis CI and Gitlab-CI, use -b to build binary only packages as there is
|
||||
# no need to waste time on generating the source package.
|
||||
if [[ $TRAVIS ]]
|
||||
then
|
||||
BUILDPACKAGE_FLAGS="-b"
|
||||
fi
|
||||
|
||||
# Use eatmydata is available to build faster with less I/O, skipping fsync()
|
||||
# during the entire build process (safe because a build can always be restarted)
|
||||
if which eatmydata > /dev/null
|
||||
then
|
||||
BUILDPACKAGE_PREPEND=eatmydata
|
||||
fi
|
||||
|
||||
# Build the package
|
||||
# Pass -I so that .git and other unnecessary temporary and source control files
|
||||
# will be ignored by dpkg-source when creating the tar.gz source package.
|
||||
fakeroot $BUILDPACKAGE_PREPEND dpkg-buildpackage -us -uc -I $BUILDPACKAGE_FLAGS || sleep 600
|
||||
|
||||
# If the step above fails due to missing dependencies, you can manually run
|
||||
# sudo mk-build-deps debian/control -r -i
|
||||
|
||||
# Don't log package contents on Travis-CI or Gitlab-CI to save time and log size
|
||||
if [[ ! $TRAVIS ]] && [[ ! $GITLAB_CI ]]
|
||||
then
|
||||
echo "List package contents ..."
|
||||
cd ..
|
||||
for package in *.deb
|
||||
do
|
||||
echo "$package" | cut -d '_' -f 1
|
||||
dpkg-deb -c "$package" | awk '{print $1 " " $2 " " $6 " " $7 " " $8}' | sort -k 3
|
||||
echo "------------------------------------------------"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Build complete"
|
Reference in New Issue
Block a user