Commit 0268b871 authored by Daniel Black's avatar Daniel Black

deb: columnstore not 32bit

Columnstore badly failed on 32bit. The way Debian triggers
somehow doesn't detect the amd64 in the architecture of columnstore
so we explicitly disable it to prevent failures on x86_32.

The architecture from the control file is sufficient to not build
of arm64 and other unsupported achitectures so we don't need to
disable columnstore by default.

The logic around not building columnstore on Travis/Gitlab ci
can be preserved with a autobake-deb.sh restructure.
parent 30d33d85
...@@ -17,29 +17,17 @@ set -e ...@@ -17,29 +17,17 @@ set -e
# building the deb packages here. # building the deb packages here.
export DEB_BUILD_OPTIONS="nocheck $DEB_BUILD_OPTIONS" export DEB_BUILD_OPTIONS="nocheck $DEB_BUILD_OPTIONS"
# Take the files and part of control from MCS directory
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
# ColumnStore is explicitly disabled in the native build, so allow it now
# when build it when triggered by autobake-deb.sh
sed '/-DPLUGIN_COLUMNSTORE=NO/d' -i debian/rules
fi
# General CI optimizations to keep build output smaller # General CI optimizations to keep build output smaller
if [[ $TRAVIS ]] || [[ $GITLAB_CI ]] if [[ $TRAVIS ]] || [[ $GITLAB_CI ]]
then then
# On both Travis and Gitlab the output log must stay under 4MB so make the # On both Travis and Gitlab the output log must stay under 4MB so make the
# build less verbose # 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 # MCOL-4149: ColumnStore builds are so slow and big that they must be skipped on
# both Travis-CI and Gitlab-CI # both Travis-CI and Gitlab-CI
sed 's|$(CMAKEFLAGS)|$(CMAKEFLAGS) -DPLUGIN_COLUMNSTORE=NO|' -i debian/rules sed -e '/Add support for verbose builds/,/^$/d' \
sed "/Package: mariadb-plugin-columnstore/,/^$/d" -i debian/control -e '/ColumnStore is part of the build/,/^$/d' \
-e 's|$(CMAKEFLAGS)|$(CMAKEFLAGS) -DPLUGIN_COLUMNSTORE=NO|' \
-i debian/rules
fi fi
# Don't build or try to put files in a package for selected plugins and components on Travis-CI # Don't build or try to put files in a package for selected plugins and components on Travis-CI
......
...@@ -38,11 +38,6 @@ else ...@@ -38,11 +38,6 @@ else
NUMJOBS = 1 NUMJOBS = 1
endif endif
# RocksDB cannot build on 32-bit platforms
ifeq (32,$(DEB_HOST_ARCH_BITS))
CMAKEFLAGS += -DPLUGIN_ROCKSDB=NO
endif
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
ifneq (,$(filter $(DEB_HOST_ARCH_CPU),alpha amd64 arm arm64 i386 ia64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sh4 sparc64)) ifneq (,$(filter $(DEB_HOST_ARCH_CPU),alpha amd64 arm arm64 i386 ia64 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sh4 sparc64))
CMAKEFLAGS += -DSTACK_DIRECTION=-1 CMAKEFLAGS += -DSTACK_DIRECTION=-1
...@@ -74,15 +69,26 @@ ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) ...@@ -74,15 +69,26 @@ ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_configure --builddirectory=builddir-native dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_configure --builddirectory=builddir-native
dh_auto_build --builddirectory=builddir-native -- import_executables dh_auto_build --builddirectory=builddir-native -- import_executables
endif endif
# ColumnStore is part of the build
ifneq (32,$(DEB_HOST_ARCH_BITS))
# Take the files and part of control from MCS directory
cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/
# Don't include twice
grep -q '^Package: mariadb-plugin-columnstore$$' debian/control || \
echo >> debian/control && \
cat storage/columnstore/columnstore/debian/control >> debian/control
endif
echo "server:Version=$(DEB_VERSION)" >> debian/substvars echo "server:Version=$(DEB_VERSION)" >> debian/substvars
# Don't build ColumnStore as part of the native build, only build it when # RocksDB and Column Store cannot build on 32-bit platforms
# triggered by autobake-deb.sh. Saves build time and disk space.
PATH=$${MYSQL_BUILD_PATH:-"/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin"} \ PATH=$${MYSQL_BUILD_PATH:-"/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin"} \
NO_UPDATE_BUILD_VERSION=1 \ NO_UPDATE_BUILD_VERSION=1 \
dh_auto_configure --builddirectory=$(BUILDDIR) -- \ dh_auto_configure --builddirectory=$(BUILDDIR) -- \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$(CMAKEFLAGS) \ $(CMAKEFLAGS) \
$(if $(findstring $(DEB_HOST_ARCH_BITS),32),-DPLUGIN_ROCKSDB=NO -DPLUGIN_COLUMNSTORE=NO) \
$(if $(filter $(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)),,-DIMPORT_EXECUTABLES=$(CURDIR)/builddir-native/import_executables.cmake) \ $(if $(filter $(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)),,-DIMPORT_EXECUTABLES=$(CURDIR)/builddir-native/import_executables.cmake) \
-DCOMPILATION_COMMENT="mariadb.org binary distribution" \ -DCOMPILATION_COMMENT="mariadb.org binary distribution" \
-DMYSQL_SERVER_SUFFIX="-$(DEB_VERSION_REVISION)" \ -DMYSQL_SERVER_SUFFIX="-$(DEB_VERSION_REVISION)" \
...@@ -92,7 +98,6 @@ endif ...@@ -92,7 +98,6 @@ endif
-DPLUGIN_TOKUDB=NO \ -DPLUGIN_TOKUDB=NO \
-DPLUGIN_CASSANDRA=NO \ -DPLUGIN_CASSANDRA=NO \
-DPLUGIN_AWS_KEY_MANAGEMENT=NO \ -DPLUGIN_AWS_KEY_MANAGEMENT=NO \
-DPLUGIN_COLUMNSTORE=NO \
-DDEB=$(DEB_VENDOR) -DDEB=$(DEB_VENDOR)
# This is needed, otherwise 'make test' will run before binaries have been built # This is needed, otherwise 'make test' will run before binaries have been built
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment