From a7a67b0b863145f22704138a3edb7bd1a85bc1a0 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Thu, 14 Oct 2021 14:50:41 +1100 Subject: [PATCH 1/2] bootstrap: Add Debian 11 BUG: https://bugzilla.samba.org/show_bug.cgi?id=14872 Signed-off-by: Martin Schwenke Reviewed-by: Andrew Bartlett Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Mon Oct 18 17:19:17 UTC 2021 on sn-devel-184 (backported from commit c901adaa0d4526deff550806e49976d686122674) --- .gitlab-ci-main.yml | 8 +- bootstrap/.gitlab-ci.yml | 3 + bootstrap/config.py | 8 ++ bootstrap/generated-dists/Vagrantfile | 7 ++ bootstrap/generated-dists/debian11/Dockerfile | 27 +++++ .../generated-dists/debian11/bootstrap.sh | 111 ++++++++++++++++++ bootstrap/generated-dists/debian11/locale.sh | 55 +++++++++ .../generated-dists/debian11/packages.yml | 96 +++++++++++++++ bootstrap/sha1sum.txt | 2 +- 9 files changed, 315 insertions(+), 2 deletions(-) create mode 100644 bootstrap/generated-dists/debian11/Dockerfile create mode 100755 bootstrap/generated-dists/debian11/bootstrap.sh create mode 100755 bootstrap/generated-dists/debian11/locale.sh create mode 100644 bootstrap/generated-dists/debian11/packages.yml diff --git a/.gitlab-ci-main.yml b/.gitlab-ci-main.yml index 832e8a8b5e7..8b061707442 100644 --- a/.gitlab-ci-main.yml +++ b/.gitlab-ci-main.yml @@ -42,7 +42,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: 733f8fa83c921e5a7ec8f5470b2ca7d52548f4b0 + SAMBA_CI_CONTAINER_TAG: 7e89da77f0226acca0dff435f99f56d600170450 # # We use the ubuntu1804 image as default as # it matches what we have on sn-devel-184. @@ -58,6 +58,7 @@ variables: SAMBA_CI_CONTAINER_IMAGE_ubuntu2004: ubuntu2004 SAMBA_CI_CONTAINER_IMAGE_debian9: debian9 SAMBA_CI_CONTAINER_IMAGE_debian10: debian10 + SAMBA_CI_CONTAINER_IMAGE_debian11: debian11 SAMBA_CI_CONTAINER_IMAGE_opensuse151: opensuse151 SAMBA_CI_CONTAINER_IMAGE_opensuse152: opensuse152 SAMBA_CI_CONTAINER_IMAGE_fedora33: fedora33 @@ -535,6 +536,11 @@ debian10-samba-o3: variables: SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_debian10} +debian11-samba-o3: + extends: .samba-o3-template + variables: + SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_debian11} + opensuse151-samba-o3: extends: .samba-o3-template variables: diff --git a/bootstrap/.gitlab-ci.yml b/bootstrap/.gitlab-ci.yml index 5e5856b1e90..33534f5f1dd 100644 --- a/bootstrap/.gitlab-ci.yml +++ b/bootstrap/.gitlab-ci.yml @@ -103,6 +103,9 @@ ubuntu2004: debian10: extends: .build_image_template +debian11: + extends: .build_image_template + fedora33: extends: .build_image_template diff --git a/bootstrap/config.py b/bootstrap/config.py index ba4304bb9f8..71bc571b046 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -399,6 +399,14 @@ DEB_DISTS = { 'liburing-dev': '', # not available } }, + 'debian11': { + 'docker_image': 'debian:11', + 'vagrant_box': 'debian/bullseye64', + 'replace': { + 'language-pack-en': '', # included in locales + 'liburing-dev': '', # not available + } + }, 'ubuntu1604': { 'docker_image': 'ubuntu:16.04', 'vagrant_box': 'ubuntu/xenial64', diff --git a/bootstrap/generated-dists/Vagrantfile b/bootstrap/generated-dists/Vagrantfile index 42da0161e40..780320ec7c8 100644 --- a/bootstrap/generated-dists/Vagrantfile +++ b/bootstrap/generated-dists/Vagrantfile @@ -31,6 +31,13 @@ Vagrant.configure("2") do |config| v.vm.provision :shell, path: "debian10/locale.sh" end + config.vm.define "debian11" do |v| + v.vm.box = "debian/bullseye64" + v.vm.hostname = "debian11" + v.vm.provision :shell, path: "debian11/bootstrap.sh" + v.vm.provision :shell, path: "debian11/locale.sh" + end + config.vm.define "fedora33" do |v| v.vm.box = "fedora/33-cloud-base" v.vm.hostname = "fedora33" diff --git a/bootstrap/generated-dists/debian11/Dockerfile b/bootstrap/generated-dists/debian11/Dockerfile new file mode 100644 index 00000000000..6a16324f201 --- /dev/null +++ b/bootstrap/generated-dists/debian11/Dockerfile @@ -0,0 +1,27 @@ +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +FROM debian:11 + +# pass in with --build-arg while build +ARG SHA1SUM +RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt + +ADD *.sh /tmp/ +# need root permission, do it before USER samba +RUN /tmp/bootstrap.sh && /tmp/locale.sh + +# if ld.gold exists, force link it to ld +RUN set -x; LD=$(which ld); LD_GOLD=$(which ld.gold); test -x $LD_GOLD && ln -sf $LD_GOLD $LD && test -x $LD && echo "$LD is now $LD_GOLD" + +# make test can not work with root, so we have to create a new user +RUN useradd -m -U -s /bin/bash samba && \ + mkdir -p /etc/sudoers.d && \ + echo "samba ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/samba + +USER samba +WORKDIR /home/samba +# samba tests rely on this +ENV USER=samba LC_ALL=en_US.utf8 LANG=en_US.utf8 \ No newline at end of file diff --git a/bootstrap/generated-dists/debian11/bootstrap.sh b/bootstrap/generated-dists/debian11/bootstrap.sh new file mode 100755 index 00000000000..84f5f6855b7 --- /dev/null +++ b/bootstrap/generated-dists/debian11/bootstrap.sh @@ -0,0 +1,111 @@ +#!/bin/bash + +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +set -xueo pipefail + +export DEBIAN_FRONTEND=noninteractive +apt-get -y update + +apt-get -y install \ + acl \ + apt-utils \ + attr \ + autoconf \ + bind9utils \ + binutils \ + bison \ + build-essential \ + ccache \ + chrpath \ + curl \ + debhelper \ + dnsutils \ + docbook-xml \ + docbook-xsl \ + flex \ + gcc \ + gdb \ + git \ + glusterfs-common \ + gzip \ + heimdal-multidev \ + hostname \ + htop \ + krb5-config \ + krb5-kdc \ + krb5-user \ + lcov \ + libacl1-dev \ + libarchive-dev \ + libattr1-dev \ + libavahi-common-dev \ + libblkid-dev \ + libbsd-dev \ + libcap-dev \ + libcephfs-dev \ + libcups2-dev \ + libdbus-1-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libgpgme11-dev \ + libicu-dev \ + libjansson-dev \ + libjs-jquery \ + libjson-perl \ + libkrb5-dev \ + libldap2-dev \ + liblmdb-dev \ + libncurses5-dev \ + libpam0g-dev \ + libparse-yapp-perl \ + libpcap-dev \ + libpopt-dev \ + libreadline-dev \ + libsystemd-dev \ + libtasn1-bin \ + libtasn1-dev \ + libtracker-sparql-2.0-dev \ + libunwind-dev \ + lmdb-utils \ + locales \ + lsb-release \ + make \ + mawk \ + mingw-w64 \ + patch \ + perl \ + perl-modules \ + pkg-config \ + procps \ + psmisc \ + python3 \ + python3-cryptography \ + python3-dbg \ + python3-dev \ + python3-dnspython \ + python3-gpg \ + python3-iso8601 \ + python3-markdown \ + python3-matplotlib \ + python3-pexpect \ + python3-pyasn1 \ + python3-setproctitle \ + rng-tools \ + rsync \ + sed \ + sudo \ + tar \ + tree \ + uuid-dev \ + wget \ + xfslibs-dev \ + xsltproc \ + zlib1g-dev + +apt-get -y autoremove +apt-get -y autoclean +apt-get -y clean \ No newline at end of file diff --git a/bootstrap/generated-dists/debian11/locale.sh b/bootstrap/generated-dists/debian11/locale.sh new file mode 100755 index 00000000000..cc64e180483 --- /dev/null +++ b/bootstrap/generated-dists/debian11/locale.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +set -xueo pipefail + +# refer to /usr/share/i18n/locales +INPUTFILE=en_US +# refer to /usr/share/i18n/charmaps +CHARMAP=UTF-8 +# locale to generate in /usr/lib/locale +# glibc/localedef will normalize UTF-8 to utf8, follow the naming style +LOCALE=$INPUTFILE.utf8 + +# if locale is already correct, exit +( locale | grep LC_ALL | grep -i $LOCALE ) && exit 0 + +# if locale not available, generate locale into /usr/lib/locale +if ! ( locale --all-locales | grep -i $LOCALE ) +then + # no-archive means create its own dir + localedef --inputfile $INPUTFILE --charmap $CHARMAP --no-archive $LOCALE +fi + +# update locale conf and global env file +# set both LC_ALL and LANG for safe + +# update conf for Debian family +FILE=/etc/default/locale +if [ -f $FILE ] +then + echo LC_ALL="$LOCALE" > $FILE + echo LANG="$LOCALE" >> $FILE +fi + +# update conf for RedHat family +FILE=/etc/locale.conf +if [ -f $FILE ] +then + # LC_ALL is not valid in this file, set LANG only + echo LANG="$LOCALE" > $FILE +fi + +# update global env file +FILE=/etc/environment +if [ -f $FILE ] +then + # append LC_ALL if not exist + grep LC_ALL $FILE || echo LC_ALL="$LOCALE" >> $FILE + # append LANG if not exist + grep LANG $FILE || echo LANG="$LOCALE" >> $FILE +fi \ No newline at end of file diff --git a/bootstrap/generated-dists/debian11/packages.yml b/bootstrap/generated-dists/debian11/packages.yml new file mode 100644 index 00000000000..32f37eeb013 --- /dev/null +++ b/bootstrap/generated-dists/debian11/packages.yml @@ -0,0 +1,96 @@ +--- +packages: + - acl + - apt-utils + - attr + - autoconf + - bind9utils + - binutils + - bison + - build-essential + - ccache + - chrpath + - curl + - debhelper + - dnsutils + - docbook-xml + - docbook-xsl + - flex + - gcc + - gdb + - git + - glusterfs-common + - gzip + - heimdal-multidev + - hostname + - htop + - krb5-config + - krb5-kdc + - krb5-user + - lcov + - libacl1-dev + - libarchive-dev + - libattr1-dev + - libavahi-common-dev + - libblkid-dev + - libbsd-dev + - libcap-dev + - libcephfs-dev + - libcups2-dev + - libdbus-1-dev + - libglib2.0-dev + - libgnutls28-dev + - libgpgme11-dev + - libicu-dev + - libjansson-dev + - libjs-jquery + - libjson-perl + - libkrb5-dev + - libldap2-dev + - liblmdb-dev + - libncurses5-dev + - libpam0g-dev + - libparse-yapp-perl + - libpcap-dev + - libpopt-dev + - libreadline-dev + - libsystemd-dev + - libtasn1-bin + - libtasn1-dev + - libtracker-sparql-2.0-dev + - libunwind-dev + - lmdb-utils + - locales + - lsb-release + - make + - mawk + - mingw-w64 + - patch + - perl + - perl-modules + - pkg-config + - procps + - psmisc + - python3 + - python3-cryptography + - python3-dbg + - python3-dev + - python3-dnspython + - python3-gpg + - python3-iso8601 + - python3-markdown + - python3-matplotlib + - python3-pexpect + - python3-pyasn1 + - python3-setproctitle + - rng-tools + - rsync + - sed + - sudo + - tar + - tree + - uuid-dev + - wget + - xfslibs-dev + - xsltproc + - zlib1g-dev \ No newline at end of file diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index e433f698b68..be02db77392 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -733f8fa83c921e5a7ec8f5470b2ca7d52548f4b0 +7e89da77f0226acca0dff435f99f56d600170450 -- 2.30.2 From ed2961149f36817a2200aea1010ac4b9e385bd23 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Tue, 19 Oct 2021 11:00:22 +1100 Subject: [PATCH 2/2] bootstrap: Debian 11 has liburing-dev BUG: https://bugzilla.samba.org/show_bug.cgi?id=14872 RN: Add Debian 11 CI bootstrap support Signed-off-by: Martin Schwenke (backported from commit d8b6fbbd78690ae19d97cd88c5769c3edd358aaa) --- .gitlab-ci-main.yml | 2 +- bootstrap/config.py | 1 - bootstrap/generated-dists/debian11/bootstrap.sh | 1 + bootstrap/generated-dists/debian11/packages.yml | 1 + bootstrap/sha1sum.txt | 2 +- 5 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci-main.yml b/.gitlab-ci-main.yml index 8b061707442..85d6e7d8dba 100644 --- a/.gitlab-ci-main.yml +++ b/.gitlab-ci-main.yml @@ -42,7 +42,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: 7e89da77f0226acca0dff435f99f56d600170450 + SAMBA_CI_CONTAINER_TAG: dd2b9a1848eed2d200e1a525695e40f06c23d888 # # We use the ubuntu1804 image as default as # it matches what we have on sn-devel-184. diff --git a/bootstrap/config.py b/bootstrap/config.py index 71bc571b046..fd75a771252 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -404,7 +404,6 @@ DEB_DISTS = { 'vagrant_box': 'debian/bullseye64', 'replace': { 'language-pack-en': '', # included in locales - 'liburing-dev': '', # not available } }, 'ubuntu1604': { diff --git a/bootstrap/generated-dists/debian11/bootstrap.sh b/bootstrap/generated-dists/debian11/bootstrap.sh index 84f5f6855b7..07d6209c072 100755 --- a/bootstrap/generated-dists/debian11/bootstrap.sh +++ b/bootstrap/generated-dists/debian11/bootstrap.sh @@ -70,6 +70,7 @@ apt-get -y install \ libtasn1-dev \ libtracker-sparql-2.0-dev \ libunwind-dev \ + liburing-dev \ lmdb-utils \ locales \ lsb-release \ diff --git a/bootstrap/generated-dists/debian11/packages.yml b/bootstrap/generated-dists/debian11/packages.yml index 32f37eeb013..6d3c2385339 100644 --- a/bootstrap/generated-dists/debian11/packages.yml +++ b/bootstrap/generated-dists/debian11/packages.yml @@ -59,6 +59,7 @@ packages: - libtasn1-dev - libtracker-sparql-2.0-dev - libunwind-dev + - liburing-dev - lmdb-utils - locales - lsb-release diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index be02db77392..11369ced5f7 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -7e89da77f0226acca0dff435f99f56d600170450 +dd2b9a1848eed2d200e1a525695e40f06c23d888 -- 2.30.2