From 1bc946b6bb7e8cbd9ed02a5f3274e6ad5182b66b Mon Sep 17 00:00:00 2001 From: Paul Whalen Date: Nov 25 2024 21:43:20 +0000 Subject: F40: Use versioned conf for bootc images Signed-off-by: Paul Whalen --- diff --git a/fedora-bootc.conf b/fedora-bootc.conf new file mode 100644 index 0000000..8f19cab --- /dev/null +++ b/fedora-bootc.conf @@ -0,0 +1,218 @@ +# PRODUCT INFO +release_name = 'Fedora-IoT' +release_short = 'Fedora-IoT' +release_version = '40' +# Let's not build install media during this run. For the image builds +# and OSTree installer we'll use inputs from other f40 runs. +skip_phases = ["buildinstall", "createrepo", "extra_files"] + +# GENERAL SETTINGS +comps_file = { + 'scm': 'git', + 'repo': 'https://pagure.io/fedora-comps.git', + 'branch': 'main', + 'file': 'comps-f40.xml', + 'command': 'make comps-f40.xml' +} +variants_file='variants-fedora.xml' +sigkeys = ['a15B79cc'] + +# limit tree architectures +# if undefined, all architectures from variants.xml will be included +tree_arches = ['aarch64', 'x86_64'] +# limit tree variants +# if undefined, all variants from variants.xml will be included +tree_variants = ['bootc'] +hashed_directories = True + +# RUNROOT settings +runroot_channel = 'compose' +runroot_tag = 'f40-build' + +# PKGSET +pkgset_source = 'koji' # koji, repos + +# PKGSET - REPOS +# pkgset_repos format: {arch: [repo1_url, repo2_url, ...]} +# pkgset_repos = {} + +# PKGSET - KOJI +pkgset_koji_tag = 'f40-iot' +pkgset_koji_inherit = False + +filter_system_release_packages = False + +# GATHER +gather_method = { + '^.*': { # For all variants + 'comps': 'deps', # resolve dependencies for packages from comps file + 'module': 'nodeps', # but not for packages from modules + } +} +gather_backend = 'dnf' +gather_profiler = True +check_deps = False +greedy_method = 'build' + +repoclosure_backend = 'dnf' + +# CHECKSUMS +media_checksums = ['sha256'] +media_checksum_one_file = True +media_checksum_base_filename = '%(release_short)s-%(version)s-%(arch)s-%(date)s%(type_suffix)s.%(respin)s' +#jigdo +create_jigdo = False + +# CREATEISO +# use xorrisofs to make isos +createiso_use_xorrisofs = True + +# BUILDINSTALL +buildinstall_method = 'lorax' +buildinstall_skip = [ + ('^Modular$', { + '*': True + }), +] + +# disables macboot and upgrade image building +lorax_options = [ + ('^.*$', { + 'x86_64': { + 'nomacboot': True + }, + '*': { + 'noupgrade': True + } + }) +] + +multilib = [ + ('^Everything$', { + 'x86_64': ['devel', 'runtime'], + 's390x': ['devel', 'runtime'] + }) +] +filter_packages = [] +# format: {arch|*: [packages]} +multilib_blacklist = { + '*': ['kernel', 'kernel-PAE*', 'kernel*debug*', + 'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel', + 'php-devel', 'java-*', 'bash-devel', + 'httpd-devel', 'tomcat-native', 'php*', 'httpd', + 'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*' + ], +} + +# format: {arch|*: [packages]} +multilib_whitelist = { + '*': ['libgnat', 'wine', 'lmms-vst', 'nspluginwrapper', + 'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb', + 'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux', + 'syslinux-tftpboot', 'nosync', '*-static', 'apitrace-libs', + 'fakeroot-libs', 'postgresql-odbc', 'mysql-connector-odbc', + 'fakechroot-libs','mesa-vdpau-drivers', 'p11-kit-trust', + 'mariadb-connector-odbc', 'compiler-rt', + 'nvidia-query-resource-opengl-lib', + 'ibus-libs', 'ibus-gtk2', 'ibus-gtk3', + 'glib-networking' + ], +} + +createiso_skip = [ + ('^Everything$', { + '*': True, + 'src': True + }), + + ] + +# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})] +#extra_files = [ +# ('^(Server)$', { +# '*': [ +# { +# 'scm': 'rpm', +# 'repo': 'fedora-release-%(variant_id_lower)s', +# 'branch': None, +# 'file': [ +# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release', +# ], +# 'target': '', +# }, +# ], +# }), +#] + +# Image name respecting Fedora's image naming policy +image_name_format = '%(release_short)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s%(type_suffix)s.%(respin)s.iso' +# # Use the same format for volume id +image_volid_formats = [ + '%(release_short)s-%(disc_type)s-%(arch)s-%(version)s' + ] +# No special handling for layered products, use same format as for regular images +image_volid_layered_product_formats = [] +# Used by Pungi to replace 'Cloud' with 'C' (etc.) in ISO volume IDs. +# There is a hard 32-character limit on ISO volume IDs, so we use +# these to try and produce short enough but legible IDs. Note this is +# duplicated in Koji for live images, as livemedia-creator does not +# allow Pungi to tell it what volume ID to use. Note: +# https://fedoraproject.org/wiki/User:Adamwill/Draft_fedora_image_naming_policy +# '-Workstation-' is a temporary workaround. See +# https://pagure.io/pungi-fedora/pull-request/525 +volume_id_substitutions = { + 'Beta': 'B', + 'Rawhide': 'rawh', + 'Astronomy_KDE': 'AstK', + 'Silverblue': 'SB', + 'Cinnamon': 'Cinn', + 'Cloud': 'C', + 'Comp_Neuro': 'CNr', + 'Design_suite': 'Dsgn', + 'Electronic_Lab': 'Elec', + 'Everything': 'E', + 'Games': 'Game', + 'Images': 'img', + 'IoT': 'iot', + 'Jam_KDE': 'Jam', + 'MATE_Compiz': 'MATE', + # Note https://pagure.io/pungi-fedora/issue/533 + 'Python-Classroom': 'Clss', + 'Python_Classroom': 'Clss', + 'Robotics': 'Robo', + 'Scientific_KDE': 'SciK', + 'Security': 'Sec', + 'Server': 'S', + '-Workstation-': '-WS-', +} + +disc_types = { + 'boot': 'netinst', + 'live': 'Live', +} + +translate_paths = [ + ('/mnt/koji/compose/', 'https://kojipkgs.fedoraproject.org/compose/'), +] + +# These will be inherited by live_media, live_images and image_build +global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#origin/f40' +global_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN' +global_version = '40' +# live_images ignores this in favor of live_target +global_target = 'f40' + +ostree_container = { + "^bootc$": { + "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", + "config_url": "https://pagure.io/fedora-iot/base-images", + "config_branch": "f40", + "treefile": "fedora-40.yaml", + "repo": ["https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/Everything/$basearch/os/", + "https://kojipkgs.fedoraproject.org/compose/updates/f40-updates/compose/Everything/$basearch/os/"], + "arches": ["x86_64", "aarch64"], + "failable": ['*'], + }, +} + +koji_profile = 'compose_koji' diff --git a/fedora-iot.conf b/fedora-iot.conf deleted file mode 100644 index dc50b18..0000000 --- a/fedora-iot.conf +++ /dev/null @@ -1,218 +0,0 @@ -# PRODUCT INFO -release_name = 'Fedora-IoT' -release_short = 'Fedora-IoT' -release_version = '40' -# Let's not build install media during this run. For the image builds -# and OSTree installer we'll use inputs from other f40 runs. -skip_phases = ["buildinstall", "createrepo", "extra_files"] - -# GENERAL SETTINGS -comps_file = { - 'scm': 'git', - 'repo': 'https://pagure.io/fedora-comps.git', - 'branch': 'main', - 'file': 'comps-f40.xml', - 'command': 'make comps-f40.xml' -} -variants_file='variants-fedora.xml' -sigkeys = ['a15B79cc'] - -# limit tree architectures -# if undefined, all architectures from variants.xml will be included -tree_arches = ['aarch64', 'x86_64'] -# limit tree variants -# if undefined, all variants from variants.xml will be included -tree_variants = ['bootc'] -hashed_directories = True - -# RUNROOT settings -runroot_channel = 'compose' -runroot_tag = 'f40-build' - -# PKGSET -pkgset_source = 'koji' # koji, repos - -# PKGSET - REPOS -# pkgset_repos format: {arch: [repo1_url, repo2_url, ...]} -# pkgset_repos = {} - -# PKGSET - KOJI -pkgset_koji_tag = 'f40-iot' -pkgset_koji_inherit = False - -filter_system_release_packages = False - -# GATHER -gather_method = { - '^.*': { # For all variants - 'comps': 'deps', # resolve dependencies for packages from comps file - 'module': 'nodeps', # but not for packages from modules - } -} -gather_backend = 'dnf' -gather_profiler = True -check_deps = False -greedy_method = 'build' - -repoclosure_backend = 'dnf' - -# CHECKSUMS -media_checksums = ['sha256'] -media_checksum_one_file = True -media_checksum_base_filename = '%(release_short)s-%(version)s-%(arch)s-%(date)s%(type_suffix)s.%(respin)s' -#jigdo -create_jigdo = False - -# CREATEISO -# use xorrisofs to make isos -createiso_use_xorrisofs = True - -# BUILDINSTALL -buildinstall_method = 'lorax' -buildinstall_skip = [ - ('^Modular$', { - '*': True - }), -] - -# disables macboot and upgrade image building -lorax_options = [ - ('^.*$', { - 'x86_64': { - 'nomacboot': True - }, - '*': { - 'noupgrade': True - } - }) -] - -multilib = [ - ('^Everything$', { - 'x86_64': ['devel', 'runtime'], - 's390x': ['devel', 'runtime'] - }) -] -filter_packages = [] -# format: {arch|*: [packages]} -multilib_blacklist = { - '*': ['kernel', 'kernel-PAE*', 'kernel*debug*', - 'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel', - 'php-devel', 'java-*', 'bash-devel', - 'httpd-devel', 'tomcat-native', 'php*', 'httpd', - 'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*' - ], -} - -# format: {arch|*: [packages]} -multilib_whitelist = { - '*': ['libgnat', 'wine', 'lmms-vst', 'nspluginwrapper', - 'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb', - 'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux', - 'syslinux-tftpboot', 'nosync', '*-static', 'apitrace-libs', - 'fakeroot-libs', 'postgresql-odbc', 'mysql-connector-odbc', - 'fakechroot-libs','mesa-vdpau-drivers', 'p11-kit-trust', - 'mariadb-connector-odbc', 'compiler-rt', - 'nvidia-query-resource-opengl-lib', - 'ibus-libs', 'ibus-gtk2', 'ibus-gtk3', - 'glib-networking' - ], -} - -createiso_skip = [ - ('^Everything$', { - '*': True, - 'src': True - }), - - ] - -# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})] -#extra_files = [ -# ('^(Server)$', { -# '*': [ -# { -# 'scm': 'rpm', -# 'repo': 'fedora-release-%(variant_id_lower)s', -# 'branch': None, -# 'file': [ -# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release', -# ], -# 'target': '', -# }, -# ], -# }), -#] - -# Image name respecting Fedora's image naming policy -image_name_format = '%(release_short)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s%(type_suffix)s.%(respin)s.iso' -# # Use the same format for volume id -image_volid_formats = [ - '%(release_short)s-%(disc_type)s-%(arch)s-%(version)s' - ] -# No special handling for layered products, use same format as for regular images -image_volid_layered_product_formats = [] -# Used by Pungi to replace 'Cloud' with 'C' (etc.) in ISO volume IDs. -# There is a hard 32-character limit on ISO volume IDs, so we use -# these to try and produce short enough but legible IDs. Note this is -# duplicated in Koji for live images, as livemedia-creator does not -# allow Pungi to tell it what volume ID to use. Note: -# https://fedoraproject.org/wiki/User:Adamwill/Draft_fedora_image_naming_policy -# '-Workstation-' is a temporary workaround. See -# https://pagure.io/pungi-fedora/pull-request/525 -volume_id_substitutions = { - 'Beta': 'B', - 'Rawhide': 'rawh', - 'Astronomy_KDE': 'AstK', - 'Silverblue': 'SB', - 'Cinnamon': 'Cinn', - 'Cloud': 'C', - 'Comp_Neuro': 'CNr', - 'Design_suite': 'Dsgn', - 'Electronic_Lab': 'Elec', - 'Everything': 'E', - 'Games': 'Game', - 'Images': 'img', - 'IoT': 'iot', - 'Jam_KDE': 'Jam', - 'MATE_Compiz': 'MATE', - # Note https://pagure.io/pungi-fedora/issue/533 - 'Python-Classroom': 'Clss', - 'Python_Classroom': 'Clss', - 'Robotics': 'Robo', - 'Scientific_KDE': 'SciK', - 'Security': 'Sec', - 'Server': 'S', - '-Workstation-': '-WS-', -} - -disc_types = { - 'boot': 'netinst', - 'live': 'Live', -} - -translate_paths = [ - ('/mnt/koji/compose/', 'https://kojipkgs.fedoraproject.org/compose/'), -] - -# These will be inherited by live_media, live_images and image_build -global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#origin/f40' -global_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN' -global_version = '40' -# live_images ignores this in favor of live_target -global_target = 'f40' - -ostree_container = { - "^bootc$": { - "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", - "config_url": "https://pagure.io/fedora-iot/base-images", - "config_branch": "f40", - "treefile": "fedora-bootc.yaml", - "repo": ["https://kojipkgs.fedoraproject.org/compose/40/Fedora-40-20240414.0/compose/Everything/$basearch/os/", - "https://kojipkgs.fedoraproject.org/compose/updates/f40-updates/compose/Everything/$basearch/os/"], - "arches": ["x86_64", "aarch64"], - "failable": ['*'], - }, -} - -koji_profile = 'compose_koji' diff --git a/twoweek-nightly.sh b/twoweek-nightly.sh index 12b3f82..aad20f8 100755 --- a/twoweek-nightly.sh +++ b/twoweek-nightly.sh @@ -4,7 +4,7 @@ LABEL=$1 # Remove the label from arguments. It gets special treatment. Other arguments # to the script are passed to pungi-koji directly. shift -CONFIG="fedora-iot.conf" +CONFIG="fedora-bootc.conf" TARGET_DIR="/mnt/koji/compose/iot" NIGHTLY="" DEST=$(pwd)