|
|
|
@ -11,24 +11,15 @@ |
|
|
|
# Exit immediately on any error |
|
|
|
set -e |
|
|
|
|
|
|
|
CODENAME="$(lsb_release -sc)" |
|
|
|
case "${CODENAME}" in |
|
|
|
stretch) |
|
|
|
# MDEV-28022 libzstd-dev-1.1.3 minimum version |
|
|
|
sed -i -e '/libzstd-dev/d' debian/control |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
# This file is invoked 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. |
|
|
|
# On Buildbot, don't run the mysql-test-run test suite as part of build. |
|
|
|
# It takes a lot of time, and we will do a better test anyway in |
|
|
|
# Buildbot, running the test suite from installed .debs on a clean VM. |
|
|
|
export DEB_BUILD_OPTIONS="nocheck $DEB_BUILD_OPTIONS" |
|
|
|
|
|
|
|
# General CI optimizations to keep build output smaller |
|
|
|
if [[ $TRAVIS ]] || [[ $GITLAB_CI ]] |
|
|
|
if [[ $GITLAB_CI ]] |
|
|
|
then |
|
|
|
# On both Travis and Gitlab the output log must stay under 4MB so make the |
|
|
|
# On Gitlab the output log must stay under 4MB so make the |
|
|
|
# build less verbose |
|
|
|
sed '/Add support for verbose builds/,/^$/d' -i debian/rules |
|
|
|
elif [ -d storage/columnstore/columnstore/debian ] |
|
|
|
@ -43,41 +34,38 @@ then |
|
|
|
cat storage/columnstore/columnstore/debian/control >> debian/control |
|
|
|
fi |
|
|
|
|
|
|
|
# Don't build or try to put files in a package for selected plugins and components 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.5.install |
|
|
|
sed "/Package: libmariadbd19/,/^$/d" -i debian/control |
|
|
|
sed "/Package: libmariadbd-dev/,/^$/d" -i debian/control |
|
|
|
fi |
|
|
|
# Look up distro-version specific stuff |
|
|
|
# |
|
|
|
# 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. |
|
|
|
|
|
|
|
# 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 |
|
|
|
remove_rocksdb_tools() |
|
|
|
{ |
|
|
|
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 |
|
|
|
if ! grep -q sst_dump debian/mariadb-plugin-rocksdb.install |
|
|
|
then |
|
|
|
echo "usr/bin/sst_dump" >> debian/mariadb-plugin-rocksdb.install |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
CODENAME="$(lsb_release -sc)" |
|
|
|
case "${CODENAME}" in |
|
|
|
stretch) |
|
|
|
# MDEV-28022 libzstd-dev-1.1.3 minimum version |
|
|
|
sed -i -e '/libzstd-dev/d' \ |
|
|
|
-e 's/libcurl4/libcurl3/g' -i debian/control |
|
|
|
remove_rocksdb_tools |
|
|
|
;; |
|
|
|
bionic) |
|
|
|
remove_rocksdb_tools |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
# If libcurl4 is not available (before Debian Buster and Ubuntu Bionic) |
|
|
|
# use older libcurl3 instead |
|
|
|
if ! apt-cache madison libcurl4 | grep 'libcurl4' >/dev/null 2>&1 |
|
|
|
if [[ ! "$(dpkg-architecture -q DEB_BUILD_ARCH)" =~ amd64|arm64|ppc64el|s390x ]] |
|
|
|
then |
|
|
|
sed 's/libcurl4/libcurl3/g' -i debian/control |
|
|
|
remove_rocksdb_tools |
|
|
|
fi |
|
|
|
|
|
|
|
# Adjust changelog, add new version |
|
|
|
@ -95,9 +83,9 @@ dch -b -D "${CODENAME}" -v "${VERSION}" "Automatic build with ${LOGSTRING}." --c |
|
|
|
|
|
|
|
echo "Creating package version ${VERSION} ... " |
|
|
|
|
|
|
|
# On Travis CI and Gitlab-CI, use -b to build binary only packages as there is |
|
|
|
# On Gitlab-CI, use -b to build binary only packages as there is |
|
|
|
# no need to waste time on generating the source package. |
|
|
|
if [[ $TRAVIS ]] |
|
|
|
if [[ $GITLAB_CI ]] |
|
|
|
then |
|
|
|
BUILDPACKAGE_FLAGS="-b" |
|
|
|
fi |
|
|
|
@ -117,8 +105,8 @@ fakeroot $BUILDPACKAGE_PREPEND dpkg-buildpackage -us -uc -I $BUILDPACKAGE_FLAGS |
|
|
|
# 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 ]] |
|
|
|
# Don't log package contents on Gitlab-CI to save time and log size |
|
|
|
if [[ ! $GITLAB_CI ]] |
|
|
|
then |
|
|
|
echo "List package contents ..." |
|
|
|
cd .. |
|
|
|
|