ALBS-413: Split the pungi config into templatable and non-templatable parts

- Each arch has specific variants options which store in `variants_options.json`
- Pungi build config is templated as `pungi-build.conf.j2`
- Include/exclude/multilib parts are moved to separate configs per arch
This commit is contained in:
soksanichenko 2022-06-02 18:35:16 +03:00
parent 1b16a9cc97
commit 263f9ccc52
14 changed files with 944 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.idea
.venv

View File

@ -0,0 +1,83 @@
filter_packages = [
(
'^(BaseOS|AppStream|CRB)$', {
'${arch}': [
"insights-client",
"libreport-plugin-rhtsupport",
"libreport-rhel",
"libreport-rhel-anaconda-bugzilla",
"libreport-rhel-bugzilla",
"redhat-backgrounds",
"redhat-logos",
"redhat-logos-httpd",
"redhat-logos-ipa",
"redhat-release-eula",
"redhat-support-lib-python",
"redhat-support-tool",
"spice-client-win-x64",
"spice-client-win-x86",
"spice-qxl-wddm-dod",
"spice-vdagent-win-x64",
"spice-vdagent-win-x86",
"virt-who",
"virtio-win",
"subscription-manager-cockpit",
"subscription-manager-initial-setup-addon",
"rhsm-gtk",
"rhsm-icons",
"rhc",
"rhc-worker-playbook",
"python2-gluster*",
"greenboot-grub2",
"greenboot-reboot",
"greenboot-rpm-ostree-grub2",
"greenboot-status",
"qemu-kvm-hw-usbredir",
]
}
),
(
'^(BaseOS)$', {
'${arch}': [
"perl-Net-SSLeay",
"perl-Mozilla-CA",
"perl-IO-Socket-SSL",
]
}
),
(
'^(AppStream)$', {
'${arch}': [
"java-1.8.0-openjdk-slowdebug",
"java-1.8.0-openjdk-headless-slowdebug",
"sos",
]
}
),
(
'^(extras)$', {
'*': [
"centos-release-*",
]
}
)
]
filter_modules = []
# Based in distribution-comparison-tool report
additional_packages = [
(
'^AppStream$', {
'*': [
"almalinux-backgrounds",
]
}
),
(
'^extras$', {
'*': [
"anaconda-live",
]
}
)
]

3
aarch64/multilib.conf Normal file
View File

@ -0,0 +1,3 @@
multilib_blacklist = {}
multilib_whitelist = {}
multilib = []

View File

@ -0,0 +1,92 @@
{
"BaseOS": {
"gather_methods": "hybrid",
"buildinstall_skip": false,
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"createiso_skip": true,
"extra_isos": [{
"include_variants": [
"AppStream"
],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"skip_src": true
}]
},
"AppStream": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS"
]
},
"CRB": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"HighAvailability": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"ResilientStorage": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"extras": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"SAPHANA": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"SAP": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"Minimal": {
"gather_methods": {
"comps": "deps"
},
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"buildinstall_skip": false,
"createiso_skip": true,
"extra_isos": [{
"include_variants": [],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"skip_src": true
}]
}
}

View File

@ -0,0 +1,82 @@
filter_packages = [
(
'^(BaseOS|AppStream|CRB)$', {
'${arch}': [
"insights-client",
"libreport-plugin-rhtsupport",
"libreport-rhel",
"libreport-rhel-anaconda-bugzilla",
"libreport-rhel-bugzilla",
"redhat-backgrounds",
"redhat-logos",
"redhat-logos-httpd",
"redhat-logos-ipa",
"redhat-release-eula",
"redhat-support-lib-python",
"redhat-support-tool",
"spice-client-win-x64",
"spice-client-win-x86",
"spice-qxl-wddm-dod",
"spice-vdagent-win-x64",
"spice-vdagent-win-x86",
"virt-who",
"virtio-win",
"subscription-manager-cockpit",
"subscription-manager-initial-setup-addon",
"rhsm-gtk",
"rhsm-icons",
"rhc",
"rhc-worker-playbook",
"python2-gluster*",
"greenboot-grub2",
"greenboot-reboot",
"greenboot-rpm-ostree-grub2",
"greenboot-status",
"qemu-kvm-hw-usbredir",
]
}
),
(
'^(BaseOS)$', {
'${arch}': [
"perl-Net-SSLeay",
"perl-Mozilla-CA",
"perl-IO-Socket-SSL",
]
}
),
(
'^(AppStream)$', {
'${arch}': [
"java-1.8.0-openjdk-slowdebug",
"java-1.8.0-openjdk-headless-slowdebug",
"sos",
]
}
),
(
'^(extras)$', {
'*': [
"centos-release-*",
]
}
)
]
filter_modules = []
additional_packages = [
(
'^AppStream$', {
'*': [
"almalinux-backgrounds",
]
}
),
(
'^extras$', {
'*': [
"anaconda-live",
]
}
)
]

