@@ -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+
5967build 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-
284292mariadb-10.3 Buster upgrade :
285293 stage : upgrade from Buster
286294 needs :
@@ -490,7 +498,9 @@ 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
493- mariadb.org 10.9 to mariadb upgrade :
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 :
494504 stage : upgrade extras
495505 needs :
496506 - job : build
@@ -502,28 +512,30 @@ mariadb.org 10.9 to mariadb upgrade:
502512 - ${WORKING_DIR}/debug
503513 script :
504514 - *test-prepare-container
505- - apt install -y curl
506- - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
507- - echo "deb https://deb.mariadb.org/10.9/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
508- - apt-get update
509- - apt-get install -y mariadb-server-10.9
510- - *test-verify-initial
511- # Install MariaDB built in this commit
512- # 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
513- - apt-get install -y --allow-downgrades ./*.deb
514- # Verify installation of MariaDB built in this commit
515- - dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed
516- - mariadb --version # Client version
517- - service mariadb status # There is no init.d/mysql in MariaDB 10.5+
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
518531 - *test-verify-final
519532 variables :
520533 GIT_STRATEGY : none
521534 except :
522535 variables :
523536 - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
524- allow_failure : true
525537
526- mariadb.org- 10.8 to mariadb upgrade :
538+ mariadb.org 10.9 to mariadb upgrade :
527539 stage : upgrade extras
528540 needs :
529541 - job : build
@@ -537,9 +549,9 @@ mariadb.org-10.8 to mariadb upgrade:
537549 - *test-prepare-container
538550 - apt install -y curl
539551 - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
540- - echo "deb https://deb.mariadb.org/10.8 /debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
552+ - echo "deb https://deb.mariadb.org/10.9 /debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
541553 - apt-get update
542- - apt-get install -y mariadb-server-10.8
554+ - apt-get install -y mariadb-server-10.9 mariadb-client-10.9
543555 - *test-verify-initial
544556 # Install MariaDB built in this commit
545557 # 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
@@ -556,9 +568,7 @@ mariadb.org-10.8 to mariadb upgrade:
556568 - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
557569 allow_failure : true
558570
559- # Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump.
560- # The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh.
561- mysql-community-cluster-8.0 from MySQL.com upgrade :
571+ mariadb.org-10.8 to mariadb upgrade :
562572 stage : upgrade extras
563573 needs :
564574 - job : build
@@ -570,28 +580,26 @@ mysql-community-cluster-8.0 from MySQL.com upgrade:
570580 - ${WORKING_DIR}/debug
571581 script :
572582 - *test-prepare-container
573- - apt-get install --no-install-recommends --yes ca-certificates curl systemctl
574- - curl -sS "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x859be8d7c586f538430b19c2467b942d3a79bd29" -o /etc/apt/trusted.gpg.d/mysql.asc
575- - echo "deb https://repo.mysql.com/apt/debian/ bullseye mysql-cluster-8.0" > /etc/apt/sources.list.d/mysql.list
576- - apt-get update -qq
577- - apt-get install -y mysql-cluster-community-server
578- - sed 's/ExecStartPre=+/ExecStartPre=/' -i /lib/systemd/system/mysql.service # Hack to make file compatible with systemctl shim
579- - systemctl start mysql
580- - dpkg -l | grep -iE 'maria|mysql|galera'
581- - systemctl status mysql; mysql -e 'SELECT VERSION()'
582- - systemctl stop mysql # Stop manually as maintainer scripts don't handle this with systemctl shim
583- - *test-install
584- # Ignore systemctl shim result as MariaDB systemd file is incompatible with it and yields:
585- # ERROR:systemctl:the ExecStartPre control process exited with error code
586- - systemctl status mysql || true
587- - mysql -e 'SELECT VERSION()' || true
588- - sleep 5 # Give the mysql_upgrade a bit of time to complete before querying the server
583+ - apt install -y curl
584+ - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
585+ - echo "deb https://deb.mariadb.org/10.8/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
586+ - apt-get update
587+ - apt-get install -y mariadb-server-10.8
588+ - *test-verify-initial
589+ # Install MariaDB built in this commit
590+ # 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
591+ - apt-get install -y --allow-downgrades ./*.deb
592+ # Verify installation of MariaDB built in this commit
593+ - dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed
594+ - mariadb --version # Client version
595+ - service mariadb status # There is no init.d/mysql in MariaDB 10.5+
589596 - *test-verify-final
590597 variables :
591598 GIT_STRATEGY : none
592599 except :
593600 variables :
594601 - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
602+ allow_failure : true
595603
596604mariadb.org-10.7 to mariadb upgrade :
597605 stage : upgrade extras
@@ -685,11 +693,11 @@ mariadb.org-10.5 to mariadb upgrade:
685693 variables :
686694 - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
687695
688- mariadb.org-10.4 to mariadb with Buster backports upgrade :
696+ mariadb.org-10.4 to mariadb upgrade :
689697 stage : upgrade extras
690698 needs :
691- - job : build buster-backports
692- image : debian:buster
699+ - job : build
700+ image : debian:${RELEASE}
693701 artifacts :
694702 when : always
695703 name : " $CI_BUILD_NAME"
@@ -701,6 +709,7 @@ mariadb.org-10.4 to mariadb with Buster backports upgrade:
701709 - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
702710 - echo "deb https://archive.mariadb.org/mariadb-10.4/repo/debian buster main" > /etc/apt/sources.list.d/mariadb.list
703711 - apt-get update -qq
712+ - *test-install-readline-in-sid-for-backwards-compat
704713 - apt-get install -y mariadb-server-10.4
705714 # MariaDB.org version of 10.4 and early 10.5 do not install an init file, so
706715 # it must be installed here manually
@@ -719,11 +728,11 @@ mariadb.org-10.4 to mariadb with Buster backports upgrade:
719728 variables :
720729 - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
721730
722- mariadb.org-10.3 to mariadb with Buster backports upgrade :
731+ mariadb.org-10.3 to mariadb upgrade :
723732 stage : upgrade extras
724733 needs :
725- - job : build bullseye-backports
726- image : debian:bullseye
734+ - job : build
735+ image : debian:${RELEASE}
727736 artifacts :
728737 when : always
729738 name : " $CI_BUILD_NAME"
@@ -735,6 +744,7 @@ mariadb.org-10.3 to mariadb with Buster backports upgrade:
735744 - curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
736745 - echo "deb https://archive.mariadb.org/mariadb-10.3/repo/debian buster main" > /etc/apt/sources.list.d/mariadb.list
737746 - apt-get update -qq
747+ - *test-install-readline-in-sid-for-backwards-compat
738748 - apt-get install -y mariadb-server-10.3
739749 - *test-verify-initial
740750 # Buster backports is needed for liburing1 (>= 0.7) and galera-4 (>= 26.4)
0 commit comments