summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorJoe Guo <joeg@catalyst.net.nz>2019-02-12 13:01:17 +1300
committerAndrew Bartlett <abartlet@samba.org>2019-02-21 04:09:20 +0100
commit50a1109c8e42c9a6ca64e46b093183bff3abc0d1 (patch)
tree4514b2b36ca6733ea9b20245a9a3b0ddd9315319 /bootstrap
parent26d2f74cc915d4499a6abfedc9034e60f33a3138 (diff)
downloadsamba-50a1109c8e42c9a6ca64e46b093183bff3abc0d1.tar.gz
bootstrap/dists: add rendered files for dists
Add these into repo, then we can link it to samba wiki, for people to get a latest and precise pkg list Signed-off-by: Joe Guo <joeg@catalyst.net.nz> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'bootstrap')
-rw-r--r--bootstrap/dists/Vagrantfile67
-rw-r--r--bootstrap/dists/centos6/Dockerfile18
-rw-r--r--bootstrap/dists/centos6/bootstrap.sh91
-rw-r--r--bootstrap/dists/centos6/packages.yml72
-rw-r--r--bootstrap/dists/centos7/Dockerfile18
-rw-r--r--bootstrap/dists/centos7/bootstrap.sh91
-rw-r--r--bootstrap/dists/centos7/packages.yml72
-rw-r--r--bootstrap/dists/debian7/Dockerfile18
-rw-r--r--bootstrap/dists/debian7/bootstrap.sh90
-rw-r--r--bootstrap/dists/debian7/packages.yml66
-rw-r--r--bootstrap/dists/debian8/Dockerfile18
-rw-r--r--bootstrap/dists/debian8/bootstrap.sh94
-rw-r--r--bootstrap/dists/debian8/packages.yml70
-rw-r--r--bootstrap/dists/debian9/Dockerfile18
-rw-r--r--bootstrap/dists/debian9/bootstrap.sh94
-rw-r--r--bootstrap/dists/debian9/packages.yml70
-rw-r--r--bootstrap/dists/fedora28/Dockerfile18
-rw-r--r--bootstrap/dists/fedora28/bootstrap.sh92
-rw-r--r--bootstrap/dists/fedora28/packages.yml75
-rw-r--r--bootstrap/dists/fedora29/Dockerfile18
-rw-r--r--bootstrap/dists/fedora29/bootstrap.sh92
-rw-r--r--bootstrap/dists/fedora29/packages.yml75
-rw-r--r--bootstrap/dists/ubuntu1404/Dockerfile18
-rw-r--r--bootstrap/dists/ubuntu1404/bootstrap.sh94
-rw-r--r--bootstrap/dists/ubuntu1404/packages.yml70
-rw-r--r--bootstrap/dists/ubuntu1604/Dockerfile18
-rw-r--r--bootstrap/dists/ubuntu1604/bootstrap.sh95
-rw-r--r--bootstrap/dists/ubuntu1604/packages.yml71
-rw-r--r--bootstrap/dists/ubuntu1804/Dockerfile18
-rw-r--r--bootstrap/dists/ubuntu1804/bootstrap.sh95
-rw-r--r--bootstrap/dists/ubuntu1804/packages.yml71
31 files changed, 1887 insertions, 0 deletions
diff --git a/bootstrap/dists/Vagrantfile b/bootstrap/dists/Vagrantfile
new file mode 100644
index 00000000000..9281efa9a0e
--- /dev/null
+++ b/bootstrap/dists/Vagrantfile
@@ -0,0 +1,67 @@
+
+Vagrant.configure("2") do |config|
+ config.ssh.insert_key = false
+
+
+ config.vm.define "centos6" do |v|
+ v.vm.box = "centos/6"
+ v.vm.hostname = "centos6"
+ v.vm.provision :shell, path: "centos6/bootstrap.sh"
+ end
+
+ config.vm.define "centos7" do |v|
+ v.vm.box = "centos/7"
+ v.vm.hostname = "centos7"
+ v.vm.provision :shell, path: "centos7/bootstrap.sh"
+ end
+
+ config.vm.define "debian7" do |v|
+ v.vm.box = "debian/wheezy64"
+ v.vm.hostname = "debian7"
+ v.vm.provision :shell, path: "debian7/bootstrap.sh"
+ end
+
+ config.vm.define "debian8" do |v|
+ v.vm.box = "debian/jessie64"
+ v.vm.hostname = "debian8"
+ v.vm.provision :shell, path: "debian8/bootstrap.sh"
+ end
+
+ config.vm.define "debian9" do |v|
+ v.vm.box = "debian/stretch64"
+ v.vm.hostname = "debian9"
+ v.vm.provision :shell, path: "debian9/bootstrap.sh"
+ end
+
+ config.vm.define "fedora28" do |v|
+ v.vm.box = "fedora/28-cloud-base"
+ v.vm.hostname = "fedora28"
+ v.vm.provision :shell, path: "fedora28/bootstrap.sh"
+ end
+
+ config.vm.define "fedora29" do |v|
+ v.vm.box = "fedora/29-cloud-base"
+ v.vm.hostname = "fedora29"
+ v.vm.provision :shell, path: "fedora29/bootstrap.sh"
+ end
+
+ config.vm.define "ubuntu1404" do |v|
+ v.vm.box = "ubuntu/trusty64"
+ v.vm.hostname = "ubuntu1404"
+ v.vm.provision :shell, path: "ubuntu1404/bootstrap.sh"
+ end
+
+ config.vm.define "ubuntu1604" do |v|
+ v.vm.box = "ubuntu/xenial64"
+ v.vm.hostname = "ubuntu1604"
+ v.vm.provision :shell, path: "ubuntu1604/bootstrap.sh"
+ end
+
+ config.vm.define "ubuntu1804" do |v|
+ v.vm.box = "ubuntu/bionic64"
+ v.vm.hostname = "ubuntu1804"
+ v.vm.provision :shell, path: "ubuntu1804/bootstrap.sh"
+ end
+
+
+end
diff --git a/bootstrap/dists/centos6/Dockerfile b/bootstrap/dists/centos6/Dockerfile
new file mode 100644
index 00000000000..bbd244324a7
--- /dev/null
+++ b/bootstrap/dists/centos6/Dockerfile
@@ -0,0 +1,18 @@
+FROM centos:6
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/centos6/bootstrap.sh b/bootstrap/dists/centos6/bootstrap.sh
new file mode 100644
index 00000000000..8e46b410fa3
--- /dev/null
+++ b/bootstrap/dists/centos6/bootstrap.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+set -xueo pipefail
+
+yum -y -q update
+yum -y -q install epel-release
+yum -y -q update
+
+yum -y -q --verbose install \
+ "@Development Tools" \
+ attr \
+ autoconf \
+ bind \
+ bind-utils \
+ binutils \
+ bison \
+ ccache \
+ cups-devel \
+ curl \
+ dbus-devel \
+ docbook-dtds \
+ docbook-style-xsl \
+ gcc \
+ gdb \
+ git \
+ glibc-common \
+ gnutls-devel \
+ gpgme-devel \
+ jansson-devel \
+ keyutils-libs-devel \
+ krb5-devel \
+ krb5-workstation \
+ libacl-devel \
+ libaio-devel \
+ libarchive-devel \
+ libattr-devel \
+ libblkid-devel \
+ libbsd-devel \
+ libnsl2-devel \
+ libpcap-devel \
+ libsemanage-python \
+ libtirpc-devel \
+ libxml2-devel \
+ libxslt \
+ lmdb-devel \
+ lmdb-devel \
+ make \
+ mlocate \
+ ncurses-devel \
+ nettle-devel \
+ openldap-devel \
+ pam-devel \
+ perl-ExtUtils-MakeMaker \
+ perl-Parse-Yapp \
+ perl-Test-Base \
+ perl-core \
+ pkgconfig \
+ policycoreutils-python \
+ popt-devel \
+ procps \
+ psmisc \
+ pygpgme \
+ python-crypto \
+ python-devel \
+ python-dns \
+ python-markdown \
+ python3-crypto \
+ python3-dns \
+ python3-markdown \
+ python34-devel \
+ readline-devel \
+ redhat-lsb \
+ rpcgen \
+ sudo \
+ systemd-devel \
+ vim \
+ wget \
+ yum-utils \
+ zlib-devel
+
+yum clean all
+
+# gen locale
+localedef -c -i en_US -f UTF-8 en_US.UTF-8
+
+# no update-locale, diy
+# LC_ALL is not valid in this file
+echo LANG="en_US.UTF-8" > /etc/locale.conf
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/centos6/packages.yml b/bootstrap/dists/centos6/packages.yml
new file mode 100644
index 00000000000..bd62d1d5fea
--- /dev/null
+++ b/bootstrap/dists/centos6/packages.yml
@@ -0,0 +1,72 @@
+---
+packages:
+ - "@Development Tools"
+ - attr
+ - autoconf
+ - bind
+ - bind-utils
+ - binutils
+ - bison
+ - ccache
+ - cups-devel
+ - curl
+ - dbus-devel
+ - docbook-dtds
+ - docbook-style-xsl
+ - gcc
+ - gdb
+ - git
+ - glibc-common
+ - gnutls-devel
+ - gpgme-devel
+ - jansson-devel
+ - keyutils-libs-devel
+ - krb5-devel
+ - krb5-workstation
+ - libacl-devel
+ - libaio-devel
+ - libarchive-devel
+ - libattr-devel
+ - libblkid-devel
+ - libbsd-devel
+ - libnsl2-devel
+ - libpcap-devel
+ - libsemanage-python
+ - libtirpc-devel
+ - libxml2-devel
+ - libxslt
+ - lmdb-devel
+ - lmdb-devel
+ - make
+ - mlocate
+ - ncurses-devel
+ - nettle-devel
+ - openldap-devel
+ - pam-devel
+ - perl-ExtUtils-MakeMaker
+ - perl-Parse-Yapp
+ - perl-Test-Base
+ - perl-core
+ - pkgconfig
+ - policycoreutils-python
+ - popt-devel
+ - procps
+ - psmisc
+ - pygpgme
+ - python-crypto
+ - python-devel
+ - python-dns
+ - python-markdown
+ - python3-crypto
+ - python3-dns
+ - python3-markdown
+ - python34-devel
+ - readline-devel
+ - redhat-lsb
+ - rpcgen
+ - sudo
+ - systemd-devel
+ - vim
+ - wget
+ - yum-utils
+ - zlib-devel \ No newline at end of file
diff --git a/bootstrap/dists/centos7/Dockerfile b/bootstrap/dists/centos7/Dockerfile
new file mode 100644
index 00000000000..004d1b99d2c
--- /dev/null
+++ b/bootstrap/dists/centos7/Dockerfile
@@ -0,0 +1,18 @@
+FROM centos:7
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/centos7/bootstrap.sh b/bootstrap/dists/centos7/bootstrap.sh
new file mode 100644
index 00000000000..f9af0bdf3ff
--- /dev/null
+++ b/bootstrap/dists/centos7/bootstrap.sh
@@ -0,0 +1,91 @@
+#!/bin/bash
+set -xueo pipefail
+
+yum -y -q update
+yum -y -q install epel-release
+yum -y -q update
+
+yum -y -q --verbose install \
+ "@Development Tools" \
+ attr \
+ autoconf \
+ bind \
+ bind-utils \
+ binutils \
+ bison \
+ ccache \
+ cups-devel \
+ curl \
+ dbus-devel \
+ docbook-dtds \
+ docbook-style-xsl \
+ gcc \
+ gdb \
+ git \
+ glibc-common \
+ gnutls-devel \
+ gpgme-devel \
+ jansson-devel \
+ keyutils-libs-devel \
+ krb5-devel \
+ krb5-workstation \
+ libacl-devel \
+ libaio-devel \
+ libarchive-devel \
+ libattr-devel \
+ libblkid-devel \
+ libbsd-devel \
+ libnsl2-devel \
+ libpcap-devel \
+ libsemanage-python \
+ libtirpc-devel \
+ libxml2-devel \
+ libxslt \
+ lmdb-devel \
+ lmdb-devel \
+ make \
+ mlocate \
+ ncurses-devel \
+ nettle-devel \
+ openldap-devel \
+ pam-devel \
+ perl-ExtUtils-MakeMaker \
+ perl-Parse-Yapp \
+ perl-Test-Base \
+ perl-core \
+ pkgconfig \
+ policycoreutils-python \
+ popt-devel \
+ procps-ng \
+ psmisc \
+ pygpgme \
+ python-crypto \
+ python-devel \
+ python-dns \
+ python-markdown \
+ python3-crypto \
+ python3-dns \
+ python3-markdown \
+ python34-devel \
+ readline-devel \
+ redhat-lsb \
+ rpcgen \
+ sudo \
+ systemd-devel \
+ vim \
+ wget \
+ yum-utils \
+ zlib-devel
+
+yum clean all
+
+# gen locale
+localedef -c -i en_US -f UTF-8 en_US.UTF-8
+
+# no update-locale, diy
+# LC_ALL is not valid in this file
+echo LANG="en_US.UTF-8" > /etc/locale.conf
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/centos7/packages.yml b/bootstrap/dists/centos7/packages.yml
new file mode 100644
index 00000000000..a0c5d8ea3ff
--- /dev/null
+++ b/bootstrap/dists/centos7/packages.yml
@@ -0,0 +1,72 @@
+---
+packages:
+ - "@Development Tools"
+ - attr
+ - autoconf
+ - bind
+ - bind-utils
+ - binutils
+ - bison
+ - ccache
+ - cups-devel
+ - curl
+ - dbus-devel
+ - docbook-dtds
+ - docbook-style-xsl
+ - gcc
+ - gdb
+ - git
+ - glibc-common
+ - gnutls-devel
+ - gpgme-devel
+ - jansson-devel
+ - keyutils-libs-devel
+ - krb5-devel
+ - krb5-workstation
+ - libacl-devel
+ - libaio-devel
+ - libarchive-devel
+ - libattr-devel
+ - libblkid-devel
+ - libbsd-devel
+ - libnsl2-devel
+ - libpcap-devel
+ - libsemanage-python
+ - libtirpc-devel
+ - libxml2-devel
+ - libxslt
+ - lmdb-devel
+ - lmdb-devel
+ - make
+ - mlocate
+ - ncurses-devel
+ - nettle-devel
+ - openldap-devel
+ - pam-devel
+ - perl-ExtUtils-MakeMaker
+ - perl-Parse-Yapp
+ - perl-Test-Base
+ - perl-core
+ - pkgconfig
+ - policycoreutils-python
+ - popt-devel
+ - procps-ng
+ - psmisc
+ - pygpgme
+ - python-crypto
+ - python-devel
+ - python-dns
+ - python-markdown
+ - python3-crypto
+ - python3-dns
+ - python3-markdown
+ - python34-devel
+ - readline-devel
+ - redhat-lsb
+ - rpcgen
+ - sudo
+ - systemd-devel
+ - vim
+ - wget
+ - yum-utils
+ - zlib-devel \ No newline at end of file
diff --git a/bootstrap/dists/debian7/Dockerfile b/bootstrap/dists/debian7/Dockerfile
new file mode 100644
index 00000000000..f369ada16db
--- /dev/null
+++ b/bootstrap/dists/debian7/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:7
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/debian7/bootstrap.sh b/bootstrap/dists/debian7/bootstrap.sh
new file mode 100644
index 00000000000..88c076e2a01
--- /dev/null
+++ b/bootstrap/dists/debian7/bootstrap.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libxml2-dev \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpgme \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/debian7/packages.yml b/bootstrap/dists/debian7/packages.yml
new file mode 100644
index 00000000000..6a025c79931
--- /dev/null
+++ b/bootstrap/dists/debian7/packages.yml
@@ -0,0 +1,66 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libxml2-dev
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpgme
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/dists/debian8/Dockerfile b/bootstrap/dists/debian8/Dockerfile
new file mode 100644
index 00000000000..319481156ae
--- /dev/null
+++ b/bootstrap/dists/debian8/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:8
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/debian8/bootstrap.sh b/bootstrap/dists/debian8/bootstrap.sh
new file mode 100644
index 00000000000..3bf9a6b6fd7
--- /dev/null
+++ b/bootstrap/dists/debian8/bootstrap.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls28-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ liblmdb-dev \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libsystemd-dev \
+ libxml2-dev \
+ lmdb-utils \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpgme \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-gpgme \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/debian8/packages.yml b/bootstrap/dists/debian8/packages.yml
new file mode 100644
index 00000000000..7158835d45e
--- /dev/null
+++ b/bootstrap/dists/debian8/packages.yml
@@ -0,0 +1,70 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls28-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - liblmdb-dev
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libsystemd-dev
+ - libxml2-dev
+ - lmdb-utils
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpgme
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-gpgme
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/dists/debian9/Dockerfile b/bootstrap/dists/debian9/Dockerfile
new file mode 100644
index 00000000000..0615b309de3
--- /dev/null
+++ b/bootstrap/dists/debian9/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:9
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/debian9/bootstrap.sh b/bootstrap/dists/debian9/bootstrap.sh
new file mode 100644
index 00000000000..4ecad389c1d
--- /dev/null
+++ b/bootstrap/dists/debian9/bootstrap.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls28-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ liblmdb-dev \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libsystemd-dev \
+ libxml2-dev \
+ lmdb-utils \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpg \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-gpg \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/debian9/packages.yml b/bootstrap/dists/debian9/packages.yml
new file mode 100644
index 00000000000..8ef21ba81b2
--- /dev/null
+++ b/bootstrap/dists/debian9/packages.yml
@@ -0,0 +1,70 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls28-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - liblmdb-dev
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libsystemd-dev
+ - libxml2-dev
+ - lmdb-utils
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpg
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-gpg
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/dists/fedora28/Dockerfile b/bootstrap/dists/fedora28/Dockerfile
new file mode 100644
index 00000000000..fe7f228a1c7
--- /dev/null
+++ b/bootstrap/dists/fedora28/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:28
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/fedora28/bootstrap.sh b/bootstrap/dists/fedora28/bootstrap.sh
new file mode 100644
index 00000000000..8500cb5ce7a
--- /dev/null
+++ b/bootstrap/dists/fedora28/bootstrap.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+set -xueo pipefail
+
+dnf -y -q update
+
+dnf -y -q --verbose install \
+ @development-tools \
+ attr \
+ autoconf \
+ bind \
+ bind-utils \
+ binutils \
+ bison \
+ ccache \
+ cups-devel \
+ curl \
+ dbus-devel \
+ docbook-dtds \
+ docbook-style-xsl \
+ gcc \
+ gdb \
+ git \
+ glibc-common \
+ glibc-langpack-en \
+ glibc-locale-source \
+ gnutls-devel \
+ gpgme-devel \
+ jansson-devel \
+ keyutils-libs-devel \
+ krb5-devel \
+ krb5-workstation \
+ libacl-devel \
+ libaio-devel \
+ libarchive-devel \
+ libattr-devel \
+ libblkid-devel \
+ libbsd-devel \
+ libnsl2-devel \
+ libpcap-devel \
+ libsemanage-python \
+ libtirpc-devel \
+ libxml2-devel \
+ libxslt \
+ lmdb-devel \
+ lmdb-devel \
+ make \
+ mlocate \
+ ncurses-devel \
+ nettle-devel \
+ openldap-devel \
+ pam-devel \
+ perl \
+ perl-ExtUtils-MakeMaker \
+ perl-Parse-Yapp \
+ perl-Test-Base \
+ pkgconfig \
+ policycoreutils-python \
+ popt-devel \
+ procps-ng \
+ psmisc \
+ python-crypto \
+ python-devel \
+ python-dns \
+ python-markdown \
+ python2-gpg \
+ python3-crypto \
+ python3-devel \
+ python3-dns \
+ python3-gpg \
+ python3-markdown \
+ readline-devel \
+ redhat-lsb \
+ rpcgen \
+ sudo \
+ systemd-devel \
+ vim \
+ wget \
+ yum-utils \
+ zlib-devel
+
+dnf clean all
+
+# gen locale
+localedef -c -i en_US -f UTF-8 en_US.UTF-8
+
+# no update-locale, diy
+# LC_ALL is not valid in this file
+echo LANG="en_US.UTF-8" > /etc/locale.conf
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/fedora28/packages.yml b/bootstrap/dists/fedora28/packages.yml
new file mode 100644
index 00000000000..241d1991d57
--- /dev/null
+++ b/bootstrap/dists/fedora28/packages.yml
@@ -0,0 +1,75 @@
+---
+packages:
+ - @development-tools
+ - attr
+ - autoconf
+ - bind
+ - bind-utils
+ - binutils
+ - bison
+ - ccache
+ - cups-devel
+ - curl
+ - dbus-devel
+ - docbook-dtds
+ - docbook-style-xsl
+ - gcc
+ - gdb
+ - git
+ - glibc-common
+ - glibc-langpack-en
+ - glibc-locale-source
+ - gnutls-devel
+ - gpgme-devel
+ - jansson-devel
+ - keyutils-libs-devel
+ - krb5-devel
+ - krb5-workstation
+ - libacl-devel
+ - libaio-devel
+ - libarchive-devel
+ - libattr-devel
+ - libblkid-devel
+ - libbsd-devel
+ - libnsl2-devel
+ - libpcap-devel
+ - libsemanage-python
+ - libtirpc-devel
+ - libxml2-devel
+ - libxslt
+ - lmdb-devel
+ - lmdb-devel
+ - make
+ - mlocate
+ - ncurses-devel
+ - nettle-devel
+ - openldap-devel
+ - pam-devel
+ - perl
+ - perl-ExtUtils-MakeMaker
+ - perl-Parse-Yapp
+ - perl-Test-Base
+ - pkgconfig
+ - policycoreutils-python
+ - popt-devel
+ - procps-ng
+ - psmisc
+ - python-crypto
+ - python-devel
+ - python-dns
+ - python-markdown
+ - python2-gpg
+ - python3-crypto
+ - python3-devel
+ - python3-dns
+ - python3-gpg
+ - python3-markdown
+ - readline-devel
+ - redhat-lsb
+ - rpcgen
+ - sudo
+ - systemd-devel
+ - vim
+ - wget
+ - yum-utils
+ - zlib-devel \ No newline at end of file
diff --git a/bootstrap/dists/fedora29/Dockerfile b/bootstrap/dists/fedora29/Dockerfile
new file mode 100644
index 00000000000..55db7719de0
--- /dev/null
+++ b/bootstrap/dists/fedora29/Dockerfile
@@ -0,0 +1,18 @@
+FROM fedora:29
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/fedora29/bootstrap.sh b/bootstrap/dists/fedora29/bootstrap.sh
new file mode 100644
index 00000000000..8500cb5ce7a
--- /dev/null
+++ b/bootstrap/dists/fedora29/bootstrap.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+set -xueo pipefail
+
+dnf -y -q update
+
+dnf -y -q --verbose install \
+ @development-tools \
+ attr \
+ autoconf \
+ bind \
+ bind-utils \
+ binutils \
+ bison \
+ ccache \
+ cups-devel \
+ curl \
+ dbus-devel \
+ docbook-dtds \
+ docbook-style-xsl \
+ gcc \
+ gdb \
+ git \
+ glibc-common \
+ glibc-langpack-en \
+ glibc-locale-source \
+ gnutls-devel \
+ gpgme-devel \
+ jansson-devel \
+ keyutils-libs-devel \
+ krb5-devel \
+ krb5-workstation \
+ libacl-devel \
+ libaio-devel \
+ libarchive-devel \
+ libattr-devel \
+ libblkid-devel \
+ libbsd-devel \
+ libnsl2-devel \
+ libpcap-devel \
+ libsemanage-python \
+ libtirpc-devel \
+ libxml2-devel \
+ libxslt \
+ lmdb-devel \
+ lmdb-devel \
+ make \
+ mlocate \
+ ncurses-devel \
+ nettle-devel \
+ openldap-devel \
+ pam-devel \
+ perl \
+ perl-ExtUtils-MakeMaker \
+ perl-Parse-Yapp \
+ perl-Test-Base \
+ pkgconfig \
+ policycoreutils-python \
+ popt-devel \
+ procps-ng \
+ psmisc \
+ python-crypto \
+ python-devel \
+ python-dns \
+ python-markdown \
+ python2-gpg \
+ python3-crypto \
+ python3-devel \
+ python3-dns \
+ python3-gpg \
+ python3-markdown \
+ readline-devel \
+ redhat-lsb \
+ rpcgen \
+ sudo \
+ systemd-devel \
+ vim \
+ wget \
+ yum-utils \
+ zlib-devel
+
+dnf clean all
+
+# gen locale
+localedef -c -i en_US -f UTF-8 en_US.UTF-8
+
+# no update-locale, diy
+# LC_ALL is not valid in this file
+echo LANG="en_US.UTF-8" > /etc/locale.conf
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/fedora29/packages.yml b/bootstrap/dists/fedora29/packages.yml
new file mode 100644
index 00000000000..241d1991d57
--- /dev/null
+++ b/bootstrap/dists/fedora29/packages.yml
@@ -0,0 +1,75 @@
+---
+packages:
+ - @development-tools
+ - attr
+ - autoconf
+ - bind
+ - bind-utils
+ - binutils
+ - bison
+ - ccache
+ - cups-devel
+ - curl
+ - dbus-devel
+ - docbook-dtds
+ - docbook-style-xsl
+ - gcc
+ - gdb
+ - git
+ - glibc-common
+ - glibc-langpack-en
+ - glibc-locale-source
+ - gnutls-devel
+ - gpgme-devel
+ - jansson-devel
+ - keyutils-libs-devel
+ - krb5-devel
+ - krb5-workstation
+ - libacl-devel
+ - libaio-devel
+ - libarchive-devel
+ - libattr-devel
+ - libblkid-devel
+ - libbsd-devel
+ - libnsl2-devel
+ - libpcap-devel
+ - libsemanage-python
+ - libtirpc-devel
+ - libxml2-devel
+ - libxslt
+ - lmdb-devel
+ - lmdb-devel
+ - make
+ - mlocate
+ - ncurses-devel
+ - nettle-devel
+ - openldap-devel
+ - pam-devel
+ - perl
+ - perl-ExtUtils-MakeMaker
+ - perl-Parse-Yapp
+ - perl-Test-Base
+ - pkgconfig
+ - policycoreutils-python
+ - popt-devel
+ - procps-ng
+ - psmisc
+ - python-crypto
+ - python-devel
+ - python-dns
+ - python-markdown
+ - python2-gpg
+ - python3-crypto
+ - python3-devel
+ - python3-dns
+ - python3-gpg
+ - python3-markdown
+ - readline-devel
+ - redhat-lsb
+ - rpcgen
+ - sudo
+ - systemd-devel
+ - vim
+ - wget
+ - yum-utils
+ - zlib-devel \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1404/Dockerfile b/bootstrap/dists/ubuntu1404/Dockerfile
new file mode 100644
index 00000000000..40e59b19753
--- /dev/null
+++ b/bootstrap/dists/ubuntu1404/Dockerfile
@@ -0,0 +1,18 @@
+FROM ubuntu:14.04
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1404/bootstrap.sh b/bootstrap/dists/ubuntu1404/bootstrap.sh
new file mode 100644
index 00000000000..b80055eec5e
--- /dev/null
+++ b/bootstrap/dists/ubuntu1404/bootstrap.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ language-pack-en \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ liblmdb-dev/trusty-backports \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libxml2-dev \
+ lmdb-utils/trusty-backports \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpgme \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-gpgme \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1404/packages.yml b/bootstrap/dists/ubuntu1404/packages.yml
new file mode 100644
index 00000000000..b5a042ce0e3
--- /dev/null
+++ b/bootstrap/dists/ubuntu1404/packages.yml
@@ -0,0 +1,70 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - language-pack-en
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - liblmdb-dev/trusty-backports
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libxml2-dev
+ - lmdb-utils/trusty-backports
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpgme
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-gpgme
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1604/Dockerfile b/bootstrap/dists/ubuntu1604/Dockerfile
new file mode 100644
index 00000000000..772b630d943
--- /dev/null
+++ b/bootstrap/dists/ubuntu1604/Dockerfile
@@ -0,0 +1,18 @@
+FROM ubuntu:16.04
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1604/bootstrap.sh b/bootstrap/dists/ubuntu1604/bootstrap.sh
new file mode 100644
index 00000000000..5e3a4b8a6f7
--- /dev/null
+++ b/bootstrap/dists/ubuntu1604/bootstrap.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ language-pack-en \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls28-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ liblmdb-dev \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libsystemd-dev \
+ libxml2-dev \
+ lmdb-utils \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpgme \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-gpgme \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1604/packages.yml b/bootstrap/dists/ubuntu1604/packages.yml
new file mode 100644
index 00000000000..c1f707563ac
--- /dev/null
+++ b/bootstrap/dists/ubuntu1604/packages.yml
@@ -0,0 +1,71 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - language-pack-en
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls28-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - liblmdb-dev
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libsystemd-dev
+ - libxml2-dev
+ - lmdb-utils
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpgme
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-gpgme
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1804/Dockerfile b/bootstrap/dists/ubuntu1804/Dockerfile
new file mode 100644
index 00000000000..db517e19071
--- /dev/null
+++ b/bootstrap/dists/ubuntu1804/Dockerfile
@@ -0,0 +1,18 @@
+FROM ubuntu:18.04
+
+# we will use this image to run ci, these ENV vars are important
+ENV CC="ccache gcc"
+
+ADD bootstrap.sh /tmp/bootstrap.sh
+# need root permission, do it before USER samba
+RUN bash /tmp/bootstrap.sh
+
+# make test can not work with root, so we have to create a new user
+RUN useradd -m -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.UTF-8 LANG=en_US.UTF-8 \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1804/bootstrap.sh b/bootstrap/dists/ubuntu1804/bootstrap.sh
new file mode 100644
index 00000000000..c355d7873b3
--- /dev/null
+++ b/bootstrap/dists/ubuntu1804/bootstrap.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+set -xueo pipefail
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y update
+
+apt-get -y install \
+ apt-utils \
+ attr \
+ autoconf \
+ bind9 \
+ bind9utils \
+ binutils \
+ bison \
+ build-essential \
+ ccache \
+ curl \
+ debhelper \
+ dnsutils \
+ docbook-xml \
+ docbook-xsl \
+ flex \
+ gcc \
+ gdb \
+ git \
+ krb5-kdc \
+ language-pack-en \
+ libacl1-dev \
+ libaio-dev \
+ libarchive-dev \
+ libattr1-dev \
+ libblkid-dev \
+ libbsd-dev \
+ libcap-dev \
+ libcups2-dev \
+ libdbus-1-dev \
+ libgnutls28-dev \
+ libgpgme11-dev \
+ libjansson-dev \
+ libjson-perl \
+ libkrb5-dev \
+ libldap2-dev \
+ liblmdb-dev \
+ libncurses5-dev \
+ libpam0g-dev \
+ libparse-yapp-perl \
+ libpopt-dev \
+ libreadline-dev \
+ libsystemd-dev \
+ libxml2-dev \
+ lmdb-utils \
+ locales \
+ locate \
+ lsb-core \
+ make \
+ nettle-dev \
+ perl \
+ perl-modules \
+ pkg-config \
+ procps \
+ psmisc \
+ python-crypto \
+ python-dev \
+ python-dnspython \
+ python-gpg \
+ python-markdown \
+ python3-crypto \
+ python3-dev \
+ python3-dnspython \
+ python3-gpg \
+ python3-markdown \
+ sudo \
+ vim \
+ wget \
+ xsltproc \
+ zlib1g-dev
+
+apt-get -y autoremove
+apt-get -y autoclean
+apt-get -y clean
+
+# uncomment locale
+# this file doesn't exist on ubuntu1404 even locales installed
+if [ -f /etc/locale.gen ]; then
+ sed -i '/^#\s*en_US.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
+fi
+
+locale-gen
+
+# update /etc/default/locale
+update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
+
+# set both for safe
+echo LC_ALL="en_US.UTF-8" >> /etc/environment
+echo LANG="en_US.UTF-8" >> /etc/environment \ No newline at end of file
diff --git a/bootstrap/dists/ubuntu1804/packages.yml b/bootstrap/dists/ubuntu1804/packages.yml
new file mode 100644
index 00000000000..6ac4658690c
--- /dev/null
+++ b/bootstrap/dists/ubuntu1804/packages.yml
@@ -0,0 +1,71 @@
+---
+packages:
+ - apt-utils
+ - attr
+ - autoconf
+ - bind9
+ - bind9utils
+ - binutils
+ - bison
+ - build-essential
+ - ccache
+ - curl
+ - debhelper
+ - dnsutils
+ - docbook-xml
+ - docbook-xsl
+ - flex
+ - gcc
+ - gdb
+ - git
+ - krb5-kdc
+ - language-pack-en
+ - libacl1-dev
+ - libaio-dev
+ - libarchive-dev
+ - libattr1-dev
+ - libblkid-dev
+ - libbsd-dev
+ - libcap-dev
+ - libcups2-dev
+ - libdbus-1-dev
+ - libgnutls28-dev
+ - libgpgme11-dev
+ - libjansson-dev
+ - libjson-perl
+ - libkrb5-dev
+ - libldap2-dev
+ - liblmdb-dev
+ - libncurses5-dev
+ - libpam0g-dev
+ - libparse-yapp-perl
+ - libpopt-dev
+ - libreadline-dev
+ - libsystemd-dev
+ - libxml2-dev
+ - lmdb-utils
+ - locales
+ - locate
+ - lsb-core
+ - make
+ - nettle-dev
+ - perl
+ - perl-modules
+ - pkg-config
+ - procps
+ - psmisc
+ - python-crypto
+ - python-dev
+ - python-dnspython
+ - python-gpg
+ - python-markdown
+ - python3-crypto
+ - python3-dev
+ - python3-dnspython
+ - python3-gpg
+ - python3-markdown
+ - sudo
+ - vim
+ - wget
+ - xsltproc
+ - zlib1g-dev \ No newline at end of file