From 8f5ef86e5f5cb68a36a807279f6c2040c6b7ca3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Wed, 26 Apr 2017 15:44:47 +0200 Subject: [PATCH 01/29] Make coreutils-single installable again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index b290eef..7c413d6 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -715,10 +715,10 @@ data: chkconfig: rationale: Autogenerated by Base Runtime tools. ref: e82efb8130cfda6d6e1d255f5c9a2b70fb527249 - # coreutils-8.26-7.fc26 + # coreutils-8.27-3.fc27 coreutils: rationale: Autogenerated by Base Runtime tools. - ref: bc257082406e008d63ca9271390a5bdb65689c3d + ref: 3d65658099fc016b2a0c90f0a2ebc7403bfcd00c # cpio-2.12-4.fc26 cpio: rationale: Autogenerated by Base Runtime tools. From a614dfd5358e71c7ae9f08faa7f2146b01c4e358 Mon Sep 17 00:00:00 2001 From: Bruno Goncalves Date: Thu, 27 Apr 2017 14:44:57 +0200 Subject: [PATCH 02/29] Initial test for baseruntime module --- tests/Makefile | 6 + tests/brtconfig.py | 77 ++++ tests/cleanup.py | 75 ++++ tests/config.yaml | 28 ++ tests/resources/base-runtime-mock.cfg | 34 ++ tests/resources/hello-world/Makefile | 4 + tests/resources/hello-world/README.md | 15 + tests/resources/hello-world/hello.c | 8 + tests/resources/hello-world/hello.sh | 7 + .../all_installed_pkgs_docker.txt | 111 ++++++ .../all_installed_pkgs_nspawn.txt | 144 +++++++ tests/resources/os_release/os_release.sh | 96 +++++ tests/setup.py | 195 +++++++++ tests/smoke.py | 371 ++++++++++++++++++ tests/teardown.py | 32 ++ 15 files changed, 1203 insertions(+) create mode 100644 tests/Makefile create mode 100644 tests/brtconfig.py create mode 100644 tests/cleanup.py create mode 100644 tests/config.yaml create mode 100644 tests/resources/base-runtime-mock.cfg create mode 100644 tests/resources/hello-world/Makefile create mode 100644 tests/resources/hello-world/README.md create mode 100644 tests/resources/hello-world/hello.c create mode 100755 tests/resources/hello-world/hello.sh create mode 100644 tests/resources/installed_packages/all_installed_pkgs_docker.txt create mode 100644 tests/resources/installed_packages/all_installed_pkgs_nspawn.txt create mode 100755 tests/resources/os_release/os_release.sh create mode 100755 tests/setup.py create mode 100644 tests/smoke.py create mode 100755 tests/teardown.py diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..ab9eb6d --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,6 @@ +CMD=MODULE=nspawn python -m avocado run smoke.py + +check: + $(CMD) + +all: check diff --git a/tests/brtconfig.py b/tests/brtconfig.py new file mode 100644 index 0000000..447102b --- /dev/null +++ b/tests/brtconfig.py @@ -0,0 +1,77 @@ +""" +get configuration parameters for base runtime smoke testing +""" + +import os +import logging +from moduleframework import module_framework + + +def get_mockcfg(self): + """ + Get the path to the base runtime mock configuration file + + This is provided by the avocado 'mockcfg' parameter if supplied, + otherwise it is set to "resources/base-runtime-mock.cfg" relative to + the test script directory. + """ + + script_dir = os.path.abspath(os.path.dirname(__file__)) + self.log.info("running script from directory: %s" % script_dir) + + mockcfg = self.params.get('mockcfg', default=os.path.join( + script_dir, "resources", "base-runtime-mock.cfg")) + mockcfg = str(mockcfg) + + if not mockcfg.endswith(".cfg"): + self.error("mock configuration file %s must have the extension '.cfg'" % + mockcfg) + + if not os.path.isfile(mockcfg): + self.error("mock configuration file %s does not exist" % + mockcfg) + + self.log.info("mock configuration file: %s" % mockcfg) + + return mockcfg + + +def get_compiler_test_dir(self): + """ + Get the path to the base runtime compiler test resource directory + + This is provided by the avocado 'compiler-test-dir' parameter if supplied, + otherwise it is set to "resources/hello-world" relative to + the test script directory. + """ + + script_dir = os.path.abspath(os.path.dirname(__file__)) + self.log.info("running script from directory: %s" % script_dir) + + compdir = self.params.get( + 'compiler-test-dir', default=os.path.join(script_dir, "resources", "hello-world")) + compdir = str(compdir) + + if not os.path.isdir(compdir): + self.error("Compiler test resource directory %s does not exist" % compdir) + + self.log.info("Compiler test resource directory: %s" % compdir) + + return compdir + + +def get_docker_image_name(self): + """ + Get the name to use for the base runtime docker image + """ + + container_helper = module_framework.ContainerHelper() + #It tries to get the name from URL env variable + #If URL is not defined it tries to get the name from config.yaml + image_name = container_helper.getDockerInstanceName() + if not image_name: + self.error("Could not find docker image name to use") + + self.log.info("base runtime image name: %s" % image_name) + + return image_name diff --git a/tests/cleanup.py b/tests/cleanup.py new file mode 100644 index 0000000..098737b --- /dev/null +++ b/tests/cleanup.py @@ -0,0 +1,75 @@ +""" +cleanup docker container/images and mock root for smoke testing +""" + +import logging +import subprocess +import re + + +log = logging.getLogger('avocado.test') + +def cleanup_docker_and_mock(mockcfg, img_name): + + # Clean-up old test artifacts (docker containers, image, mock root) + + docker_containerlist_cmdline = 'docker ps --filter=ancestor=%s -a -q' % img_name + try: + containerlist = subprocess.check_output(docker_containerlist_cmdline, + stderr = subprocess.STDOUT, shell = True) + except subprocess.CalledProcessError as e: + log.error("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + raise + else: + log.info("docker container list with '%s' succeeded with output:\n%s" % + (docker_containerlist_cmdline, containerlist)) + + if containerlist: + containers = re.sub('[\r\n]+', ' ', containerlist) + log.info("docker containers using image %s need to be removed: %s\n" % + (img_name, containers)); + docker_teardown_cmdline = 'docker rm -f %s' % containers + try: + docker_teardown_output = subprocess.check_output(docker_teardown_cmdline, + stderr = subprocess.STDOUT, shell = True) + except subprocess.CalledProcessError as e: + log.error("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + raise + else: + log.info("docker container teardown with '%s' succeeded with output:\n%s" % + (docker_teardown_cmdline, docker_teardown_output)) + else: + log.info("no docker containers are using image %s\n" % img_name) + + docker_teardown_cmdline = 'docker rmi %s' % img_name + try: + docker_teardown_output = subprocess.check_output(docker_teardown_cmdline, + stderr = subprocess.STDOUT, shell = True) + except subprocess.CalledProcessError as e: + if "No such image" not in e.output: + log.error("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + raise + else: + log.info("No existing docker image named %s" % img_name) + else: + log.info("docker teardown with '%s' succeeded with output:\n%s" % + (docker_teardown_cmdline, docker_teardown_output)) + + mock_teardown_cmdline = ['mock', '-r', mockcfg, '--scrub=all'] + try: + mock_teardown_output = subprocess.check_output(mock_teardown_cmdline, + stderr = subprocess.STDOUT) + except subprocess.CalledProcessError as e: + log.error("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + raise + log.info("mock teardown with '%s' succeeded with output:\n%s" % + (mock_teardown_cmdline, mock_teardown_output)) + + + + + diff --git a/tests/config.yaml b/tests/config.yaml new file mode 100644 index 0000000..d939680 --- /dev/null +++ b/tests/config.yaml @@ -0,0 +1,28 @@ +document: modularity-testing +version: 1 +name: baseruntime +modulemd-url: http://pkgs.fedoraproject.org/cgit/modules/base-runtime.git/plain/base-runtime.yaml +service: + port: +packages: + profiles: + - baseimage + rpms: +default_module: docker +module: + docker: + start: + labels: + description: "I dont know" + io.k8s.description: "I dont know too" + source: http://pkgs.fedoraproject.org/cgit/modules/base-runtime.git + container: docker=base-runtime-smoke + rpm: + start: + stop: + status: + repos: + - https://kojipkgs.stg.fedoraproject.org/compose/branched/jkaluza/latest-Boltron-26/compose/base-runtime/x86_64/os/ +test: + processrunnig: + - 'ls / | grep bin' diff --git a/tests/resources/base-runtime-mock.cfg b/tests/resources/base-runtime-mock.cfg new file mode 100644 index 0000000..ebe98c8 --- /dev/null +++ b/tests/resources/base-runtime-mock.cfg @@ -0,0 +1,34 @@ + +config_opts['root'] = 'base-runtime-docker' +config_opts['target_arch'] = 'x86_64' +config_opts['legal_host_arches'] = ('x86_64',) +config_opts['chroot_setup_cmd'] = 'install --setopt=tsflags=nodocs bash coreutils-single filesystem glibc-minimal-langpack libcrypt microdnf rpm shadow-utils util-linux' +config_opts['dist'] = '' +config_opts['extra_chroot_dirs'] = [ '/run/lock', ] +config_opts['releasever'] = '' +config_opts['package_manager'] = 'dnf' + +config_opts['yum.conf'] = """ +[main] +keepcache=1 +debuglevel=2 +reposdir=/dev/null +logfile=/var/log/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +syslog_ident=mock +syslog_device= +install_weak_deps=0 +metadata_expire=3600 +mdpolicy=group:primary + +# repos + +[buildrepo] +name=base-runtime +baseurl=https://kojipkgs.stg.fedoraproject.org/compose/branched/jkaluza/latest-Boltron-26/compose/base-runtime/x86_64/os/ +enabled=1 + +""" diff --git a/tests/resources/hello-world/Makefile b/tests/resources/hello-world/Makefile new file mode 100644 index 0000000..71a429e --- /dev/null +++ b/tests/resources/hello-world/Makefile @@ -0,0 +1,4 @@ +default: hello + +hello: hello.c + gcc -Wall hello.c -o hello diff --git a/tests/resources/hello-world/README.md b/tests/resources/hello-world/README.md new file mode 100644 index 0000000..8b81058 --- /dev/null +++ b/tests/resources/hello-world/README.md @@ -0,0 +1,15 @@ +# compiler sanity smoke test for the Base Runtime docker image + +The internal workings of this test are as follows: + +1. Create a temporary directory. +2. Copy the `hello.sh` script from this resource directory into the temporary directory and make sure it is executable. +3. Place a gzipped tarball of `hello.c` and `Makefile` from this resource directory into the temporary directory with the name `hello.tgz`. + e.g., + `$ tar czf /tmp/random/hello.tgz hello.c Makefile` +4. Run the docker container binding the temporary directory as `/mnt` and run `/mnt/hello.sh`. + e.g., + `$ docker run -v /tmp/random:/mnt:z --rm base-runtime /bin/bash -c /mnt/hello.sh` +5. Clean up the temporary directory upon completion. + + diff --git a/tests/resources/hello-world/hello.c b/tests/resources/hello-world/hello.c new file mode 100644 index 0000000..020484e --- /dev/null +++ b/tests/resources/hello-world/hello.c @@ -0,0 +1,8 @@ +#include + +int +main (void) +{ + printf ("Hello, world!\n"); + return 0; +} diff --git a/tests/resources/hello-world/hello.sh b/tests/resources/hello-world/hello.sh new file mode 100755 index 0000000..b75b9f9 --- /dev/null +++ b/tests/resources/hello-world/hello.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e # exit immediately on any failure +microdnf install tar make gcc 1>&2 +cd /mnt +tar xzvf hello.tgz 1>&2 +make 1>&2 +./hello diff --git a/tests/resources/installed_packages/all_installed_pkgs_docker.txt b/tests/resources/installed_packages/all_installed_pkgs_docker.txt new file mode 100644 index 0000000..88199b0 --- /dev/null +++ b/tests/resources/installed_packages/all_installed_pkgs_docker.txt @@ -0,0 +1,111 @@ +audit-libs +basesystem +bash +bzip2-libs +ca-certificates +chkconfig +coreutils-single +cracklib +crypto-policies +curl +cyrus-sasl-lib +elfutils-libelf +expat +fedora-modular-release +filesystem +gawk +glib2 +glibc +glibc-common +glibc-minimal-langpack +gmp +gnupg2 +gnutls +gobject-introspection +gpgme +grep +gzip +info +keyutils-libs +krb5-libs +libacl +libarchive +libassuan +libattr +libblkid +libcap +libcap-ng +libcom_err +libcrypt +libcurl +libdb +libdb-utils +libdnf +libfdisk +libffi +libgcc +libgcrypt +libgpg-error +libidn2 +libksba +libmetalink +libmount +libnghttp2 +libpeas +libpsl +libpwquality +librepo +libselinux +libsemanage +libsepol +libsigsegv +libsmartcols +libsolv +libssh2 +libtasn1 +libunistring +libutempter +libuuid +libverto +libxml2 +lua-libs +lz4 +lz4-libs +lzo +microdnf +mpfr +ncurses +ncurses-base +ncurses-libs +nettle +npth +nspr +nss +nss-pem +nss-softokn +nss-softokn-freebl +nss-sysinit +nss-tools +nss-util +openldap +openssl-libs +p11-kit +p11-kit-trust +pam +pcre +popt +publicsuffix-list-dafsa +readline +rpm +rpm-libs +rpm-plugin-selinux +sed +setup +shadow-utils +sqlite-libs +systemd-libs +tzdata +ustr +util-linux +xz-libs +zlib diff --git a/tests/resources/installed_packages/all_installed_pkgs_nspawn.txt b/tests/resources/installed_packages/all_installed_pkgs_nspawn.txt new file mode 100644 index 0000000..bb225d3 --- /dev/null +++ b/tests/resources/installed_packages/all_installed_pkgs_nspawn.txt @@ -0,0 +1,144 @@ +acl +audit-libs +basesystem +bash +binutils +bzip2-libs +ca-certificates +chkconfig +coreutils-single +cpp +cracklib +cracklib-dicts +crypto-policies +cryptsetup-libs +curl +cyrus-sasl-lib +dbus +dbus-libs +device-mapper +device-mapper-libs +diffutils +elfutils-default-yama-scope +elfutils-libelf +elfutils-libs +emacs-filesystem +expat +fedora-modular-release +filesystem +gawk +gc +gcc +glib2 +glibc +glibc-common +glibc-devel +glibc-headers +glibc-minimal-langpack +gmp +gnupg2 +gnutls +gobject-introspection +gpgme +grep +guile +gzip +info +iptables-libs +isl +kernel-headers +keyutils-libs +kmod-libs +krb5-libs +libacl +libarchive +libassuan +libatomic_ops +libattr +libblkid +libcap +libcap-ng +libcom_err +libcrypt +libcurl +libdb +libdb-utils +libdnf +libfdisk +libffi +libgcc +libgcrypt +libgomp +libgpg-error +libidn +libidn2 +libksba +libmetalink +libmount +libmpc +libnghttp2 +libpcap +libpeas +libpsl +libpwquality +librepo +libseccomp +libselinux +libsemanage +libsepol +libsigsegv +libsmartcols +libsolv +libssh2 +libstdc++ +libtasn1 +libtool-ltdl +libunistring +libutempter +libuuid +libverto +libxml2 +lua-libs +lz4-libs +lzo +make +microdnf +mpfr +ncurses-base +ncurses-libs +nettle +npth +nspr +nss +nss-pem +nss-softokn +nss-softokn-freebl +nss-sysinit +nss-tools +nss-util +openldap +openssl-libs +p11-kit +p11-kit-trust +pam +pcre +popt +publicsuffix-list-dafsa +qrencode-libs +readline +rpm +rpm-libs +rpm-plugin-selinux +sed +setup +shadow-utils +sqlite-libs +systemd +systemd-libs +systemd-pam +tar +tzdata +ustr +util-linux +xz-libs +zlib diff --git a/tests/resources/os_release/os_release.sh b/tests/resources/os_release/os_release.sh new file mode 100755 index 0000000..39a009a --- /dev/null +++ b/tests/resources/os_release/os_release.sh @@ -0,0 +1,96 @@ +#!/bin/bash +set -e # exit immediately on any failure + +. /etc/os-release + +EXP_NAME="Fedora Modular" +EXP_VERSION="26 (Twenty Six)" +EXP_ID="fedora-modular" +EXP_ID_LIKE="fedora" +EXP_VERSION_ID="26" +EXP_PRETTY_NAME="Fedora Modular 26 (Twenty Six)" +EXP_ANSI_COLOR="0;34" +EXP_CPE_NAME="cpe:/o:fedoraproject:fedora-modular:26" +EXP_HOME_URL="https://fedoraproject.org/" +EXP_BUG_REPORT_URL="https://bugzilla.redhat.com/" +EXP_REDHAT_BUGZILLA_PRODUCT="Fedora" +EXP_REDHAT_BUGZILLA_PRODUCT_VERSION="26" +EXP_REDHAT_SUPPORT_PRODUCT="Fedora" +EXP_REDHAT_SUPPORT_PRODUCT_VERSION="26" +EXP_PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" + +if [[ $NAME != $EXP_NAME ]]; then + echo "FAIL: Expected NAME to be '$EXP_NAME', but it is '$NAME'" + exit 1 +fi + +if [[ $VERSION != $EXP_VERSION ]]; then + echo "FAIL: Expected VERSION to be '$EXP_VERSION', but it is '$VERSION'" + exit 1 +fi + +if [[ $ID != $EXP_ID ]]; then + echo "FAIL: Expected ID to be '$EXP_ID', but it is '$ID'" + exit 1 +fi + +if [[ $ID_LIKE != $EXP_ID_LIKE ]]; then + echo "FAIL: Expected ID_LIKE to be '$EXP_ID_LIKE', but it is '$ID_LIKE'" + exit 1 +fi + +if [[ $VERSION_ID != $EXP_VERSION_ID ]]; then + echo "FAIL: Expected VERSION_ID to be '$EXP_VERSION_ID', but it is '$VERSION_ID'" + exit 1 +fi + +if [[ $PRETTY_NAME != $EXP_PRETTY_NAME ]]; then + echo "FAIL: Expected PRETTY_NAME to be '$EXP_PRETTY_NAME', but it is '$PRETTY_NAME'" + exit 1 +fi + +if [[ $ANSI_COLOR != $EXP_ANSI_COLOR ]]; then + echo "FAIL: Expected ANSI_COLOR to be '$EXP_ANSI_COLOR', but it is '$ANSI_COLOR'" + exit 1 +fi + +if [[ $CPE_NAME != $EXP_CPE_NAME ]]; then + echo "FAIL: Expected CPE_NAME to be '$EXP_CPE_NAME', but it is '$CPE_NAME'" + exit 1 +fi + +if [[ $HOME_URL != $EXP_HOME_URL ]]; then + echo "FAIL: Expected HOME_URL to be '$EXP_HOME_URL', but it is '$HOME_URL'" + exit 1 +fi + +if [[ $BUG_REPORT_URL != $EXP_BUG_REPORT_URL ]]; then + echo "FAIL: Expected BUG_REPORT_URL to be '$EXP_BUG_REPORT_URL', but it is '$BUG_REPORT_URL'" + exit 1 +fi + +if [[ $REDHAT_BUGZILLA_PRODUCT != $EXP_REDHAT_BUGZILLA_PRODUCT ]]; then + echo "FAIL: Expected REDHAT_BUGZILLA_PRODUCT to be '$EXP_REDHAT_BUGZILLA_PRODUCT', but it is '$REDHAT_BUGZILLA_PRODUCT'" + exit 1 +fi + +if [[ $REDHAT_BUGZILLA_PRODUCT_VERSION != $EXP_REDHAT_BUGZILLA_PRODUCT_VERSION ]]; then + echo "FAIL: Expected REDHAT_BUGZILLA_PRODUCT_VERSION to be '$EXP_REDHAT_BUGZILLA_PRODUCT_VERSION', but it is '$REDHAT_BUGZILLA_PRODUCT_VERSION'" + exit 1 +fi + +if [[ $REDHAT_SUPPORT_PRODUCT != $EXP_REDHAT_SUPPORT_PRODUCT ]]; then + echo "FAIL: Expected REDHAT_SUPPORT_PRODUCT to be '$EXP_REDHAT_SUPPORT_PRODUCT', but it is '$REDHAT_SUPPORT_PRODUCT'" + exit 1 +fi + +if [[ $REDHAT_SUPPORT_PRODUCT_VERSION != $EXP_REDHAT_SUPPORT_PRODUCT_VERSION ]]; then + echo "FAIL: Expected REDHAT_SUPPORT_PRODUCT_VERSION to be '$EXP_REDHAT_SUPPORT_PRODUCT_VERSION', but it is '$REDHAT_SUPPORT_PRODUCT_VERSION'" + exit 1 +fi + +if [[ $PRIVACY_POLICY_URL != $EXP_PRIVACY_POLICY_URL ]]; then + echo "FAIL: Expected PRIVACY_POLICY_URL to be '$EXP_PRIVACY_POLICY_URL', but it is '$PRIVACY_POLICY_URL'" + exit 1 +fi + diff --git a/tests/setup.py b/tests/setup.py new file mode 100755 index 0000000..13a6af0 --- /dev/null +++ b/tests/setup.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python + +import os +import subprocess +import re +import sys +import configparser +import tempfile + +from avocado import main +from avocado import Test +from moduleframework import module_framework + +import cleanup +import brtconfig + + +class BaseRuntimeSetupDocker(module_framework.CommonFunctions, Test): + + def setUp(self): + + self.mockcfg = brtconfig.get_mockcfg(self) + self.br_image_name = brtconfig.get_docker_image_name(self) + + def _process_mockcfg(self): + + mockcfg = self.mockcfg + + mock_root = '' + mockcfg_lines = [] + #Regex to get packages that are configured on mockcfg to be installed + chroot_setup_pkg_regex = re.compile("config_opts\s*\[\s*'chroot_setup_cmd'\s*\]\s*=" + "\s*'install --setopt=tsflags=nodocs\s*(.*)\s*'") + chroot_setup_pkgs = None + with open(mockcfg, 'r') as mock_cfgfile: + found_setup_cmd = False + for line in mock_cfgfile: + mockcfg_lines.append(line) + if re.match("config_opts\s*\[\s*'root'\s*\]", line) is not None: + mock_root = line.split('=')[1].split("'")[1] + if re.match("config_opts\s*\[\s*'chroot_setup_cmd'\s*\]", line) is not None: + found_setup_cmd = True + #Check if there are packages defined on chroot_setup_cmd + m = chroot_setup_pkg_regex.match(line) + if m: + chroot_setup_pkgs = sorted(m.group(1).split()) + if len(mock_root) == 0: + self.error("mock configuration file %s does not specify mock root" % + mockcfg) + self.log.info("mock root: %s" % mock_root) + self.mock_root = mock_root + + if not found_setup_cmd: + self.error("mock configuration file %s does not define chroot_setup_cmd" % mockcfg) + + #Need to get all packages that need to be installed + mod_yaml = self.getModulemdYamlconfig() + if not mod_yaml: + self.error("Could not read modulemd Yaml file") + + if "data" not in mod_yaml.keys(): + self.error("'data' key was not found in modulemd Yaml file") + + if "profiles" not in mod_yaml["data"].keys(): + self.error("'profiles' key was not found in 'data' section") + + if "baseimage" not in mod_yaml["data"]["profiles"].keys(): + self.error("'baseimage' key was not found in 'profiles' section") + + base_profile = mod_yaml["data"]["profiles"]["baseimage"] + if "rpms" not in base_profile.keys(): + self.error("'rpms' key was not found in 'baseimage' profile") + + req_pkgs = base_profile["rpms"] + if not req_pkgs: + self.error("Could not find any package to be installed in the image") + + #Only update mockcfg if the list of packages changed + if cmp(chroot_setup_pkgs, sorted(req_pkgs)): + #Need to change chroot_setup_cmd line on mockcfg file + setup_cmd = "install --setopt=tsflags=nodocs " + setup_cmd += " ".join(req_pkgs) + with open(mockcfg, 'w') as mock_cfgfile: + for line in mockcfg_lines: + if re.match("config_opts\s*\[\s*'chroot_setup_cmd'\s*\]", line) is not None: + line = "config_opts['chroot_setup_cmd'] = '%s'\n" % setup_cmd + mock_cfgfile.write(line) + + #Test will exit with WARN to inform the config file has changed + self.log.warning("List of packages to be installed by mock changed") + + def _run_command(self, cmd): + try: + cmd_output = subprocess.check_output( + cmd, stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as e: + self.error("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + else: + self.log.info("command '%s' succeeded with output:\n%s" % + (cmd, cmd_output)) + + def _configure_mock_microdnf(self): + """ + Configure mock chroot for microdnf so it carrys into the docker image + """ + + # fetch the dnf.conf file from the mock chroot that was conveniently + # created based on the yum.conf value in the mock configuration file + tmpdnfcfg = tempfile.NamedTemporaryFile(delete=False) + self._run_command('mock -r %s --copyout /etc/dnf/dnf.conf %s' % + (self.mockcfg, tmpdnfcfg.name)) + + with open(tmpdnfcfg.name, 'r') as dnffile: + contents = dnffile.read() + self.log.info( + "Contents of original dnf.conf generated by mock:\n%s" % contents) + + # load the dnf.conf file and remove the [main] section so only the + # repo section(s) remain + config = configparser.ConfigParser() + config.read(tmpdnfcfg.name) + self.log.info("Found the following configuration section(s): %s" % + ' '.join(config.sections())) + if 'main' in config: + del config['main'] + + # write out the cleaned up repo configuration + tmpyumcfg = tempfile.NamedTemporaryFile(delete=False) + with open(tmpyumcfg.name, 'w') as repofile: + config.write(repofile, space_around_delimiters=False) + + with open(tmpyumcfg.name, 'r') as yumfile: + contents = yumfile.read() + self.log.info("Contents of revised yum repo config:\n%s" % contents) + + # copy the new yum repo configuration file into the mock chroot + self._run_command( + 'mock -r %s --copyin %s /etc/yum.repos.d/build.repo' % (self.mockcfg, tmpyumcfg.name)) + self._run_command( + 'mock -r %s --chroot "chmod 644 /etc/yum.repos.d/build.repo"' % self.mockcfg) + + # remove the temporary files + os.remove(tmpdnfcfg.name) + os.remove(tmpyumcfg.name) + + # /etc/pki/rpm-gpg directory must exist or microdnf will explode + self._run_command( + 'mock -r %s --chroot "mkdir -p -m=755 /etc/pki/rpm-gpg"' % self.mockcfg) + + def testCreateDockerImage(self): + + self._process_mockcfg() + + # Clean-up any old test artifacts (docker containers, image, mock root) + # first: + try: + cleanup.cleanup_docker_and_mock(self.mockcfg, self.br_image_name) + except: + self.error("artifact cleanup failed") + else: + self.log.info("artifact cleanup successful") + + # Initialize chroot with mock + self._run_command('mock -r %s --init' % self.mockcfg) + + # Configure mock chroot for microdnf so it carrys into the docker image + self._configure_mock_microdnf() + + # check if "sudo" allows us to tar up the chroot without a password + # Note: this must be configured in "sudoers" to work! + tar_cmd = "tar -C /var/lib/mock/%s/root -c ." % self.mock_root + try: + cmd_output = subprocess.check_output( + "sudo -n %s >/dev/null" % tar_cmd, + stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as e: + # no luck using "sudo", warn and proceed as ordinary user without + # it + self.log.info("command '%s' returned exit status %d; output:\n%s" % + (e.cmd, e.returncode, e.output)) + self.log.warning("NO SUDO RIGHTS TO RUN COMMAND '%s' AS ROOT" % + tar_cmd) + self.log.warning("GENERATED DOCKER IMAGE '%s' MAY BE INCOMPLETE!" % + self.br_image_name) + else: + # "sudo" works, so use it + tar_cmd = "sudo -n " + tar_cmd + + # Import mock chroot as a docker image + self._run_command("%s | docker import - %s" % + (tar_cmd, self.br_image_name)) + +if __name__ == "__main__": + main() diff --git a/tests/smoke.py b/tests/smoke.py new file mode 100644 index 0000000..6b8a5a0 --- /dev/null +++ b/tests/smoke.py @@ -0,0 +1,371 @@ +#!/usr/bin/env python + +import os +import subprocess +import re +import shutil +import stat +import tarfile +import tempfile + +from avocado import main +from moduleframework import module_framework + +import brtconfig + + +class BaseRuntimeSmokeTest(module_framework.AvocadoTest): + """ + :avocado: enable + """ + + def setUp(self): + super(self.__class__, self).setUp() + self.compiler_resource_dir = brtconfig.get_compiler_test_dir(self) + self.compiler_test_dir = None + + def _check_cmd_result(self, cmd, return_code, cmd_output, expect_pass=True): + """ + Check based on return code if command passed or failed as expected + """ + if return_code == 0 and expect_pass: + self.log.info("command '%s' succeeded with output:\n%s" % + (cmd, cmd_output)) + return True + elif return_code != 0 and not expect_pass: + self.log.info("command '%s' failed as expected with output:\n%s" % + (cmd, cmd_output)) + return True + self.error("command '%s' returned unexpected exit status %d; output:\n%s" % + (cmd, return_code, cmd_output)) + return False + + def testSmoke(self): + """ + Run several smoke tests + """ + + # TODO: fill this "placeholder" with actual, complete, smoke tests: + + smoke_pass = [ + "echo 'Hello, World!'", + "cat /etc/redhat-release", + "rpm -q glibc"] + + smoke_fail = [ + "exit 1"] + + for cmd in smoke_pass: + cmd_result = self.run("%s" % cmd, ignore_status=True) + cmd_output = cmd_result.stdout + cmd_result.stderr + self._check_cmd_result(cmd, cmd_result.exit_status, cmd_output) + + for cmd in smoke_fail: + cmd_result = self.run("%s" % cmd, ignore_status=True) + cmd_output = cmd_result.stdout + cmd_result.stderr + self._check_cmd_result(cmd, cmd_result.exit_status, cmd_output, expect_pass=False) + + + def _get_all_installed_pkgs(self): + try: + cmd_result = self.run("rpm -qa --qf='%{name}\n'") + except: + self.error("Could not get all installed packages") + output_list = cmd_result.stdout.split("\n") + #remove empty string from the list + return [item for item in output_list if item] + + def testRequiredPackages(self): + """ + Check if all required packages defined on yaml file are installed + """ + + mod_yaml = self.getModulemdYamlconfig() + if not mod_yaml: + self.error("Could not read modulemd Yaml file") + + if "data" not in mod_yaml.keys(): + self.error("'data' key was not found in modulemd Yaml file") + + if "profiles" not in mod_yaml["data"].keys(): + self.error("'profiles' key was not found in 'data' section") + + if "baseimage" not in mod_yaml["data"]["profiles"].keys(): + self.error("'baseimage' key was not found in 'profiles' section") + + base_profile = mod_yaml["data"]["profiles"]["baseimage"] + if "rpms" not in base_profile.keys(): + self.error("'rpms' key was not found in 'baseimage' profile") + + req_pkgs = base_profile["rpms"] + if not req_pkgs: + self.error("No rpm is defined for baseimage") + + installed_pkgs = self._get_all_installed_pkgs() + + for req_pkg in req_pkgs: + if req_pkg not in installed_pkgs: + self.error("Required package '%s' is not installed" % req_pkg) + + def testInstalledPackages(self): + """ + Check if only the expected packages are installed on module + """ + + expected_pkgs = None + + if not self.moduleType: + self.error("moduleType is not defined") + + all_installed_pkgs_path = ("resources/installed_packages/all_installed_pkgs_%s.txt" + % self.moduleType) + try: + with open(all_installed_pkgs_path) as f: + expected_pkgs = f.read().splitlines() + except: + self.error("Could not read the expected installed packages list") + + if not expected_pkgs: + self.error("List of expected installed packages is empty") + + installed_pkgs = self._get_all_installed_pkgs() + if not installed_pkgs: + self.error("It seems there is no package installed in the module") + + for pkg in installed_pkgs: + if pkg not in expected_pkgs: + self.error("Did not expect to have package '%s' installed" % pkg) + + def testUserManipulation(self): + """ + Check if can add, remove and modify user + """ + + #We want to run multiple commands using same docker container + new_user = "usertest" + pass_cmds = [] + #Create new user + pass_cmds.append("adduser %s" % new_user) + #Make sure user is created + pass_cmds.append("cat /etc/passwd | grep %s" % new_user) + pass_cmds.append("ls /home/%s" % new_user) + #set user password + pass_cmds.append("usermod --password testpassword %s" % new_user) + #Test new user functionality + pass_cmds.append('su - %s -c "touch ~/testfile.txt"' % new_user) + #Make sure the file was created by the correct user + pass_cmds.append("ls -allh /home/%s/testfile.txt | grep '%s %s'" % + (new_user, new_user, new_user)) + #Remove user + pass_cmds.append("userdel -r %s" % new_user) + for cmd in pass_cmds: + cmd_result = self.run("%s" % cmd, ignore_status=True) + cmd_output = cmd_result.stdout + cmd_result.stderr + self._check_cmd_result(cmd, cmd_result.exit_status, cmd_output) + + fail_cmds = [] + #Make sure user is removed + fail_cmds.append("ls /home/%s" % new_user) + fail_cmds.append("cat /etc/passwd | grep usertest") + #relying on __del__ from BaseRuntimeRunCmd to remove container + for cmd in fail_cmds: + cmd_result = self.run("%s" % cmd, ignore_status=True) + cmd_output = cmd_result.stdout + cmd_result.stderr + self._check_cmd_result(cmd, cmd_result.exit_status, cmd_output, expect_pass=False) + + def testOsRelease(self): + """ + Check if OS release information is correct + """ + + test_path = "resources/os_release/os_release.sh" + dest_path = "/tmp/os_release.sh" + try: + self.copyTo(test_path, dest_path) + except: + self.error("Could not copy test file from %s to module %s" % + (test_path, dest_path)) + + try: + self.run(dest_path) + except: + self.error("%s failed" % dest_path) + + try: + self.run("rm -f %s" % dest_path) + except: + self.error("Could not delete %s" % dest_path) + + def test_glibc_i18n(self): + """ + Test glibc support to internationalization + """ + + lang_default = { + #cmd : cmd_output + "ls /invalid_path" : "ls: cannot access '/invalid_path': No such file or directory", + "cp invalid_file tmp" : "cp: cannot stat 'invalid_file': No such file or directory", + "date -u -d \"2017-03-31\"" : "Fri Mar 31 00:00:00 UTC 2017", + "touch file; yes | rm -i file" : "rm: remove regular empty file 'file'?", + "numfmt --grouping 1234567890.98" : "1234567890.98" + } + + lang_english = { + "LC_ALL=en_US ls /invalid_path" : "ls: cannot access '/invalid_path': No such file or directory", + "LC_ALL=en_US cp invalid_file tmp" : "cp: cannot stat 'invalid_file': No such file or directory", + "LC_ALL=en_US date -u -d \"2017-03-31\"" : "Fri Mar 31 00:00:00 UTC 2017", + "touch file; yes | LC_ALL=en_US rm -i file" : "rm: remove regular empty file 'file'?", + "LC_ALL=en_US numfmt --grouping 1234567890.98" : "1,234,567,890.98" + } + + lang_spanish = { + "LC_ALL=es_ES ls /invalid_path" : "No existe el fichero o el directorio", + "LC_ALL=es_ES cp invalid_file tmp" : "No existe el fichero o el directorio", + "LC_ALL=es_ES date -u -d \"2017-03-31\"" : "vie mar 31 00:00:00 UTC 2017", + "LC_ALL=es_ES numfmt --grouping 1234567890,98" : "1.234.567.890,98" + } + + langs = {} + langs["default"] = { + "pkg" : "glibc-minimal-langpack", + "cmds" : lang_default + } + + langs["english"] = { + "pkg" : "glibc-langpack-en", + "cmds" : lang_english + } + + langs["spanish"] = { + "pkg" : "glibc-langpack-es", + "cmds" : lang_spanish + } + + + for i18n in langs.keys(): + lang = langs[i18n] + self.log.info("Testing %s" % lang["pkg"]) + + install_package = True + # glibc-minimal-langpack is installed by default + if lang["pkg"] == "glibc-minimal-langpack": + install_package = False + + if install_package: + try: + self.run("microdnf install %s" % lang["pkg"]) + except: + self.error("Could not install %s" % lang["pkg"]) + + for cmd in lang["cmds"].keys(): + cmd_result = self.run("%s" % cmd, ignore_status=True) + output = cmd_result.stdout + output += cmd_result.stderr + output = output.strip() + #search for pattern as Spanish might have special characters + if not re.search(lang["cmds"][cmd], output): + self.error("'%s'expected output '%s', but got '%s'" % + (cmd, lang["cmds"][cmd], output)) + + if install_package: + try: + self.run("microdnf remove %s" % lang["pkg"]) + except: + self.error("Could not remove %s" % lang["pkg"]) + + + def _prepare_compiler_test_directory(self): + + # create a temporary directory + tmpdir = tempfile.mkdtemp() + + self.log.info("Compiler test temporary directory is %s" % tmpdir) + + # Copy the `hello.sh` script from this resource directory into the + # temporary directory + src = os.path.join(self.compiler_resource_dir, "hello.sh") + dest = os.path.join(tmpdir, "hello.sh") + try: + shutil.copy(src, dest) + except shutil.Error as e: + self.log.info('Error: %s' % e) + except IOError as e: + self.log.info('Error: %s' % e.strerror) + + # make sure destination script is executable + st = os.stat(dest) + os.chmod(dest, st.st_mode | stat.S_IEXEC) + + # Place a gzipped tarball of `hello.c` and `Makefile` from the + # resource directory into the temporary directory with the name + # `hello.tgz`. + dest = os.path.join(tmpdir, "hello.tgz") + tar = tarfile.open(dest, "w:gz") + for f in ["hello.c", "Makefile"]: + src = os.path.join(self.compiler_resource_dir, f) + tar.add(src, arcname=f) + tar.close() + + self.compiler_test_dir = tmpdir + + def _cleanup_compiler_test_directory(self): + + # clean up the temporary directory + if self.compiler_test_dir: + self.log.info("cleaning up compiler test directory") + shutil.rmtree(self.compiler_test_dir, ignore_errors=True) + + def testCompiler(self): + """ + Run a basic C compiler test on our docker image. + + This actually tests the integration of several things, including the + ability to install packages, extract a gzipped tarball, run make to + compile a very simple C program, and run the compiled executable. + """ + + self._prepare_compiler_test_directory() + + #The test dir should be the same one used on hello.sh + mod_compiler_test_dir = "/mnt" + + #Make sure there is a container running + #TODO: Remove start() once https://pagure.io/modularity-testing-framework/issue/8 is fixed + self.start() + + try: + self.copyTo("%s/." % self.compiler_test_dir, mod_compiler_test_dir) + except: + self.error("Could not copy test files from %s to module %s" % + (self.compiler_test_dir, mod_compiler_test_dir)) + + cmdline = "%s/hello.sh" % mod_compiler_test_dir + cmd_result = self.run("%s" % cmdline, ignore_status=True) + test_stdout = cmd_result.stdout + test_stderr = cmd_result.stderr + if cmd_result.exit_status: + self.error("command '%s' returned exit status %d; output:\n%s\nstderr:\n%s" % + (cmdline, cmd_result.exit_status, test_stdout, test_stderr)) + + self.log.info("command '%s' succeeded with output:\n%s\nstderr:\n%s" % + (cmdline, test_stdout, test_stderr)) + + # make sure we get exactly what we expect on stdout + # (all other output from commands in the script were sent to stderr) + expected_stdout = 'Hello, world!\n' + self.log.info("checking that compiler test returned expected output: %s" % + repr(expected_stdout)) + if test_stdout != expected_stdout: + self.error("compiler test did not return unexpected output: %s" % + repr(test_stdout)) + + def tearDown(self): + """ + Tear-down + """ + super(self.__class__, self).tearDown() + + self._cleanup_compiler_test_directory() + +if __name__ == "__main__": + main() diff --git a/tests/teardown.py b/tests/teardown.py new file mode 100755 index 0000000..3db11fc --- /dev/null +++ b/tests/teardown.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +import os +import subprocess +import re + +from avocado import main +from avocado import Test + +import cleanup +import brtconfig + + +class BaseRuntimeTeardownDocker(Test): + + def setUp(self): + + self.mockcfg = brtconfig.get_mockcfg(self) + self.br_image_name = brtconfig.get_docker_image_name(self) + + def testRemoveDockerImage(self): + + # Clean-up old test artifacts (docker containers, image, mock root) + try: + cleanup.cleanup_docker_and_mock(self.mockcfg, self.br_image_name) + except: + self.error("artifact cleanup failed") + else: + self.log.info("artifact cleanup successful") + +if __name__ == "__main__": + main() From b613857b5e5a2a906083ef0f9dd81d965a87317d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 2 May 2017 13:50:16 +0200 Subject: [PATCH 03/29] Include shim-signed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index 7c413d6..6a648de 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -13,6 +13,7 @@ data: dependencies: buildrequires: bootstrap: master + shim: master references: community: https://fedoraproject.org/wiki/BaseRuntime documentation: https://github.com/fedora-modularity/base-runtime @@ -516,6 +517,8 @@ data: sgml-common, xml-common, # shadow-utils shadow-utils, + # shim-signed + shim, # sqlite lemon, sqlite, sqlite-devel, sqlite-doc, sqlite-libs, # syslinux @@ -1338,6 +1341,10 @@ data: shadow-utils: rationale: Autogenerated by Base Runtime tools. ref: ba9340caf5a3f86043659dd5dc83d9280cd38185 + # shim-signed-0.8-10.1.* + shim-signed: + rationale: Autogenerated by Base Runtime tools. + ref: bb890e80b23392d1ac40c5dbb3770acfa1ef5d6c # sqlite-3.17.0-2.fc26 sqlite: rationale: Autogenerated by Base Runtime tools. From 917e9190aad19d1f528e824a3156e2310f1388d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Wed, 3 May 2017 08:43:25 +0200 Subject: [PATCH 04/29] Revert "Include shim-signed" This is temporary to allow component re-use of the old build for testing signed composes. I will be putting this back, along with a new gc "fix" and changing the bootstrap BR to the f26 stream. This reverts commit b613857b5e5a2a906083ef0f9dd81d965a87317d. --- base-runtime.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 6a648de..7c413d6 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -13,7 +13,6 @@ data: dependencies: buildrequires: bootstrap: master - shim: master references: community: https://fedoraproject.org/wiki/BaseRuntime documentation: https://github.com/fedora-modularity/base-runtime @@ -517,8 +516,6 @@ data: sgml-common, xml-common, # shadow-utils shadow-utils, - # shim-signed - shim, # sqlite lemon, sqlite, sqlite-devel, sqlite-doc, sqlite-libs, # syslinux @@ -1341,10 +1338,6 @@ data: shadow-utils: rationale: Autogenerated by Base Runtime tools. ref: ba9340caf5a3f86043659dd5dc83d9280cd38185 - # shim-signed-0.8-10.1.* - shim-signed: - rationale: Autogenerated by Base Runtime tools. - ref: bb890e80b23392d1ac40c5dbb3770acfa1ef5d6c # sqlite-3.17.0-2.fc26 sqlite: rationale: Autogenerated by Base Runtime tools. From cd10fbae324b33991b7a43ffd9afb113b97cace8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 4 May 2017 21:24:57 +0200 Subject: [PATCH 05/29] Bumping to trigger signing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata From b3a58550f21da579be552e4a8c72daaa6b969507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 4 May 2017 22:10:16 +0200 Subject: [PATCH 06/29] Revert "Revert "Include shim-signed"" This reverts commit 917e9190aad19d1f528e824a3156e2310f1388d2. --- base-runtime.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index 7c413d6..6a648de 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -13,6 +13,7 @@ data: dependencies: buildrequires: bootstrap: master + shim: master references: community: https://fedoraproject.org/wiki/BaseRuntime documentation: https://github.com/fedora-modularity/base-runtime @@ -516,6 +517,8 @@ data: sgml-common, xml-common, # shadow-utils shadow-utils, + # shim-signed + shim, # sqlite lemon, sqlite, sqlite-devel, sqlite-doc, sqlite-libs, # syslinux @@ -1338,6 +1341,10 @@ data: shadow-utils: rationale: Autogenerated by Base Runtime tools. ref: ba9340caf5a3f86043659dd5dc83d9280cd38185 + # shim-signed-0.8-10.1.* + shim-signed: + rationale: Autogenerated by Base Runtime tools. + ref: bb890e80b23392d1ac40c5dbb3770acfa1ef5d6c # sqlite-3.17.0-2.fc26 sqlite: rationale: Autogenerated by Base Runtime tools. From bcf2afef65de9b6870a3f28a5c61a8404e5f89f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 4 May 2017 22:13:40 +0200 Subject: [PATCH 07/29] Build base-runtime:f26 against bootstrap:f26 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 6a648de..cfd3a31 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -12,7 +12,7 @@ data: module: [ MIT ] dependencies: buildrequires: - bootstrap: master + bootstrap: f26 shim: master references: community: https://fedoraproject.org/wiki/BaseRuntime From 0aa95c021a2459b2faa8df8e84d74fa1d0bce6a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 9 May 2017 21:08:52 +0200 Subject: [PATCH 08/29] Correct the nonsensical API & filters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Somehow we managed to include components that weren't meant to be there, shipping binaries with broken deps. This should fix that. Signed-off-by: Petr Šabata --- base-runtime.yaml | 49 +++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index cfd3a31..bf951b3 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -107,9 +107,9 @@ data: # curl curl, libcurl, libcurl-devel, # cyrus-sasl - cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-gs2, cyrus-sasl-gssapi, - cyrus-sasl-ldap, cyrus-sasl-lib, cyrus-sasl-md5, cyrus-sasl-ntlm, - cyrus-sasl-plain, cyrus-sasl-scram, cyrus-sasl-sql, + cyrus-sasl-gs2, cyrus-sasl-gssapi, cyrus-sasl-ldap, cyrus-sasl-lib, + cyrus-sasl-md5, cyrus-sasl-ntlm, cyrus-sasl-plain, + cyrus-sasl-scram, # dbus dbus, dbus-devel, dbus-doc, dbus-libs, dbus-tests, # diffutils @@ -265,8 +265,7 @@ data: # gpart gpart, # gpgme - gpgme, gpgme-devel, gpgmepp, gpgmepp-devel, python2-gpg, - python3-gpg, qgpgme, qgpgme-devel, + gpgme, gpgme-devel, gpgmepp, gpgmepp-devel, python3-gpg, # grep grep, # grub2 @@ -284,17 +283,14 @@ data: # isl isl, isl-devel, # kernel - kernel, kernel-PAE, kernel-PAE-core, kernel-PAE-devel, - kernel-PAE-modules, kernel-PAE-modules-extra, kernel-PAEdebug, - kernel-PAEdebug-core, kernel-PAEdebug-devel, + kernel, kernel-PAE, kernel-PAE-core, kernel-PAE-modules, + kernel-PAE-modules-extra, kernel-PAEdebug, kernel-PAEdebug-core, kernel-PAEdebug-modules, kernel-PAEdebug-modules-extra, kernel-bootwrapper, kernel-core, kernel-cross-headers, - kernel-debug, kernel-debug-core, kernel-debug-devel, - kernel-debug-modules, kernel-debug-modules-extra, kernel-devel, - kernel-headers, kernel-lpae, kernel-lpae-core, kernel-lpae-devel, - kernel-lpae-modules, kernel-lpae-modules-extra, kernel-modules, - kernel-modules-extra, kernel-tools, kernel-tools-libs, - kernel-tools-libs-devel, perf, python-perf, + kernel-debug, kernel-debug-core, kernel-debug-modules, + kernel-debug-modules-extra, kernel-headers, kernel-lpae, + kernel-lpae-core, kernel-lpae-modules, kernel-lpae-modules-extra, + kernel-modules, kernel-modules-extra, kernel-tools-libs, # keyutils keyutils, keyutils-libs, keyutils-libs-devel, # kmod @@ -356,7 +352,7 @@ data: # libseccomp libseccomp, libseccomp-devel, libseccomp-static, # libselinux - libselinux, libselinux-devel, libselinux-python3, + libselinux, libselinux-devel, libselinux-python3, libselinux-ruby, libselinux-static, libselinux-utils, # libsemanage libsemanage, libsemanage-devel, libsemanage-python3, @@ -369,6 +365,7 @@ data: libsigsegv, libsigsegv-devel, libsigsegv-static, # libsolv libsolv, libsolv-demo, libsolv-devel, libsolv-tools, python3-solv, + ruby-solv, # libssh2 libssh2, libssh2-docs, # libtasn1 @@ -446,7 +443,7 @@ data: # ocaml-srpm-macros ocaml-srpm-macros, # openldap - openldap, openldap-clients, openldap-devel, + openldap, openldap-clients, # openssl openssl, openssl-devel, openssl-libs, openssl-static, # os-prober @@ -525,8 +522,8 @@ data: syslinux, syslinux-devel, syslinux-extlinux, syslinux-extlinux-nonlinux, syslinux-nonlinux, syslinux-tftpboot, # systemd - systemd, systemd-container, systemd-devel, systemd-journal-remote, - systemd-libs, systemd-pam, systemd-tests, systemd-udev, + systemd, systemd-container, systemd-devel, systemd-libs, + systemd-pam, systemd-tests, systemd-udev, # tar tar, # texinfo @@ -566,6 +563,8 @@ data: cracklib-python, # cryptsetup cryptsetup-python, + # cyrus-sasl + cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-sql, # dbus dbus-x11, # dracut @@ -588,6 +587,8 @@ data: gnutls-dane, gnutls-devel, gnutls-guile, gnutls-utils, # gobject-introspection gobject-introspection-devel, + # gpgme + python2-gpg, qgpgme, qgpgme-devel, # grub2 grub2-starfield-theme, # hfsutils @@ -595,6 +596,10 @@ data: # iptables iptables, iptables-compat, iptables-devel, iptables-services, iptables-utils, + # kernel + kernel-PAE-devel, kernel-PAEdebug-devel, kernel-debug-devel, + kernel-devel, kernel-lpae-devel, kernel-tools, + kernel-tools-libs-devel, perf, python-perf, # krb5 krb5-server, krb5-server-ldap, # libcap-ng @@ -613,11 +618,11 @@ data: # librepo librepo-devel, python2-librepo, # libselinux - libselinux-python, libselinux-ruby, + libselinux-python, # libsemanage libsemanage-python, # libsolv - perl-solv, python2-solv, ruby-solv, + perl-solv, python2-solv, # libssh2 libssh2-devel, # libtool @@ -632,7 +637,7 @@ data: lvm2-cluster-standalone, lvm2-dbusd, lvm2-devel, lvm2-lockd, lvm2-python-libs, # openldap - openldap-servers, + openldap-devel, openldap-servers, # openssl openssl-perl, # pyparsing @@ -659,6 +664,8 @@ data: sqlite-analyzer, sqlite-tcl, # syslinux syslinux-perl, + # systemd + systemd-journal-remote, # texinfo texinfo, texinfo-tex, # util-linux From e9ce2440f7e7827b1b465137739395e7f8a864ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 9 May 2017 22:29:55 +0200 Subject: [PATCH 09/29] Filter modeline2fb out MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index bf951b3..0e1f78b 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -137,7 +137,7 @@ data: # expat expat, expat-devel, expat-static, # fbset - fbset, modeline2fb, + fbset, # fedora-logos fedora-logos, fedora-logos-httpd, # fedora-rpm-macros @@ -571,6 +571,8 @@ data: dracut-fips, dracut-fips-aesni, dracut-live, dracut-network, # emacs emacs, emacs-common, emacs-nox, emacs-terminal, + # fbset + modeline2fb, # file python-magic, # freetype From acd83b59ec8da0b44599bdab6ad1b7ec433e0052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Wed, 10 May 2017 14:21:58 +0200 Subject: [PATCH 10/29] Update libdnf to 0.8.2 to support dnf2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also include python3-hawkey in API. Signed-off-by: Petr Šabata --- base-runtime.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 0e1f78b..c3dd197 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -314,7 +314,7 @@ data: libdb-devel-static, libdb-java, libdb-java-devel, libdb-sql, libdb-sql-devel, libdb-tcl, libdb-tcl-devel, libdb-utils, # libdnf - libdnf, + libdnf, python3-hawkey, # libev libev, libev-devel, libev-libevent-devel, libev-source, # libffi @@ -609,7 +609,7 @@ data: # libcroco libcroco-devel, # libdnf - libdnf-devel, python2-hawkey, python3-hawkey, + libdnf-devel, python2-hawkey, # libidn libidn-java, libidn-javadoc, # libpeas @@ -990,10 +990,10 @@ data: libdb: rationale: Autogenerated by Base Runtime tools. ref: 607172865e43570dde11c1f49de14474f47e837a - # libdnf-0.7.4-1.fc26 + # libdnf-0.8.2-1.fc26 libdnf: rationale: Autogenerated by Base Runtime tools. - ref: eee582b9435a007bc4e0da844df030461da8ee12 + ref: efe1828c67c1e638c7440a2315ffde33bf01c2d4 # libev-4.24-2.fc26 libev: rationale: Autogenerated by Base Runtime tools. From 14130d6b7c1f0e420c87125ea560deb4c1d3fcc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Mon, 15 May 2017 15:34:03 +0200 Subject: [PATCH 11/29] Add the new python-less extlinux-bootloader to the set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index c3dd197..9889908 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -136,6 +136,8 @@ data: emacs-filesystem, # expat expat, expat-devel, expat-static, + # extlinux-bootloader + extlinux-bootloader, # fbset fbset, # fedora-logos @@ -799,6 +801,10 @@ data: expat: rationale: Autogenerated by Base Runtime tools. ref: 9af336b7b5c64a6c66fa1d094747e1c307c73c7f + # extlinux-bootloader-1.2-1.fc27 + extlinux-bootloader: + rationale: Autogenerated by Base Runtime tools. + ref: 2e6df0d2403786d119028b5fe28fffdd5f99c3df # fbset-2.1-40.fc27 fbset: rationale: Autogenerated by Base Runtime tools. From d9467e48bdcf42bce59ce080303b66cd80abd4e6 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 17 May 2017 14:16:43 -0400 Subject: [PATCH 12/29] Add sssd-client to the base runtime Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index 9889908..431e2f8 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -520,6 +520,9 @@ data: shim, # sqlite lemon, sqlite, sqlite-devel, sqlite-doc, sqlite-libs, + # sssd + sssd-client, libsss_idmap, libsss_idmap-devel, libsss_nss_idmap, + libsss_nss_idmap-devel, python3-libsss_nss_idmap, # syslinux syslinux, syslinux-devel, syslinux-extlinux, syslinux-extlinux-nonlinux, syslinux-nonlinux, syslinux-tftpboot, @@ -666,6 +669,16 @@ data: python2-rpm, rpm-cron, # sqlite sqlite-analyzer, sqlite-tcl, + # sssd + libipa_hbac, libipa_hbac-devel, libsss_autofs, libsss_idmap-devel, + libsss_nss_idmap-devel, libsss_simpleifp, libsss_simpleifp-devel, + libsss_sudo, python2-libipa_hbac, python2-libsss_nss_idmap, + python2-sss, python2-sssdconfig, python2-sss-murmur, + python3-libipa_hbac, python3-sss, python3-sssdconfig, + python3-sss-murmur, sssd, sssd-ad, sssd-common, sssd-common-pac, + sssd-dbus, sssd-ipa, sssd-krb5, sssd-krb5-common, sssd-ldap, + sssd-libwbclient, sssd-libwbclient-devel, sssd-nfs-idmap, + sssd-proxy, sssd-tools, sssd-winbind-idmap, # syslinux syslinux-perl, # systemd @@ -1360,6 +1373,10 @@ data: shim-signed: rationale: Autogenerated by Base Runtime tools. ref: bb890e80b23392d1ac40c5dbb3770acfa1ef5d6c + # sssd-1.15.2-3.fc26 + sssd: + rationale: Latest stable. Fix test failures. + ref: 90107469a76e6bb7247bfb29a40bade398dcf4bf # sqlite-3.17.0-2.fc26 sqlite: rationale: Autogenerated by Base Runtime tools. From 15c87d7b0714aea4dcbd4001c62f659fb061847f Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 18 May 2017 09:15:07 -0400 Subject: [PATCH 13/29] Add sssd-client to the baseimage profile Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index 431e2f8..cd64e84 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -29,6 +29,7 @@ data: - microdnf - rpm - shadow-utils + - sssd-client - util-linux buildroot: rpms: From 038019b3546a5d6480793aa61f53c3eb40e76b5d Mon Sep 17 00:00:00 2001 From: Rafael Santos Date: Wed, 17 May 2017 08:50:05 +0200 Subject: [PATCH 14/29] Rename 'baseimage' profile to 'container' Signed-off-by: Rafael Santos --- base-runtime.yaml | 2 +- tests/config.yaml | 2 +- tests/setup.py | 8 ++++---- tests/smoke.py | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index cd64e84..cb93b6c 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -19,7 +19,7 @@ data: documentation: https://github.com/fedora-modularity/base-runtime tracker: https://github.com/fedora-modularity/base-runtime/issues profiles: - baseimage: + container: rpms: - bash - coreutils-single diff --git a/tests/config.yaml b/tests/config.yaml index d939680..bec9dbb 100644 --- a/tests/config.yaml +++ b/tests/config.yaml @@ -6,7 +6,7 @@ service: port: packages: profiles: - - baseimage + - container rpms: default_module: docker module: diff --git a/tests/setup.py b/tests/setup.py index 13a6af0..0f491da 100755 --- a/tests/setup.py +++ b/tests/setup.py @@ -64,12 +64,12 @@ class BaseRuntimeSetupDocker(module_framework.CommonFunctions, Test): if "profiles" not in mod_yaml["data"].keys(): self.error("'profiles' key was not found in 'data' section") - if "baseimage" not in mod_yaml["data"]["profiles"].keys(): - self.error("'baseimage' key was not found in 'profiles' section") + if "container" not in mod_yaml["data"]["profiles"].keys(): + self.error("'container' key was not found in 'profiles' section") - base_profile = mod_yaml["data"]["profiles"]["baseimage"] + base_profile = mod_yaml["data"]["profiles"]["container"] if "rpms" not in base_profile.keys(): - self.error("'rpms' key was not found in 'baseimage' profile") + self.error("'rpms' key was not found in 'container' profile") req_pkgs = base_profile["rpms"] if not req_pkgs: diff --git a/tests/smoke.py b/tests/smoke.py index 6b8a5a0..d643bdf 100644 --- a/tests/smoke.py +++ b/tests/smoke.py @@ -90,16 +90,16 @@ class BaseRuntimeSmokeTest(module_framework.AvocadoTest): if "profiles" not in mod_yaml["data"].keys(): self.error("'profiles' key was not found in 'data' section") - if "baseimage" not in mod_yaml["data"]["profiles"].keys(): - self.error("'baseimage' key was not found in 'profiles' section") + if "container" not in mod_yaml["data"]["profiles"].keys(): + self.error("'container' key was not found in 'profiles' section") - base_profile = mod_yaml["data"]["profiles"]["baseimage"] + base_profile = mod_yaml["data"]["profiles"]["container"] if "rpms" not in base_profile.keys(): - self.error("'rpms' key was not found in 'baseimage' profile") + self.error("'rpms' key was not found in 'container' profile") req_pkgs = base_profile["rpms"] if not req_pkgs: - self.error("No rpm is defined for baseimage") + self.error("No rpm is defined for container") installed_pkgs = self._get_all_installed_pkgs() From 2988ea1ec41bfbe4cd98407315c87d949949405e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 23 May 2017 13:33:02 +0200 Subject: [PATCH 15/29] Updating gcc to fix miscompilations and and segfaults MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index a30387f..ba82e09 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -874,10 +874,10 @@ data: gc: rationale: Autogenerated by Base Runtime tools. ref: 8bc52279636e902951535362d03cb4b0cb479452 - # gcc-7.0.1-0.10.fc26 + # gcc-7.0.1-0.15.fc26 gcc: rationale: Autogenerated by Base Runtime tools. - ref: 4708d93f41eb71da44cd450e18686a67891c0547 + ref: 1d4b05390b6962edb67a64fd3f126031e88a5ee3 # gdb-7.12.50.20170226-4.fc26 gdb: rationale: Autogenerated by Base Runtime tools. From d9ae9c1080d274aa9972487e8b6e9b6ef42738a3 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 8 Jun 2017 14:08:52 -0400 Subject: [PATCH 16/29] Update dracut to match installer module Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 377f585..6c01b2a 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -783,10 +783,10 @@ data: diffutils: rationale: Autogenerated by Base Runtime tools. ref: 165207b40bc5d50fe8432236661c7e5d0f3bfd80 - # dracut-044-177.fc26 + # dracut-044-182.fc26 dracut: - rationale: Autogenerated by Base Runtime tools. - ref: 06c9c1b7bfa498ddc3468807fee4b13bddc2a8a9 + rationale: Needed to boot the system + ref: f00510c8c3c4e06df1214a80a342f248b46cffe8 # dtc-1.4.2-3.0931cea.fc26 dtc: rationale: Autogenerated by Base Runtime tools. From 0f859c7950f54981463b2f45313a90de409f05cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Fri, 9 Jun 2017 17:45:28 +0200 Subject: [PATCH 17/29] Don't include libselinux-ruby MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It requires ruby. Somehow this wasn't discovered by my depsolver or even repoclosure. Weird. Nothing in Boltron depends on this so this API change should be harmless. Signed-off-by: Petr Šabata --- base-runtime.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 6c01b2a..0fbc769 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -359,7 +359,7 @@ data: # libseccomp libseccomp, libseccomp-devel, libseccomp-static, # libselinux - libselinux, libselinux-devel, libselinux-python3, libselinux-ruby, + libselinux, libselinux-devel, libselinux-python3, libselinux-static, libselinux-utils, # libsemanage libsemanage, libsemanage-devel, libsemanage-python3, @@ -630,7 +630,7 @@ data: # librepo librepo-devel, python2-librepo, # libselinux - libselinux-python, + libselinux-python, libselinux-ruby, # libsemanage libsemanage-python, # libsolv From 8ace71f828a17461166715476d8036d480f3c903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Fri, 9 Jun 2017 17:46:42 +0200 Subject: [PATCH 18/29] Drop the trailing newline from description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 0fbc769..7b1da4d 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -2,7 +2,7 @@ document: modulemd version: 1 data: summary: The base application runtime and hardware abstraction layer - description: > + description: >- A project closely linked to the Modularity Initiative, Base Runtime is about defining the common shared package and feature set of the operating system, providing both the hardware enablement layer and From 6cb979b79631a77f021a49e2039884251d24ab9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Mon, 12 Jun 2017 09:49:44 +0200 Subject: [PATCH 19/29] Include dracut with proper subpackage deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 7b1da4d..e352636 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -786,7 +786,7 @@ data: # dracut-044-182.fc26 dracut: rationale: Needed to boot the system - ref: f00510c8c3c4e06df1214a80a342f248b46cffe8 + ref: a90e705e15d2ed922efb99bc06f7b4a682992f7a # dtc-1.4.2-3.0931cea.fc26 dtc: rationale: Autogenerated by Base Runtime tools. From 4987d4cf82f241e4ee06d99c43bf6a7bb27befc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Tue, 13 Jun 2017 11:06:27 +0200 Subject: [PATCH 20/29] Include iptables in Base Runtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is an API change with no practical effect on Boltron. Preventing an unnecessary package split that wouldn't be needed in Platform anyway. iptables is required by firewalld, part of installer. Signed-off-by: Petr Šabata --- base-runtime.yaml | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index e352636..c241eac 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -286,7 +286,8 @@ data: # hfsutils hfsutils, hfsutils-devel, # iptables - iptables-libs, + iptables, iptables-devel, iptables-libs, iptables-services, + iptables-utils, # isl isl, isl-devel, # kernel @@ -340,8 +341,14 @@ data: libksba, libksba-devel, # libmetalink libmetalink, libmetalink-devel, + # libmnl + libmnl, libmnl-devel, libmnl-static, # libmpc compat-libmpc, libmpc, libmpc-devel, + # libnetfilter_conntrack + libnetfilter_conntrack, libnetfilter_conntrack-devel, + # libnfnetlink + libnfnetlink, libnfnetlink-devel, # libpcap libpcap, libpcap-devel, # libpeas @@ -606,8 +613,7 @@ data: # hfsutils hfsutils-x11, # iptables - iptables, iptables-compat, iptables-devel, iptables-services, - iptables-utils, + iptables-compat, # kernel kernel-PAE-devel, kernel-PAEdebug-devel, kernel-debug-devel, kernel-devel, kernel-lpae-devel, kernel-tools, @@ -1057,10 +1063,22 @@ data: libmetalink: rationale: Autogenerated by Base Runtime tools. ref: 14d998a17d45a384c2b9391536b3294efaeb6390 + # libmnl-1.0.4-2.fc26 + libmnl: + rationale: Autogenerated by Base Runtime tools. + ref: 0fecaca66472a4f11fbac306aaded65a354dcfab # libmpc-1.0.2-6.fc26 libmpc: rationale: Autogenerated by Base Runtime tools. ref: 54ced8ff789bdaa32de7836e82a5b0d481d36bce + # libnetfilter_conntrack-1.0.6-2.fc26 + libnetfilter_conntrack: + rationale: Autogenerated by Base Runtime tools. + ref: 0e59521eaee1763e46d0a48e0ad6e5d02fc67e59 + # libnfnetlink-1.0.1-9.fc26 + libnfnetlink: + rationale: Autogenerated by Base Runtime tools. + ref: 3e3ab7c13aac49047432b6f4ceb42ef1ed48c483 # libpcap-1.8.1-3.fc26 libpcap: rationale: Autogenerated by Base Runtime tools. From 7aaf2b3772d5fd3fa01d25a1adc38b5cfb605361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 15 Jun 2017 16:31:24 +0200 Subject: [PATCH 21/29] Fix rationales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index c241eac..20fdea4 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -767,7 +767,7 @@ data: ref: 2edb3e61e337926a92d56ffe84bd8cdb0f625586 # crypto-policies-20170330-3.git55b66da.fc26 crypto-policies: - rationale: Fixes %post issues + rationale: Autogenerated by Base Runtime tools. ref: 8c8ca98c2ef702dc75cb52a01c121bed0d2c588d # cryptsetup-1.7.3-3.fc26 cryptsetup: @@ -791,7 +791,7 @@ data: ref: 165207b40bc5d50fe8432236661c7e5d0f3bfd80 # dracut-044-182.fc26 dracut: - rationale: Needed to boot the system + rationale: Needed to boot the system. ref: a90e705e15d2ed922efb99bc06f7b4a682992f7a # dtc-1.4.2-3.0931cea.fc26 dtc: From 9a33be8d61f78c42e777439d6172f4e1ff0f1822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 15 Jun 2017 17:15:18 +0200 Subject: [PATCH 22/29] Updating dracut to include weakened dracut-live dep MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Šabata --- base-runtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 20fdea4..cd46382 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -792,7 +792,7 @@ data: # dracut-044-182.fc26 dracut: rationale: Needed to boot the system. - ref: a90e705e15d2ed922efb99bc06f7b4a682992f7a + ref: 04d6319f7600ca18a9a0da517052af6e56986657 # dtc-1.4.2-3.0931cea.fc26 dtc: rationale: Autogenerated by Base Runtime tools. From 8548dff7e9ed7d9f601e7b0a17616ff3e2e9d997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Fri, 16 Jun 2017 13:53:42 +0200 Subject: [PATCH 23/29] Include iproute and lvm2 to simplify installer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lvm2 pulls in additional deps but it's not too many. Signed-off-by: Petr Šabata --- base-runtime.yaml | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index cd46382..283bd9e 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -113,6 +113,8 @@ data: cyrus-sasl-scram, # dbus dbus, dbus-devel, dbus-doc, dbus-libs, dbus-tests, + # device-mapper-persistent-data + device-mapper-persistent-data, # diffutils diffutils, # dracut @@ -285,6 +287,8 @@ data: gzip, # hfsutils hfsutils, hfsutils-devel, + # iproute + iproute, iproute-devel, iproute-doc, # iptables iptables, iptables-devel, iptables-libs, iptables-services, iptables-utils, @@ -305,6 +309,8 @@ data: kmod, kmod-devel, kmod-libs, # krb5 krb5-devel, krb5-libs, krb5-pkinit, krb5-workstation, libkadm5, + # libaio + libaio, libaio-devel, # libarchive bsdcat, bsdcpio, bsdtar, libarchive, libarchive-devel, # libassuan @@ -413,7 +419,7 @@ data: # lvm2 device-mapper, device-mapper-devel, device-mapper-event, device-mapper-event-devel, device-mapper-event-libs, - device-mapper-libs, lvm2-libs, lvm2-python3-libs, + device-mapper-libs, lvm2, lvm2-devel, lvm2-libs, lvm2-python3-libs, # lz4 lz4, lz4-devel, lz4-libs, lz4-static, # lzo @@ -612,6 +618,8 @@ data: grub2-starfield-theme, # hfsutils hfsutils-x11, + # iproute + iproute-tc, # iptables iptables-compat, # kernel @@ -651,8 +659,8 @@ data: # libxml2 python-libxml2, # lvm2 - cmirror, cmirror-standalone, lvm2, lvm2-cluster, - lvm2-cluster-standalone, lvm2-dbusd, lvm2-devel, lvm2-lockd, + cmirror, cmirror-standalone, lvm2-cluster, + lvm2-cluster-standalone, lvm2-dbusd, lvm2-lockd, lvm2-python-libs, # openldap openldap-devel, openldap-servers, @@ -785,6 +793,10 @@ data: dbus: rationale: Autogenerated by Base Runtime tools. ref: 18ec4d4d89ad8affd65b325c448f3049c67446fa + # device-mapper-persistent-data-0.6.3-5.fc26 + device-mapper-persistent-data: + rationale: Autogenerated by Base Runtime tools. + ref: 678a17f85d392b3e438bce06485e3227ee73e82d # diffutils-3.5-3.fc26 diffutils: rationale: Autogenerated by Base Runtime tools. @@ -971,6 +983,10 @@ data: hfsutils: rationale: Autogenerated by Base Runtime tools. ref: 5a2f18ddbd21481a64771fe5c05b3926625b8a1e + # iproute-4.11.0-1.fc26 + iproute: + rationale: Autogenerated by Base Runtime tools. + ref: 74656075ed5ad4ed7270b8aeb6afa2a4ef914fc7 # iptables-1.6.1-2.fc26 iptables: rationale: Autogenerated by Base Runtime tools. @@ -995,6 +1011,10 @@ data: krb5: rationale: Autogenerated by Base Runtime tools. ref: 9ce824b2895572e80a29e4087ae3ba0d4f84669e + # libaio-0.3.110-7.fc26 + libaio: + rationale: Autogenerated by Base Runtime tools. + ref: db11cf2785cee8d274c6640edf9a7078c2509012 # libarchive-3.2.2-3.fc26 libarchive: rationale: Autogenerated by Base Runtime tools. From bbef41cdf976566b8858ec721f886d1b4d2811f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Fri, 16 Jun 2017 14:55:58 +0200 Subject: [PATCH 24/29] Include cyrus-sasl and fix openldap API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cyrus-sasl no longer depends on initscripts, making this possible. Signed-off-by: Petr Šabata --- base-runtime.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 283bd9e..11cca29 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -108,7 +108,8 @@ data: # curl curl, libcurl, libcurl-devel, # cyrus-sasl - cyrus-sasl-gs2, cyrus-sasl-gssapi, cyrus-sasl-ldap, cyrus-sasl-lib, + cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-gs2, + cyrus-sasl-gssapi, cyrus-sasl-ldap, cyrus-sasl-lib, cyrus-sasl-md5, cyrus-sasl-ntlm, cyrus-sasl-plain, cyrus-sasl-scram, # dbus @@ -463,7 +464,7 @@ data: # ocaml-srpm-macros ocaml-srpm-macros, # openldap - openldap, openldap-clients, + openldap, openldap-clients, openldap-devel, # openssl openssl, openssl-devel, openssl-libs, openssl-static, # os-prober @@ -587,7 +588,7 @@ data: # cryptsetup cryptsetup-python, # cyrus-sasl - cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-sql, + cyrus-sasl-sql, # dbus dbus-x11, # dracut @@ -663,7 +664,7 @@ data: lvm2-cluster-standalone, lvm2-dbusd, lvm2-lockd, lvm2-python-libs, # openldap - openldap-devel, openldap-servers, + openldap-servers, # openssl openssl-perl, # pyparsing From aa38cd7b8131a9b09143f9f33fc88737a1b83970 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 21 Jun 2017 14:30:42 -0400 Subject: [PATCH 25/29] Update base-runtime to F26 Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 232 +++++++++++++++++++++++----------------------- 1 file changed, 116 insertions(+), 116 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 11cca29..3c94d19 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -718,10 +718,10 @@ data: attr: rationale: Autogenerated by Base Runtime tools. ref: deabbc4e2a74e993af0be267b13c431a3ace0558 - # audit-2.7.3-1.fc26 + # audit-2.7.6-1.fc26 audit: rationale: Autogenerated by Base Runtime tools. - ref: 1627ca5b6c1b796875f161791ec4b5b6a9c5c8bf + ref: 31a9b53e1921c6aa5f2bed0872c1cd906d3080d6 # babeltrace-1.5.2-2.fc26 babeltrace: rationale: Autogenerated by Base Runtime tools. @@ -730,18 +730,18 @@ data: basesystem: rationale: Autogenerated by Base Runtime tools. ref: e4a05b3ab23f2972f922ec38527b7c923ed4154c - # bash-4.4.11-2.fc26 + # bash-4.4.12-4.fc26 bash: rationale: Autogenerated by Base Runtime tools. - ref: 04e4ecb3e66000bd0f8af08dc4150fa9febc8656 + ref: 31a9b53e1921c6aa5f2bed0872c1cd906d3080d6 # bc-1.06.95-18.fc26 bc: rationale: Autogenerated by Base Runtime tools. ref: 2cdfa698bfc045918bbc39456a952532fc9de6ff - # binutils-2.27-20.fc26 + # binutils-2.27-21.fc26 binutils: rationale: Autogenerated by Base Runtime tools. - ref: 834bfa6a76cfd4b29d293161ada631e52548ddbb + ref: d3157973ba5cd05eba8d17ead87acf50a7fe4610 # byacc-1.9.20170201-1.fc26 byacc: rationale: Autogenerated by Base Runtime tools. @@ -754,18 +754,18 @@ data: c-ares: rationale: Autogenerated by Base Runtime tools. ref: b74febc36bd5c5496d8f384710c84c88c10c3d82 - # ca-certificates-2017.2.11-5.fc26 + # ca-certificates-2017.2.14-1.0.fc26 ca-certificates: rationale: Autogenerated by Base Runtime tools. - ref: c1c275770a923610511be57f74b3a4468d0112a9 - # chkconfig-1.9-1.fc26 + ref: 9506435bd8bb4a5a09797e070a7f60332acc9752 + # chkconfig-1.10-1.fc26 chkconfig: rationale: Autogenerated by Base Runtime tools. - ref: e82efb8130cfda6d6e1d255f5c9a2b70fb527249 - # coreutils-8.27-3.fc27 + ref: adc3f7d5577bf51a26355748921864a6e7277ee5 + # coreutils-8.27-5.fc26 coreutils: rationale: Autogenerated by Base Runtime tools. - ref: 3d65658099fc016b2a0c90f0a2ebc7403bfcd00c + ref: e00cb1843f7384b4682280a1a56cef58bdc8106f # cpio-2.12-4.fc26 cpio: rationale: Autogenerated by Base Runtime tools. @@ -778,22 +778,22 @@ data: crypto-policies: rationale: Autogenerated by Base Runtime tools. ref: 8c8ca98c2ef702dc75cb52a01c121bed0d2c588d - # cryptsetup-1.7.3-3.fc26 + # cryptsetup-1.7.5-1.fc26 cryptsetup: rationale: Autogenerated by Base Runtime tools. - ref: f0156f049d8f3fd8af0f07189237b65d1299fea9 - # curl-7.53.1-2.fc26 + ref: b64fb92578bcf24d2a2d2e6e73823e3447f367e7 + # curl-7.53.1-7.fc26 curl: rationale: Autogenerated by Base Runtime tools. - ref: c870f5feb82bcd2ebe828ea33cddd996c4a218fe - # cyrus-sasl-2.1.26-30.fc26 + ref: 5ac5f7bdc933a64f7284a0e4dc03f07aad001f2b + # cyrus-sasl-2.1.26-32.fc26 cyrus-sasl: rationale: Autogenerated by Base Runtime tools. - ref: f9f3ad00829f04663982ee28eac3f4e2e0c65517 - # dbus-1.11.10-2.fc26 + ref: 75a23b2fea6cff96154f180dde30b9c675b48364 + # dbus-1:1.11.12-1.fc26 dbus: rationale: Autogenerated by Base Runtime tools. - ref: 18ec4d4d89ad8affd65b325c448f3049c67446fa + ref: d750f7d4a535541eb15b4f37deb74e3e30313989 # device-mapper-persistent-data-0.6.3-5.fc26 device-mapper-persistent-data: rationale: Autogenerated by Base Runtime tools. @@ -806,10 +806,10 @@ data: dracut: rationale: Needed to boot the system. ref: 04d6319f7600ca18a9a0da517052af6e56986657 - # dtc-1.4.2-3.0931cea.fc26 + # dtc-1.4.4-1.fc26 dtc: rationale: Autogenerated by Base Runtime tools. - ref: f6254d6edabbf1ffeda6518d53d60fed1d93f3ef + ref: 05b2b5605b108427497ee77a67204ec50dcfa986 # dwz-0.12-3.fc26 dwz: rationale: Autogenerated by Base Runtime tools. @@ -826,14 +826,14 @@ data: efivar: rationale: Autogenerated by Base Runtime tools. ref: 9af50adeeb29e1b72dbade00cbda990a3a37454d - # elfutils-0.168-5.fc26 + # elfutils-0.169-1.fc26 elfutils: rationale: Autogenerated by Base Runtime tools. - ref: 10270ba914bcfdd498ebdf17bb3425d8d1313aa9 - # emacs-25.2-0.1.rc2.fc26 + ref: e67242de84610b0b4c7842b151288936f8a13b03 + # emacs-1:25.2-2.fc26 emacs: rationale: Autogenerated by Base Runtime tools. - ref: 1116d1bc15d82380f09f9e41d9c44c3148b4160c + ref: 42fa24ab12901a5a00bd7e672a2576193adf574e # expat-2.2.0-2.fc26 expat: rationale: Autogenerated by Base Runtime tools. @@ -842,14 +842,14 @@ data: extlinux-bootloader: rationale: Autogenerated by Base Runtime tools. ref: 2e6df0d2403786d119028b5fe28fffdd5f99c3df - # fbset-2.1-40.fc27 + # fbset-2.1-41.fc27 fbset: rationale: Autogenerated by Base Runtime tools. - ref: b6eabe81f3ed80d843060e7cfe2325644db95257 - # fedora-logos-26.0.0-2.fc26 + ref: e086d17001901320260df464954bc8aa3a4ae05e + # fedora-logos-26.0.1-1.fc26 fedora-logos: rationale: Autogenerated by Base Runtime tools. - ref: 51b6ae97396524f39038b361db2f04e35e6a9664 + ref: 1263b8501f117be5b06f61ad12f895dab19d0c1a fedora-modular-release: rationale: Autogenerated by Base Runtime tools. ref: db937d42cebde417a4002ed2ce8578c63f2b114c @@ -864,10 +864,10 @@ data: fedpkg-minimal: rationale: Autogenerated by Base Runtime tools. ref: 026cc9ca12187f6204cf32c552225865eb71f184 - # file-5.30-5.fc26 + # file-5.30-6.fc26 file: rationale: Autogenerated by Base Runtime tools. - ref: e39c25d14646281266d1a486122a7f923e9f798a + ref: 678277ca4c8c45887882b3172af91205ed1da6f0 # filesystem-3.2-40.fc26 filesystem: rationale: Autogenerated by Base Runtime tools. @@ -884,10 +884,10 @@ data: fpc-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: 3f0e8216425fcde8fb9abb7bb1eb1bafe33017f0 - # freetype-2.7.1-2.fc26 + # freetype-2.7.1-6.fc26 freetype: rationale: Autogenerated by Base Runtime tools. - ref: b9316abd79a0c1f4ba8e1a00d40ca5c1f11a9926 + ref: d3647a0d5dd9e39ced0ffbe119c3078bfb86a7bf # fuse-2.9.7-2.fc26 fuse: rationale: Autogenerated by Base Runtime tools. @@ -900,58 +900,58 @@ data: gc: rationale: Autogenerated by Base Runtime tools. ref: 8bc52279636e902951535362d03cb4b0cb479452 - # gcc-7.0.1-0.15.fc26 + # gcc-7.1.1-1.fc26 gcc: rationale: Autogenerated by Base Runtime tools. - ref: 1d4b05390b6962edb67a64fd3f126031e88a5ee3 + ref: 872d384f80797c6aef5269d069f83cb0bb2edd9f # gdb-7.12.50.20170226-4.fc26 gdb: rationale: Autogenerated by Base Runtime tools. ref: 0fffd6c99de26517095a9dd81054b3713e12cfde - # gdbm-1.12-2.fc26 + # gdbm-1.13-1.fc26 gdbm: rationale: Autogenerated by Base Runtime tools. - ref: 8a25db870cea912c5dc87660ab07e0f849105711 - # gettext-0.19.8.1-8.fc26 + ref: 587a5c1d117d991df4caac5e1b7a73198b4902a0 + # gettext-0.19.8.1-9.fc26 gettext: rationale: Autogenerated by Base Runtime tools. - ref: ba3fa18f08d1b58b2e5f686776b2ebdd096b60a0 + ref: df498733241ad35d2e7025c9b2ad5c394e6e595d # ghc-srpm-macros-1.4.2-5.fc26 ghc-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: b57d95b6c5cbc8086653c53b0324629915204b37 - # glib2-2.52.0-1.fc26 + # glib2-2.52.2-2.fc26 glib2: rationale: Autogenerated by Base Runtime tools. - ref: 801e4a1ba04ba8ce75c047e21a8df11ab59bf8b3 + ref: 15854645a451f349662f7de7d6dae2fa86c84cd2 # glibc-2.25-4.fc26 glibc: rationale: Autogenerated by Base Runtime tools. ref: e43c7ab8090e8cdf8cee8db158ec2c91dd1e5fe2 - # gmp-6.1.2-3.fc26 + # gmp-1:6.1.2-4.fc26 gmp: rationale: Autogenerated by Base Runtime tools. - ref: 984d6a82530abc7c183de9b66bb71da2afeb94c6 + ref: fe04d46fce3c3596ad631710d26531aa359e375f # gnat-srpm-macros-4-2.fc26 gnat-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: 443d027b8b0a710d1852f275555de9f3b3270016 - # gnupg2-2.1.18-2.fc26 + # gnupg2-2.1.20-2.fc26 gnupg2: rationale: Autogenerated by Base Runtime tools. - ref: 529234a1497e81cdfb44b13ada4e4dd333db0fe6 - # gnutls-3.5.10-1.fc26 + ref: 9c42951fbea8754e3f666f804253c21051119e53 + # gnutls-3.5.12-2.fc26 gnutls: rationale: Autogenerated by Base Runtime tools. - ref: 2890e683a84fa9eec9a9e516fdf3cd4eeb5aef2f + ref: 2c3737eddb535d743eac6d266a861f365d9df864 # go-srpm-macros-2-8.fc26 go-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: 0b6060827d9dcd4cf9c05454b7e57912284b2970 - # gobject-introspection-1.52.0-1.fc26 + # gobject-introspection-1.52.1-1.fc26 gobject-introspection: rationale: Autogenerated by Base Runtime tools. - ref: 739990f2d71d93109a5cf23543d8456c1170d36c + ref: 55bfa0b68eaa76ee7712b34c88c0a2d4128bce7e # gpart-0.3-3.fc26 gpart: rationale: Autogenerated by Base Runtime tools. @@ -996,30 +996,30 @@ data: isl: rationale: Autogenerated by Base Runtime tools. ref: 113dc22c621070f014f09ff0cd1abbe09ad99a61 - # kernel-4.11.0-0.rc7.git0.1.fc26 + # kernel-4.11.0-2.fc26 kernel: rationale: Autogenerated by Base Runtime tools. - ref: ef764ba61d2c06e6b4e28e94535f33cc23d16300 - # keyutils-1.5.9-9.fc26 + ref: f2ae1bd31e1a9eccb8d80a7087aee1c19518ef74 + # keyutils-1.5.10-1.fc26 keyutils: rationale: Autogenerated by Base Runtime tools. - ref: bc1c9f9084d5c00200f22576448758a90f159a6a + ref: 7162e158eb6bdd78c28b2add1c9289668cacc937 # kmod-24-1.fc26 kmod: rationale: Autogenerated by Base Runtime tools. ref: 95d16ea378aefae832e728bc37a9c1a16453902a - # krb5-1.15-9.fc26 + # krb5-1.15.1-8.fc26 krb5: rationale: Autogenerated by Base Runtime tools. - ref: 9ce824b2895572e80a29e4087ae3ba0d4f84669e + ref: 3cae6ae5c37a3c500c074241f794716c1e6fdc90 # libaio-0.3.110-7.fc26 libaio: rationale: Autogenerated by Base Runtime tools. ref: db11cf2785cee8d274c6640edf9a7078c2509012 - # libarchive-3.2.2-3.fc26 + # libarchive-3.2.2-4.fc26 libarchive: rationale: Autogenerated by Base Runtime tools. - ref: b051042a1b5c6feff1e42b80ca7a2d6833b432a3 + ref: 7446b2e86d798e2e7672a3f41a333e3182c7b1dc # libassuan-2.4.3-2.fc26 libassuan: rationale: Autogenerated by Base Runtime tools. @@ -1036,10 +1036,10 @@ data: libcap-ng: rationale: Autogenerated by Base Runtime tools. ref: a7b3901d3112e947ac2060b9fc82bc9d3a4d49f0 - # libcroco-0.6.11-3.fc26 + # libcroco-0.6.12-1.fc26 libcroco: rationale: Autogenerated by Base Runtime tools. - ref: b4d1e29fe8c865e05296d9953d2744a973473766 + ref: 75818f466e8ffa31ca95ef3b33dd63279376f24d # libdb-5.3.28-17.fc26 libdb: rationale: Autogenerated by Base Runtime tools. @@ -1068,10 +1068,10 @@ data: libidn: rationale: Autogenerated by Base Runtime tools. ref: 7275bd926ff5ecf7ed8eb2af5601ef6953a78352 - # libidn2-0.16-2.fc26 + # libidn2-2.0.2-1.fc26 libidn2: rationale: Autogenerated by Base Runtime tools. - ref: 8cc88118114581de27de1a07a935e95a3e26d104 + ref: a0ad03b679f30f30e5b196a85d700f4c17b26dd9 # libipt-1.5-2.fc26 libipt: rationale: Autogenerated by Base Runtime tools. @@ -1124,38 +1124,38 @@ data: librepo: rationale: Autogenerated by Base Runtime tools. ref: 372bbc1d15e4a53309229619aa763030d2ebd24d - # librtas-2.0.0-3.fc26 + # librtas-2.0.1-1.fc26 librtas: rationale: Autogenerated by Base Runtime tools. - ref: f6749a94bbd34cae818e78b94adb59db23c6f380 + ref: 587c426391de5ea208e77d1522e8f07705f5a211 # libseccomp-2.3.2-1.fc26 libseccomp: rationale: Autogenerated by Base Runtime tools. ref: af64eedd856af8db75d814c2f0a427a9607f2d18 - # libselinux-2.6-2.fc26 + # libselinux-2.6-6.fc26 libselinux: rationale: Autogenerated by Base Runtime tools. - ref: 2f333570bbd3423db3c3bfa67065273262a02853 - # libsemanage-2.6-2.fc26 + ref: ea9eee161ed07911c9c672b0e598509e39cac679 + # libsemanage-2.6-4.fc26 libsemanage: rationale: Autogenerated by Base Runtime tools. - ref: 513da381ab98a69f2c360fa8b54beadde97a9ffb + ref: 64efa5b6db085bcd5868189a4600ec6985e79196 # libsepol-2.6-1.fc26 libsepol: rationale: Autogenerated by Base Runtime tools. ref: 99653f4b762884baef7c64a867ffc0bb4eccb392 - # libservicelog-1.1.16-4.fc26 + # libservicelog-1.1.17-1.fc26 libservicelog: rationale: Autogenerated by Base Runtime tools. - ref: 751d40b19c7427f178f70c22088058cd86edb2cd + ref: ec8fd481ac4ade036094f164c59beaa0bf96893d # libsigsegv-2.11-1.fc26 libsigsegv: rationale: Autogenerated by Base Runtime tools. ref: 0bca2e2c40a26940b5a1787e03d97dd11f369bb6 - # libsolv-0.6.26-1.fc26 + # libsolv-0.6.27-1.fc26 libsolv: rationale: Autogenerated by Base Runtime tools. - ref: f19d6435d8e4f7582e312ac9b1094552b20a574e + ref: e6ddcf95315f088b176c6eafa58c9c969f969293 # libssh2-1.8.0-2.fc26 libssh2: rationale: Autogenerated by Base Runtime tools. @@ -1192,18 +1192,18 @@ data: linux-firmware: rationale: Autogenerated by Base Runtime tools. ref: e9184d656d8d91e1350c3d056ff6bea12acbe294 - # lsvpd-1.7.7-2.fc26 + # lsvpd-1.7.8-1.fc26 lsvpd: rationale: Autogenerated by Base Runtime tools. - ref: 5e8f804f25fdaa4acd3804bdb7972e2a0c394fc7 + ref: a386ac9b2d49b759b041102f359b83cb564aaa47 # lua-5.3.4-1.fc26 lua: rationale: Autogenerated by Base Runtime tools. ref: b7447739b8d3a722a2d8e7305690b6ac3c548882 - # lvm2-2.02.168-4.fc26 + # lvm2-2.02.168-6.fc26 lvm2: rationale: Autogenerated by Base Runtime tools. - ref: 8e2a5eada87a9e4c07e7dc3f5c108e3ceea2505a + ref: f033fa0c98533c822a4e94a337c4f398748f5956 # lz4-1.7.5-3.fc26 lz4: rationale: Autogenerated by Base Runtime tools. @@ -1252,50 +1252,50 @@ data: nettle: rationale: Autogenerated by Base Runtime tools. ref: c3f0481ad7c462e298c3f85fc692059275077806 - # nghttp2-1.20.0-1.fc26 + # nghttp2-1.21.1-1.fc26 nghttp2: rationale: Autogenerated by Base Runtime tools. - ref: 3733e4c67685f54e5f352837c0905150af2e5c29 + ref: bb1e82241f49d2573f95fe44c74bde6ce6721ae4 # npth-1.3-2.fc26 npth: rationale: Autogenerated by Base Runtime tools. ref: 2333696ca8fe50890aa1627319aef56c72205e79 - # nspr-4.13.1-2.fc26 + # nspr-4.14.0-2.fc26 nspr: rationale: Autogenerated by Base Runtime tools. - ref: 8a7072a3bc41b0e68f41731ff7560c1d06f26b60 - # nss-3.29.1-2.1.fc26 + ref: b7b8b1387c1f0bd70eb17ab6d4349f55bc43dea5 + # nss-3.30.2-1.0.fc26 nss: rationale: Autogenerated by Base Runtime tools. - ref: 571d09fa9eaae407d4732e6e722bd88651beb311 - # nss-pem-1.0.3-2.fc26 + ref: 8a895b4021590b012f932e819932847a602c0923 + # nss-pem-1.0.3-3.fc26 nss-pem: rationale: Autogenerated by Base Runtime tools. - ref: 6e7ee30168935e7578b91901ecc15cdf53736ab1 - # nss-softokn-3.29.1-2.fc26 + ref: 7d778d532a8711da5a5c3473c6b9bca516269007 + # nss-softokn-3.30.2-1.0.fc26 nss-softokn: rationale: Autogenerated by Base Runtime tools. - ref: f37b8b36250db04db8cc8c5d9faad80020b497d6 - # nss-util-3.29.1-2.1.fc26 + ref: 9ac2cf8e660d0bffaf8a7ac93faa75d7bd3ca8ba + # nss-util-3.30.2-1.0.fc26 nss-util: rationale: Autogenerated by Base Runtime tools. - ref: df0d7c351a6c8695662fa9ae3930d8814421d46b + ref: e1d76810773c1144e489f2ed464076b963a51a2f # ocaml-srpm-macros-4-2.fc26 ocaml-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: 21de03ba74f07120a082206a9bd2e77bc8863ccd - # openldap-2.4.44-8.fc26 + # openldap-2.4.44-10.fc26 openldap: rationale: Autogenerated by Base Runtime tools. - ref: 8575fd0248ab0283ec3664c9168fbf218f44b9eb + ref: af30ccf247c0814d1902d2f3ebd87b4f8f806efc # openssl-1.1.0e-1.fc26 openssl: rationale: Autogenerated by Base Runtime tools. ref: c676ac32d544254b1d40d8579de8d1fb33c18305 - # os-prober-1.71-2.fc26 + # os-prober-1.74-1.fc26 os-prober: rationale: Autogenerated by Base Runtime tools. - ref: 33eec417469ee27ba4f00975ec0605c5c21ae52a + ref: 4f972d5e7e48396df27114d5ecc6ac319fb3d88e # p11-kit-0.23.5-1.fc26 p11-kit: rationale: Autogenerated by Base Runtime tools. @@ -1308,26 +1308,26 @@ data: patch: rationale: Autogenerated by Base Runtime tools. ref: 4a664207f1325f1eefbb9f29f1160d85a1549827 - # pcre-8.40-5.fc26 + # pcre-8.40-7.fc26 pcre: rationale: Autogenerated by Base Runtime tools. - ref: c36d2c5e3d4b2d7694db98267eb3ed33e64f86db + ref: a82fb773cc7257b952cb45add94a8d9091698873 # perl-srpm-macros-1-21.fc26 perl-srpm-macros: rationale: Autogenerated by Base Runtime tools. ref: 15a1edf29c159f252d7e3ef91c0b01c14ac47fbc - # pkgconf-1.3.4-1.fc26 + # pkgconf-1.3.6-1.fc26 pkgconf: rationale: Autogenerated by Base Runtime tools. - ref: 7883fb7d3222ac6536340fea96169e6574e3f7c8 + ref: 11de9e4874ece462059d6b1be5597c76a720f2b0 # popt-1.16-8.fc26 popt: rationale: Autogenerated by Base Runtime tools. ref: d9302725fdbde901827f2677d06765394ad5ad92 - # powerpc-utils-1.3.1-2.fc26 + # powerpc-utils-1.3.3-1.fc26 powerpc-utils: rationale: Autogenerated by Base Runtime tools. - ref: 972b92f892c5eaf5b548be88b694b8da2a7eb991 + ref: 69110066d7dfcca05db3ef30db98bd918f3b14a2 # ppc64-utils-0.14-22.fc26 ppc64-utils: rationale: Autogenerated by Base Runtime tools. @@ -1340,10 +1340,10 @@ data: pth: rationale: Autogenerated by Base Runtime tools. ref: 4a65b57e8c1352a94ccf369d365d4f375119ef51 - # publicsuffix-list-20170206-1.fc26 + # publicsuffix-list-20170424-1.fc26 publicsuffix-list: rationale: Autogenerated by Base Runtime tools. - ref: fdc1a224fe1ac65605c822d28e1dad6c3721365f + ref: 5f2e19d78452fc2adcdc7bc694e8e9b74495dd1f # pyparsing-2.1.10-3.fc26 pyparsing: rationale: Autogenerated by Base Runtime tools. @@ -1356,26 +1356,26 @@ data: python-packaging: rationale: Autogenerated by Base Runtime tools. ref: 2f8a444b2cb5d4e4a578d01acffc7ae1eeef8d0b - # python-pip-9.0.1-7.fc26 + # python-pip-9.0.1-9.fc26 python-pip: rationale: Autogenerated by Base Runtime tools. - ref: 33d96860e500d5997f962eb6da90e8b24ac5ae58 + ref: d6fcf17a6e6686f638b77b1a485469a991ddbb57 # python-rpm-macros-3-20.fc26 python-rpm-macros: rationale: Autogenerated by Base Runtime tools. ref: f37b53c3973f842f60f3d423755c51d62b99390d - # python-setuptools-34.3.0-1.fc26 + # python-setuptools-35.0.1-1.fc26 python-setuptools: rationale: Autogenerated by Base Runtime tools. - ref: 7cd743d37963e3fd3e7f27894e9705c1f491f021 + ref: c64e6d09b77e572e28683c6d2c43584141981714 # python-six-1.10.0-8.fc26 python-six: rationale: Autogenerated by Base Runtime tools. ref: d309bdfbb853cc7b2145903d1edcc86d8370981b - # python3-3.6.0-21.fc26 + # python3-3.6.1-6.fc26 python3: rationale: Autogenerated by Base Runtime tools. - ref: 3b36b495e58df146c9e12fb503d60efe1509c40b + ref: 63656420a36841328aabcc11bee3306c0a4c372e # qrencode-3.4.2-7.fc26 qrencode: rationale: Autogenerated by Base Runtime tools. @@ -1392,10 +1392,10 @@ data: redhat-rpm-config: rationale: Autogenerated by Base Runtime tools. ref: 4914809dca206e1016d45a0c8a4b8424beb4ad80 - # rpm-4.13.0.1-3.fc26 + # rpm-4.13.0.1-4.fc26 rpm: rationale: Autogenerated by Base Runtime tools. - ref: b50c8542c204f2d8950d04e5dd0b1becdefc8f0e + ref: b1ad85bc8cda6dc7d36058712f593f0600d5d13f # sed-4.4-1.fc26 sed: rationale: Autogenerated by Base Runtime tools. @@ -1424,10 +1424,10 @@ data: sssd: rationale: Latest stable. Fix test failures. ref: 90107469a76e6bb7247bfb29a40bade398dcf4bf - # sqlite-3.17.0-2.fc26 + # sqlite-3.18.0-1.fc26 sqlite: rationale: Autogenerated by Base Runtime tools. - ref: 083e37cd7075317c0ada1a10605ed3973aab2202 + ref: 2beb9f1c3fd168b6421b300ff04a97d1b78362d7 # syslinux-6.04-0.2.fc26 syslinux: rationale: Autogenerated by Base Runtime tools. @@ -1440,18 +1440,18 @@ data: tar: rationale: Autogenerated by Base Runtime tools. ref: 353f951667464c0d8174edb4a6a13ed2aa1b9b46 - # texinfo-6.3-2.fc26 + # texinfo-6.3-3.fc26 texinfo: rationale: Autogenerated by Base Runtime tools. - ref: 6f9737e6acfc74b4484deff8500cedd3aea890a6 - # tzdata-2016j-3.fc26 + ref: 31373332adea8f4c4f13683538a6e81f64af222e + # tzdata-2017b-1.fc26 tzdata: rationale: Autogenerated by Base Runtime tools. - ref: 4cdab00b08efdf1ecc673a105e676b871269efc8 - # uboot-tools-2017.03-0.7.rc3.fc26 + ref: 6089ddc1ae9cda8c2fbc1340cdd10a45502bf909 + # uboot-tools-2017.05-0.4.rc2.fc26 uboot-tools: rationale: Autogenerated by Base Runtime tools. - ref: fde8e09f7f97cb8449f39bb51d49671b8ad68faf + ref: e965f7ea51ec8bc1b2b4fdbad5374835361d31ab # unzip-6.0-33.fc26 unzip: rationale: Autogenerated by Base Runtime tools. From d7b2373f541b694ea9b44a90038047f3d7929614 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 23 Jun 2017 11:19:52 -0400 Subject: [PATCH 26/29] Empty commit to force new module hash From b14b4588aa0c7070343364270e2f3bf28727a0de Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 26 Jun 2017 06:27:52 -0400 Subject: [PATCH 27/29] Fix incorrect hash for audit Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 3c94d19..a8941b1 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -721,7 +721,7 @@ data: # audit-2.7.6-1.fc26 audit: rationale: Autogenerated by Base Runtime tools. - ref: 31a9b53e1921c6aa5f2bed0872c1cd906d3080d6 + ref: 123b93c75de810d79d2f8906e1ab9fb96b22b69e # babeltrace-1.5.2-2.fc26 babeltrace: rationale: Autogenerated by Base Runtime tools. From 098eafa0f9913edc1540878048687dcc34f15c71 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 26 Jun 2017 06:46:57 -0400 Subject: [PATCH 28/29] Force a rebuild of all components Signed-off-by: Stephen Gallagher --- base-runtime.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/base-runtime.yaml b/base-runtime.yaml index a8941b1..20e16cd 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -708,6 +708,10 @@ data: # util-linux util-linux-user, ] + buildopts: + rpms: + macros: | + %baseruntime_force_rebuild 2017-06-26 components: rpms: # acl-2.2.52-13.fc26 From 787dd7b066796b2845712ecfe17448be7a7acb2d Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 26 Jun 2017 13:59:15 -0400 Subject: [PATCH 29/29] Update glibc and gc glibc needs an update to work with newer warning flags on gcc. gc needs to skip tests that hang on armv7hl --- base-runtime.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/base-runtime.yaml b/base-runtime.yaml index 20e16cd..78e7f13 100644 --- a/base-runtime.yaml +++ b/base-runtime.yaml @@ -901,9 +901,10 @@ data: rationale: Autogenerated by Base Runtime tools. ref: 63f2ac8ac41274519602f03ef1f718ae0b2c8e4d # gc-7.6.0-4.fc27 + # Plus additional patch to skip tests on armv7hl gc: rationale: Autogenerated by Base Runtime tools. - ref: 8bc52279636e902951535362d03cb4b0cb479452 + ref: ee9803b67c37b1a86b2f1f2a3389c3902e659b9f # gcc-7.1.1-1.fc26 gcc: rationale: Autogenerated by Base Runtime tools. @@ -928,10 +929,10 @@ data: glib2: rationale: Autogenerated by Base Runtime tools. ref: 15854645a451f349662f7de7d6dae2fa86c84cd2 - # glibc-2.25-4.fc26 + # glibc-2.25-6.fc26 glibc: rationale: Autogenerated by Base Runtime tools. - ref: e43c7ab8090e8cdf8cee8db158ec2c91dd1e5fe2 + ref: a2f7bb78767003033384a9f2030ac92cb7212d87 # gmp-1:6.1.2-4.fc26 gmp: rationale: Autogenerated by Base Runtime tools.