2012-01-23 12:20:16 +01:00
|
|
|
#!/usr/bin/make -f
|
|
|
|
|
2023-01-06 06:56:14 +01:00
|
|
|
# Enable Debian Hardening
|
|
|
|
# https://wiki.debian.org/Hardening
|
Misc Debian/Salsa-CI fixes (#2299)
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup
This fixes autobake-deb.sh builds on Sid which was visible as 4 failing
build steps on Salsa-CI.
- In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to
fix builds that failed with error:
Error - unknown release codename n/a
- Refactor list to have Ubuntu versions first, then Debian, and as last
the special case of Debian Sid
- Fix minor syntax issues detected by Shellcheck
Also remove useless DEB_HOST_ARCH_CPU check from debian/rules:
* It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway
* The variable name was wrong and always empty
* If variable would have been correct, logic was still reversed
- Define 3h timeout as the default 1h timeout on Gitlab.com (and others)
is usually not enough for initial (uncached) MariaDB builds.
- Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster
testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm
are no longer possible due to:
Bug#993755: libcrypt.so.1: cannot open shared object file when
upgrading from Stretch to Sid (https://bugs.debian.org/993755)
- Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures
to reveal bug MDEV-28640. Originally this step was failing as the uring
dependencies in upstream builders lagged behind and there was nothing
that needed work, only time time to resolve. Now there is an actual bug
in packaging that should be visible as a CI failure.
- Stop testing for 'service mysql status' on systems that upgraded from
MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control
changes in 10.6 on upstream the upgrade is no longer compatible in
a way that would maintain the init.d script with name 'mysql'.
- Fix typos where mergers had changed occurrences of 10.5 to 10.6 while
they intentionally need to be exactly 10.5, otherwise the meaning
changes.
- Align autopkgtest code with downstream official Debian packaging one.
This is change is safe on a stable branch because is only affects builds
and testing, not any actual usage of MariaDB 10.6.
- Standardize on using capitalized 'YES' in CMake build options
(instead of 'yes' or mixed case)
- Add some comments to better document debian/rules
- Fix typo in Lintian overrides
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634
MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633
When built with LTO on Ubuntu, MariaDB does not catch an exception when
the uring initialization fails due to a low RLIMIT_MEMLOCK value.
This commit amends the commit 0609b345554f9a148e165c497aadbe368e0900aa
to be identical to the one done downstream in Debian:
https://salsa.debian.org/mariadb-team/mariadb-server/-/commit/8d20ca979cf422d3a507283b86c2547d78559179
This way both the inline comments and 'git blame' for this section will
show properly why this is needed, and the fix is one that is fully tested
on Debian and Ubuntu.
Also having this section fully identical in upstream MariaDB and downstream
Debian will make the packaging maintenance easier as 'diff` runs on this
file will not flag this as a difference anymore.
In MDEV-28640 the init script failed to stop/start the MariaDB server
due to missing mysqladmin on the system. This was however very hard to
spot from the console output.
Add an explicit check for the binary the script depends on, and fail
verbosely if the dependency is missing.
2022-11-11 08:51:34 +01:00
|
|
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
|
|
|
|
|
|
# Disable LTO on Ubuntu, see LP: #1970634 and https://jira.mariadb.org/browse/MDEV-25633
|
|
|
|
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes), yes)
|
|
|
|
export DEB_BUILD_MAINT_OPTIONS += optimize=-lto
|
|
|
|
endif
|
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
DPKG_EXPORT_BUILDFLAGS = 1
|
2020-06-28 16:35:02 +02:00
|
|
|
# Include all defaults, including buildflags.mk
|
2018-05-29 08:50:55 +02:00
|
|
|
include /usr/share/dpkg/default.mk
|
2020-04-05 12:05:56 +02:00
|
|
|
# CPPFLAGS are nor read by CMake, so copy them to CXXFLAGS
|
|
|
|
# See why at https://cmake.org/Bug/view.php?id=12928
|
|
|
|
# This is needed for e.g. all automatic Debian hardening flags to apply on all cmake builds.
|
|
|
|
CFLAGS+=$(CPPFLAGS)
|
|
|
|
CXXFLAGS+=$(CPPFLAGS)
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2020-12-25 16:41:03 +01:00
|
|
|
# Only do a strict symbol checking on Linux
|
2023-05-12 19:51:10 +02:00
|
|
|
# https://manpages.debian.org/testing/dpkg-dev/dpkg-gensymbols.1.en.html
|
|
|
|
# Level 4: Fails if some libraries have been introduced.
|
2020-12-25 16:41:03 +01:00
|
|
|
ifneq (,$(filter linux,$(DEB_HOST_ARCH_OS)))
|
2023-05-12 19:51:10 +02:00
|
|
|
export DPKG_GENSYMBOLS_CHECK_LEVEL = 4
|
2020-12-25 16:41:03 +01:00
|
|
|
endif
|
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
BUILDDIR := builddir
|
2024-03-08 06:27:23 +01:00
|
|
|
DEB_VERSION_REVISION := $(shell echo $(DEB_VERSION) | sed -e 's/.*[~-]\(.*\)/\1/')
|
2022-04-11 10:32:26 +02:00
|
|
|
DEB_VERSION_VERSION := $(shell echo $(DEB_VERSION) | sed -e 's/^.*:\(.*\)\(-\|+\).*/\1/')
|
|
|
|
DEB_VERSION_MAJOR := $(shell echo $(DEB_VERSION_VERSION) | sed -e 's/^\(.*\)\..*$$/\1/')
|
2018-05-29 08:50:55 +02:00
|
|
|
RELEASE := $(shell lsb_release -r -s) # Use changelog based DEB_DISTRIBUTION instead?
|
2023-10-08 04:42:31 +02:00
|
|
|
TMP := $(CURDIR)/debian/tmp
|
|
|
|
MTR_SKIP_TEST_LIST := $(shell mktemp)
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2020-06-28 16:35:02 +02:00
|
|
|
# According to Debian Policy version 4.2.0 builds should be as verbose as
|
|
|
|
# possible unless 'terse' is specifically passed.
|
|
|
|
ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
|
|
|
|
export DH_VERBOSE=1
|
|
|
|
endif
|
|
|
|
|
2016-08-18 10:47:20 +02:00
|
|
|
# Parallel build support as advised
|
|
|
|
# at https://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
|
|
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
|
|
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
2017-11-17 05:17:26 +01:00
|
|
|
MAKEFLAGS += -j$(NUMJOBS)
|
2016-10-09 22:39:01 +02:00
|
|
|
else
|
2020-12-30 09:08:23 +01:00
|
|
|
# NUMJOBS cannot be empty as it is used as a parameter to mtr, default to 'auto'.
|
|
|
|
NUMJOBS = auto
|
2012-01-23 12:20:16 +01:00
|
|
|
endif
|
|
|
|
|
2021-09-06 05:22:45 +02:00
|
|
|
# RocksDB cannot build on 32-bit platforms
|
|
|
|
ifeq (32,$(DEB_HOST_ARCH_BITS))
|
|
|
|
CMAKEFLAGS += -DPLUGIN_ROCKSDB=NO
|
|
|
|
endif
|
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
# Add support for verbose builds
|
|
|
|
MAKEFLAGS += VERBOSE=1
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
override_dh_auto_clean:
|
2012-01-23 12:20:16 +01:00
|
|
|
@echo "RULES.$@"
|
|
|
|
dh_testdir
|
|
|
|
dh_testroot
|
2021-06-11 14:58:50 +02:00
|
|
|
rm -rf $(BUILDDIR) builddir-native mysql-test/unstable-tests
|
2020-04-05 12:05:56 +02:00
|
|
|
debconf-updatepo # Update po-files when clean runs before each build
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
override_dh_auto_configure:
|
2012-01-23 12:20:16 +01:00
|
|
|
@echo "RULES.$@"
|
|
|
|
dh_testdir
|
|
|
|
|
2020-04-05 12:05:56 +02:00
|
|
|
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
|
2023-10-08 04:42:31 +02:00
|
|
|
dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_configure --builddirectory=builddir-native --reload-all-buildenv-variables
|
2020-04-05 12:05:56 +02:00
|
|
|
dh_auto_build --builddirectory=builddir-native -- import_executables
|
2016-10-09 22:39:01 +02:00
|
|
|
endif
|
2021-08-11 03:28:08 +02:00
|
|
|
|
2020-11-27 15:05:17 +01:00
|
|
|
echo "server:Version=$(DEB_VERSION)" >> debian/substvars
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2023-10-08 04:42:31 +02:00
|
|
|
# As packages does not have major version any more in package name there is no
|
|
|
|
# way as it not set by dpkg to use this on postinst script. Use sed to
|
|
|
|
# determine major version instead.
|
|
|
|
# @TODO: Rewrite this to use the new upstream /var/lib/mysql_upgrade_info file
|
|
|
|
# instead of the legacy /var/lib/debian-XX.X.flag file
|
2022-04-11 10:32:26 +02:00
|
|
|
sed -i 's/__MARIADB_MAJOR_VER__/$(DEB_VERSION_MAJOR)/g' debian/mariadb-server.post* debian/mariadb-server.preinst
|
|
|
|
|
2021-09-06 05:22:45 +02:00
|
|
|
# Don't build ColumnStore as part of the native build as it does not meet the
|
|
|
|
# quality standards in Debian. Also building it requires an extra 4 GB of disk
|
|
|
|
# space which makes native Debian builds fail as the total disk space needed
|
|
|
|
# for MariaDB becomes over 10 GB. Only build CS via autobake-deb.sh.
|
2023-01-06 06:56:14 +01:00
|
|
|
#
|
|
|
|
# Note: Don't use '-DWITH_URING=ON' as some Buildbot builders are missing it
|
|
|
|
# and would fail permanently.
|
2020-12-25 16:41:03 +01:00
|
|
|
PATH=$${MYSQL_BUILD_PATH:-"/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin"} \
|
|
|
|
dh_auto_configure --builddirectory=$(BUILDDIR) -- \
|
|
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
2016-10-09 22:39:01 +02:00
|
|
|
$(CMAKEFLAGS) \
|
2020-12-25 16:41:03 +01:00
|
|
|
$(if $(filter $(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)),,-DIMPORT_EXECUTABLES=$(CURDIR)/builddir-native/import_executables.cmake) \
|
2016-10-09 22:39:01 +02:00
|
|
|
-DCOMPILATION_COMMENT="mariadb.org binary distribution" \
|
2018-05-29 08:50:55 +02:00
|
|
|
-DMYSQL_SERVER_SUFFIX="-$(DEB_VERSION_REVISION)" \
|
|
|
|
-DSYSTEM_TYPE="debian-$(DEB_HOST_GNU_SYSTEM)" \
|
2016-10-09 22:39:01 +02:00
|
|
|
-DBUILD_CONFIG=mysql_release \
|
2020-12-20 22:48:20 +01:00
|
|
|
-DCONC_DEFAULT_CHARSET=utf8mb4 \
|
2018-06-29 14:11:38 +02:00
|
|
|
-DPLUGIN_AWS_KEY_MANAGEMENT=NO \
|
Misc Debian/Salsa-CI fixes (#2299)
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup
This fixes autobake-deb.sh builds on Sid which was visible as 4 failing
build steps on Salsa-CI.
- In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to
fix builds that failed with error:
Error - unknown release codename n/a
- Refactor list to have Ubuntu versions first, then Debian, and as last
the special case of Debian Sid
- Fix minor syntax issues detected by Shellcheck
Also remove useless DEB_HOST_ARCH_CPU check from debian/rules:
* It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway
* The variable name was wrong and always empty
* If variable would have been correct, logic was still reversed
- Define 3h timeout as the default 1h timeout on Gitlab.com (and others)
is usually not enough for initial (uncached) MariaDB builds.
- Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster
testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm
are no longer possible due to:
Bug#993755: libcrypt.so.1: cannot open shared object file when
upgrading from Stretch to Sid (https://bugs.debian.org/993755)
- Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures
to reveal bug MDEV-28640. Originally this step was failing as the uring
dependencies in upstream builders lagged behind and there was nothing
that needed work, only time time to resolve. Now there is an actual bug
in packaging that should be visible as a CI failure.
- Stop testing for 'service mysql status' on systems that upgraded from
MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control
changes in 10.6 on upstream the upgrade is no longer compatible in
a way that would maintain the init.d script with name 'mysql'.
- Fix typos where mergers had changed occurrences of 10.5 to 10.6 while
they intentionally need to be exactly 10.5, otherwise the meaning
changes.
- Align autopkgtest code with downstream official Debian packaging one.
This is change is safe on a stable branch because is only affects builds
and testing, not any actual usage of MariaDB 10.6.
- Standardize on using capitalized 'YES' in CMake build options
(instead of 'yes' or mixed case)
- Add some comments to better document debian/rules
- Fix typo in Lintian overrides
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634
MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633
When built with LTO on Ubuntu, MariaDB does not catch an exception when
the uring initialization fails due to a low RLIMIT_MEMLOCK value.
This commit amends the commit 0609b345554f9a148e165c497aadbe368e0900aa
to be identical to the one done downstream in Debian:
https://salsa.debian.org/mariadb-team/mariadb-server/-/commit/8d20ca979cf422d3a507283b86c2547d78559179
This way both the inline comments and 'git blame' for this section will
show properly why this is needed, and the fix is one that is fully tested
on Debian and Ubuntu.
Also having this section fully identical in upstream MariaDB and downstream
Debian will make the packaging maintenance easier as 'diff` runs on this
file will not flag this as a difference anymore.
In MDEV-28640 the init script failed to stop/start the MariaDB server
due to missing mysqladmin on the system. This was however very hard to
spot from the console output.
Add an explicit check for the binary the script depends on, and fail
verbosely if the dependency is missing.
2022-11-11 08:51:34 +01:00
|
|
|
-DPLUGIN_COLUMNSTORE=NO \
|
2023-01-06 06:56:14 +01:00
|
|
|
-DIGNORE_AIO_CHECK=ON \
|
2020-12-25 16:41:03 +01:00
|
|
|
-DDEB=$(DEB_VENDOR)
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
# This is needed, otherwise 'make test' will run before binaries have been built
|
|
|
|
override_dh_auto_build:
|
|
|
|
@echo "RULES.$@"
|
|
|
|
# Print build env info to help debug builds on different platforms
|
|
|
|
dpkg-architecture
|
2022-04-07 06:55:52 +02:00
|
|
|
cd $(BUILDDIR) && $(MAKE) --output-sync=target
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
override_dh_auto_test:
|
|
|
|
@echo "RULES.$@"
|
|
|
|
dh_testdir
|
2023-10-08 04:28:43 +02:00
|
|
|
# Skip running test suite after build if DEB_BUILD_OPTIONS contains 'nocheck'
|
|
|
|
@echo "DEB_BUILD_OPTIONS: $(DEB_BUILD_OPTIONS)"
|
|
|
|
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
2023-01-06 06:56:14 +01:00
|
|
|
# Skip unstable tests if such are defined for arch
|
2023-10-08 04:28:43 +02:00
|
|
|
[ ! -f debian/unstable-tests.$(DEB_HOST_ARCH) ] || cat debian/unstable-tests.$(DEB_HOST_ARCH) >> $(MTR_SKIP_TEST_LIST)
|
|
|
|
# Show contents of skip list on this architecture
|
|
|
|
@echo "On architecture $(DEB_HOST_ARCH) skip tests:"
|
|
|
|
cat $(MTR_SKIP_TEST_LIST)
|
2016-10-09 22:39:01 +02:00
|
|
|
# Run testsuite
|
2020-12-20 22:29:29 +01:00
|
|
|
cd $(BUILDDIR)/mysql-test && \
|
2023-10-08 04:28:43 +02:00
|
|
|
export MTR_PRINT_CORE=detailed && \
|
|
|
|
./mtr --force --testcase-timeout=120 --suite-timeout=540 --retry=3 \
|
2023-10-08 04:42:31 +02:00
|
|
|
--verbose-restart --max-save-core=1 --max-save-datadir=1 \
|
2020-12-20 22:29:29 +01:00
|
|
|
--parallel=$(NUMJOBS) --skip-rpl --suite=main \
|
2023-10-08 04:42:31 +02:00
|
|
|
--skip-test-list=$(MTR_SKIP_TEST_LIST)
|
2023-10-08 04:28:43 +02:00
|
|
|
# Don't use --mem here as official Debian builders and most Docker systems don't have a large mem device available and
|
|
|
|
# would fail with errors on lack of disk space.
|
2016-10-09 22:39:01 +02:00
|
|
|
endif
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
override_dh_auto_install:
|
|
|
|
@echo "RULES.$@"
|
|
|
|
dh_testdir
|
|
|
|
dh_testroot
|
2012-01-26 12:55:12 +01:00
|
|
|
|
2020-03-16 12:07:52 +01:00
|
|
|
# Run 'make install' without output since it is uninteresting and
|
|
|
|
# silencing it helps to make overall build log shorter and more readable
|
|
|
|
@echo "Running $(MAKE) install DESTDIR=$(TMP) ..."
|
|
|
|
cd $(BUILDDIR) && $(MAKE) install DESTDIR=$(TMP) > /dev/null
|
|
|
|
|
|
|
|
# If mariadb-test package is removed, also remove most of it's files
|
2022-12-12 04:20:08 +01:00
|
|
|
grep --quiet "Package: mariadb-test" debian/control || rm -rf $(TMP)/usr/share/mariadb/mariadb-test
|
2012-01-28 21:22:14 +01:00
|
|
|
|
2021-05-06 21:08:38 +02:00
|
|
|
# Delete private files from libraries so they don't get shipped in the -dev packages
|
2020-04-05 11:57:10 +02:00
|
|
|
rm -r $(TMP)/usr/include/mariadb/server/private
|
|
|
|
|
2020-04-05 12:05:56 +02:00
|
|
|
# Don't ship sql-bench at all, just delete it completely even though it builds
|
|
|
|
rm -r $(TMP)/usr/sql-bench
|
|
|
|
|
2016-10-09 22:39:01 +02:00
|
|
|
# nm numeric soft is not enough, therefore extra sort in command
|
|
|
|
# to satisfy Debian reproducible build requirements
|
2022-05-01 08:27:39 +02:00
|
|
|
mkdir -p $(TMP)/usr/share/doc/mariadb-server
|
|
|
|
nm --defined-only $(BUILDDIR)/sql/mariadbd | LC_ALL=C sort | gzip -n -9 > $(TMP)/usr/share/doc/mariadb-server/mariadbd.sym.gz
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2020-12-20 22:29:29 +01:00
|
|
|
# Rename and install AppArmor profile
|
2020-06-11 00:39:11 +02:00
|
|
|
install -D -m 644 debian/apparmor-profile $(TMP)/etc/apparmor.d/usr.sbin.mariadbd
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2016-11-13 00:10:41 +01:00
|
|
|
# Install libmariadbclient18 compatibility links
|
2018-01-11 16:48:17 +01:00
|
|
|
ln -s libmariadb.so.3 $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadbclient.so
|
|
|
|
ln -s libmariadb.so.3 $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadbclient.so.18
|
2016-11-13 00:10:41 +01:00
|
|
|
|
2016-11-26 19:08:07 +01:00
|
|
|
# Install libmysqlclientclientXX compatibility links
|
2018-01-11 16:48:17 +01:00
|
|
|
ln -s libmariadb.so.3 $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmysqlclient.so.18
|
|
|
|
ln -s libmariadb.so.3 $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmysqlclient.so.19
|
|
|
|
ln -s libmariadb.so.3 $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmysqlclient.so.20
|
2016-11-26 19:08:07 +01:00
|
|
|
|
2020-03-27 00:47:53 +01:00
|
|
|
# Install libmariadbclient.a compatibility link
|
|
|
|
ln -s libmariadb.a $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadbclient.a
|
|
|
|
|
2020-04-05 17:21:29 +02:00
|
|
|
# Symlink plugins that are used by both server and client and thus need to
|
|
|
|
# load from the libmariadb path as well
|
|
|
|
ln -s ../../../mysql/plugin/auth_test_plugin.so $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadb3/plugin/auth_test_plugin.so
|
|
|
|
ln -s ../../../mysql/plugin/qa_auth_interface.so $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadb3/plugin/qa_auth_interface.so
|
2020-10-19 14:51:52 +02:00
|
|
|
ln -s ../../../mysql/plugin/test_sql_service.so $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadb3/plugin/test_sql_service.so
|
2020-04-05 17:21:29 +02:00
|
|
|
# Move test plugins that are only needed by the client to the libmariadb path
|
|
|
|
mv -v $(TMP)/usr/lib/mysql/plugin/qa_auth_client.so $(TMP)/usr/lib/$(DEB_HOST_MULTIARCH)/libmariadb3/plugin/
|
|
|
|
|
2024-04-17 11:14:14 +02:00
|
|
|
override_dh_installsystemd:
|
2024-05-18 09:01:00 +02:00
|
|
|
dh_installsystemd -pmariadb-server mariadb.service
|
2016-10-29 01:43:45 +02:00
|
|
|
|
2023-10-08 04:42:31 +02:00
|
|
|
# Start mariadbd at sequence number 19 before 20 where apache, proftpd etc gets
|
2016-10-09 22:39:01 +02:00
|
|
|
# started which might depend on a running database server.
|
|
|
|
override_dh_installinit-arch:
|
2024-05-09 20:37:40 +02:00
|
|
|
dh_installinit --name=mariadb -- defaults 19 21
|
2012-01-23 12:20:16 +01:00
|
|
|
|
Misc Debian/Salsa-CI fixes (#2299)
* Deb: Handle codename 'n/a' from Debian Sid properly and autobake-deb cleanup
This fixes autobake-deb.sh builds on Sid which was visible as 4 failing
build steps on Salsa-CI.
- In Sid the LSBNAME might evaluate to 'n/a', so accept it as 'Sid' to
fix builds that failed with error:
Error - unknown release codename n/a
- Refactor list to have Ubuntu versions first, then Debian, and as last
the special case of Debian Sid
- Fix minor syntax issues detected by Shellcheck
Also remove useless DEB_HOST_ARCH_CPU check from debian/rules:
* It was never in effect as the 'sed' in autobake-deb.sh cleared it anyway
* The variable name was wrong and always empty
* If variable would have been correct, logic was still reversed
- Define 3h timeout as the default 1h timeout on Gitlab.com (and others)
is usually not enough for initial (uncached) MariaDB builds.
- Replace Buster to Bookworm/Sid upgrade testing with upgrade inside Buster
testing as direct upgrades from Stretch to Bullseye and Buster to Bookworm
are no longer possible due to:
Bug#993755: libcrypt.so.1: cannot open shared object file when
upgrading from Stretch to Sid (https://bugs.debian.org/993755)
- Stop ignoring MariaDB.org 10.6 to this version upgrade testing failures
to reveal bug MDEV-28640. Originally this step was failing as the uring
dependencies in upstream builders lagged behind and there was nothing
that needed work, only time time to resolve. Now there is an actual bug
in packaging that should be visible as a CI failure.
- Stop testing for 'service mysql status' on systems that upgraded from
MySQL 8.0 to MariaDB.org vended 10.6. Due to some unidentified debian/control
changes in 10.6 on upstream the upgrade is no longer compatible in
a way that would maintain the init.d script with name 'mysql'.
- Fix typos where mergers had changed occurrences of 10.5 to 10.6 while
they intentionally need to be exactly 10.5, otherwise the meaning
changes.
- Align autopkgtest code with downstream official Debian packaging one.
This is change is safe on a stable branch because is only affects builds
and testing, not any actual usage of MariaDB 10.6.
- Standardize on using capitalized 'YES' in CMake build options
(instead of 'yes' or mixed case)
- Add some comments to better document debian/rules
- Fix typo in Lintian overrides
Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634
MariaDB ticket: https://jira.mariadb.org/browse/MDEV-25633
When built with LTO on Ubuntu, MariaDB does not catch an exception when
the uring initialization fails due to a low RLIMIT_MEMLOCK value.
This commit amends the commit 0609b345554f9a148e165c497aadbe368e0900aa
to be identical to the one done downstream in Debian:
https://salsa.debian.org/mariadb-team/mariadb-server/-/commit/8d20ca979cf422d3a507283b86c2547d78559179
This way both the inline comments and 'git blame' for this section will
show properly why this is needed, and the fix is one that is fully tested
on Debian and Ubuntu.
Also having this section fully identical in upstream MariaDB and downstream
Debian will make the packaging maintenance easier as 'diff` runs on this
file will not flag this as a difference anymore.
In MDEV-28640 the init script failed to stop/start the MariaDB server
due to missing mysqladmin on the system. This was however very hard to
spot from the console output.
Add an explicit check for the binary the script depends on, and fail
verbosely if the dependency is missing.
2022-11-11 08:51:34 +01:00
|
|
|
# Use custom server version string variable
|
2020-11-27 15:05:17 +01:00
|
|
|
override_dh_gencontrol:
|
|
|
|
dh_gencontrol -- -Tdebian/substvars
|
2012-01-23 12:20:16 +01:00
|
|
|
|
2018-01-12 21:27:22 +01:00
|
|
|
# If a file is not supposed to be included anywhere, add it to the not-installed
|
|
|
|
# file and document the reason. Note that dh_install supports the above mentioned
|
|
|
|
# white list file only starting from Debian Stretch and Ubuntu Xenial.
|
|
|
|
# To find more, grep build logs for 'but is not installed to anywhere'.
|
2016-10-09 22:39:01 +02:00
|
|
|
%:
|
2024-05-18 09:01:00 +02:00
|
|
|
dh $@ --parallel --fail-missing
|
2012-01-23 12:20:16 +01:00
|
|
|
|
|
|
|
# vim: ts=8
|