From 7e05033f3904808cdd611a9c81c9b0ba30e73acd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 14:33:08 +0200 Subject: Adding debian version 1:10.11.7-1. Signed-off-by: Daniel Baumann --- debian/salsa-ci.yml | 395 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 237 insertions(+), 158 deletions(-) (limited to 'debian/salsa-ci.yml') diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml index d4ff17f8..92fc1186 100644 --- a/debian/salsa-ci.yml +++ b/debian/salsa-ci.yml @@ -6,11 +6,11 @@ include: # Override Salsa-CI with MariaDB specific variations variables: - BUILT_PACKAGES: "libmariadb-dev libmariadb-dev-compat libmariadb3 libmariadbd19 libmariadbd-dev mariadb-common mariadb-client mariadb-server mariadb-backup mariadb-plugin-connect mariadb-plugin-s3 mariadb-plugin-rocksdb mariadb-plugin-oqgraph mariadb-plugin-mroonga mariadb-plugin-spider mariadb-plugin-cracklib-password-check mariadb-test mariadb-test-data" + BUILT_PACKAGES: "libmariadb-dev libmariadb-dev-compat libmariadb3 libmariadbd19 libmariadbd-dev mariadb-common mariadb-client-core mariadb-client mariadb-server-core mariadb-server mariadb-backup mariadb-plugin-connect mariadb-plugin-s3 mariadb-plugin-rocksdb mariadb-plugin-oqgraph mariadb-plugin-mroonga mariadb-plugin-spider mariadb-plugin-gssapi-server mariadb-plugin-gssapi-client mariadb-plugin-cracklib-password-check mariadb-plugin-hashicorp-key-management mariadb-plugin-provider-bzip2 mariadb-plugin-provider-lz4 mariadb-plugin-provider-lzma mariadb-plugin-provider-lzo mariadb-plugin-provider-snappy mariadb-test mariadb-test-data" DEB_BUILD_OPTIONS: "nocheck noautodbgsym" RELEASE: sid # Reprotest works, but takes very long time and often fails due to timeouts. - # Thus is is best kept disabled and only occasionally manually enabled to + # Thus is best kept disabled and only occasionally manually enabled to # test that reproducibility works, along with atomic reprotest to directly # pinpoint what aspect of the build is broken if not reproducible. SALSA_CI_DISABLE_REPROTEST: 1 @@ -85,11 +85,6 @@ packaging-fix-checks: variables: - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ -build bullseye-backports: - extends: .build-package - variables: - RELEASE: bullseye-backports - # Buster only has libfmt 6.1 but 7.0 is required, so backport build for Buster # is not possible unless somebody packages libfmt7-dev for Buster. @@ -149,66 +144,59 @@ blhc: mysql --table -e "SHOW PLUGINS;" mysql .test-enable-sid-repos: &test-enable-sid-repos - # Apply usrmerge workaround for Stretch/Buster/Bullseye to Bookworm/Sid upgrades - - echo 'this system will not be supported in the future' > /etc/unsupported-skip-usrmerge-conversion # Replace any old repos with just Sid - echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list # Upgrade minimal stack first - apt-get update -qq - # Next step will fail on https://bugs.debian.org/993755 + # Complete upgrade of minimal stack + - apt-get install -qq --yes apt || export APT_STATUS="failed" + # Due to https://bugs.debian.org/993755 and #975077 upgrades from Buster or + # older to Bookworm or newer fails on: # /usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot # open shared object file: No such file or directory # dpkg: error processing package libc6:amd64 (--configure): - - apt-get install -y apt || true - # Apply workaround - - cd $(mktemp -d) # Use temp dir where apt can download and unpack files - - apt-get -y download libcrypt1 - - dpkg-deb -x libcrypt1_*.deb . - - cp -ra lib/* /lib/ || true # libcryp1 < 1:4.4.36-3 - - cp -ra usr/lib/* /lib/ || true # libxcrypt 1:4.4.36-3+ - - cd - # Back to /builds/$USER/mariadb-server/debian/output - - find /lib/*/libcrypt.* -ls # Show that new libcrypt is there - - apt-get -y --fix-broken install - # Complete upgrade of minimal stack - - apt-get install -y apt - -.test-enable-bullseye-backports-repos: &test-enable-bullseye-backports-repos | - # Enable bullseye-backports (assumes environment already Debian Bullseye) - echo 'deb http://deb.debian.org/debian bullseye-backports main' > /etc/apt/sources.list.d/bullseye-backports.list - # Increase default backports priority policy from '100' to '500' so it can actually be used - cat << EOF > /etc/apt/preferences.d/enable-backports-to-satisfy-dependencies - Package: * - Pin: release n=bullseye-* - Pin-Priority: 500 - EOF - apt-get update -qq + # Therefore, run this extra workaround if first run of apt-get install failed: + - | + if [ "$APT_STATUS" = "failed" ] + then + cd $(mktemp -d) # Use temp dir where apt can download and unpack files + apt-get -y download libcrypt1 + dpkg-deb -x libcrypt1_*.deb . + cp -ra usr/lib/* /lib/ || true # libcrypt 1:4.4.36-3+ + cd - # Back to /builds/$USER/mariadb-server/debian/output + find /lib/*/libcrypt.* -ls # Show that new libcrypt is there + apt-get -qq --yes --fix-broken install + apt-get install -qq --yes apt + fi .test-enable-artifacts-repo: &test-enable-artifacts-repo | - apt-get install -y apt-utils + apt-get install -qq --yes apt-utils apt-ftparchive packages . > Packages echo "deb [trusted=yes] file:$(pwd) ./" > /etc/apt/sources.list.d/mariadb-local.list - apt-get update + apt-get update -qq .test-install-all: &test-install-all - *test-enable-artifacts-repo - - apt-get install -yq ${BUILT_PACKAGES} + - apt-get install -qq --simulate ${BUILT_PACKAGES} + - apt-get install -qq --yes ${BUILT_PACKAGES} # Verify installation of MariaDB built in this commit - mariadb --version - dpkg -l | grep -iE 'maria|mysql|galera' - find /etc -name '*mariadb*' -ls -or -name '*mysql*' -ls | sort -k 11 # Purge old versions if they exist - - apt-get purge -y mariadb*10.? + - apt-get purge --yes mariadb*10.? - find /etc -name '*mariadb*' -ls -or -name '*mysql*' -ls | sort -k 11 .test-full-upgrade: &test-full-upgrade - *test-enable-artifacts-repo - - apt-get full-upgrade -y + - apt-get full-upgrade -qq --simulate + - apt-get full-upgrade -qq --yes # Verify installation of MariaDB built in this commit - mariadb --version - dpkg -l | grep -iE 'maria|mysql|galera' - find /etc -name '*mariadb*' -ls -or -name '*mysql*' -ls | sort -k 11 # Purge old versions if they exist - - apt-get purge -y mariadb*10.? + - apt-get purge --yes mariadb*10.? - find /etc -name '*mariadb*' -ls -or -name '*mysql*' -ls | sort -k 11 # Purging the old server might stop the running server, so restart it just in case - service mariadb restart @@ -226,6 +214,7 @@ blhc: # library tests don't have the mariadb client nor server, so don't check them .test-verify-final: &test-verify-final | + dpkg -l | grep -e "mariadb-server.*10\.11" mkdir -p debug # Ensure dir exists before using it find /var/lib/mysql -ls > debug/var-lib-mysql.list || true # Ignore errors about "no such file or directory" cp -ra /etc/mysql debug/etc-mysql @@ -244,7 +233,7 @@ blhc: - pkg-config --cflags --libs mysqlclient - pkg-config --cflags --libs libmariadb - pkg-config --cflags --libs mariadb - - apt-get install -y --no-install-recommends g++ + - apt-get install -qq --yes --no-install-recommends g++ - | # Build a test binary that depends on libmysqlclient cat > b933063.cpp < /etc/apt/sources.list.d/ubuntu.list - - apt-get update -qq - # First install often fail due to bug in mysql-8.0 - - apt-get install -y mysql-server 'libmysqlc*' || true + - apt-get install -qq --yes mysql-server 'libmysqlc*' # Ensure MySQL 8.0 package actually got installed - - dpkg -l | grep -e "mysql-server.*8.0" - - sleep 10 && apt-get install -f - - *test-verify-initial - # 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-all + - dpkg -l | grep mysql - service mysql status - - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server + - *test-verify-initial + # Install Debian Sid signing keys as Ubuntu does not have them by default + - apt-get install -qq --yes --no-install-recommends curl + - curl -sSLO http://deb.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2023.4_all.deb + - apt-get install -qq --yes ./debian-archive-keyring_* + - *test-enable-sid-repos + # Ensure mysqld will not crash on next shutdown for any reason + - service mysql restart + - *test-enable-artifacts-repo + - apt-get install -qq --simulate mariadb-server + - apt-get install -qq --yes mariadb-server + # Due to usrmerge, full-upgrade from Mantic to Trixie or newer may not work + - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ + # Remove everything MySQL except mysql-common which also MariaDB depends on + - apt-get purge --yes mysql-s* mysql-cl* libmysql* - *test-verify-final # 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. -mysql-community-cluster-8.0 from MySQL.com with Bullseye backports upgrade: +mysql-community-cluster-8.0 from MySQL.com with Bookworm upgrade: extends: .salsa-ci-template-for-mariadb stage: upgrade MariaDB variant - needs: - - job: build bullseye-backports - image: debian:bullseye + image: debian:bookworm script: - *test-prepare-container - - apt-get install --no-install-recommends --yes ca-certificates curl systemctl - - curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xbca43417c3b485dd128ec6d4b7b3b788a8d3785c" -o /etc/apt/trusted.gpg.d/mysql.asc - - echo "deb https://repo.mysql.com/apt/debian/ bullseye mysql-cluster-8.0" > /etc/apt/sources.list.d/mysql.list - - apt-get update -qq - - apt-get install -y mysql-cluster-community-server + - | + apt-get install -qq --yes --no-install-recommends ca-certificates curl systemctl + curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xbca43417c3b485dd128ec6d4b7b3b788a8d3785c" -o /etc/apt/trusted.gpg.d/mysql.asc + echo "deb https://repo.mysql.com/apt/debian/ bookworm mysql-cluster-8.0" > /etc/apt/sources.list.d/mysql.list + apt-get update -qq + - apt-get install -qq --yes mysql-cluster-community-server - sed 's/ExecStartPre=+/ExecStartPre=/' -i /lib/systemd/system/mysql.service # Hack to make file compatible with systemctl shim - systemctl start mysql - dpkg -l | grep -iE 'maria|mysql|galera' - systemctl status mysql; mysql -e 'SELECT VERSION()' - systemctl stop mysql # Stop manually as maintainer scripts don't handle this with systemctl shim - # 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-all + - *test-enable-sid-repos + - *test-enable-artifacts-repo + - apt-get install -qq --simulate mariadb-server + - apt-get install -qq --yes mariadb-server # 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 @@ -742,11 +819,11 @@ mariadb.org-10.11 upgrade: variables: MARIADB_VERSION: "10.11" script: - - apt-get install -y mariadb-server + - apt-get install -qq --yes mariadb-server - *test-verify-initial # Install MariaDB built in this commit # Force downgrades so our version installs on top of upstream revision, e.g. 1:11.10.1-1 vs 1:11.10.1+mariadb~sid - - apt-get install -y --allow-downgrades ./*.deb + - apt-get install -qq --yes --allow-downgrades ./*.deb # Verify installation of MariaDB built in this commit - dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed - mariadb --version # Client version @@ -760,7 +837,7 @@ mariadb.org-10.10 upgrade: MARIADB_VERSION: "10.10" script: # this should not use Sid to begin with - - apt-get install -y mariadb-server=1:10.10.2+maria~debunstable mariadb-client=1:10.10.2+maria~debunstable + - apt-get install -qq --yes mariadb-server=1:10.10.2+maria~debunstable mariadb-client=1:10.10.2+maria~debunstable - *test-verify-initial - *test-full-upgrade - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -773,7 +850,7 @@ mariadb.org-10.9 upgrade: MARIADB_VERSION: "10.9" script: # this should not use Sid to begin with - - apt-get install -y mariadb-server=1:10.9.4+maria~debunstable mariadb-client=1:10.9.4+maria~debunstable + - apt-get install -qq --yes mariadb-server=1:10.9.4+maria~debunstable mariadb-client=1:10.9.4+maria~debunstable - *test-verify-initial - *test-full-upgrade - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -785,7 +862,7 @@ mariadb.org-10.8 upgrade: variables: MARIADB_VERSION: "10.8" script: - - apt-get install -y mariadb-server-10.8 + - apt-get install -qq --yes mariadb-server-10.8 - *test-verify-initial - *test-install-all - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -797,7 +874,7 @@ mariadb.org-10.7 upgrade: variables: MARIADB_VERSION: "10.7" script: - - apt-get install -y mariadb-server-10.7 + - apt-get install -qq --yes mariadb-server-10.7 - *test-verify-initial - *test-install-all - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -811,8 +888,8 @@ mariadb.org-10.6 upgrade: script: # Package libmariadbclient-dev from mariadb.org conflicts with libmariadb-dev in Sid, so cannot use wildcard that would include it # Enable this line when there is a way to install them only from the mariadb.org repo - # - apt-get install -y 'mariadb*' libmariadb3 'libmariadb-*' 'libmariadbd*' - - apt-get install -y mariadb-server-10.6 + # - apt-get install -qq --yes 'mariadb*' libmariadb3 'libmariadb-*' 'libmariadbd*' + - apt-get install -qq --yes mariadb-server-10.6 - *test-verify-initial - *test-install-all - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -826,7 +903,7 @@ mariadb.org-10.5 upgrade: MARIADB_VERSION: "10.5" script: - *test-install-openssl1-in-sid-for-backwards-compat - - apt-get install -y mariadb-server-10.5 + - apt-get install -qq --yes mariadb-server-10.5 - *test-verify-initial - *test-install-all - service mariadb status # There is no init.d/mysql in MariaDB 10.5+ @@ -841,7 +918,7 @@ mariadb.org-10.4 upgrade: script: - *test-install-readline-in-sid-for-backwards-compat - *test-install-openssl1-in-sid-for-backwards-compat - - apt-get install -y mariadb-server-10.4 + - apt-get install -qq --yes 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 - cp /usr/share/mysql/mysql.init /etc/init.d/mysql; chmod +x /etc/init.d/mysql; service mysql start; sleep 5 @@ -861,11 +938,11 @@ mariadb.org-10.3 upgrade: script: - *test-install-readline-in-sid-for-backwards-compat - *test-install-openssl1-in-sid-for-backwards-compat - - apt-get install -y mariadb-server-10.3 + - apt-get install -qq --yes mariadb-server-10.3 - *test-verify-initial - *test-install-all # mariadb-10.3 in Buster ships a /etc/init.d/mysql and it continues to exist - # after upgrade, but is be removed on purge + # after upgrade, and is removed only on purge - service mysql status || service mariadb status # Give the mariadb-upgrade plenty of time to complete, otherwise next commands # fail on non-existing mariadb.sys user @@ -881,7 +958,7 @@ mariadb.org-10.2 upgrade: script: - *test-install-readline-in-sid-for-backwards-compat - *test-install-openssl1-in-sid-for-backwards-compat - - apt-get install -y mariadb-server-10.2 + - apt-get install -qq --yes mariadb-server-10.2 # Verify initial state before upgrade - dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed - service mysql status @@ -893,13 +970,14 @@ mariadb.org-10.2 upgrade: mysql --defaults-file=/etc/mysql/debian.cnf --table -e "SELECT * FROM mysql.plugin; SHOW PLUGINS;" - *test-install-all # mariadb-10.2 in ships a /etc/init.d/mysql and it continues to exist - # after upgrade, but is be removed on purge + # after upgrade, and is removed only on purge - service mysql status || service mariadb status # Give the mariadb-upgrade plenty of time to complete, otherwise next commands # fail on non-existing mariadb.sys user - sleep 15 - *test-verify-final +# Buster is the last Debian release Oracle MySQL 5.7 offers binaries for mysql.com-5.7 with Buster upgrade: extends: .salsa-ci-template-for-mariadb stage: upgrade MariaDB variant @@ -909,11 +987,11 @@ mysql.com-5.7 with Buster upgrade: script: - *test-prepare-container - | - apt-get install --no-install-recommends --yes gpg gpg-agent dirmngr ca-certificates # Bare minimal (<4MB) for apt-key to work + apt-get install -qq --yes --no-install-recommends 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 B7B3B788A8D3785C echo "deb https://repo.mysql.com/apt/debian/ buster mysql-5.7" > /etc/apt/sources.list.d/mysql.list apt-get update -qq - apt-get install -y 'mysql*' 'libmysqlc*' + - apt-get install -qq --yes 'mysql*' 'libmysqlc*' # Ensure MySQL 5.7 package actually got installed - dpkg -l | grep -e "mysql-server.*5.7" - *test-verify-initial @@ -932,25 +1010,26 @@ mysql.com-5.7 with Buster upgrade: - sleep 15 # Give the mysql_upgrade a bit of extra time to complete with MySQL 5.7 before querying the server - *test-verify-final -percona-xtradb-5.7 with Bullseye backports upgrade: +# Note: pmm2-client does not exist in the Bookworm repository anymore +percona-xtradb-5.7 with Bookworm upgrade: extends: .salsa-ci-template-for-mariadb stage: upgrade MariaDB variant - needs: - - job: build bullseye-backports - image: debian:bullseye + image: debian:bookworm script: - *test-prepare-container - | - 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/ bullseye main" > /etc/apt/sources.list.d/mysql.list + apt-get install -qq --yes --no-install-recommends ca-certificates curl systemctl + curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9334A25F8507EFA5" -o /etc/apt/trusted.gpg.d/percona.asc + echo "deb https://repo.percona.com/apt/ bookworm main" > /etc/apt/sources.list.d/percona.list apt-get update -qq - apt-get install -y percona-xtradb-cluster-full-57 percona-xtrabackup-24 percona-toolkit pmm2-client + - apt-get install -qq --yes percona-xtradb-cluster-full-57 percona-xtrabackup-24 percona-toolkit + # Ensure Percona 5.7 package actually got installed + - dpkg -l | grep -e "percona.*5\.7" - service mysql status - *test-verify-initial - # 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-enable-sid-repos - *test-install-all - - service mysql status + # Percona package owned /etc/init.d/mysql, so on removal and upgrade to MariaDB old service name can't be referenced anymore + - 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 -- cgit v1.2.3