3
ppc64le/multilib.conf Normal file
View File

@ -0,0 +1,3 @@
multilib_blacklist = {}
multilib_whitelist = {}
multilib = []

View File

@ -0,0 +1,92 @@
{
"BaseOS": {
"gather_methods": "hybrid",
"buildinstall_skip": false,
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"createiso_skip": true,
"extra_isos": [{
"include_variants": [
"AppStream"
],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"skip_src": true
}]
},
"AppStream": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS"
]
},
"CRB": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"HighAvailability": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"ResilientStorage": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"extras": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"SAPHANA": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"SAP": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"Minimal": {
"gather_methods": {
"comps": "deps"
},
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"buildinstall_skip": false,
"createiso_skip": true,
"extra_isos": [{
"include_variants": [],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"skip_src": true
}]
}
}

162
pungi-build.conf.j2 Normal file
View File

@ -0,0 +1,162 @@
from {{ arch }}/include_exclude.conf import *
from {{ arch }}/multilib.conf import *
# PRODUCT INFO
release_name = "{{ product_name }}"
release_short = "{{ product_name }}"
release_version = "{{ distribution_major_version }}.{{ distribution_minor_version }}"
treeinfo_version = "{{ distribution_major_version }}"
# GENERAL SETTINGS
comps_file = {
"scm": "git",
"repo": "https://git.almalinux.org/almalinux/pungi-almalinux.git",
"branch": "a{{ distribution_major_version }}.{{ distribution_minor_version }}",
"file": "{{ arch }}/comps.xml",
}
link_type = 'hardlink'
module_defaults_dir = 'koji/module_defaults'
variants_file = {
"scm": "git",
"repo": "https://git.almalinux.org/almalinux/pungi-almalinux.git",
"branch": "a{{ distribution_major_version }}.{{ distribution_minor_version }}",
"file": "{{ arch }}/variants.xml",
}
hashed_directories = False
tree_arches = ['{{ arch }}']
# PKGSET
pkgset_source = "koji"
koji_profile = "{{ koji_profile_name }}"
# PKGSET - KOJI
pkgset_koji_tag = "dist-c8-compose"
pkgset_koji_inherit = False
pkgset_koji_module_tag = "dist-c8-module-compose"
pkgset_allow_reuse = False
filter_system_release_packages = False
# GATHER
gather_prepopulate = {
"scm": "git",
"repo": "https://git.almalinux.org/almalinux/pungi-almalinux.git",
"branch": "a{{ distribution_major_version }}.{{ distribution_minor_version }}",
"file": "{{ arch }}/packages.json",
}
gather_method = {
{% for variant, options in variants.items() %}
{% if options['gather_methods'] is string %}
"^{{ variant }}$": "{{ options['gather_methods'] }}",
{% else %}
"^{{ variant }}$": {
{% for source_name, gather_method in options['gather_methods'].items() %}
"{{ source_name }}": "{{ gather_method }}",
{% endfor %}
},
{% endif %}
{% endfor %}
}
gather_backend = "dnf"
check_deps = True
greedy_method = "none"
repoclosure_backend = "dnf"
# CREATEREPO
createrepo_deltas = False
createrepo_database = True
createrepo_c = True
createrepo_checksum = "sha256"
createrepo_use_xz = True
createrepo_num_threads = 8
createrepo_num_workers = 4
createrepo_extra_args = [
'--distro=cpe:/o:{{ product_name.lower() }}:{{ product_name.lower() }}:{{ distribution_major_version }},{{ product_name }} {{ distribution_major_version }}',
'--revision={{ distribution_major_version }}.{{ distribution_minor_version }}',
]
# CHECKSUMS
media_checksums = ['sha256']
media_checksum_one_file = True
create_jigdo = False
# BUILDINSTALL
bootable = True
buildinstall_method = "lorax"
lorax_options = [
("^.*$", {
"*": {
"noupgrade": False,
"rootfs_size": 3,
"version": "{{ distribution_major_version }}.{{ distribution_minor_version }}"
}
})
]
buildinstall_skip = [
{% for variant, options in variants.items() %}
{% if options['buildinstall_skip'] | default(false) %}
("^{{ variant }}$", {
"*": True,
}),
{% endif %}
{% endfor %}
]
image_name_format = {
{% for variant, options in variants.items() %}
{% if options['image_name_format'] | default(false) %}
"^{{ variant }}$": "{{ options['image_name_format'] }}",
{% endif %}
{% endfor %}
".*": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
}
image_volid_formats = [
'{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}',
]
# CREATEISO
create_optional_isos = False
createiso_skip = [
{% for variant, options in variants.items() %}
{% if options['createiso_skip'] | default(false) %}
("^{{ variant }}$", {
"*": True,
"src": True,
}),
{% endif %}
{% endfor %}
]
extra_isos = {
{% for variant, options in variants.items() %}
{% if options['extra_isos'] | default(false) %}
"{{ variant }}": {{ options['extra_isos'] }},
{% endif %}
{% endfor %}
}
restricted_volid = True
# LOOKASIDE
variant_as_lookaside = [
{% for variant, options in variants.items() %}
{% if options['variant_as_lookaside'] | default(false) %}
{% for lookaside_variant in options['variant_as_lookaside'] %}
('{{ variant }}', '{{ lookaside_variant }}'),
{% endfor %}
{% endif %}
{% endfor %}
]
productimg = False

