From 23901b7afcb1a273ab30e955f853e5ec1536d16c Mon Sep 17 00:00:00 2001 From: CCCC <> Date: Jan 12 2021 14:49:29 +0000 Subject: Default configuration --- diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..32c5ac3 --- /dev/null +++ b/README.rst @@ -0,0 +1,36 @@ +This repository holds the config files that define Fedora ELN compose, +Future CentOS Stream compose and Future RHEL compose. + +The repository is organized into several directories: + +- ``shared`` - Pungi configuration files defining compose options + which are shared between all Fedora ELN, CentOS Stream and RHEL. + There is one Pungi configuration file for each Pungi phase and + also ``general.conf``, ``multilib.conf`` and + ``additional_and_filter_packages.conf`` defining compose options + which are not specific for any particular phase. +- ``fedora`` - Pungi configuration files which extend the ``shared`` + compose options (and in some cases overrides them) for Fedora ELN + compose. +- ``centos`` - Pungi configuration files which extend the ``shared`` + compose options (and in some cases overrides them) for CentOS + compose. +- ``rhel`` - Pungi configuration files which extend the ``shared`` + compose options (and in some cases overrides them) for RHEL + compose. + +In the main directory, there is one file for each compose which can +be generated from thie configuration files repository. Each config +file imports the ``shared`` configuration files and also the ``fedora``, +``centos`` or ``rhel`` specific overrides. + +Compose variants (repositories) +############################### + +So far the compose repositories are defined by the Content Resolver. +There is a ``content-resolver-to-gather-source-json`` Python script +which queries the Content Resolver API and generated ``gather_source.json`` +which defines which RPM is in which Compose variant. + +In the future this will be replaced by comps files, but these are not +defined yet. diff --git a/cccc.conf b/cccc.conf new file mode 100644 index 0000000..1096496 --- /dev/null +++ b/cccc.conf @@ -0,0 +1,85 @@ +COMPS_BRANCH = 'main' +COMPS_COMMAND = 'make comps-eln.xml' +COMPS_FILE = 'comps-eln.xml' +COMPS_REPO = 'https://pagure.io/fedora-comps.git' +EXTRA_BUILDINSTALL_SKIP = ('^BaseOS$', {'i386': True, 's390x': True}) +EXTRA_FILES = [] +EXTRA_ISOS_ARCHES = ['x86_64'] +GATHER_PREPOPULATE_BRANCH = 'eln' +GATHER_PREPOPULATE_COMMAND = '' +GATHER_PREPOPULATE_FILE = 'prepopulate.json' +GATHER_PREPOPULATE_REPO = 'https://pagure.io/pungi-fedora.git' +MODULE_DEFAULTS_BRANCH = 'eln' +MODULE_DEFAULTS_REPO = 'https://pagure.io/releng/fedora-module-defaults.git' +PKGSET_KOJI_MODULE_TAG = 'eln-modular' +PKGSET_KOJI_TAG = 'eln' +RELEASE_NAME = 'Fedora-ELN' +RELEASE_SHORT = 'Fedora-ELN' +RELEASE_VERSION = 'Rawhide' +RELEASE_VERSION_X = '9' +RELEASE_VERSION_XY = '9.0' +RELEASE_VERSION_XYZ = '9.0.0' +RELEASE_VERSION_Y = '0' +RELEASE_VERSION_Z = '0' +RUNROOT_CHANNEL = 'compose' +RUNROOT_TAG = 'eln-build' +VARIANTS_BRANCH = 'eln' +VARIANTS_FILE = 'variants.xml' +VARIANTS_REPO = 'https://pagure.io/pungi-fedora.git' +additional_packages = [('^Everything$', {'*': ['*']}), ('^BaseOS$', {'*': ['kernel', 'kernel-modules', 'kernel-modules-extra', 'glibc-all-langpacks', 'glibc-langpack-*', 'glibc-minimal-langpack', 'libbpf', 'elfutils-debuginfod', 'elfutils-debuginfod-client', 'python3-nftables', 'accel-config', 'accel-config-libs', 'acpica-tools', 'dracut-tools', 'policycoreutils-restorecond', 'selinux-policy-doc', 'selinux-policy-sandbox', 'dnf-automatic', 'trace-cmd', 'krb5-workstation', 'krb5-pkinit', 'nvme-cli', 'chkconfig', 'libcap-ng-utils', 'audispd-plugins', 'audispd-plugins-zos', 'subscription-manager-plugin-ostree', 'openssh-keycat', 'dhcp-client', 'dhcp-libs', 'dhcp-relay']}), ('^AppStream$', {'*': ['cloud-init', 'cloud-utils-growpart', 'dnf-utils', 'langpacks-*', 'libreoffice-langpack-*', 'libreoffice-help-*', 'autocorr-*', 'hyphen-*', 'hunspell-*', 'whois', 'python3-networkx', 'fapolicyd', 'fapolicyd-selinux', 'python3-rpmfluff', 'perl-Convert-ASN1', 'perl-LDAP', 'setools-console-analyses', 'setools-gui', 'python3-protobuf', 'usbguard-selinux', 'usbguard-notifier', 'ghostscript-x11', 'python3-libmount', 'itstool', 'js-d3-flame-graph', 'python3-wx-siplib', 'osbuild', 'osbuild-composer', 'osbuild-ostree', 'osbuild-selinux', 'python3-brotli', 'git-lfs', 'tigervnc-server-module', 'greenboot', 'greenboot-grub2', 'greenboot-reboot', 'greenboot-rpm-ostree-grub2', 'greenboot-status', 'python3-libmodulemd', 'net-snmp-perl', 'pipewire0.2-devel', 'pipewire0.2-libs', 'rsyslog-omamqp1', 'git-all', 'fio-engine-*', 'daxio', 'libpmem', 'libpmem-devel', 'libpmemblk', 'libpmemblk-devel', 'libpmemlog', 'libpmemlog-devel', 'libpmemobj', 'libpmemobj-devel', 'libpmemobj++-doc', 'libpmemobj++-devel', 'libpmempool', 'libpmempool-devel', 'librpmem', 'librpmem-devel', 'libvmem', 'libvmem-devel', 'libvmmalloc', 'libvmmalloc-devel', 'pmempool', 'pmemreorder', 'rpmemd', 'go-toolset', 'golang', 'delve', 'rust-toolset', 'rust', 'llvm-toolset', 'llvm', 'clang', 'lld', 'lldb', 'libomp', 'compiler-rt', 'python-lit', 'hwloc-gui', 'hyperv-tools', 'WALinuxAgent', 'policycoreutils-sandbox', 'krb5-devel', 'setools', 'annobin-annocheck', 'scrub', 'man-pages-overrides', 'python-rpm-macros', 'python3-rpm-generators', 'python3-rpm-macros', 'python3-setuptools', 'NetworkManager-cloud-setup']}), ('^Buildroot$', {'*': ['*']})] +bootable = True +buildinstall_allow_reuse = True +buildinstall_method = 'lorax' +buildinstall_skip = [('^BaseOS$', {'i386': True, 's390x': True}), ('^Everything$', {'i386': True}), ('^(AppStream|CRB|ResilientStorage|HighAvailability|SAP|SAPHANA|RT|NFV)$', {'*': True})] +buildinstall_use_guestmount = True +check_deps = False +comps_file = {'scm': 'git', 'repo': 'https://pagure.io/fedora-comps.git', 'branch': 'main', 'file': 'comps-eln.xml', 'command': 'make comps-eln.xml'} +create_jigdo = False +create_optional_isos = False +createiso_skip = [('^(BaseOS|AppStream|CRB|NFV)$', {'*': True, 'src': True})] +createrepo_c = True +createrepo_checksum = 'sha256' +extra_files = [('^.*$', {'*': []})] +extra_isos = {'BaseOS': [{'include_variants': ['AppStream'], 'filename': '{compose_id}-{arch}-{disc_type}{disc_num}{suffix}', 'skip_src': False, 'extra_files': [], 'arches': ['x86_64'], 'failable_arches': ['aarch64', 'ppc64le', 's390x', 'x86_64', 'i386']}]} +filter_packages = [('^.*$', {'*': ['glibc32', 'libgcc32', '*openh264*']})] +gather_allow_reuse = True +gather_backend = 'dnf' +gather_method = {'^.*': {'json': 'deps', 'comps': 'deps', 'module': 'nodeps'}} +gather_prepopulate = {'scm': 'git', 'repo': 'https://pagure.io/pungi-fedora.git', 'branch': 'eln', 'file': 'prepopulate.json', 'command': ''} +global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#HEAD' +global_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN' +global_runroot_method = 'koji' +global_target = 'eln' +global_version = 'ELN' +hashed_directories = False +image_build = {'^Everything$': [{'image-build': {'format': [('docker', 'tar.xz')], 'name': 'Fedora-Container-Base', 'kickstart': 'fedora-eln-container-base.ks', 'distro': 'Fedora-22', 'disk_size': 10, 'repo': 'Everything', 'install_tree_from': 'Everything', 'subvariant': 'Container_Base', 'arches': ['aarch64', 'ppc64le', 'x86_64'], 'failable': ['*']}, 'factory-parameters': {'dockerversion': '1.10.1', 'docker_cmd': '[ "/bin/bash" ]', 'docker_env': '[ "DISTTAG=elncontainer", "FGC=eln", "container=oci" ]', 'docker_label': '{ "name": "fedora-eln", "license": "MIT", "vendor": "Fedora Project", "version": "9"}'}}], '^BaseOS$': [{'image-build': {'format': [('qcow2', 'qcow2')], 'name': 'Fedora-ELN-Guest', 'version': '9.0', 'kickstart': 'fedora-eln-guest.ks', 'ksversion': 'F26', 'distro': 'Fedora-20', 'disk-size': '10', 'arches': ['x86_64'], 'install_tree_from': 'BaseOS', 'repo': ['BaseOS', 'AppStream', 'Everything'], 'failable': ['*']}, 'factory-parameters': {'generate_icicle': False}}]} +image_name_format = {'^BaseOS$': '{compose_id}-{arch}-{disc_type}{disc_num}{suffix}', '.*': '{compose_id}-{variant}-{arch}-{disc_type}{disc_num}{suffix}'} +link_type = 'abspath-symlink' +lorax_options = [('^.*$', {'x86_64': {'nomacboot': True}, '*': {'noupgrade': True, 'rootfs_size': 3, 'configuration_file': 'fedora/lorax.conf'}})] +module_defaults_dir = {'scm': 'git', 'repo': 'https://pagure.io/releng/fedora-module-defaults.git', 'branch': 'eln', 'dir': '.'} +multilib = [('^.*$', {'x86_64': ['devel', 'runtime']})] +multilib_blacklist = {'*': ['libvirt*', 'java-*', 'totem', 'ocaml*']} +multilib_whitelist = {'*': ['valgrind', 'papi', 'gcc-toolset-9-valgrind', 'p11-kit-trust']} +pkgset_koji_inherit = False +pkgset_koji_module_tag = 'eln-modular' +pkgset_koji_tag = 'eln' +pkgset_source = 'koji' +product_id_allow_missing = False +productimg = False +release_is_layered = False +release_name = 'Fedora-ELN' +release_short = 'Fedora-ELN' +release_version = 'Rawhide' +repoclosure_backend = 'dnf' +restricted_volid = True +runroot = True +runroot_channel = 'compose' +runroot_method = {'createiso': 'local'} +runroot_tag = 'eln-build' +sigkeys = ['45719a39', '9570FF31', 'D300E724'] +skip_phases = ['buildinstall', 'extra_isos', 'osbs', 'live_images', 'image_build', 'createiso', 'ostree', 'live_media'] +translate_paths = [('/srv/odcs', 'https://odcs.fedoraproject.org/composes')] +tree_arches = ['x86_64'] +tree_variants = ['Everything', 'BaseOS', 'AppStream', 'CRB'] +variant_as_lookaside = [('AppStream', 'BaseOS'), ('CRB', 'BaseOS'), ('CRB', 'AppStream')] +variants_file = {'scm': 'git', 'repo': 'https://pagure.io/pungi-fedora.git', 'branch': 'eln', 'file': 'variants.xml'} diff --git a/content-resolver-to-gather-source-json b/content-resolver-to-gather-source-json new file mode 100755 index 0000000..af77b8a --- /dev/null +++ b/content-resolver-to-gather-source-json @@ -0,0 +1,39 @@ +#!/usr/bin/python + +import requests +import json + +VARIANTS = { + "BaseOS": "https://tiny.distro.builders/repo-split--view-eln--baseos.txt", + "AppStream": "https://tiny.distro.builders/repo-split--view-eln--appstream.txt", + "HighAvailability": "https://tiny.distro.builders/repo-split--view-eln--addon-ha.txt", + "NFV": "https://tiny.distro.builders/repo-split--view-eln--addon-nfv.txt", + "RT": "https://tiny.distro.builders/repo-split--view-eln--addon-rt.txt", + "ResilientStorage": "https://tiny.distro.builders/repo-split--view-eln--addon-rs.txt", + "SAP": "https://tiny.distro.builders/repo-split--view-eln--addon-sap.txt", + "SAPHANA": "https://tiny.distro.builders/repo-split--view-eln--addon-saphana.txt", + "CRB": None, + "Everything": None, +} + +TREE_ARCHES = ["aarch64", "armhfp", "ppc64le", "s390x", "x86_64", "i386"] + +ret = {} + +for name, url in VARIANTS.items(): + if url: + r = requests.get(url) + r.raise_for_status() + packages = r.text.split("\n") + else: + packages = [] + + ret[name] = {} + for arch in TREE_ARCHES: + ret[name][arch] = {} + for pkg in packages: + ret[name][arch][pkg] = [None] + + +with open("gather_source.json", "w") as f: + f.write(json.dumps(ret)) diff --git a/eln.conf b/eln.conf new file mode 100644 index 0000000..ea39619 --- /dev/null +++ b/eln.conf @@ -0,0 +1,14 @@ +# This is the default Fedora ELN config template. +# +# DO NOT EDIT this configuration file directly. +# +# For any change which should be propagated also into CentOS and RHEL +# compose, edit the particular configuration file in the "shared" directory. +# +# For any change which should happen only for Fedora ELN, edit the +# "fedora/override.conf" configuration file. + +from shared/variables import * +from fedora/variables import * +from shared/all import * +from fedora/override import * diff --git a/fedora/lorax.conf b/fedora/lorax.conf new file mode 100644 index 0000000..be7fd85 --- /dev/null +++ b/fedora/lorax.conf @@ -0,0 +1,2 @@ +[lorax] +sharedir = /srv/odcs/lorax-templates/templates.d/80-rhel/ diff --git a/fedora/override.conf b/fedora/override.conf new file mode 100644 index 0000000..ed81d58 --- /dev/null +++ b/fedora/override.conf @@ -0,0 +1,119 @@ +# This files overrides default variables defined in the configs in +# the ../shared directory. + +# In Fedora, we do not build all variants, because they do not make sense +# in the Fedora world. +tree_variants = ["Everything", "BaseOS", "AppStream", "CRB"] + +# Fedora signing keys. +sigkeys = ['45719a39', '9570FF31', 'D300E724'] + +# Architectures supported by Fedora. +tree_arches = ['aarch64', 'ppc64le', 's390x', 'x86_64', 'i386'] + +# For Fedora-ELN, we do not inherit builds from parent tags. +pkgset_koji_inherit = False + +# No jigdo needed in Fedora. +create_jigdo = False + +# We only build repositories, installer and images in Fedora so far. +skip_phases = [ + "createiso", + "live_media", + "live_images", + "ostree", + "osbs", +] + +# Enables macboot on x86_64 for all variants and disables upgrade image building +# everywhere. +# Use 3GB image size for all arches. +lorax_options = [ + ('^.*$', { + 'x86_64': { + 'nomacboot': True + }, + '*': { + 'noupgrade': True, + 'rootfs_size': 3, + # This is used to use ELN lorax templates instead of Fedora ones. + 'configuration_file': 'fedora/lorax.conf' + } + }) +] + +# Drop the variants we do not care about from the variant_as_lookaside. +variant_as_lookaside = [ + ("AppStream", "BaseOS"), + ("CRB", "BaseOS"), + ("CRB", "AppStream"), +] + +gather_method = { + '^.*': { + 'json': 'deps', + 'comps': 'deps', + 'module': 'nodeps', + } +} + +# No product_id for Fedora. +product_id_allow_missing = False + +# These will be inherited by live_media, live_images and image_build +global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#HEAD' +global_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN' +global_version = 'ELN' +# live_images ignores this in favor of live_target +global_target = 'eln' + +translate_paths = [ # required by image-build + ("/srv/odcs", "https://odcs.fedoraproject.org/composes"), +] + +image_build = { + '^Everything$': [ + { + 'image-build': { + 'format': [('docker', 'tar.xz')], + 'name': 'Fedora-Container-Base', + 'kickstart': 'fedora-eln-container-base.ks', + 'distro': 'Fedora-22', + 'disk_size': 10, + 'repo': 'Everything', + 'install_tree_from': 'Everything', + 'subvariant': 'Container_Base', + 'arches': ['aarch64', 'ppc64le', 'x86_64'] # Skip s390x until https://pagure.io/releng/issue/9875 is fixed. + 'failable': ['*'], + }, + 'factory-parameters': { + 'dockerversion': "1.10.1", + 'docker_cmd': '[ "/bin/bash" ]', + 'docker_env': '[ "DISTTAG=elncontainer", "FGC=eln", "container=oci" ]', + 'docker_label': '{ "name": "fedora-eln", "license": "MIT", "vendor": "Fedora Project", "version": "9"}', + }, + }, + ], + "^BaseOS$": [ + { + "image-build": { + "format": [("qcow2", "qcow2")], + "name": "Fedora-ELN-Guest", + "version": "9.0", + "kickstart": "fedora-eln-guest.ks", + "ksversion": "F26", + "distro": "Fedora-20", + "disk-size": "10", + "arches": ["x86_64"], + 'install_tree_from': 'BaseOS', + "repo": ["BaseOS","AppStream","Everything"] + "failable": ["*"], + }, + "factory-parameters": { + "generate_icicle": False, + } + } + ] +} + diff --git a/fedora/variables.conf b/fedora/variables.conf new file mode 100644 index 0000000..3e7b42c --- /dev/null +++ b/fedora/variables.conf @@ -0,0 +1,46 @@ +RELEASE_NAME = "Fedora-ELN" +RELEASE_SHORT = "Fedora-ELN" +RELEASE_VERSION = "Rawhide" +RELEASE_VERSION_X = "9" +RELEASE_VERSION_Y = "0" +RELEASE_VERSION_Z = "0" +RELEASE_VERSION_XY = "%s.%s" % (RELEASE_VERSION_X, RELEASE_VERSION_Y) +RELEASE_VERSION_XYZ = "%s.%s.%s" % (RELEASE_VERSION_X, RELEASE_VERSION_Y, RELEASE_VERSION_Z) + + +COMPS_REPO = "https://pagure.io/fedora-comps.git" +COMPS_BRANCH = "main" +COMPS_FILE = "comps-eln.xml" +COMPS_COMMAND = "make comps-eln.xml" + + +MODULE_DEFAULTS_REPO = "https://pagure.io/releng/fedora-module-defaults.git" +MODULE_DEFAULTS_BRANCH = "eln" + + +VARIANTS_REPO = "https://pagure.io/pungi-fedora.git" +VARIANTS_BRANCH = "eln" +VARIANTS_FILE = "variants.xml" + + +# Generate gather_source.json on-the-fly using the prepopulate scm dict, +# store it into /srv/odcs and use it from there. +GATHER_PREPOPULATE_REPO = "https://pagure.io/pungi-fedora.git" +GATHER_PREPOPULATE_BRANCH = "eln" +GATHER_PREPOPULATE_FILE = "prepopulate.json" +GATHER_PREPOPULATE_COMMAND = "" + + +RUNROOT_CHANNEL = "compose" +RUNROOT_TAG = "eln-build" + + +PKGSET_KOJI_TAG = "eln" +PKGSET_KOJI_MODULE_TAG = "eln-modular" + +EXTRA_ISOS_ARCHES = ["x86_64"] + +EXTRA_BUILDINSTALL_SKIP = ('^BaseOS$', { + 'i386': True, + 's390x': True, # Skip s390x until https://pagure.io/releng/issue/9875 is fixed. +}) diff --git a/prepopulate.json b/prepopulate.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/prepopulate.json @@ -0,0 +1 @@ +{} diff --git a/shared/additional_and_filter_packages.conf b/shared/additional_and_filter_packages.conf new file mode 100644 index 0000000..8089a22 --- /dev/null +++ b/shared/additional_and_filter_packages.conf @@ -0,0 +1,299 @@ +filter_packages = [ + ("^.*$", { + "*": [ + "glibc32", + "libgcc32", + "*openh264*" # https://fedoraproject.org/wiki/Non-distributable-rpms + ] + }), +] + + +additional_packages = [ + # Everything contains everything. + ('^Everything$', { + '*': [ + '*', + ], + }), + ("^BaseOS$", { + "*": [ + "kernel", + "kernel-modules", + "kernel-modules-extra", + "glibc-all-langpacks", + "glibc-langpack-*", + "glibc-minimal-langpack", + "libbpf", + "elfutils-debuginfod", + "elfutils-debuginfod-client", + "python3-nftables", + "accel-config", #RHELPLAN-59160 + "accel-config-libs", #RHELPLAN-59160 + "acpica-tools", #RhBug 1902909 + "dracut-tools", # ENGCMP-160 + "policycoreutils-restorecond", #RhBug 1903193 + "selinux-policy-doc", #RhBug 1903184 + "selinux-policy-sandbox", + "dnf-automatic", #RhBug 1901980 + "trace-cmd", #RhBug 1902652 + "krb5-workstation", #RhBug 1903532 + "krb5-pkinit", + "nvme-cli", # ENGCMP-184 + "chkconfig", #RhBug 1905660 + "libcap-ng-utils", #RhBug 1907470 + "audispd-plugins", #RhBug 1907469 + "audispd-plugins-zos", + "subscription-manager-plugin-ostree", #RhBug 1909872 + "openssh-keycat", #RhBug 1913812 + "dhcp-client", # ENGCMP-350 + "dhcp-libs", # ENGCMP-350 + "dhcp-relay", # ENGCMP-350 + ] + }), + ("^AppStream$", { + "*": [ + "cloud-init", + "cloud-utils-growpart", + "dnf-utils", + "langpacks-*", + "libreoffice-langpack-*", + "libreoffice-help-*", + "autocorr-*", + "hyphen-*", + "hunspell-*", + "whois", + "python3-networkx", + "fapolicyd", + "fapolicyd-selinux", + "python3-rpmfluff", + "perl-Convert-ASN1", + "perl-LDAP", + "setools-console-analyses", + "setools-gui", + "python3-protobuf", + "usbguard-selinux", + "usbguard-notifier", + "ghostscript-x11", #RhBug 1713413 + "python3-libmount", #RhBug 1824727 + "itstool", + "js-d3-flame-graph", + "python3-wx-siplib", #RhBug 1774207 + "osbuild", + "osbuild-composer", + "osbuild-ostree", + "osbuild-selinux", + "python3-brotli", #RhBug 1737412 + "git-lfs", #RHELCMP-1257 + "tigervnc-server-module", #RhBug 1855181 + "greenboot", #RhBug 1856828 + "greenboot-grub2", #RhBug 1856828 + "greenboot-reboot", #RhBug 1856828 + "greenboot-rpm-ostree-grub2", #RhBug 1856828 + "greenboot-status", #RhBug 1856828 + "python3-libmodulemd", + "net-snmp-perl", + "pipewire0.2-devel", + "pipewire0.2-libs", + "rsyslog-omamqp1", + "git-all", + "fio-engine-*", #RhBug 1900998 + "daxio", + "libpmem", + "libpmem-devel", + "libpmemblk", + "libpmemblk-devel", + "libpmemlog", + "libpmemlog-devel", + "libpmemobj", + "libpmemobj-devel", + "libpmemobj++-doc", + "libpmemobj++-devel", + "libpmempool", + "libpmempool-devel", + "librpmem", + "librpmem-devel", + "libvmem", + "libvmem-devel", + "libvmmalloc", + "libvmmalloc-devel", + "pmempool", + "pmemreorder", + "rpmemd", + "go-toolset", # ENGCMP-108 + "golang", # ENGCMP-108 + "delve", # ENGCMP-108 + "rust-toolset", # ENGCMP-108 + "rust", # ENGCMP-108 + "llvm-toolset", # ENGCMP-108 + "llvm", # ENGCMP-108 + "clang", # ENGCMP-108 + "lld", # ENGCMP-108 + "lldb", # ENGCMP-108 + "libomp", # ENGCMP-108 + "compiler-rt", # ENGCMP-108 + "python-lit", # ENGCMP-108 + "hwloc-gui", # ENGCMP-119 + "hyperv-tools", # ENGCMP-154 + "WALinuxAgent", # ENGCMP-155 + "policycoreutils-sandbox", #RhBug 1903193 + "krb5-devel", #RhBug 1903532 + "setools", #RhBug 1904076" + "annobin-annocheck", #RhBug 1903941 + "scrub", #RhBug 1907472 + "man-pages-overrides", #RhBug 1907645 + "python-rpm-macros", + "python3-rpm-generators", + "python3-rpm-macros", + "python3-setuptools", + "NetworkManager-cloud-setup", #ENGCMP-377 + ] + }), + ("^Buildroot$", { + "*": [ + "*", + ] + }), +] + + +# +# filter_packages = [ +# ("^(BaseOS|AppStream|HighAvailability|NFV|RT|ResilientStorage)$", { +# "*": [ +# "python36", # RCM-42305 - ursine python36 should be only in buildroot +# "gcc-toolset-9-*-testsuite", #RCM-58061 +# "gcc-toolset-9-gcc-plugin-devel", #RCM-58061 +# ] +# }), +# +# ("^(BaseOS|AppStream|HighAvailability|NFV|RT|ResilientStorage)$", { +# "*": [ +# "tuned-profiles-sap", # RCM-53604 - This should be only in SAP +# "tuned-profiles-sap-hana", # RCM-53604 - This should be only in SAPHANA +# ] +# }), +# +# ("^BaseOS$", { +# "*": [ +# "compat-openssl10-devel", # RCM-26416 +# "compat-openssl10-pkcs11-helper", # RCM-28614 +# "openldap-servers-debuginfo", # RCM-28225 +# "ongres-scram", # RCM-31750 +# ] +# }), +# +# ("^RT$", { +# "*": [ +# "kernel-rt-kvm-debuginfo", # RCM-33741 +# "kernel-rt-debug-kvm-debuginfo", # RCM-33741 +# ] +# }), +# +# ("^.*$", { +# "*": [ +# "kernel-*-internal", # RCM-54000 +# ] +# }), +# ] +# +# additional_packages = [ +# ("^AppStream$", { +# "*": [ +# "langpacks-*", #RCM-31103 +# "appstream-data", #RhBug 1698813 +# "ansible-freeipa", #RCM-57073 +# "fapolicyd", #RCM-58975 +# "python3-rpmfluff", #RCM-59949 +# "gcc-toolset-9", #RCM-61473 +# "gcc-toolset-9-annobin", #RCM-62712 +# "gcc-toolset-9-binutils", #RCM-60564 +# "gcc-toolset-9-binutils-devel", +# "gcc-toolset-9-build", +# "gcc-toolset-9-dwz", +# "gcc-toolset-9-dyninst", +# "gcc-toolset-9-elfutils", +# "gcc-toolset-9-elfutils-devel", +# "gcc-toolset-9-elfutils-libelf", +# "gcc-toolset-9-elfutils-libelf-devel", +# "gcc-toolset-9-elfutils-libs", +# "gcc-toolset-9-gcc", +# "gcc-toolset-9-gcc-c++", +# "gcc-toolset-9-gcc-gdb-plugin", +# "gcc-toolset-9-gcc-gfortran", +# "gcc-toolset-9-gdb", +# "gcc-toolset-9-gdb-doc", +# "gcc-toolset-9-gdb-gdbserver", +# "gcc-toolset-9-libitm-devel", +# "gcc-toolset-9-libquadmath-devel", +# "gcc-toolset-9-libstdc++-devel", +# "gcc-toolset-9-libstdc++-docs", +# "gcc-toolset-9-ltrace", +# "gcc-toolset-9-make", +# "gcc-toolset-9-make-devel", +# "gcc-toolset-9-perftools", +# "gcc-toolset-9-runtime", +# "gcc-toolset-9-strace", +# "gcc-toolset-9-systemtap", +# "gcc-toolset-9-systemtap-client", +# "gcc-toolset-9-systemtap-devel", +# "gcc-toolset-9-systemtap-initscript", +# "gcc-toolset-9-systemtap-runtime", +# "gcc-toolset-9-systemtap-sdt-devel", +# "gcc-toolset-9-systemtap-server", +# "gcc-toolset-9-toolchain", +# "gcc-toolset-9-valgrind", +# "gcc-toolset-9-valgrind-devel", +# "libasan5", #RCM-61474 +# "libubsan1", +# "perl-Convert-ASN1", #RCM-66043 +# "lttng-ust", #RHBZ 1750841 +# "whois", # RCM-66001 +# "librsvg2-tools", #RHBZ 1700065 +# "compat-exiv2-026", #RHBZ 1759536 #RCM-67916 +# "prometheus-jmx-exporter", #RHBZ 1760017 #RCM-68051 +# "jolokia-jvm-agent", #RHBZ 1759963 #RCM-68026 +# "perl-LDAP", #RHBZ 1760231 #RHBZ 1663063 #RCM-68080 +# "python3-networkx", #RHBZ 1764287 #RCM-68861 #RCM-71386 +# "liburing", #RHBZ 1769034 #RCM-70072 +# "setools-console-analyses", #RCM-71851 +# "setools-gui", #RCM-71851 +# "virt-p2v-maker", #RCM-71716 #RCM-72953 +# "python3-protobuf", #RHELPLAN-25579 +# "NetworkManager-cloud-setup", #RCM-72501 +# "spice-client-win-x64", #RCM-73991 +# "spice-client-win-x86", #RCM-73991 +# "qt5-qtbase-private-devel", #RHBZ 1796335 +# ] +# }), +# +# ("^AppStream$", { +# "x86_64": [ +# +# "libreoffice-langpack-*", # COMPOSE-2951 +# "libreoffice-help-*", # COMPOSE-2951 +# ], +# "aarch64": [ +# "vulkan-loader", +# "vulkan-loader-devel", #RhBug 1767950 +# ] +# }), +# +# ("^BaseOS$", { +# "*": [ +# "kernel-doc", # Bug 1657609 +# "python3-nftables", # RCM-70485 +# "elfutils-debuginfod", # RCM-71684 +# "elfutils-debuginfod-client", # RCM-71684 +# "elfutils-debuginfod-client-devel", # RCM-71684 +# "libbpf", # RCM-71880 +# ] +# }), +# +# ("^Buildroot$", { +# "*": [ +# "*", +# ] +# }) +# ] +# diff --git a/shared/all.conf b/shared/all.conf new file mode 100644 index 0000000..b6c3738 --- /dev/null +++ b/shared/all.conf @@ -0,0 +1,11 @@ +from general import * +from multilib import * +from additional_and_filter_packages import * +from runroot import * +from pkgset import * +from gather import * +from createrepo import * +from createiso import * +from buildinstall import * +from lookaside import * +from extra_isos import * diff --git a/shared/buildinstall.conf b/shared/buildinstall.conf new file mode 100644 index 0000000..5e4e38d --- /dev/null +++ b/shared/buildinstall.conf @@ -0,0 +1,32 @@ +bootable = True +buildinstall_method = "lorax" +lorax_options = [ + ("^.*$", { + "*": { + "noupgrade": False, +# Comment out until the pungi-buildinstall Koji plugin supports this option. +# "squashfs_only": True + } + }) +] + +buildinstall_skip = [ + EXTRA_BUILDINSTALL_SKIP, + ('^Everything$', { + 'i386': True, + }), + ("^(AppStream|CRB|ResilientStorage|HighAvailability|SAP|SAPHANA|RT|NFV)$", { + '*': True + }), +] + +image_name_format = { + # BaseOS ISO filename should not mention BaseOS, it also contains AppStream + # content. Addons should have the addon name though. + "^BaseOS$": "{compose_id}-{arch}-{disc_type}{disc_num}{suffix}", + ".*": "{compose_id}-{variant}-{arch}-{disc_type}{disc_num}{suffix}", +} + +buildinstall_use_guestmount = True +buildinstall_allow_reuse = True + diff --git a/shared/createiso.conf b/shared/createiso.conf new file mode 100644 index 0000000..85b5eb8 --- /dev/null +++ b/shared/createiso.conf @@ -0,0 +1,15 @@ +create_optional_isos = False + +createiso_skip = [ + ("^(BaseOS|AppStream|CRB|NFV)$", { + # No binary ISOs for BaseOS (but still generate src ISOs) - RCM-41330 + # No binary ISOs for AppStream (but still generate src ISOs) - RCM-40356 + # No binary or src ISOs for CRB + # No binary or src ISOs for NFV + # Note: "*" matches only binary architectures. + "*": True, + "src":True #RCM-41427 -Disable source iso generation during createiso phase + }), +] + +restricted_volid = True diff --git a/shared/createrepo.conf b/shared/createrepo.conf new file mode 100644 index 0000000..06ad29d --- /dev/null +++ b/shared/createrepo.conf @@ -0,0 +1,2 @@ +createrepo_c = True +createrepo_checksum = "sha256" diff --git a/shared/extra_isos.conf b/shared/extra_isos.conf new file mode 100644 index 0000000..5742236 --- /dev/null +++ b/shared/extra_isos.conf @@ -0,0 +1,12 @@ + +extra_isos = { + "BaseOS": [{ + "include_variants": ["AppStream"], + "filename": "{compose_id}-{arch}-{disc_type}{disc_num}{suffix}", + "skip_src": False, + "extra_files": EXTRA_FILES, + "arches": EXTRA_ISOS_ARCHES, + # Make extra_isos failable until we have working installer. + "failable_arches": ['aarch64', 'ppc64le', 's390x', 'x86_64', 'i386'] + }] +} diff --git a/shared/gather.conf b/shared/gather.conf new file mode 100644 index 0000000..3bc9259 --- /dev/null +++ b/shared/gather.conf @@ -0,0 +1,23 @@ +gather_backend = "dnf" +check_deps = False + +gather_method = { + # Anything that is not AppStream, CRB or Buildroot should use the old depsolver + "^(?!(AppStream|CRB|Buildroot)).*$": { + "comps": "deps", + "json": "deps", + }, + "^(AppStream|CRB|Buildroot)$": "hybrid", +} + +hashed_directories = False +gather_allow_reuse = True +repoclosure_backend = 'dnf' + +gather_prepopulate = { + 'scm': 'git', + 'repo': GATHER_PREPOPULATE_REPO, + 'branch': GATHER_PREPOPULATE_BRANCH, + 'file': GATHER_PREPOPULATE_FILE, + 'command': GATHER_PREPOPULATE_COMMAND +} diff --git a/shared/general.conf b/shared/general.conf new file mode 100644 index 0000000..03218f1 --- /dev/null +++ b/shared/general.conf @@ -0,0 +1,37 @@ +release_name = RELEASE_NAME +release_short = RELEASE_SHORT +release_version = RELEASE_VERSION +release_is_layered = False + +link_type = "abspath-symlink" +product_id_allow_missing = True +productimg = False + + +comps_file = { + 'scm': 'git', + 'repo': COMPS_REPO, + 'branch': COMPS_BRANCH, + 'file': COMPS_FILE, + 'command': COMPS_COMMAND +} + +module_defaults_dir = { + 'scm': 'git', + 'repo': MODULE_DEFAULTS_REPO, + 'branch': MODULE_DEFAULTS_BRANCH, + 'dir': '.' +} + +variants_file = { + "scm": "git", + "repo": VARIANTS_REPO, + "branch": VARIANTS_BRANCH, + "file": VARIANTS_FILE, +} + +extra_files = [ + ("^.*$", { + "*": EXTRA_FILES, + }), +] diff --git a/shared/lookaside.conf b/shared/lookaside.conf new file mode 100644 index 0000000..abe6ef4 --- /dev/null +++ b/shared/lookaside.conf @@ -0,0 +1,19 @@ +variant_as_lookaside = [ + ("AppStream", "BaseOS"), + ("HighAvailability", "BaseOS"), + ("HighAvailability", "AppStream"), + ("ResilientStorage", "BaseOS"), + ("ResilientStorage", "AppStream"), + ("RT", "BaseOS"), + ("RT", "AppStream"), + ("NFV", "BaseOS"), + ("NFV", "AppStream"), + ("CRB", "BaseOS"), + ("CRB", "AppStream"), + ("SAP", "BaseOS"), + ("SAP", "AppStream"), + ("SAP", "HighAvailability"), + ("SAPHANA", "BaseOS"), + ("SAPHANA", "AppStream"), + ("SAPHANA", "HighAvailability"), +] diff --git a/shared/multilib.conf b/shared/multilib.conf new file mode 100644 index 0000000..66c7f74 --- /dev/null +++ b/shared/multilib.conf @@ -0,0 +1,26 @@ +multilib = [ + ("^.*$", { + "x86_64": ["devel", "runtime"] + }), +] + + +# format: {arch|*: [packages]} +multilib_blacklist = { + "*": [ + "libvirt*", # RhBug 1571159 + "java-*", # RCM-28652 + "totem", #RCM-43729 + "ocaml*", # RCM-53665 + ], +} + +# format: {arch|*: [packages]} +multilib_whitelist = { + "*": [ + "valgrind", + "papi", + "gcc-toolset-9-valgrind", # RCM-60082 + "p11-kit-trust", # RCM-62077 + ], +} diff --git a/shared/pkgset.conf b/shared/pkgset.conf new file mode 100644 index 0000000..122143c --- /dev/null +++ b/shared/pkgset.conf @@ -0,0 +1,3 @@ +pkgset_source = "koji" +pkgset_koji_tag = PKGSET_KOJI_TAG +pkgset_koji_module_tag = PKGSET_KOJI_MODULE_TAG diff --git a/shared/runroot.conf b/shared/runroot.conf new file mode 100644 index 0000000..0fd5a94 --- /dev/null +++ b/shared/runroot.conf @@ -0,0 +1,10 @@ +runroot = True + +global_runroot_method = "koji" + +runroot_method = { + "createiso": "local" +} + +runroot_channel = RUNROOT_CHANNEL +runroot_tag = RUNROOT_TAG diff --git a/shared/variables.conf b/shared/variables.conf new file mode 100644 index 0000000..09eb33a --- /dev/null +++ b/shared/variables.conf @@ -0,0 +1,35 @@ +global RELEASE_NAME +global RELEASE_SHORT +global RELEASE_VERSION +global PKGSET_KOJI_TAG +global PKGSET_KOJI_MODULE_TAG +global RUNROOT_CHANNEL +global RUNROOT_TAG +global RELEASE_VERSION +global RELEASE_VERSION_X +global RELEASE_VERSION_Y +global RELEASE_VERSION_Z +global RELEASE_VERSION_XY +global RELEASE_VERSION_XYZ +global COMPS_REPO +global COMPS_BRANCH +global COMPS_FILE +global COMPS_COMMAND +global MODULE_DEFAULTS_REPO +global MODULE_DEFAULTS_BRANCH +global VARIANTS_REPO +global VARIANTS_BRANCH +global VARIANTS_FILE +global GATHER_PREPOPULATE_REPO +global GATHER_PREPOPULATE_BRANCH +global GATHER_PREPOPULATE_FILE +global EXTRA_BUILDINSTALL_SKIP +EXTRA_BUILDINSTALL_SKIP = ("^$", {"*": False}) +global GATHER_PREPOPULATE_REPO +global GATHER_PREPOPULATE_BRANCH +global GATHER_PREPOPULATE_FILE +global GATHER_PREPOPULATE_COMMAND +global EXTRA_FILES +EXTRA_FILES = [] +global EXTRA_ISOS_ARCHES +EXTRA_ISOS_ARCHES = [] diff --git a/variants.xml b/variants.xml new file mode 100644 index 0000000..f5a3106 --- /dev/null +++ b/variants.xml @@ -0,0 +1,268 @@ + + + + + + + + + aarch64 + ppc64le + s390x + x86_64 + i386 + + + + + aarch64 + ppc64le + s390x + x86_64 + i386 + + + + + guest-agents + standard + base + core + + additional-devel + anaconda-tools + conflicts-baseos + development + server-product + dial-up + networkmanager-submodules + file-server + fonts + gnome-desktop + graphical-admin-tools + hardware-monitoring + hardware-support + infiniband + headless-management + large-systems + legacy-unix + mail-server + mainframe-access + multimedia + dns-server + smart-card + smb-server + network-tools + network-file-system-client + network-server + performance + platform-devel + python-web + remote-system-management + scientific + security-tools + system-tools + workstation-product + + + + minimal-environment + custom-environment + server-product-environment + + + + + aarch64 + ppc64le + s390x + x86_64 + i386 + + + + standard + anaconda-tools + base + conflicts-appstream + core + additional-devel + base-x + console-internet + debugging + development + dotnet-core + emacs + file-server + ftp-server + gnome-apps + gnome-desktop + guest-desktop-agents + graphical-admin-tools + graphics + hardware-monitoring + infiniband + workstation-product + multimedia + mail-server + mainframe-access + network-server + network-tools + container-management + smb-server + dial-up + fonts + input-methods + multimedia + networkmanager-submodules + network-file-system-client + print-client + desktop-debugging + internet-browser + gnome-desktop + guest-agents + guest-desktop-agents + headless-management + java-platform + gnome-apps + internet-applications + office-suite + performance + platform-devel + platform-kvm + platform-microsoft + platform-vmware + scientific + ostree-support + security-tools + smart-card + smb-server + system-tools + texlive + legacy-x + backup-client + remote-desktop-clients + remote-system-management + rpm-development-tools + virtualization-client + virtualization-hypervisor + virtualization-platform + virtualization-tools + web-server + + + + minimal-environment + virtualization-host-environment + custom-environment + server-product-environment + graphical-server-environment + workstation-product-environment + + + ant:1.10 + httpd:2.4 + jmc:7 + mariadb:10.5 + maven:3.6 + nginx:1.18 + nodejs:12 + nodejs:14 + perl:5.30 + perl:5.32 + ruby:2.5 + subversion:1.14 + swig:4.0 + varnish:6.0 + + + + + aarch64 + ppc64le + s390x + x86_64 + i386 + + + crb + + + + + + + + + + + ppc64le + s390x + x86_64 + + + ha + ha-devel + resilient-storage + + + + + + aarch64 + ppc64le + s390x + x86_64 + + + ha + ha-devel + + + + + + + + + ppc64le + s390x + x86_64 + + + sap + + + + + + ppc64le + x86_64 + + + sap-hana + + + + + + x86_64 + + + rt + rt-debug + + + + + + x86_64 + + + rt + rt-debug + nfv + nfv-debug + + +