Skip to content

Commit f2b4972

Browse files
committed
Merge 10.11 into 11.0
2 parents 936edd8 + bce3ee7 commit f2b4972

File tree

208 files changed

+4932
-2612
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

208 files changed

+4932
-2612
lines changed

cmake/cpack_rpm.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ ENDIF()
318318
# MDEV-24629, we need it outside of ELSIFs
319319
IF(RPM MATCHES "fedora")
320320
ALTERNATIVE_NAME("common" "mariadb-connector-c-config" ${MARIADB_CONNECTOR_C_VERSION}-1)
321+
ALTERNATIVE_NAME("shared" "mariadb-connector-c" ${MARIADB_CONNECTOR_C_VERSION}-1)
321322
ENDIF()
322323

323324
SET(PYTHON_SHEBANG "/usr/bin/python3" CACHE STRING "python shebang")
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# It's intentional that bzip2 compression plugin doesn't have symbols from libc
22
# More info https://jira.mariadb.org/browse/MDEV-28120
3+
library-not-linked-against-libc usr/lib/mysql/plugin/provider_bzip2.so
34
library-not-linked-against-libc [usr/lib/mysql/plugin/provider_bzip2.so]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# It's intentional that LZ4 compression plugin doesn't have symbols from libc
22
# More info https://jira.mariadb.org/browse/MDEV-28120
3+
library-not-linked-against-libc usr/lib/mysql/plugin/provider_lz4.so
34
library-not-linked-against-libc [usr/lib/mysql/plugin/provider_lz4.so]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# It's intentional that LZMA compression plugin doesn't have symbols from libc
22
# More info https://jira.mariadb.org/browse/MDEV-28120
3+
library-not-linked-against-libc usr/lib/mysql/plugin/provider_lzma.so
34
library-not-linked-against-libc [usr/lib/mysql/plugin/provider_lzma.so]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# It's intentional that LZO compression plugin doesn't have symbols from libc
22
# More info https://jira.mariadb.org/browse/MDEV-28120
3+
library-not-linked-against-libc usr/lib/mysql/plugin/provider_lzo.so
34
library-not-linked-against-libc [usr/lib/mysql/plugin/provider_lzo.so]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# It's intentional that Snappy compression plugin doesn't have symbols from libc
22
# More info https://jira.mariadb.org/browse/MDEV-28120
3+
library-not-linked-against-libc usr/lib/mysql/plugin/provider_snappy.so
34
library-not-linked-against-libc [usr/lib/mysql/plugin/provider_snappy.so]

debian/salsa-ci.yml

Lines changed: 91 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ build i386:
5656
script:
5757
- *autobake-deb-steps
5858

59+
build bullseye-backports:
60+
extends: .build-package
61+
variables:
62+
RELEASE: bullseye-backports
63+
64+
# Buster only has libfmt 6.1 but 7.0 is required, so backport build for Buster
65+
# is not possible unless somebody packages libfmt7-dev for Buster.
66+
5967
build sid:
6068
extends: .build-package
6169
script:
@@ -112,35 +120,64 @@ blhc:
112120
mysql --table -e "SELECT * FROM plugin;" mysql
113121
mysql --table -e "SHOW PLUGINS;" mysql
114122

123+
# Readline was removed from Debian Sid (and Bullseye) in Feb 2021. To be able to install older
124+
# versions of MariaDB that depend on it, fetch and install it from Buster.
125+
.test-install-readline-in-sid-for-backwards-compat: &test-install-readline-in-sid-for-backwards-compat |
126+
curl -sS -O http://ftp.de.debian.org/debian/pool/main/r/readline5/libreadline5_5.2+dfsg-3+b13_amd64.deb
127+
apt-get -qq install --no-install-recommends --yes ./libreadline5_5.2+dfsg-3+b13_amd64.deb
128+
115129
.test-enable-bullseye-repos: &test-enable-bullseye-repos
116130
# Replace any old repos with just Sid
117131
- echo 'deb http://deb.debian.org/debian bullseye main' > /etc/apt/sources.list
118132
# Upgrade minimal stack first
119133
- apt-get update -qq
120134
- apt-get install -y apt
121135