View File

@ -0,0 +1,83 @@
filter_packages = [
(
'^(BaseOS|AppStream|CRB)$', {
'${arch}': [
"insights-client",
"libreport-plugin-rhtsupport",
"libreport-rhel",
"libreport-rhel-anaconda-bugzilla",
"libreport-rhel-bugzilla",
"redhat-backgrounds",
"redhat-logos",
"redhat-logos-httpd",
"redhat-logos-ipa",
"redhat-release-eula",
"redhat-support-lib-python",
"redhat-support-tool",
"spice-client-win-x64",
"spice-client-win-x86",
"spice-qxl-wddm-dod",
"spice-vdagent-win-x64",
"spice-vdagent-win-x86",
"virt-who",
"virtio-win",
"subscription-manager-cockpit",
"subscription-manager-initial-setup-addon",
"rhsm-gtk",
"rhsm-icons",
"rhc",
"rhc-worker-playbook",
"python2-gluster*",
"greenboot-grub2",
"greenboot-reboot",
"greenboot-rpm-ostree-grub2",
"greenboot-status",
"qemu-kvm-hw-usbredir",
"pcp-pmda-bpf",
]
}
),
(
'^(BaseOS)$', {
'${arch}': [
"perl-Net-SSLeay",
"perl-Mozilla-CA",
"perl-IO-Socket-SSL",
]
}
),
(
'^(AppStream)$', {
'${arch}': [
"java-1.8.0-openjdk-slowdebug",
"java-1.8.0-openjdk-headless-slowdebug",
"sos",
]
}
),
(
'^(extras)$', {
'*': [
"centos-release-*",
]
}
)
]
filter_modules = []
additional_packages = [
(
'^AppStream$', {
'*': [
"almalinux-backgrounds",
]
}
),
(
'^extras$', {
'*': [
"anaconda-live",
]
}
)
]

3
s390x/multilib.conf Normal file
View File

@ -0,0 +1,3 @@
multilib_blacklist = {}
multilib_whitelist = {}
multilib = []

110
s390x/variants_options.json Normal file
View File

@ -0,0 +1,110 @@
{
"BaseOS": {
"gather_methods": "hybrid",
"buildinstall_skip": false,
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"createiso_skip": true,
"extra_isos": [{
"include_variants": [
"AppStream"
],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"skip_src": true
}]
},
"AppStream": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS"
]
},
"CRB": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"HighAvailability": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"ResilientStorage": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"extras": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"SAPHANA": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"SAP": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"RT": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"NFV": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"Minimal": {
"gather_methods": {
"comps": "deps"
},
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"buildinstall_skip": false,
"createiso_skip": true,
"extra_isos": [{
"include_variants": [],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"skip_src": true
}]
}
}

View File

