bootstrap: Add OpenSUSE 15.1 image
authorSamuel Cabrero <scabrero@suse.de>
Tue, 18 Jun 2019 09:03:41 +0000 (11:03 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 4 Jul 2019 02:07:19 +0000 (02:07 +0000)
Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
.gitlab-ci.yml
bootstrap/.gitlab-ci.yml
bootstrap/READMD.md
bootstrap/config.py
bootstrap/generated-dists/Vagrantfile
bootstrap/generated-dists/opensuse151/Dockerfile [new file with mode: 0644]
bootstrap/generated-dists/opensuse151/bootstrap.sh [new file with mode: 0755]
bootstrap/generated-dists/opensuse151/locale.sh [new file with mode: 0755]
bootstrap/generated-dists/opensuse151/packages.yml [new file with mode: 0644]
bootstrap/sha1sum.txt

index 19f6c5beae7c7bfc198526e6fffb2492b9921c60..313ae01fa690f674ec756288a589d8d5cc795cd0 100644 (file)
@@ -22,7 +22,7 @@ variables:
   # Set this to the contents of bootstrap/sha1sum.txt
   # which is generated by bootstrap/template.py --render
   #
-  SAMBA_CI_CONTAINER_TAG: 563ddb220bfed37501be93b0b3204bb1ceb61b94
+  SAMBA_CI_CONTAINER_TAG: 339a70ba1881feec94109c5c4eafacf4ff6c43bc
   #
   # We use the ubuntu1804 image as default as
   # it matches what we have on sn-devel-184.
@@ -37,6 +37,7 @@ variables:
   SAMBA_CI_CONTAINER_IMAGE_ubuntu1604: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-ubuntu1604:${SAMBA_CI_CONTAINER_TAG}
   SAMBA_CI_CONTAINER_IMAGE_debian9: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-debian9:${SAMBA_CI_CONTAINER_TAG}
   SAMBA_CI_CONTAINER_IMAGE_opensuse150: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-opensuse150:${SAMBA_CI_CONTAINER_TAG}
+  SAMBA_CI_CONTAINER_IMAGE_opensuse151: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-opensuse151:${SAMBA_CI_CONTAINER_TAG}
   SAMBA_CI_CONTAINER_IMAGE_fedora29: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora29:${SAMBA_CI_CONTAINER_TAG}
   SAMBA_CI_CONTAINER_IMAGE_fedora30: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora30:${SAMBA_CI_CONTAINER_TAG}
   SAMBA_CI_CONTAINER_IMAGE_centos7: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-centos7:${SAMBA_CI_CONTAINER_TAG}
@@ -257,6 +258,10 @@ opensuse150-samba-o3:
   extends: .samba-o3-template
   image: $SAMBA_CI_CONTAINER_IMAGE_opensuse150
 
+opensuse151-samba-o3:
+  extends: .samba-o3-template
+  image: $SAMBA_CI_CONTAINER_IMAGE_opensuse151
+
 centos7-samba-o3:
   extends: .samba-o3-template
   image: $SAMBA_CI_CONTAINER_IMAGE_centos7
index abd87eada5b474754d51c2bf2536b43f3fa6c26a..8bec8cc4e2035a50e4bb3d1eb7cc0d80a6c6484a 100644 (file)
@@ -120,3 +120,6 @@ centos6:
 
 opensuse150:
   extends: .build_image_template
+
+opensuse151:
+  extends: .build_image_template
index 3d22ab136a0066e470ed96d6ffc30298933d0671..d653d6d340b98715dadc6ff6fabdb324b45bc46f 100644 (file)
@@ -13,7 +13,7 @@ A pure python3 module with CLI to bootstrap Samba envs for multiple distribution
 ## Supported Distributions
 
 deb: Debian 7|8|9, Ubuntu 1404|1604|1804
-rpm: CentOS 6|7, Fedora 28|29, openSUSE Leap 15.0
+rpm: CentOS 6|7, Fedora 28|29, openSUSE Leap 15.0|15.1
 
 Easy to add more.
 
index 1ee53ef27d44ea5a1584463ff2ef4eef85a19d3c..9126961fc9354c6e82736c9c672dac4b30dddb77 100644 (file)
@@ -536,6 +536,39 @@ RPM_DISTS = {
             'libtasn1-tools': '', # asn1Parser is part of libtasn1
             'mingw64-gcc': '', # doesn't exist
         }
+    },
+    'opensuse151': {
+        'docker_image': 'opensuse/leap:15.1',
+        'vagrant_box': 'opensuse/openSUSE-15.1-x86_64',
+        'bootstrap': ZYPPER_BOOTSTRAP,
+        'replace': {
+            '@development-tools': '',
+            'dbus-devel': 'dbus-1-devel',
+            'docbook-style-xsl': 'docbook-xsl-stylesheets',
+            'glibc-common': 'glibc-locale',
+            'glibc-locale-source': 'glibc-i18ndata',
+            'glibc-langpack-en': '',
+            'jansson-devel': 'libjansson-devel',
+            'keyutils-libs-devel': 'keyutils-devel',
+            'krb5-workstation': 'krb5-client',
+            'libnsl2-devel': 'libnsl-devel',
+            'libsemanage-python': 'python2-semanage',
+            'nettle-devel': 'libnettle-devel',
+            'openldap-devel': 'openldap2-devel',
+            'perl-Archive-Tar': 'perl-Archive-Tar-Wrapper',
+            'perl-JSON-Parse': 'perl-JSON-XS',
+            'perl-generators': '',
+            'perl-interpreter': '',
+            'procps-ng': 'procps',
+            'python-dns': 'python2-dnspython',
+            'python3-crypto': 'python3-pycrypto',
+            'python3-dns': 'python3-dnspython',
+            'python3-markdown': 'python3-Markdown',
+            'quota-devel': '',
+            'glusterfs-api-devel': '',
+            'libtasn1-tools': '', # asn1Parser is part of libtasn1
+            'mingw64-gcc': '', # doesn't exist
+        }
     }
 }
 
