]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
bootstrap: add support for Ubuntu 26.04 (resolute) gitlab/master
authorBjörn Jacke <bjacke@samba.org>
Fri, 10 Apr 2026 15:38:16 +0000 (17:38 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 May 2026 12:28:36 +0000 (12:28 +0000)
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Bjoern Jacke <bjacke@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Wed May 27 12:28:36 UTC 2026 on atb-devel-224

19 files changed:
.gitlab-ci-main.yml
bootstrap/.gitlab-ci.yml
bootstrap/config.py
bootstrap/generated-dists/Vagrantfile
bootstrap/generated-dists/centos9s/Dockerfile
bootstrap/generated-dists/debian11-32bit/Dockerfile
bootstrap/generated-dists/debian11/Dockerfile
bootstrap/generated-dists/debian12-32bit/Dockerfile
bootstrap/generated-dists/debian12/Dockerfile
bootstrap/generated-dists/fedora43/Dockerfile
bootstrap/generated-dists/opensuse160/Dockerfile
bootstrap/generated-dists/rocky8/Dockerfile
bootstrap/generated-dists/ubuntu2204/Dockerfile
bootstrap/generated-dists/ubuntu2404/Dockerfile
bootstrap/generated-dists/ubuntu2604/Dockerfile [new file with mode: 0644]
bootstrap/generated-dists/ubuntu2604/bootstrap.sh [new file with mode: 0755]
bootstrap/generated-dists/ubuntu2604/locale.sh [new file with mode: 0755]
bootstrap/generated-dists/ubuntu2604/packages.yml [new file with mode: 0644]
bootstrap/sha1sum.txt

index 2691ccd65e28229c4bb1625c45b56dab4bc02a42..d75e170c6d1dd9da87711dba0a2dd437c6ed4e84 100644 (file)
@@ -47,7 +47,7 @@ variables:
   # Set this to the contents of bootstrap/sha1sum.txt
   # which is generated by bootstrap/template.py --render
   #
-  SAMBA_CI_CONTAINER_TAG: 604d8f614b0e7eb59b995f4f7ff84a7cc2aa1f0d
+  SAMBA_CI_CONTAINER_TAG: ab1dc1a1227ae9dfedb87bb672541807af7ec170
   #
   # We use the ubuntu2204 image as default as
   # it matches what we have on atb-devel-224
@@ -60,6 +60,7 @@ variables:
   #
   SAMBA_CI_CONTAINER_IMAGE_ubuntu2204: ubuntu2204
   SAMBA_CI_CONTAINER_IMAGE_ubuntu2404: ubuntu2404
+  SAMBA_CI_CONTAINER_IMAGE_ubuntu2604: ubuntu2604
   SAMBA_CI_CONTAINER_IMAGE_debian11: debian11
   SAMBA_CI_CONTAINER_IMAGE_debian11_32bit: debian11-32bit
   SAMBA_CI_CONTAINER_IMAGE_debian12: debian12
@@ -647,6 +648,11 @@ ubuntu2404-samba-o3:
   variables:
     SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_ubuntu2404}
 
+ubuntu2604-samba-o3:
+  extends: .samba-o3-template
+  variables:
+    SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_ubuntu2604}
+
 debian11-samba-o3:
   extends: .samba-o3-template
   variables:
index 83cd8e5eb838235fb78bdc20ac0ba8758ae6cc2e..a512af8362b3ddfb58e68f710c547bb5ba69c092 100644 (file)
@@ -93,6 +93,9 @@ ubuntu2204:
 ubuntu2404:
   extends: .build_image_template
 
+ubuntu2604:
+  extends: .build_image_template
+
 debian11:
   extends: .build_image_template
 
index a0e6e163755fc1cdcc9ff364575b9df4eae84781..36b3a6ba61a3ef28e07e20fa7415343a800f3f83 100644 (file)
@@ -410,6 +410,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+{BEFORE_BOOTSTRAP_ACTIONS}
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
@@ -504,6 +505,14 @@ DEB_DISTS = {
         'replace': {
         },
     },
+    'ubuntu2604': {
+        'docker_image': 'ubuntu:26.04',
+        'vagrant_box': 'ubuntu/resolute64',
+        # locales postinstall is broken if /etc/default/locale exists
+        'BEFORE_BOOTSTRAP_ACTIONS': 'RUN mv /etc/default/locale /etc/default/locale.before.bootstrap',
+        'replace': {
+        },
+    },
 }
 
 
@@ -627,6 +636,8 @@ def expand_family_dists(family):
         config['home'] = join(OUT, name)
         config['family'] = family['name']
         config['GENERATED_MARKER'] = GENERATED_MARKER
+        if 'BEFORE_BOOTSTRAP_ACTIONS' not in config:
+            config['BEFORE_BOOTSTRAP_ACTIONS'] = '# no BEFORE_BOOTSTRAP_ACTIONS'
 
         # replace dist specific pkgs
         replace = config.get('replace', {})
