summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2022-11-22 10:41:39 +0100
committerStefan Metzmacher <metze@samba.org>2022-11-24 12:05:26 +0000
commit95676825adbb13ab2a0e24983780125218c17265 (patch)
tree2089945e3a2f206bcf3c7f19213a3dbf166ee16e /bootstrap
parent98c1e357a7fd25b6706b4341b3407c03369501fc (diff)
downloadsamba-95676825adbb13ab2a0e24983780125218c17265.tar.gz
gitlab-ci: do some basic testing on ubuntu1804-32bit
For now we allow build warnings and only do some basic testing. We also ignore timestamp related problems, as well as some charset failures. Over time we should try to address the situation by not allowing warnings and verify if expected failures are harmless or not. But it's already much better then having no 32bit testing at all! Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Thu Nov 24 12:05:26 UTC 2022 on sn-devel-184
Diffstat (limited to 'bootstrap')
-rw-r--r--bootstrap/.gitlab-ci.yml5
-rw-r--r--bootstrap/config.py7
-rw-r--r--bootstrap/generated-dists/Vagrantfile7
-rw-r--r--bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile29
-rwxr-xr-xbootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh114
-rwxr-xr-xbootstrap/generated-dists/ubuntu1804-32bit/locale.sh55
-rw-r--r--bootstrap/generated-dists/ubuntu1804-32bit/packages.yml99
-rw-r--r--bootstrap/sha1sum.txt2
8 files changed, 317 insertions, 1 deletions
diff --git a/bootstrap/.gitlab-ci.yml b/bootstrap/.gitlab-ci.yml
index dff5cd2bf94..fee2861e6ea 100644
--- a/bootstrap/.gitlab-ci.yml
+++ b/bootstrap/.gitlab-ci.yml
@@ -91,6 +91,11 @@
ubuntu1804:
extends: .build_image_template
+ubuntu1804-32bit:
+ extends: .build_image_template
+ variables:
+ SAMBA_CI_TEST_JOB: "samba-32bit"
+
ubuntu2004:
extends: .build_image_template
diff --git a/bootstrap/config.py b/bootstrap/config.py
index 79e19308fdb..bbcd45a044c 100644
--- a/bootstrap/config.py
+++ b/bootstrap/config.py
@@ -427,6 +427,13 @@ DEB_DISTS = {
'liburing-dev': '', # not available
}
},
+ 'ubuntu1804-32bit': {
+ 'docker_image': 'registry-1.docker.io/i386/ubuntu:18.04',
+ 'vagrant_box': 'ubuntu/bionic32',
+ 'replace': {
+ 'liburing-dev': '', # not available
+ }
+ },
'ubuntu2004': {
'docker_image': 'ubuntu:20.04',
'vagrant_box': 'ubuntu/focal64',
diff --git a/bootstrap/generated-dists/Vagrantfile b/bootstrap/generated-dists/Vagrantfile
index dad82c1e502..64ab54d2682 100644
--- a/bootstrap/generated-dists/Vagrantfile
+++ b/bootstrap/generated-dists/Vagrantfile
@@ -59,6 +59,13 @@ Vagrant.configure("2") do |config|
v.vm.provision :shell, path: "ubuntu1804/locale.sh"
end
+ config.vm.define "ubuntu1804-32bit" do |v|
+ v.vm.box = "ubuntu/bionic32"
+ v.vm.hostname = "ubuntu1804-32bit"
+ v.vm.provision :shell, path: "ubuntu1804-32bit/bootstrap.sh"
+ v.vm.provision :shell, path: "ubuntu1804-32bit/locale.sh"
+ end
+
config.vm.define "ubuntu2004" do |v|
v.vm.box = "ubuntu/focal64"
v.vm.hostname = "ubuntu2004"
diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile
new file mode 100644
index 00000000000..3d0c21c1434
--- /dev/null
+++ b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile
@@ -0,0 +1,29 @@
+#
+# This file is generated by 'bootstrap/template.py --render'
+# See also bootstrap/config.py
+#
+
+FROM registry-1.docker.io/i386/ubuntu:18.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 /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 \ No newline at end of file
diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh
new file mode 100755
index 00000000000..56e7b805dfd
--- /dev/null
+++ b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh
@@ -0,0 +1,114 @@
+#!/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 \
+ jq \
+ krb5-config \
+ krb5-kdc \
+ krb5-user \
+ language-pack-en \
+ 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-pexpect \
+ python3-pyasn1 \
+ python3-requests \
+ python3-setproctitle \
+ rng-tools \
+ rsync \
+ sed \
+ 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/ubuntu1804-32bit/locale.sh b/bootstrap/generated-dists/ubuntu1804-32bit/locale.sh
new file mode 100755
index 00000000000..cc64e180483
--- /dev/null
+++ b/bootstrap/generated-dists/ubuntu1804-32bit/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/ubuntu1804-32bit/packages.yml b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml
new file mode 100644
index 00000000000..b42b4d05989
--- /dev/null
+++ b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml
@@ -0,0 +1,99 @@
+---
+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
+ - jq
+ - krb5-config
+ - krb5-kdc
+ - krb5-user
+ - language-pack-en
+ - 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-pexpect
+ - python3-pyasn1
+ - python3-requests
+ - python3-setproctitle
+ - rng-tools
+ - rsync
+ - sed
+ - sudo
+ - tar
+ - tree
+ - uuid-dev
+ - wget
+ - xfslibs-dev
+ - xsltproc
+ - xz-utils
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt
index 7a78c020f24..1a76e376b75 100644
--- a/bootstrap/sha1sum.txt
+++ b/bootstrap/sha1sum.txt
@@ -1 +1 @@
-a5335bb5004bdcba5ab7e064164d5e70b76bea0f
+ae284a5a64fcff65729bf50b5b0cfdba16afc682