diff -Nru mariadb-10.6-10.6.11/debian/additions/mariadb-report mariadb-10.6-10.6.11/debian/additions/mariadb-report --- mariadb-10.6-10.6.11/debian/additions/mariadb-report 2022-11-14 06:27:08.000000000 +0000 +++ mariadb-10.6-10.6.11/debian/additions/mariadb-report 2023-01-03 06:42:46.000000000 +0000 @@ -1376,7 +1376,7 @@ __ Query Cache _________________________________________________________ Memory usage @>>>>>> of @>>>>>> %Usage: @>>>>> make_short($qc_mem_used, 1), make_short($vars{'query_cache_size'}, 1), perc($qc_mem_used, $vars{'query_cache_size'}) -Block Fragmnt @>>>>>% +Block Fragment @>>>>>% perc($stats{'Qcache_free_blocks'}, $stats{'Qcache_total_blocks'}) Hits @>>>>>> @>>>>>/s make_short($stats{'Qcache_hits'}), t($stats{'Qcache_hits'}) diff -Nru mariadb-10.6-10.6.11/debian/changelog mariadb-10.6-10.6.11/debian/changelog --- mariadb-10.6-10.6.11/debian/changelog 2022-12-26 21:48:47.000000000 +0000 +++ mariadb-10.6-10.6.11/debian/changelog 2023-01-03 15:59:10.000000000 +0000 @@ -1,8 +1,24 @@ -mariadb-10.6 (1:10.6.11-1~ubuntu23.04.1~1672091319.920c2cbef06.dev.otto) lunar; urgency=medium +mariadb-10.6 (1:10.6.11-2~ubuntu23.04.1~1672761538.2934e8a795c.debian.latest) lunar; urgency=medium * No-change backport to lunar - -- Otto Kekäläinen Mon, 26 Dec 2022 13:48:47 -0800 + -- Otto Kekäläinen Tue, 03 Jan 2023 07:59:10 -0800 + +mariadb-10.6 (1:10.6.11-2) unstable; urgency=medium + + [ Otto Kekäläinen ] + * Standardize on using capitalized 'ON' in CMake build options + * Fix Breaks/Replaces for smoother upgrades from MySQL 5.5 + and update maintainer documentation on how to do comprehensive + upgrade testing + * Enable automatic datadir move also on upgrades from MySQL.com packages + and make upgrades from MySQL Community (Cluster) 8.0 not get + stuck on dpkg and server restart + + [ Eric Lindblad ] + * Fix typos + + -- Otto Kekäläinen Mon, 02 Jan 2023 22:42:46 -0800 mariadb-10.6 (1:10.6.11-1) unstable; urgency=medium diff -Nru mariadb-10.6-10.6.11/debian/control mariadb-10.6-10.6.11/debian/control --- mariadb-10.6-10.6.11/debian/control 2022-11-14 06:27:08.000000000 +0000 +++ mariadb-10.6-10.6.11/debian/control 2023-01-03 06:42:46.000000000 +0000 @@ -203,6 +203,7 @@ mysql-client-core-5.6, mysql-client-core-5.7, mysql-client-core-8.0, + mysql-cluster-community-client-plugins, mysql-server-core-5.5, mysql-server-core-5.6, mysql-server-core-5.7, @@ -231,6 +232,7 @@ mysql-client-core-5.6, mysql-client-core-5.7, mysql-client-core-8.0, + mysql-cluster-community-client-plugins, mysql-server-core-5.5, mysql-server-core-5.6, mysql-server-core-5.7, diff -Nru mariadb-10.6-10.6.11/debian/mariadb-server-10.6.preinst mariadb-10.6-10.6.11/debian/mariadb-server-10.6.preinst --- mariadb-10.6-10.6.11/debian/mariadb-server-10.6.preinst 2022-11-14 06:27:08.000000000 +0000 +++ mariadb-10.6-10.6.11/debian/mariadb-server-10.6.preinst 2023-01-03 06:42:46.000000000 +0000 @@ -119,6 +119,16 @@ fi +# If there is no debian-*.flag, and no version was detected, but a file that +# indicated MySQL 8.0 is found, assume so and trigger data directory moval. +if [ -z "$found_version" ] && + [ -z "$(find $mysql_datadir/debian-*.flag 2> /dev/null)" ] && + [ -f "$mysql_datadir/undo_001" ] +then + echo "$mysql_datadir: no server version flag found, assuming MySQL 8.0 data encountered" + downgrade_detected=true + found_version="previous" # Just use dummy name as we don't know real version +fi # Don't abort dpkg if downgrade is detected (as was done previously). # Instead simply move the old datadir and create a new for this_version. @@ -133,8 +143,8 @@ echo "Please manually export/import your data (e.g. with mysqldump) if needed." 1>&2 mv -f "$mysql_datadir" "$mysql_datadir-$found_version" # Also move away the old debian.cnf file that included credentials that are - # no longer valid - mv -f /etc/mysql/debian.cnf "/etc/mysql/debian.cnf-$found_version" + # no longer valid. If none existed, ignore error and let dpkg continue. + mv -f /etc/mysql/debian.cnf "/etc/mysql/debian.cnf-$found_version" || true fi # to be sure diff -Nru mariadb-10.6-10.6.11/debian/salsa-ci.yml mariadb-10.6-10.6.11/debian/salsa-ci.yml --- mariadb-10.6-10.6.11/debian/salsa-ci.yml 2022-11-14 06:27:08.000000000 +0000 +++ mariadb-10.6-10.6.11/debian/salsa-ci.yml 2023-01-03 06:42:46.000000000 +0000 @@ -124,6 +124,13 @@ curl -sS -O http://ftp.de.debian.org/debian/pool/main/r/readline5/libreadline5_5.2+dfsg-3+b13_amd64.deb apt-get -qq install --no-install-recommends --yes ./libreadline5_5.2+dfsg-3+b13_amd64.deb +# OpenSSL 1.1 was Debian Sid in Dec 2022 (as Bookworm will ship with OpenSSL 3.0 +# only). To be able to install versions of MariaDB that depend on OpenSSL 1.1, +# fetch and install it manually. +.test-install-openssl1-in-sid-for-backwards-compat: &test-install-openssl1-in-sid-for-backwards-compat | + curl -sS -O https://snapshot.debian.org/archive/debian/20220507T034236Z/pool/main/o/openssl/libssl1.1_1.1.1o-1_amd64.deb + apt-get -qq install --no-install-recommends --yes ./libssl1.1_1.1.1o-1_amd64.deb + .test-verify-initial: &test-verify-initial | dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed service mysql status || service mariadb status # Early MariaDB 10.5 only had 'mariadb' @@ -263,7 +270,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb-10.6 in Sid: +simple upgrade: stage: upgrade MariaDB needs: - job: build @@ -275,6 +282,7 @@ - ${WORKING_DIR}/debug script: - *test-prepare-container + - apt-get install -y 'default-mysql*' 'mariadb-*' 'libmariadb*' - *test-install - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ - *test-verify-final @@ -284,7 +292,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb-10.5 with Bullseye backports: +mariadb-10.5 with Bullseye backports upgrade: stage: upgrade MariaDB variant needs: - job: build bullseye-backports @@ -310,7 +318,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb-10.3 with Buster backports: +mariadb-10.3 with Buster backports upgrade: stage: upgrade MariaDB variant needs: - job: build buster-backports @@ -338,7 +346,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb-10.5 and Bullseye: +mariadb-10.5 and Bullseye upgrade: stage: upgrade MariaDB and distro needs: - job: build @@ -364,7 +372,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb-10.3 and Buster: +mariadb-10.3 and Buster upgrade: stage: upgrade MariaDB and distro needs: - job: build @@ -529,7 +537,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -default-libmysqlclient-dev Sid upgrade: +default-libmysqlclient-dev upgrade: stage: upgrade MariaDB needs: - job: build @@ -549,7 +557,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade default-libmysqlclient-dev and Bullseye: +default-libmysqlclient-dev and Bullseye upgrade: stage: upgrade MariaDB and distro needs: - job: build @@ -570,7 +578,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade default-libmysqlclient-dev and Buster: +default-libmysqlclient-dev and Buster upgrade: stage: upgrade MariaDB and distro needs: - job: build @@ -591,7 +599,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade default-libmysqlclient-dev with Bullseye backports: +default-libmysqlclient-dev with Bullseye backports upgrade: stage: upgrade MariaDB needs: - job: build bullseye-backports @@ -612,7 +620,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade default-libmysqlclient-dev with Buster backports: +default-libmysqlclient-dev with Buster backports upgrade: stage: upgrade MariaDB needs: - job: build buster-backports @@ -635,7 +643,7 @@ # Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump. # The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh. -upgrade from mysql-8.0 in Sid: +mysql-8.0 in Sid upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -670,11 +678,14 @@ # Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump. # The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh. -upgrade from mysql-8.0 from Ubuntu 20.04 with Buster backports: +# +# Testing on Focal binaries on Buster works. Using Jammy binaries on Bullseye +# does not work as libc in Jammy is too new. +mysql-8.0 from Ubuntu 22.04 with Bullseye backports upgrade: stage: upgrade MariaDB variant needs: - - job: build buster-backports - image: debian:buster + - job: build bullseye-backports + image: debian:bullseye artifacts: when: always name: "$CI_BUILD_NAME" @@ -692,7 +703,7 @@ - sleep 10 && apt-get install -f - *test-verify-initial # Enable backports to make galera-4 available - - echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list && apt-get update -qq + - echo "deb http://deb.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list && apt-get update -qq - *test-install - service mysql status - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server @@ -705,7 +716,7 @@ # Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump. # The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh. -upgrade from mysql-community-cluster-8.0 from MySQL.com with Bullseye backports: +mysql-community-cluster-8.0 from MySQL.com with Bullseye backports upgrade: stage: upgrade MariaDB variant needs: - job: build bullseye-backports @@ -730,7 +741,10 @@ # Enable backports to make galera-4 available - echo "deb http://deb.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list && apt-get update -qq - *test-install - - systemctl status mysql; mysql -e 'SELECT VERSION()' + # Ignore systemctl shim result as MariaDB systemd file is incompatible with it and yields: + # ERROR:systemctl:the ExecStartPre control process exited with error code + - systemctl status mysql || true + - mysql -e 'SELECT VERSION()' || true - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server - *test-verify-final variables: @@ -739,7 +753,7 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb.org-10.6: +mariadb.org-10.6 upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -774,7 +788,8 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb.org-10.5: +# archive.mariadb.org for Debian Sid latest is 10.5.13 +mariadb.org-10.5 upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -790,6 +805,7 @@ - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc - echo "deb https://archive.mariadb.org/mariadb-10.5/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list - apt-get update -qq + - *test-install-openssl1-in-sid-for-backwards-compat - apt-get install -y mariadb-server-10.5 - *test-verify-initial # Install MariaDB built in this commit @@ -804,7 +820,8 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb.org-10.4: +# archive.mariadb.org for Debian Sid latest is 10.4.17 +mariadb.org-10.4 upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -821,6 +838,7 @@ - echo "deb https://archive.mariadb.org/mariadb-10.4/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list - apt-get update -qq - *test-install-readline-in-sid-for-backwards-compat + - *test-install-openssl1-in-sid-for-backwards-compat - apt-get install -y mariadb-server-10.4 # MariaDB.org version of 10.4 and early 10.5 do not install an init file, so # it must be installed here manually @@ -837,7 +855,8 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb.org-10.3: +# archive.mariadb.org for Debian Sid latest is 10.3.27 +mariadb.org-10.3 upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -854,6 +873,7 @@ - echo "deb https://archive.mariadb.org/mariadb-10.3/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list - apt-get update -qq - *test-install-readline-in-sid-for-backwards-compat + - *test-install-openssl1-in-sid-for-backwards-compat - apt-get install -y mariadb-server-10.3 - *test-verify-initial - *test-install @@ -868,7 +888,8 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mariadb.org-10.2: +# archive.mariadb.org for Debian Sid latest is 10.2.21 +from mariadb.org-10.2 upgrade: stage: upgrade MariaDB variant needs: - job: build @@ -885,6 +906,7 @@ - echo "deb https://archive.mariadb.org/mariadb-10.2/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list - apt-get update -qq - *test-install-readline-in-sid-for-backwards-compat + - *test-install-openssl1-in-sid-for-backwards-compat - apt-get install -y mariadb-server-10.2 # Verify initial state before upgrade - dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed @@ -907,11 +929,11 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from mysql.com-5.7 with Buster backports: +mysql.com-5.7 with bullseye backports upgrade: stage: upgrade MariaDB variant needs: - - job: build buster-backports - image: debian:buster + - job: build bullseye-backports + image: debian:bullseye artifacts: when: always name: "$CI_BUILD_NAME" @@ -922,14 +944,23 @@ - | apt-get install --no-install-recommends --yes gpg gpg-agent dirmngr ca-certificates # Bare minimal (<4MB) for apt-key to work apt-key adv --recv-keys --keyserver hkps://keyserver.ubuntu.com:443 467B942D3A79BD29 - echo "deb https://repo.mysql.com/apt/debian/ buster mysql-5.7" > /etc/apt/sources.list.d/mysql.list + echo "deb https://repo.mysql.com/apt/debian/ bullseye mysql-5.7" > /etc/apt/sources.list.d/mysql.list apt-get update -qq apt-get install -y 'mysql*' 'libmysqlc*' - *test-verify-initial # Enable backports to make galera-4 available - - echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list.d/backports.list && apt-get update -qq + - echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list.d/backports.list && apt-get update -qq - *test-install - - service mysql status + # Due to some (currently unknown) changes in MySQL 5.7 packaging or apt + # behaviour changes, a system with a previous installation of MySQL will + # on upgrades to MariaDB first fully remove MySQL, including the + # /etc/init.d/mysql file, so previous techniques in + # mariadb-server-10.6.postinst to maintain backwards compatibility with + # 'service mysql status' after installing MariaDB on top MySQL no longer + # works. Thus the step to test it now intentionally has a fallback to use + # the service name 'mariadb' instead, and the fallback is always used. + - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server + - service mysql status || service mariadb status - sleep 15 # Give the mysql_upgrade a bit of extra time to complete with MySQL 5.7 before querying the server - *test-verify-final variables: @@ -938,11 +969,11 @@ variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -upgrade from percona-xtradb-5.7 with Buster backports: +percona-xtradb-5.7 with bullseye backports upgrade: stage: upgrade MariaDB variant needs: - - job: build buster-backports - image: debian:buster + - job: build bullseye-backports + image: debian:bullseye artifacts: when: always name: "$CI_BUILD_NAME" @@ -953,16 +984,16 @@ - | apt-get install --no-install-recommends --yes gpg gpg-agent dirmngr ca-certificates # Bare minimal (<4MB) for apt-key to work apt-key adv --recv-keys --keyserver hkps://keyserver.ubuntu.com:443 9334A25F8507EFA5 - echo "deb https://repo.percona.com/apt/ buster main" > /etc/apt/sources.list.d/mysql.list + echo "deb https://repo.percona.com/apt/ bullseye main" > /etc/apt/sources.list.d/mysql.list apt-get update -qq apt-get install -y percona-xtradb-cluster-full-57 percona-xtrabackup-24 percona-toolkit pmm2-client - service mysql status - *test-verify-initial # Enable backports to make galera-4 available - - echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list.d/backports.list && apt-get update -qq + - echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list.d/backports.list && apt-get update -qq - *test-install + - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server - service mysql status - - sleep 15 # Give the mysql_upgrade a bit of extra time to complete with MySQL 5.7 before querying the server - *test-verify-final variables: GIT_STRATEGY: none