@ -0,0 +1,96 @@
filter_packages = [
(
'^(BaseOS|AppStream|CRB)$', {
'${arch}': [
"insights-client",
"libreport-plugin-rhtsupport",
"libreport-rhel",
"libreport-rhel-anaconda-bugzilla",
"libreport-rhel-bugzilla",
"redhat-backgrounds",
"redhat-logos",
"redhat-logos-httpd",
"redhat-logos-ipa",
"redhat-release-eula",
"redhat-support-lib-python",
"redhat-support-tool",
"spice-client-win-x64",
"spice-client-win-x86",
"spice-qxl-wddm-dod",
"spice-vdagent-win-x64",
"spice-vdagent-win-x86",
"virt-who",
"virtio-win",
"subscription-manager-cockpit",
"subscription-manager-initial-setup-addon",
"rhsm-gtk",
"rhsm-icons",
"rhc",
"rhc-worker-playbook",
"python2-gluster*",
"gcc-toolset-10-dyninst-devel.i686",
"gcc-toolset-10-systemtap-devel.i686",
"gcc-toolset-10-systemtap-sdt-devel.i686",
"ocaml-camlp4.i686",
"ocaml-camlp4-devel.i686",
"ocaml-extlib-devel.i686",
"ocaml-findlib-devel.i686",
"ocaml-labltk.i686",
"ocaml-labltk-devel.i686",
"ocaml-ocamlbuild.i686",
"ocaml-ocamlbuild-devel.i686",
"greenboot-grub2",
"greenboot-reboot",
"greenboot-rpm-ostree-grub2",
"greenboot-status",
"qemu-kvm-hw-usbredir",
]
}
),
(
'^(BaseOS)$', {
'${arch}': [
"perl-Net-SSLeay",
"perl-Mozilla-CA",
"perl-IO-Socket-SSL",
"python-unversioned-command",
"python.i686",
]
}
),
(
'^(AppStream)$', {
'${arch}': [
"java-1.8.0-openjdk-slowdebug",
"java-1.8.0-openjdk-headless-slowdebug",
"libvirt-glib.i686",
"sos",
]
}
),
(
'^(extras)$', {
'*': [
"centos-release-*",
]
}
)
]
filter_modules = []
additional_packages = [
(
'^AppStream$', {
'*': [
"almalinux-backgrounds",
]
}
),
(
'^extras$', {
'*': [
"anaconda-live",
]
}
)
]

41
x86_64/multilib.conf Normal file
View File

@ -0,0 +1,41 @@
multilib_blacklist = {
"*": [
"libvirt*", # RhBug 1571159
"java-*", # RCM-28652
"totem", #RCM-43729
"ocaml*", # RCM-53665
"fwupd*", # ENGCMP-488
"freeradius*", #RhBug 1923990
"httpd-*", #ENGCMP-716
"nginx-*",
"php-*",
"subversion-*",
"mariadb-common", #ENGCMP-1061
"mariadb-devel",
"mariadb-embedded*",
"mariadb-errmsg",
"mysql-common",
"mysql-devel",
"mysql-libs",
"mecab",
"postgresql-private*", #ENGCMP-1179
"postgresql-server*",
"bash*", #RhBug 2006138
"xapian-core*", #RhBug 2031780
"tk*", #RhBug 2053406
"tcl*",
"ldns-devel*", #RhBug 2058694
"apr-util-openssl",
"compiler-rt",
"libomp",
"librevenge-gdb",
"tracker",
"tracker-miners",
],
}
multilib_whitelist = {}
multilib = [
('^.*$', {
'x86_64': ['devel', 'runtime']
}),
]

View File

@ -0,0 +1,92 @@
{
"BaseOS": {
"gather_methods": "hybrid",
"buildinstall_skip": false,
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"createiso_skip": true,
"extra_isos": [{
"include_variants": [
"AppStream"
],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-{disc_type}{suffix}",
"skip_src": true
}]
},
"AppStream": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS"
]
},
"CRB": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"HighAvailability": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"ResilientStorage": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"extras": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream"
]
},
"SAPHANA": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"SAP": {
"gather_methods": "hybrid",
"buildinstall_skip": true,
"createiso_skip": true,
"variant_as_lookaside": [
"BaseOS",
"AppStream",
"HighAvailability"
]
},
"Minimal": {
"gather_methods": {
"comps": "deps"
},
"image_name_format": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"buildinstall_skip": false,
"createiso_skip": true,
"extra_isos": [{
"include_variants": [],
"filename": "{release_short}-{{ distribution_major_version }}.{{ distribution_minor_version }}{{ beta_suffix }}-{arch}-minimal{suffix}",
"skip_src": true
}]
}
}