From ff4af8b3276d50b5a430106f486e6202e72dd6b3 Mon Sep 17 00:00:00 2001 From: Neil Hanlon Date: Wed, 29 Jun 2022 20:25:02 -0400 Subject: [PATCH] Some fixes to run on el8 and build a cloud sig boot iso --- iso/empanadas/empanadas/common.py | 1 + .../empanadas/configs/el8-cloud.yaml | 129 ++++++++++++++++++ iso/empanadas/empanadas/configs/el8.yaml | 2 +- iso/empanadas/empanadas/util/iso_utils.py | 54 +++++--- 4 files changed, 167 insertions(+), 19 deletions(-) create mode 100644 iso/empanadas/empanadas/configs/el8-cloud.yaml diff --git a/iso/empanadas/empanadas/common.py b/iso/empanadas/empanadas/common.py index edb2533..1f18240 100644 --- a/iso/empanadas/empanadas/common.py +++ b/iso/empanadas/empanadas/common.py @@ -53,6 +53,7 @@ config = { "category_stub": "mirror/pub/rocky", "sig_category_stub": "mirror/pub/sig", "repo_base_url": "https://yumrepofs.build.resf.org/v1/projects", + "rocky_staging": "https://dl.rockylinux.org/stg/rocky", "mock_work_root": "/builddir", "container": "centos:stream9", "distname": "Rocky Linux", diff --git a/iso/empanadas/empanadas/configs/el8-cloud.yaml b/iso/empanadas/empanadas/configs/el8-cloud.yaml new file mode 100644 index 0000000..ab5c10f --- /dev/null +++ b/iso/empanadas/empanadas/configs/el8-cloud.yaml @@ -0,0 +1,129 @@ +--- +'8-cloud': + fullname: 'Rocky Linux 8' + revision: '8.6' + rclvl: 'RC2' + major: '8' + minor: '6' + profile: '8' + bugurl: 'https://bugs.rockylinux.org' + fedora_release: 28 + checksum: 'sha256' + allowed_arches: + - x86_64 + - aarch64 + provide_multilib: False + project_id: '' + repo_symlinks: + devel: 'Devel' + NFV: 'nfv' + renames: {} + all_repos: + - 'BaseOS' + - 'AppStream' + - 'PowerTools' + - 'HighAvailability' + - 'ResilientStorage' + - 'RT' + - 'NFV' + - 'extras' + - 'devel' + - 'plus' + - 'rockyrpi' + no_comps_or_groups: + - 'extras' + - 'devel' + - 'plus' + - 'rockyrpi' + comps_or_groups: + - 'BaseOS' + - 'AppStream' + - 'PowerTools' + - 'HighAvailability' + - 'ResilientStorage' + - 'RT' + - 'NFV' + has_modules: + - 'AppStream' + - 'PowerTools' + structure: + packages: 'os/Packages' + repodata: 'os/repodata' + iso_map: + xorrisofs: True + iso_level: False + images: + dvd: + disc: True + variant: 'AppStream' + repos: + - 'BaseOS' + - 'AppStream' + minimal: + disc: True + isoskip: True + repos: + - 'minimal' + variant: 'minimal' + BaseOS: + disc: False + isoskip: True + variant: 'BaseOS' + repos: + - 'BaseOS' + - 'AppStream' + lorax: + repos: + - 'BaseOS' + - 'AppStream' + variant: 'BaseOS' + lorax_removes: + - 'libreport-rhel-anaconda-bugzilla' + extra_repos: + - 'https://yumrepofs.build.resf.org/v1/projects/f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c/repo/all/aarch64/' + required_pkgs: + - 'lorax' + - 'genisoimage' + - 'isomd5sum' + - 'lorax-templates-rhel' + - 'lorax-templates-generic' + - 'xorriso' + repoclosure_map: + arches: + x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' + aarch64: '--arch=aarch64 --arch=noarch' + ppc64le: '--arch=ppc64le --arch=noarch' + s390x: '--arch=s390x --arch=noarch' + repos: + BaseOS: [] + AppStream: + - BaseOS + PowerTools: + - BaseOS + - AppStream + HighAvailability: + - BaseOS + - AppStream + ResilientStorage: + - BaseOS + - AppStream + RT: + - BaseOS + - AppStream + NFV: + - BaseOS + - AppStream + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r8/' + branch: 'r8' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-rockyofficial' + testing: 'SOURCES/RPM-GPG-KEY-rockytesting' + list: + - 'SOURCES/COMMUNITY-CHARTER' + - 'SOURCES/EULA' + - 'SOURCES/LICENSE' + - 'SOURCES/RPM-GPG-KEY-rockyofficial' + - 'SOURCES/RPM-GPG-KEY-rockytesting' +... diff --git a/iso/empanadas/empanadas/configs/el8.yaml b/iso/empanadas/empanadas/configs/el8.yaml index 8ce71c7..2438e64 100644 --- a/iso/empanadas/empanadas/configs/el8.yaml +++ b/iso/empanadas/empanadas/configs/el8.yaml @@ -2,7 +2,7 @@ '8': fullname: 'Rocky Linux 8' revision: '8.6' - rclvl: 'RC2' + rclvl: 'sig-cloud' major: '8' minor: '6' profile: '8' diff --git a/iso/empanadas/empanadas/util/iso_utils.py b/iso/empanadas/empanadas/util/iso_utils.py index de93dac..c084bfd 100644 --- a/iso/empanadas/empanadas/util/iso_utils.py +++ b/iso/empanadas/empanadas/util/iso_utils.py @@ -106,6 +106,9 @@ class IsoBuild: self.bugurl = rlvars['bugurl'] self.extra_files = rlvars['extra_files'] + self.extra_repos = rlvars['iso_map']['lorax']['extra_repos'] if 'extra_repos' in rlvars['iso_map']['lorax'].keys() else [] + + self.rocky_staging = config['rocky_staging'] self.container = config['container'] if 'container' in rlvars and len(rlvars['container']) > 0: @@ -201,27 +204,42 @@ class IsoBuild: """ repolist = [] for name in self.repos: - if not self.compose_dir_is_here: - constructed_url = '{}/{}/repo/hashed-{}/{}'.format( - self.repo_base_url, - self.project_id, - name, - self.current_arch - ) - else: - constructed_url = 'file://{}/{}/{}/os'.format( - self.compose_latest_sync, - name, - self.current_arch - ) + if int(self.major_version) > 8: + if not self.compose_dir_is_here: + constructed_url = '{}/{}/repo/hashed-{}/{}'.format( + self.repo_base_url, + self.project_id, + name, + self.current_arch + ) + else: + constructed_url = 'file://{}/{}/{}/os'.format( + self.compose_latest_sync, + name, + self.current_arch + ) - repodata = { - 'name': name, - 'url': constructed_url - } + repodata = { + 'name': name, + 'url': constructed_url + } - repolist.append(repodata) + repolist.append(repodata) + else: + constructed_url = f"{self.rocky_staging}/{self.major_version}/{name}/{self.current_arch}/os/" + repodata = { + 'name': name, + 'url': constructed_url + } + + repolist.append(repodata) + + for idx in range(0,len(self.extra_repos)): + repolist.append({ + "name": f"extra_{idx}", + "url": f"{self.extra_repos[idx]}" + }) return repolist