index 9754bd4115f82b706c54a419b055c17e5ae47f32..941cc9a07357d1cd05fb475971c09878848bd945 100644 (file)
@@ -73,6 +73,13 @@ Vagrant.configure("2") do |config|
         v.vm.provision :shell, path: "opensuse150/locale.sh"
     end
 
+    config.vm.define "opensuse151" do |v|
+        v.vm.box = "opensuse/openSUSE-15.1-x86_64"
+        v.vm.hostname = "opensuse151"
+        v.vm.provision :shell, path: "opensuse151/bootstrap.sh"
+        v.vm.provision :shell, path: "opensuse151/locale.sh"
+    end
+
     config.vm.define "ubuntu1404" do |v|
         v.vm.box = "ubuntu/trusty64"
         v.vm.hostname = "ubuntu1404"
diff --git a/bootstrap/generated-dists/opensuse151/Dockerfile b/bootstrap/generated-dists/opensuse151/Dockerfile
new file mode 100644 (file)
index 0000000..5a5fd64
--- /dev/null
@@ -0,0 +1,27 @@
+#
+# This file is generated by 'bootstrap/template.py --render'
+# See also bootstrap/config.py
+#
+
+FROM opensuse/leap:15.1
+
+# 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/opensuse151/bootstrap.sh b/bootstrap/generated-dists/opensuse151/bootstrap.sh
new file mode 100755 (executable)
index 0000000..4bf205e
--- /dev/null
@@ -0,0 +1,112 @@
+#!/bin/bash
+
+#
+# This file is generated by 'bootstrap/template.py --render'
+# See also bootstrap/config.py
+#
+
+set -xueo pipefail
+
+zypper --non-interactive refresh
+zypper --non-interactive update
+zypper --non-interactive install \
+    --no-recommends \
+    system-user-nobody \
+    acl \
+    attr \
+    autoconf \
+    avahi-devel \
+    bind-utils \
+    binutils \
+    bison \
+    cups-devel \
+    curl \
+    dbus-1-devel \
+    docbook-dtds \
+    docbook-xsl-stylesheets \
+    flex \
+    gawk \
+    gcc \
+    gdb \
+    git \
+    glib2-devel \
+    glibc-locale \
+    glusterfs-devel \
+    gnutls-devel \
+    gpgme-devel \
+    gzip \
+    hostname \
+    htop \
+    keyutils-devel \
+    krb5-devel \
+    krb5-server \
+    lcov \
+    libacl-devel \
+    libaio-devel \
+    libarchive-devel \
+    libattr-devel \
+    libblkid-devel \
+    libbsd-devel \
+    libcap-devel \
+    libcephfs-devel \
+    libicu-devel \
+    libjansson-devel \
+    libnettle-devel \
+    libnsl-devel \
+    libpcap-devel \
+    libtasn1-devel \
+    libtirpc-devel \
+    libunwind-devel \
+    libuuid-devel \
+    libxslt \
+    lmdb \
+    lmdb-devel \
+    lsb-release \
+    make \
+    ncurses-devel \
+    openldap2-devel \
+    pam-devel \
+    patch \
+    perl \
+    perl-Archive-Tar-Wrapper \
+    perl-ExtUtils-MakeMaker \
+    perl-JSON-XS \
+    perl-Parse-Yapp \
+    perl-Test-Base \
+    pkgconfig \
+    policycoreutils-python \
+    popt-devel \
+    procps \
+    psmisc \
+    python-crypto \
+    python-devel \
+    python-markdown \
+    python2-dnspython \
+    python2-gpg \
+    python2-semanage \
+    python3 \
+    python3-Markdown \
+    python3-devel \
+    python3-dnspython \
+    python3-gpg \
+    python3-pycrypto \
+    readline-devel \
+    rng-tools \
+    rpcgen \
+    rpcsvc-proto-devel \
+    rsync \
+    sed \
+    sudo \
+    systemd-devel \
+    tar \
+    tree \
+    which \
+    xfsprogs-devel \
+    yum-utils \
+    zlib-devel
+
+zypper --non-interactive clean
+
+if [ -f /usr/lib/mit/bin/krb5-config ]; then
+    ln -sf /usr/lib/mit/bin/krb5-config /usr/bin/krb5-config
+fi
\ No newline at end of file
diff --git a/bootstrap/generated-dists/opensuse151/locale.sh b/bootstrap/generated-dists/opensuse151/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/opensuse151/packages.yml b/bootstrap/generated-dists/opensuse151/packages.yml
new file mode 100644 (file)
index 0000000..8183e89
--- /dev/null
@@ -0,0 +1,94 @@
+---
+packages:
+  - acl
+  - attr
+  - autoconf
+  - avahi-devel
+  - bind-utils
+  - binutils
+  - bison
+  - cups-devel
+  - curl
+  - dbus-1-devel
+  - docbook-dtds
+  - docbook-xsl-stylesheets
+  - flex
+  - gawk
+  - gcc
+  - gdb
+  - git
+  - glib2-devel
+  - glibc-locale
+  - glusterfs-devel
+  - gnutls-devel
+  - gpgme-devel
+  - gzip
+  - hostname
+  - htop
+  - keyutils-devel
+  - krb5-devel
+  - krb5-server
+  - lcov
+  - libacl-devel
+  - libaio-devel
+  - libarchive-devel
+  - libattr-devel
+  - libblkid-devel
+  - libbsd-devel
+  - libcap-devel
+  - libcephfs-devel
+  - libicu-devel
+  - libjansson-devel
+  - libnettle-devel
+  - libnsl-devel
+  - libpcap-devel
+  - libtasn1-devel
+  - libtirpc-devel
+  - libunwind-devel
+  - libuuid-devel
+  - libxslt
+  - lmdb
+  - lmdb-devel
+  - lsb-release
+  - make
+  - ncurses-devel
+  - openldap2-devel
+  - pam-devel
+  - patch
+  - perl
+  - perl-Archive-Tar-Wrapper
+  - perl-ExtUtils-MakeMaker
+  - perl-JSON-XS
+  - perl-Parse-Yapp
+  - perl-Test-Base
+  - pkgconfig
+  - policycoreutils-python
+  - popt-devel
+  - procps
+  - psmisc
+  - python-crypto
+  - python-devel
+  - python-markdown
+  - python2-dnspython
+  - python2-gpg
+  - python2-semanage
+  - python3
+  - python3-Markdown
+  - python3-devel
+  - python3-dnspython
+  - python3-gpg
+  - python3-pycrypto
+  - readline-devel
+  - rng-tools
+  - rpcgen
+  - rpcsvc-proto-devel
+  - rsync
+  - sed
+  - sudo
+  - systemd-devel
+  - tar
+  - tree
+  - which
+  - xfsprogs-devel
+  - yum-utils
+  - zlib-devel
\ No newline at end of file
index 27772a959be02023127908f87ed6e2a98aed6bc1..52cf7350bc0dd7df46d456e2d0d484f738bcd875 100644 (file)
@@ -1 +1 @@
-563ddb220bfed37501be93b0b3204bb1ceb61b94
+339a70ba1881feec94109c5c4eafacf4ff6c43bc