Config file for packages and templates.
+Update the lists in this file to require new packages in the
+container images used in GitLab CI
+
Author: Joe Guo <joeg@catalyst.net.nz>
"""
import os
'autoconf',
'binutils',
'bison',
+ 'ccache',
'curl',
+ 'chrpath',
'flex',
'gcc',
'gdb',
'sudo', # docker images has no sudo by default
'tar',
'tree',
+ 'wget',
]
('mingw-w64', 'mingw64-gcc'),
('zlib1g-dev', 'zlib-devel'),
('libbsd-dev', 'libbsd-devel'),
- ('libaio-dev', 'libaio-devel'),
+ ('liburing-dev', 'liburing-devel'),
('libarchive-dev', 'libarchive-devel'),
('libblkid-dev', 'libblkid-devel'),
('libcap-dev', 'libcap-devel'),
('libunwind-dev', 'libunwind-devel'), # for back trace
('libglib2.0-dev', 'glib2-devel'),
('libicu-dev', 'libicu-devel'),
+ ('heimdal-multidev', ''),
# NAME1, NAME2
# for debian, locales provide locale support with language packs
('bind9utils', 'bind-utils'),
('dnsutils', ''),
('xsltproc', 'libxslt'),
- ('krb5-user', ''),
+ ('krb5-user', 'krb5-workstation'),
('krb5-config', ''),
('krb5-kdc', 'krb5-server'),
('apt-utils', 'yum-utils'),
('', 'rpcgen'), # required for test
# refer: https://fedoraproject.org/wiki/Changes/SunRPCRemoval
('', 'libtirpc-devel'), # for <rpc/rpc.h> header on fedora
- ('', 'libnsl2-devel'), # for <rpcsvc/yp_prot.h> header on fedora
('', 'rpcsvc-proto-devel'), # for <rpcsvc/rquota.h> header
('mawk', 'gawk'),
('python3', 'python3'),
+ ('python3-cryptography', 'python3-cryptography'), # for krb5 tests
('python3-dev', 'python3-devel'),
('python3-dbg', ''),
- ('python3-iso8601', ''),
+ ('python3-iso8601', 'python3-iso8601'),
('python3-gpg', 'python3-gpg'), # defaults to ubuntu/fedora latest
- ('python3-crypto', 'python3-crypto'),
('python3-markdown', 'python3-markdown'),
('python3-matplotlib', ''),
('python3-dnspython', 'python3-dns'),
('python3-pexpect', ''), # for wintest only
+ ('python3-pyasn1', 'python3-pyasn1'), # for krb5 tests
+ ('python3-setproctitle', 'python3-setproctitle'),
- ('', 'libsemanage-python'),
- ('', 'policycoreutils-python'),
+ ('', 'python3-libsemanage'),
+ ('', 'python3-policycoreutils'),
# perl
('libparse-yapp-perl', 'perl-Parse-Yapp'),
- ('libjson-perl', 'perl-JSON-Parse'),
+ ('libjson-perl', 'perl-JSON'),
+ ('', 'perl-JSON-Parse'),
('perl-modules', ''),
+ ('', 'perl-FindBin'),
('', 'perl-Archive-Tar'),
('', 'perl-ExtUtils-MakeMaker'),
('', 'perl-Test-Base'),
('glusterfs-common', 'glusterfs-devel'),
('libcephfs-dev', 'libcephfs-devel'),
+ # spotlight
+ ('libtracker-sparql-2.0-dev', 'tracker-devel'),
+
# misc
# @ means group for rpm, use fedora as rpm default
('build-essential', '@development-tools'),
fi
"""
-CENTOS8_YUM_BOOTSTRAP = r"""
+CENTOS8S_YUM_BOOTSTRAP = r"""
#!/bin/bash
{GENERATED_MARKER}
set -xueo pipefail
yum update -y
yum install -y dnf-plugins-core
yum install -y epel-release
-yum config-manager --set-enabled PowerTools -y
+
+yum -v repolist all
+yum config-manager --set-enabled powertools -y || \
+ yum config-manager --set-enabled powertools -y
+
yum update -y
yum install -y \
# 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"
+# if ld.mold exists, force link it to ld (prefer mold over gold! ;-)
+RUN set -x; LD=$(which ld); LD_MOLD=$(which ld.mold); test -x $LD_MOLD && 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 && \
DEB_DISTS = {
- 'debian7': {
- 'docker_image': 'debian:7',
- 'vagrant_box': 'debian/wheezy64',
- 'replace': {
- 'libgnutls28-dev': 'libgnutls-dev',
- 'libsystemd-dev': '', # not available, remove
- 'lmdb-utils': '', # not available, remove
- 'liblmdb-dev': '', # not available, remove
- 'python-gpg': 'python-gpgme',
- 'python3-gpg': '', # no python3 gpg pkg available, remove
- 'language-pack-en': '', # included in locales
- }
- },
- 'debian8': {
- 'docker_image': 'debian:8',
- 'vagrant_box': 'debian/jessie64',
+ 'debian10': {
+ 'docker_image': 'debian:10',
+ 'vagrant_box': 'debian/buster64',
'replace': {
- 'python-gpg': 'python-gpgme',
- 'python3-gpg': 'python3-gpgme',
'language-pack-en': '', # included in locales
+ 'liburing-dev': '', # not available
}
},
- 'debian9': {
- 'docker_image': 'debian:9',
- 'vagrant_box': 'debian/stretch64',
+ 'debian11': {
+ 'docker_image': 'debian:11',
+ 'vagrant_box': 'debian/bullseye64',
'replace': {
'language-pack-en': '', # included in locales
}
},
- 'ubuntu1404': {
- 'docker_image': 'ubuntu:14.04',
- 'vagrant_box': 'ubuntu/trusty64',
+ 'ubuntu1804': {
+ 'docker_image': 'ubuntu:18.04',
+ 'vagrant_box': 'ubuntu/bionic64',
'replace': {
- 'libsystemd-dev': '', # remove
- 'libgnutls28-dev': 'libgnutls-dev',
- 'python-gpg': 'python-gpgme',
- 'python3-gpg': 'python3-gpgme',
- 'lmdb-utils': 'lmdb-utils/trusty-backports',
- 'liblmdb-dev': 'liblmdb-dev/trusty-backports',
- 'libunwind-dev': 'libunwind8-dev',
- 'glusterfs-common': '',
- 'libcephfs-dev': '',
+ 'liburing-dev': '', # not available
}
},
- 'ubuntu1604': {
- 'docker_image': 'ubuntu:16.04',
- 'vagrant_box': 'ubuntu/xenial64',
+ 'ubuntu2004': {
+ 'docker_image': 'ubuntu:20.04',
+ 'vagrant_box': 'ubuntu/focal64',
'replace': {
- 'python-gpg': 'python-gpgme',
- 'python3-gpg': 'python3-gpgme',
- 'glusterfs-common': '',
- 'libcephfs-dev': '',
+ 'liburing-dev': '', # not available
}
},
- 'ubuntu1804': {
- 'docker_image': 'ubuntu:18.04',
- 'vagrant_box': 'ubuntu/bionic64',
- },
}
RPM_DISTS = {
- 'centos6': {
- 'docker_image': 'centos:6',
- 'vagrant_box': 'centos/6',
- 'bootstrap': YUM_BOOTSTRAP,
- 'replace': {
- 'lsb-release': 'redhat-lsb',
- 'python3': 'python36',
- 'python3-devel': 'python36-devel',
- 'python2-gpg': 'pygpgme',
- 'python3-gpg': '', # no python3-gpg yet
- '@development-tools': '"@Development Tools"', # add quotes
- 'glibc-langpack-en': '', # included in glibc-common
- 'glibc-locale-source': '', # included in glibc-common
- 'procps-ng': 'procps', # centos6 still use old name
- # update perl core modules on centos
- # fix: Can't locate Archive/Tar.pm in @INC
- 'perl': 'perl-core',
- 'rpcsvc-proto-devel': '',
- 'glusterfs-api-devel': '',
- 'glusterfs-devel': '',
- 'libcephfs-devel': '',
- }
- },
'centos7': {
'docker_image': 'centos:7',
'vagrant_box': 'centos/7',
'replace': {
'lsb-release': 'redhat-lsb',
'python3': 'python36',
- 'python3-crypto': 'python36-crypto',
+ 'python3-cryptography': 'python36-cryptography',
'python3-devel': 'python36-devel',
'python3-dns': 'python36-dns',
+ 'python3-pyasn1': 'python36-pyasn1',
'python3-gpg': 'python36-gpg',
'python3-iso8601' : 'python36-iso8601',
'python3-markdown': 'python36-markdown',
# update perl core modules on centos
# fix: Can't locate Archive/Tar.pm in @INC
'perl': 'perl-core',
+ 'perl-FindBin': '',
'rpcsvc-proto-devel': '',
'glusterfs-api-devel': '',
'glusterfs-devel': '',
'libcephfs-devel': '',
- 'gnutls-devel': 'compat-gnutls34-devel',
+ 'gnutls-devel': 'compat-gnutls37-devel',
+ 'liburing-devel': '', # not available
+ 'python3-setproctitle': 'python36-setproctitle',
+ 'tracker-devel': '', # do not install
}
},
- 'centos8': {
- 'docker_image': 'centos:8',
- 'vagrant_box': 'centos/8',
- 'bootstrap': CENTOS8_YUM_BOOTSTRAP,
+ 'centos8s': {
+ 'docker_image': 'quay.io/centos/centos:stream8',
+ 'vagrant_box': 'centos/stream8',
+ 'bootstrap': CENTOS8S_YUM_BOOTSTRAP,
'replace': {
'lsb-release': 'redhat-lsb',
'@development-tools': '"@Development Tools"', # add quotes
- 'libsemanage-python': 'python3-libsemanage',
'lcov': '', # does not exist
'perl-JSON-Parse': '', # does not exist?
'perl-Test-Base': 'perl-Test-Simple',
- 'policycoreutils-python': 'python3-policycoreutils',
- 'python3-crypto': '',
- 'quota-devel': '', # FIXME: Add me back, once available!
+ 'perl-FindBin': '',
+ 'liburing-devel': '', # not available yet, Add me back, once available!
}
},
- 'fedora29': {
- 'docker_image': 'fedora:29',
- 'vagrant_box': 'fedora/29-cloud-base',
+ 'fedora34': {
+ 'docker_image': 'fedora:34',
+ 'vagrant_box': 'fedora/34-cloud-base',
'bootstrap': DNF_BOOTSTRAP,
'replace': {
'lsb-release': 'redhat-lsb',
+ 'perl-FindBin': '',
+ 'python3-iso8601': 'python3-dateutil',
+ 'libtracker-sparql-2.0-dev': '', # only tracker 3.x is available
}
},
- 'fedora30': {
- 'docker_image': 'fedora:30',
- 'vagrant_box': 'fedora/30-cloud-base',
+ 'fedora35': {
+ 'docker_image': 'fedora:35',
+ 'vagrant_box': 'fedora/35-cloud-base',
'bootstrap': DNF_BOOTSTRAP,
'replace': {
'lsb-release': 'redhat-lsb',
+ 'perl-FindBin': '',
+ 'python3-iso8601': 'python3-dateutil',
+ 'libtracker-sparql-2.0-dev': '', # only tracker 3.x is available
}
},
- 'fedora31': {
- 'docker_image': 'fedora:31',
- 'vagrant_box': 'fedora/31-cloud-base',
- 'bootstrap': DNF_BOOTSTRAP,
- 'replace': {
- 'lsb-release': 'redhat-lsb',
- 'libsemanage-python': 'python3-libsemanage',
- 'policycoreutils-python': 'python3-policycoreutils',
- }
- },
- 'opensuse150': {
- 'docker_image': 'opensuse/leap:15.0',
- 'vagrant_box': 'opensuse/openSUSE-15.0-x86_64',
+ 'opensuse151': {
+ 'docker_image': 'opensuse/leap:15.1',
+ 'vagrant_box': 'opensuse/openSUSE-15.1-x86_64',
'bootstrap': ZYPPER_BOOTSTRAP,
'replace': {
'@development-tools': '',
'jansson-devel': 'libjansson-devel',
'keyutils-libs-devel': 'keyutils-devel',
'krb5-workstation': 'krb5-client',
- 'libnsl2-devel': 'libnsl-devel',
- 'libsemanage-python': 'python2-semanage',
+ 'python3-libsemanage': 'python2-semanage',
'openldap-devel': 'openldap2-devel',
'perl-Archive-Tar': 'perl-Archive-Tar-Wrapper',
'perl-JSON-Parse': 'perl-JSON-XS',
'perl-generators': '',
'perl-interpreter': '',
+ 'perl-FindBin': '',
'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
+ 'liburing-devel': '', # not available
}
},
- 'opensuse151': {
- 'docker_image': 'opensuse/leap:15.1',
- 'vagrant_box': 'opensuse/openSUSE-15.1-x86_64',
+ 'opensuse152': {
+ 'docker_image': 'opensuse/leap:15.2',
+ 'vagrant_box': 'opensuse/openSUSE-15.2-x86_64',
'bootstrap': ZYPPER_BOOTSTRAP,
'replace': {
'@development-tools': '',
'jansson-devel': 'libjansson-devel',
'keyutils-libs-devel': 'keyutils-devel',
'krb5-workstation': 'krb5-client',
- 'libnsl2-devel': 'libnsl-devel',
- 'libsemanage-python': 'python2-semanage',
+ 'python3-libsemanage': 'python2-semanage',
'openldap-devel': 'openldap2-devel',
'perl-Archive-Tar': 'perl-Archive-Tar-Wrapper',
'perl-JSON-Parse': 'perl-JSON-XS',
'perl-generators': '',
'perl-interpreter': '',
+ 'perl-FindBin': '',
'procps-ng': 'procps',
- 'python-dns': 'python2-dnspython',
- 'python3-crypto': 'python3-pycrypto',
+ 'python3-iso8601': 'python3-python-dateutil',
'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
}
}
}