@@ -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,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+
493538mariadb.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-
658666mariadb.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)
0 commit comments