diff options
Diffstat (limited to 'debian')
-rwxr-xr-x | debian/autobake-deb.sh | 78 |
1 files changed, 24 insertions, 54 deletions
diff --git a/debian/autobake-deb.sh b/debian/autobake-deb.sh index 5e20df3a96b..928c67717c0 100755 --- a/debian/autobake-deb.sh +++ b/debian/autobake-deb.sh @@ -2,6 +2,11 @@ # # 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 @@ -17,21 +22,32 @@ if [[ $TRAVIS ]] || [[ $GITLAB_CI ]] then # On both Travis and Gitlab the output log must stay under 4MB so make the # build less verbose - sed -i -e '/Add support for verbose builds/,/^$/d' debian/rules + 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 -# Travis-CI optimizations to keep build small (in both duration and disk space) +# 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 - # Don't include test suite package on Travis-CI to make the build time shorter + # 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 - # Don't build the test package at all to save time and disk space - sed 's|DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test|DINSTALL_MYSQLTESTDIR=false|' -i debian/rules - - # Also skip building RocksDB, Mroonga etc to save even more time and disk space - sed 's|-DDEB|-DPLUGIN_MROONGA=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_SPIDER=NO -DPLUGIN_OQGRAPH=NO -DPLUGIN_PERFSCHEMA=NO -DPLUGIN_SPHINX=NO -DDEB|' -i debian/rules + # 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 # Convert gcc version to numberical value. Format is Mmmpp where M is Major @@ -41,19 +57,6 @@ GCCVERSION=$(gcc -dumpfullversion -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g -e 's/\.\([0-9]\)/0\1/g' \ -e 's/^[0-9]\{3,4\}$/&00/') -# 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 libzstd-dev is not available (before Debian Stretch and Ubuntu Xenial) -# remove the dependency from server and RocksDB so it can build properly -if ! apt-cache madison libzstd-dev | grep 'libzstd-dev' >/dev/null 2>&1 -then - sed '/libzstd-dev/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 @@ -70,39 +73,6 @@ then sed 's/libcurl4/libcurl3/g' -i debian/control fi -# Don't build rocksdb package if gcc version is less than 4.8 or we are running on -# x86 32 bit. -if [[ $GCCVERSION -lt 40800 ]] || [[ $(arch) =~ i[346]86 ]] || [[ $TRAVIS ]] -then - sed '/Package: mariadb-plugin-rocksdb/,/^$/d' -i debian/control -fi - -# If libpcre2-dev is not available (before Debian Stretch and Ubuntu Xenial) -# attempt to build using older libpcre3-dev (SIC!) -if ! apt-cache madison libpcre2-dev | grep --quiet 'libpcre2-dev' -then - sed 's/libcurl4-openssl-dev | libcurl4-dev/libpcre3-dev/' -i debian/control -fi - -# Mroonga, Spider etc never built on Travis CI anyway, see build flags above -if [[ $TRAVIS ]] -then - sed -i -e "/Package: mariadb-plugin-mroonga/,/^$/d" debian/control - sed -i -e "/Package: mariadb-plugin-spider/,/^$/d" debian/control - sed -i -e "/Package: mariadb-plugin-oqgraph/,/^$/d" debian/control - sed -i -e "/usr\/lib\/mysql\/plugin\/ha_sphinx.so/d" debian/mariadb-server-10.5.install - sed -i -e "/Package: libmariadbd-dev/,/^$/d" debian/control -fi - -# Don't build nor package ColumnStore on Travis-CI -if [[ $TRAVIS ]] -then - sed "/Package: mariadb-plugin-columnstore/,/^$/d" -i debian/control - sed '/flex/d' -i debian/control - sed -r '/libboost-[a-z-]+-dev/d' -i debian/control - sed 's|-DPLUGIN_COLUMNSTORE=YES|-DPLUGIN_COLUMNSTORE=NO|' -i debian/rules -fi - # Adjust changelog, add new version echo "Incrementing changelog and starting build scripts" |