index d298bd0a07177246b3a11a767257ef5371cc25ae..ded7f00236dc8ed9ee95048f2e36a466ea9198a3 100644 (file)
@@ -80,5 +80,12 @@ Vagrant.configure("2") do |config|
         v.vm.provision :shell, path: "ubuntu2404/locale.sh"
     end
 
+    config.vm.define "ubuntu2604" do |v|
+        v.vm.box = "ubuntu/resolute64"
+        v.vm.hostname = "ubuntu2604"
+        v.vm.provision :shell, path: "ubuntu2604/bootstrap.sh"
+        v.vm.provision :shell, path: "ubuntu2604/locale.sh"
+    end
+
 
 end
index 42324ad5a74724db726055e7077408f31ca82f0b..9d0a86c58b55a5868b9f573d87fc049efc448908 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 09123a1ef862ecddc52687397b4e532a3dba55dd..6737b28e20d7083ae810ee8fc16101e69bc7860c 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 09123a1ef862ecddc52687397b4e532a3dba55dd..6737b28e20d7083ae810ee8fc16101e69bc7860c 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 7b6be71269f220180bcc78188d10d75d2df138c0..a618be46e2cfdf976cb95c55910ebfc4da226ddb 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 1794e51d43dcbb6447185ce3c6e89eb4ca251790..c01874f1e8b6733a374b21b6869c93a8d4392a3e 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 43b146b694981e03894ae0dc50a5af90eb6b6802..bccf892b7815ccc5020ce3a5a9102f0be3ddc65f 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index a5f72276c59bbc4ae7ec1260484b2e4b44d882de..fe939aa6639c1a8b7eb28cc309320feb9c069c99 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 146a6977d870a1e67b1300c2f9a433141e7e070c..3c14991ecb6b5ed7ac27874220499c1c2ff45fcd 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index 0b73aaceff516e16db821098664507f7c22e4ded..497c8e64d70dcbc5ca6076930b8288263c42968e 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
index a430d29d52bd7b8350c9f33f473f6542b0023af1..e286c76fa4edb921c7f371ce96d9db367b0c55c9 100644 (file)
@@ -11,6 +11,7 @@ RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
 
 ADD *.sh /tmp/
 # need root permission, do it before USER samba
+# no BEFORE_BOOTSTRAP_ACTIONS
 RUN /tmp/bootstrap.sh && /tmp/locale.sh
 
 # if ld.gold exists, force link it to ld