122-
.test-enable-bullseye-backports-repos: &test-enable-bullseye-backports-repos |
123-
# Enable bullseye-backports (assumes environment already Debian Bullseye)
124-
echo 'deb http://deb.debian.org/debian bullseye-backports main' > /etc/apt/sources.list.d/bullseye-backports.list
136+
.test-enable-buster-backports-repos: &test-enable-buster-backports-repos |
137+
# Enable buster-backports (assumes environment already Debian Buster)
138+
echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/buster-backports.list
125139
# Increase default backports priority policy from '100' to '500' so it can actually be used
126140
cat << EOF > /etc/apt/preferences.d/enable-backports-to-satisfy-dependencies
127141
Package: *
128-
Pin: release n=bullseye-*
142+
Pin: release n=buster-*
129143
Pin-Priority: 500
130144
EOF
131145
apt-get update -qq
132146

133-
.test-enable-buster-backports-repos: &test-enable-buster-backports-repos |
134-
# Enable buster-backports (assumes environment already Debian Buster)
135-
echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/buster-backports.list
147+
.test-enable-bullseye-backports-repos: &test-enable-bullseye-backports-repos |
148+
# Enable bullseye-backports (assumes environment already Debian Bullseye)
149+
echo 'deb http://deb.debian.org/debian bullseye-backports main' > /etc/apt/sources.list.d/bullseye-backports.list
136150
# Increase default backports priority policy from '100' to '500' so it can actually be used
137151
cat << EOF > /etc/apt/preferences.d/enable-backports-to-satisfy-dependencies
138152
Package: *
139-
Pin: release n=buster-*
153+
Pin: release n=bullseye-*
140154
Pin-Priority: 500
141155
EOF
142156
apt-get update -qq
143157

158+
.test-enable-sid-repos: &test-enable-sid-repos
159+
# Apply usrmerge workaround for Stretch/Buster/Bullseye to Bookworm/Sid upgrades
160+
- echo 'this system will not be supported in the future' > /etc/unsupported-skip-usrmerge-conversion
161+
# Replace any old repos with just Sid
162+
- echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list
163+
# Upgrade minimal stack first
164+
- apt-get update -qq
165+
# Next step will fail on https://bugs.debian.org/993755
166+
# /usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot
167+
# open shared object file: No such file or directory
168+
# dpkg: error processing package libc6:amd64 (--configure):
169+
- apt-get install -y apt || true
170+
# Apply workaround
171+
- cd $(mktemp -d) # Use temp dir where apt can download and unpack files
172+
- apt-get -y download libcrypt1
173+
- dpkg-deb -x libcrypt1_*.deb .
174+
- cp -ra lib/* /lib/
175+
- cd - # Back to /builds/$USER/mariadb-server/debian/output
176+
- find /lib/*/libcrypt.* -ls # Show that new libcrypt is there
177+
- apt-get -y --fix-broken install
178+
# Complete upgrade of minimal stack
179+
- apt-get install -y apt
180+
144181
.test-install: &test-install
145182
# Install MariaDB built in this commit
146183
- apt-get install -y ./*.deb
@@ -252,35 +289,6 @@ mariadb-10.5 Bullseye upgrade:
252289
variables:
253290
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
254291

255-
mariadb-10.3 with Buster backports upgrade:
256-
stage: upgrade extras
257-
needs:
258-
- job: build buster-backports
259-
image: debian:buster
260-
artifacts:
261-
when: always
262-
name: "$CI_BUILD_NAME"
263-
paths:
264-
- ${WORKING_DIR}/debug
265-
script:
266-
- *test-prepare-container
267-
# Install everything MariaDB 10.3 currently in Debian Buster
268-
- apt-get install -y 'default-mysql*' 'mariadb-*' 'libmariadb*'
269-
# Verify installation of MariaDB from Buster
270-
- *test-verify-initial
271-
# Buster backports is needed for liburing1 (>= 0.7) and galera-4 (>= 26.4)
272-
- *test-enable-buster-backports-repos
273-
- *test-install
274-
# mariadb-10.3 in Buster ships a /etc/init.d/mysql so it should continue to work
275-
- service mysql status
276-
- service mariadb status
277-
- *test-verify-final
278-
variables:
279-
GIT_STRATEGY: none
280-
except:
281-
variables:
282-
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
283-
284292
mariadb-10.3 Buster upgrade:
285293
stage: upgrade from Buster
286294
needs:
@@ -490,6 +498,43 @@ mysql-8.0 from Ubuntu 22.04 upgrade:
490498
variables:
491499
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
492500

501+
# Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump.
502+
# The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh.
503+
mysql-community-cluster-8.0 from MySQL.com upgrade:
504+
stage: upgrade extras
505+
needs:
506+
- job: build
507+
image: debian:${RELEASE}
508+
artifacts:
509+
when: always
510+
name: "$CI_BUILD_NAME"
511+
paths:
512+
- ${WORKING_DIR}/debug
513+
script:
514+
- *test-prepare-container
515+
- apt-get install --no-install-recommends --yes ca-certificates curl systemctl
516+
- curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x859be8d7c586f538430b19c2467b942d3a79bd29" -o /etc/apt/trusted.gpg.d/mysql.asc
517+
- echo "deb https://repo.mysql.com/apt/debian/ bullseye mysql-cluster-8.0" > /etc/apt/sources.list.d/mysql.list
518+
- apt-get update -qq
519+
- apt-get install -y mysql-cluster-community-server
520+
- sed 's/ExecStartPre=+/ExecStartPre=/' -i /lib/systemd/system/mysql.service # Hack to make file compatible with systemctl shim
521+
- systemctl start mysql
522+
- dpkg -l | grep -iE 'maria|mysql|galera'
523+
- systemctl status mysql; mysql -e 'SELECT VERSION()'
524+
- systemctl stop mysql # Stop manually as maintainer scripts don't handle this with systemctl shim
525+
- *test-install
526+
# Ignore systemctl shim result as MariaDB systemd file is incompatible with it and yields:
527+
# ERROR:systemctl:the ExecStartPre control process exited with error code
528+
- systemctl status mysql || true
529+
- mysql -e 'SELECT VERSION()' || true
530+
- sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server
531+
- *test-verify-final
532+
variables:
533+
GIT_STRATEGY: none
534+
except:
535+
variables:
536+
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
537+
493538
mariadb.org 10.11 to mariadb upgrade:
494539
stage: upgrade extras
495540
needs:
@@ -570,7 +615,7 @@ mariadb.org 10.9 to mariadb upgrade:
570615
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
571616
- echo "deb https://deb.mariadb.org/10.9/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
572617
- apt-get update
573-
- apt-get install -y mariadb-server
618+
- apt-get install -y mariadb-server-10.9 mariadb-client-10.9
574619
- *test-verify-initial
575620
# Install MariaDB built in this commit
576621
# Force downgrades so our version installs on top of upstream revision, e.g. 1:10.9.1-1 vs 1:10.9.1+mariadb~sid
@@ -618,43 +663,6 @@ mariadb.org-10.8 to mariadb upgrade:
618663
variables:
619664
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
620665

621-
# Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump.
622-
# The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh.
623-
mysql-community-cluster-8.0 from MySQL.com upgrade:
624-
stage: upgrade extras
625-
needs:
626-
- job: build
627-
image: debian:${RELEASE}
628-
artifacts:
629-
when: always
630-
name: "$CI_BUILD_NAME"
631-
paths:
632-
- ${WORKING_DIR}/debug
633-
script:
634-
- *test-prepare-container
635-
- apt-get install --no-install-recommends --yes ca-certificates curl systemctl
636-
- curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x859be8d7c586f538430b19c2467b942d3a79bd29" -o /etc/apt/trusted.gpg.d/mysql.asc
637-
- echo "deb https://repo.mysql.com/apt/debian/ bullseye mysql-cluster-8.0" > /etc/apt/sources.list.d/mysql.list
638-
- apt-get update -qq
639-
- apt-get install -y mysql-cluster-community-server
640-
- sed 's/ExecStartPre=+/ExecStartPre=/' -i /lib/systemd/system/mysql.service # Hack to make file compatible with systemctl shim
641-
- systemctl start mysql
642-
- dpkg -l | grep -iE 'maria|mysql|galera'
643-
- systemctl status mysql; mysql -e 'SELECT VERSION()'
644-
- systemctl stop mysql # Stop manually as maintainer scripts don't handle this with systemctl shim
645-
- *test-install
646-
# Ignore systemctl shim result as MariaDB systemd file is incompatible with it and yields:
647-
# ERROR:systemctl:the ExecStartPre control process exited with error code
648-
- systemctl status mysql || true
649-
- mysql -e 'SELECT VERSION()' || true
650-
- sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server
651-
- *test-verify-final
652-
variables:
653-
GIT_STRATEGY: none
654-
except:
655-
variables:
656-
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
657-
658666
mariadb.org-10.7 to mariadb upgrade:
659667
stage: upgrade extras
660668
needs:
@@ -746,11 +754,11 @@ mariadb.org-10.5 to mariadb upgrade:
746754
variables:
747755
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
748756

749-
mariadb.org-10.4 to mariadb with Buster backports upgrade:
757+
mariadb.org-10.4 to mariadb upgrade:
750758
stage: upgrade extras
751759
needs:
752-
- job: build buster-backports
753-
image: debian:buster
760+
- job: build
761+
image: debian:${RELEASE}
754762
artifacts:
755763
when: always
756764
name: "$CI_BUILD_NAME"
@@ -762,6 +770,7 @@ mariadb.org-10.4 to mariadb with Buster backports upgrade:
762770
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
763771
- echo "deb https://archive.mariadb.org/mariadb-10.4/repo/debian buster main" > /etc/apt/sources.list.d/mariadb.list
764772
- apt-get update -qq
773+
- *test-install-readline-in-sid-for-backwards-compat
765774
- apt-get install -y mariadb-server-10.4
766775
# MariaDB.org version of 10.4 and early 10.5 do not install an init file, so
767776
# it must be installed here manually
@@ -780,11 +789,11 @@ mariadb.org-10.4 to mariadb with Buster backports upgrade:
780789
variables:
781790
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
782791

783-
mariadb.org-10.3 to mariadb with Buster backports upgrade:
792+
mariadb.org-10.3 to mariadb upgrade:
784793
stage: upgrade extras
785794
needs:
786-
- job: build bullseye-backports
787-
image: debian:bullseye
795+
- job: build
796+
image: debian:${RELEASE}
788797
artifacts:
789798
when: always
790799
name: "$CI_BUILD_NAME"
@@ -796,6 +805,7 @@ mariadb.org-10.3 to mariadb with Buster backports upgrade:
796805
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
797806
- echo "deb https://archive.mariadb.org/mariadb-10.3/repo/debian buster main" > /etc/apt/sources.list.d/mariadb.list
798807
- apt-get update -qq
808+
- *test-install-readline-in-sid-for-backwards-compat
799809
- apt-get install -y mariadb-server-10.3
800810
- *test-verify-initial
801811
# Buster backports is needed for liburing1 (>= 0.7) and galera-4 (>= 26.4)

debian/source/lintian-overrides

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# MariaDB use high enough debhelper so this is should
2+
# be considered as bug in lintia
3+
missing-build-dependency-for-dh-addon systemd *
14
# Necessary for drop-in-place-replacement upgrades on mysql-server/-client
25
# since package breaks/replaces these but at the same time also provides them
36
version-substvar-for-external-package mariadb-client-core -> mysql-client-5.5

include/m_string.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ extern ulonglong strtoull(const char *str, char **ptr, int base);
201201

202202
#ifdef __cplusplus
203203
#include <type_traits>
204-
template<typename T> inline const char *_swl_check(T s)
204+
template<typename T> inline constexpr const char *_swl_check(T s)
205205
{
206206
static_assert(std::is_same<T, const char (&)[sizeof(T)]>::value
207207
|| std::is_same<T, const char [sizeof(T)]>::value,

include/my_compiler.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,15 @@
4040
/* GNU C/C++ */
4141
#if defined __GNUC__
4242
# define MY_ALIGN_EXT
43-
# define MY_ASSERT_UNREACHABLE() __builtin_unreachable()
43+
44+
/*
45+
__builtin_unreachable() removes the "statement may fall through" warning-as-
46+
error when MY_ASSERT_UNREACHABLE() is used in "case xxx:" in switch (...)
47+
statements.
48+
abort() is there to prevent the execution from reaching the
49+
__builtin_unreachable() as this may cause misleading stack traces.
50+
*/
51+
# define MY_ASSERT_UNREACHABLE() { abort(); __builtin_unreachable(); }
4452

4553
/* Microsoft Visual C++ */
4654
#elif defined _MSC_VER
@@ -88,7 +96,7 @@
8896
#endif
8997

9098
#ifndef MY_ASSERT_UNREACHABLE
91-
# define MY_ASSERT_UNREACHABLE() do { assert(0); } while (0)
99+
# define MY_ASSERT_UNREACHABLE() do { abort(); } while (0)
92100
#endif
93101

94102
/**

0 commit comments

Comments
 (0)