diff --git a/bootstrap/generated-dists/ubuntu2604/Dockerfile b/bootstrap/generated-dists/ubuntu2604/Dockerfile
new file mode 100644 (file)
index 0000000..b4b8292
--- /dev/null
@@ -0,0 +1,30 @@
+#
+# This file is generated by 'bootstrap/template.py --render'
+# See also bootstrap/config.py
+#
+
+FROM ubuntu:26.04
+
+# 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 mv /etc/default/locale /etc/default/locale.before.bootstrap
+RUN /tmp/bootstrap.sh && /tmp/locale.sh
+
+# if ld.gold exists, force link it to ld
+RUN set -x; ! LD_GOLD=$(which ld.gold) || { LD=$(which ld) && ln -sf $LD_GOLD $LD && test -x $LD && echo "$LD is now $LD_GOLD"; }
+# if ld.mold exists, force link it to ld (prefer mold over gold! ;-)
+RUN set -x; ! LD_MOLD=$(which ld.mold) || { LD=$(which ld) && ln -sf $LD_MOLD $LD && test -x $LD && echo "$LD is now $LD_MOLD"; }
+
+# 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 LANGUAGE=en_US
\ No newline at end of file
diff --git a/bootstrap/generated-dists/ubuntu2604/bootstrap.sh b/bootstrap/generated-dists/ubuntu2604/bootstrap.sh
new file mode 100755 (executable)
index 0000000..cc18c08
--- /dev/null
@@ -0,0 +1,126 @@
+#!/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 \
+    cargo \
+    ccache \
+    chrpath \
+    codespell \
+    curl \
+    debhelper \
+    dnsutils \
+    docbook-xml \
+    docbook-xsl \
+    flex \
+    gcc \
+    gdb \
+    git \
+    glusterfs-common \
+    gnutls-bin \
+    gzip \
+    heimdal-multidev \
+    hostname \
+    htop \
+    jq \
+    krb5-config \
+    krb5-kdc \
+    krb5-user \
+    landscape-common \
+    language-pack-en \
+    lcov \
+    libacl1-dev \
+    libarchive-dev \
+    libattr1-dev \
+    libavahi-common-dev \
+    libblkid-dev \
+    libbsd-dev \
+    libcap-dev \
+    libcephfs-dev \
+    libclang-dev \
+    libcrypt-dev \
+    libcups2-dev \
+    libdbus-1-dev \
+    libevent-dev \
+    libglib2.0-dev \
+    libgnutls28-dev \
+    libgpgme11-dev \
+    libicu-dev \
+    libjansson-dev \
+    libjs-jquery \
+    libkeyutils-dev \
+    libkrb5-dev \
+    libldap2-dev \
+    liblmdb-dev \
+    libncurses5-dev \
+    libpam0g-dev \
+    libparse-yapp-perl \
+    libpcap-dev \
+    libpopt-dev \
+    libreadline-dev \
+    libssl-dev \
+    libsystemd-dev \
+    libtasn1-bin \
+    libtasn1-dev \
+    libtirpc-dev \
+    libunwind-dev \
+    liburing-dev \
+    libutf8proc-dev \
+    lmdb-utils \
+    locales \
+    lsb-release \
+    make \
+    mawk \
+    mingw-w64 \
+    mold \
+    patch \
+    perl \
+    perl-modules \
+    pkg-config \
+    procps \
+    psmisc \
+    python3 \
+    python3-cryptography \
+    python3-dbg \
+    python3-dev \
+    python3-dnspython \
+    python3-gpg \
+    python3-iso8601 \
+    python3-markdown \
+    python3-pyasn1 \
+    python3-requests \
+    python3-setproctitle \
+    rng-tools \
+    rsync \
+    sed \
+    shellcheck \
+    shfmt \
+    sudo \
+    tar \
+    tree \
+    uuid-dev \
+    wget \
+    xfslibs-dev \
+    xsltproc \
+    xz-utils \
+    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/ubuntu2604/locale.sh b/bootstrap/generated-dists/ubuntu2604/locale.sh
new file mode 100755 (executable)
index 0000000..cc64e18
--- /dev/null
@@ -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/ubuntu2604/packages.yml b/bootstrap/generated-dists/ubuntu2604/packages.yml
new file mode 100644 (file)
index 0000000..b004fe6
--- /dev/null
@@ -0,0 +1,111 @@
+---
+packages:
+  - acl
+  - apt-utils
+  - attr
+  - autoconf
+  - bind9utils
+  - binutils
+  - bison
+  - build-essential
+  - cargo
+  - ccache
+  - chrpath
+  - codespell
+  - curl
+  - debhelper
+  - dnsutils
+  - docbook-xml
+  - docbook-xsl
+  - flex
+  - gcc
+  - gdb
+  - git
+  - glusterfs-common
+  - gnutls-bin
+  - gzip
+  - heimdal-multidev
+  - hostname
+  - htop
+  - jq
+  - krb5-config
+  - krb5-kdc
+  - krb5-user
+  - landscape-common
+  - language-pack-en
+  - lcov
+  - libacl1-dev
+  - libarchive-dev
+  - libattr1-dev
+  - libavahi-common-dev
+  - libblkid-dev
+  - libbsd-dev
+  - libcap-dev
+  - libcephfs-dev
+  - libclang-dev
+  - libcrypt-dev
+  - libcups2-dev
+  - libdbus-1-dev
+  - libevent-dev
+  - libglib2.0-dev
+  - libgnutls28-dev
+  - libgpgme11-dev
+  - libicu-dev
+  - libjansson-dev
+  - libjs-jquery
+  - libkeyutils-dev
+  - libkrb5-dev
+  - libldap2-dev
+  - liblmdb-dev
+  - libncurses5-dev
+  - libpam0g-dev
+  - libparse-yapp-perl
+  - libpcap-dev
+  - libpopt-dev
+  - libreadline-dev
+  - libssl-dev
+  - libsystemd-dev
+  - libtasn1-bin
+  - libtasn1-dev
+  - libtirpc-dev
+  - libunwind-dev
+  - liburing-dev
+  - libutf8proc-dev
+  - lmdb-utils
+  - locales
+  - lsb-release
+  - make
+  - mawk
+  - mingw-w64
+  - mold
+  - patch
+  - perl
+  - perl-modules
+  - pkg-config
+  - procps
+  - psmisc
+  - python3
+  - python3-cryptography
+  - python3-dbg
+  - python3-dev
+  - python3-dnspython
+  - python3-gpg
+  - python3-iso8601
+  - python3-markdown
+  - python3-pyasn1
+  - python3-requests
+  - python3-setproctitle
+  - rng-tools
+  - rsync
+  - sed
+  - shellcheck
+  - shfmt
+  - sudo
+  - tar
+  - tree
+  - uuid-dev
+  - wget
+  - xfslibs-dev
+  - xsltproc
+  - xz-utils
+  - zlib1g-dev
\ No newline at end of file
index 053d2c22e092cb921cdd1b6406ccb4075e88e569..fcfa7c0c74c8c4d7e99480d1004d85b9c653bc2f 100644 (file)
@@ -1 +1 @@
-604d8f614b0e7eb59b995f4f7ff84a7cc2aa1f0d
+ab1dc1a1227ae9dfedb87bb672541807af7ec170