diff --git a/iso/empanadas/Containerfile.imagefactory b/iso/empanadas/Containerfile.imagefactory index d6b4aca..98b14b7 100644 --- a/iso/empanadas/Containerfile.imagefactory +++ b/iso/empanadas/Containerfile.imagefactory @@ -57,7 +57,7 @@ RUN rm -rf /etc/yum.repos.d/*.repo /get_arch RUN pip install awscli -ARG BRANCH r9 +ARG BRANCH=r9 RUN git clone https://git.resf.org/sig_core/kickstarts.git --branch $BRANCH /kickstarts RUN pip install 'git+https://git.resf.org/sig_core/toolkit.git@devel#egg=empanadas&subdirectory=iso/empanadas' diff --git a/iso/empanadas/empanadas/__init__.py b/iso/empanadas/empanadas/__init__.py index 7fd229a..abeeedb 100644 --- a/iso/empanadas/empanadas/__init__.py +++ b/iso/empanadas/empanadas/__init__.py @@ -1 +1 @@ -__version__ = '0.2.0' +__version__ = '0.4.0' diff --git a/iso/empanadas/empanadas/configs/el8-beta.yaml b/iso/empanadas/empanadas/configs/el8-beta.yaml new file mode 100644 index 0000000..972bd57 --- /dev/null +++ b/iso/empanadas/empanadas/configs/el8-beta.yaml @@ -0,0 +1,137 @@ +--- +'8': + fullname: 'Rocky Linux 8' + revision: '8.7' + rclvl: 'RC1' + major: '8' + minor: '7' + profile: '8' + bugurl: 'https://bugs.rockylinux.org' + checksum: 'sha256' + fedora_major: '20' + allowed_arches: + - x86_64 + - aarch64 + provide_multilib: False + project_id: '26694529-26cd-44bd-bc59-1c1195364322' + repo_symlinks: + devel: 'Devel' + NFV: 'nfv' + renames: + all: 'devel' + all_repos: + - 'BaseOS' + - 'AppStream' + - 'PowerTools' + - 'HighAvailability' + - 'ResilientStorage' + - 'RT' + - 'NFV' + - 'extras' + - 'devel' + - 'plus' + structure: + packages: 'os/Packages' + repodata: 'os/repodata' + iso_map: + xorrisofs: False + iso_level: False + images: + dvd: + disc: True + variant: 'AppStream' + repos: + - 'BaseOS' + - 'AppStream' + minimal: + disc: True + isoskip: True + repos: + - 'minimal' + - 'BaseOS' + variant: 'minimal' + BaseOS: + disc: False + isoskip: True + variant: 'BaseOS' + repos: + - 'BaseOS' + - 'AppStream' + lorax: + repos: + - 'BaseOS' + - 'AppStream' + variant: 'BaseOS' + lorax_removes: + - 'libreport-rhel-anaconda-bugzilla' + required_pkgs: + - 'lorax' + - 'genisoimage' + - 'isomd5sum' + - 'lorax-templates-rhel' + - 'lorax-templates-generic' + - 'xorriso' + cloudimages: + images: + EC2: + format: raw + GenericCloud: + format: qcow2 + livemap: + git_repo: 'https://git.resf.org/sig_core/kickstarts.git' + branch: 'r8' + ksentry: + Workstation: rocky-live-workstation.ks + Workstation-Lite: rocky-live-workstation-lite.ks + XFCE: rocky-live-xfce.ks + KDE: rocky-live-kde.ks + allowed_arches: + - x86_64 + required_pkgs: + - 'lorax-lmc-novirt' + - 'vim-minimal' + - 'pykickstart' + - 'git' + variantmap: + git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git' + branch: 'r8-beta' + git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8-beta/' + repoclosure_map: + arches: + x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' + aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch' + ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch' + s390x: '--forcearch=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 1ece4b1..bf40ccb 100644 --- a/iso/empanadas/empanadas/configs/el8.yaml +++ b/iso/empanadas/empanadas/configs/el8.yaml @@ -1,21 +1,24 @@ --- '8': fullname: 'Rocky Linux 8' - revision: '8.6' - rclvl: 'RC2' + revision: '8.7' + rclvl: 'RC1' major: '8' - minor: '6' + minor: '7' profile: '8' bugurl: 'https://bugs.rockylinux.org' + checksum: 'sha256' + fedora_major: '20' allowed_arches: - x86_64 - aarch64 provide_multilib: False - project_id: '' + project_id: 'e9cfc87c-d2d2-42d5-a121-852101f1a966' repo_symlinks: devel: 'Devel' NFV: 'nfv' - renames: {} + renames: + all: 'devel' all_repos: - 'BaseOS' - 'AppStream' @@ -27,23 +30,6 @@ - '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' @@ -93,7 +79,7 @@ format: qcow2 livemap: git_repo: 'https://git.resf.org/sig_core/kickstarts.git' - branch: 'r9' + branch: 'r8' ksentry: Workstation: rocky-live-workstation.ks Workstation-Lite: rocky-live-workstation-lite.ks diff --git a/iso/empanadas/empanadas/configs/el8lh.yaml b/iso/empanadas/empanadas/configs/el8lh.yaml new file mode 100644 index 0000000..0cace3d --- /dev/null +++ b/iso/empanadas/empanadas/configs/el8lh.yaml @@ -0,0 +1,137 @@ +--- +'8': + fullname: 'Rocky Linux 8' + revision: '8.8' + rclvl: 'RC1' + major: '8' + minor: '8' + profile: '8' + bugurl: 'https://bugs.rockylinux.org' + checksum: 'sha256' + fedora_major: '20' + allowed_arches: + - x86_64 + - aarch64 + provide_multilib: False + project_id: '3b0e9ec7-0679-4176-b253-8528eb3255eb' + repo_symlinks: + devel: 'Devel' + NFV: 'nfv' + renames: + all: 'devel' + all_repos: + - 'BaseOS' + - 'AppStream' + - 'PowerTools' + - 'HighAvailability' + - 'ResilientStorage' + - 'RT' + - 'NFV' + - 'extras' + - 'devel' + - 'plus' + structure: + packages: 'os/Packages' + repodata: 'os/repodata' + iso_map: + xorrisofs: False + iso_level: False + images: + dvd: + disc: True + variant: 'AppStream' + repos: + - 'BaseOS' + - 'AppStream' + minimal: + disc: True + isoskip: True + repos: + - 'minimal' + - 'BaseOS' + variant: 'minimal' + BaseOS: + disc: False + isoskip: True + variant: 'BaseOS' + repos: + - 'BaseOS' + - 'AppStream' + lorax: + repos: + - 'BaseOS' + - 'AppStream' + variant: 'BaseOS' + lorax_removes: + - 'libreport-rhel-anaconda-bugzilla' + required_pkgs: + - 'lorax' + - 'genisoimage' + - 'isomd5sum' + - 'lorax-templates-rhel' + - 'lorax-templates-generic' + - 'xorriso' + cloudimages: + images: + EC2: + format: raw + GenericCloud: + format: qcow2 + livemap: + git_repo: 'https://git.resf.org/sig_core/kickstarts.git' + branch: 'r8' + ksentry: + Workstation: rocky-live-workstation.ks + Workstation-Lite: rocky-live-workstation-lite.ks + XFCE: rocky-live-xfce.ks + KDE: rocky-live-kde.ks + allowed_arches: + - x86_64 + required_pkgs: + - 'lorax-lmc-novirt' + - 'vim-minimal' + - 'pykickstart' + - 'git' + variantmap: + git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git' + branch: 'r8s' + git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8s/' + repoclosure_map: + arches: + x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch' + aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch' + ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch' + s390x: '--forcearch=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/el9-beta.yaml b/iso/empanadas/empanadas/configs/el9-beta.yaml index 39719e1..2fe24a4 100644 --- a/iso/empanadas/empanadas/configs/el9-beta.yaml +++ b/iso/empanadas/empanadas/configs/el9-beta.yaml @@ -8,13 +8,14 @@ profile: '9-beta' bugurl: 'https://bugs.rockylinux.org' checksum: 'sha256' + fedora_major: '20' allowed_arches: - x86_64 - aarch64 - ppc64le - s390x provide_multilib: True - project_id: '' + project_id: '0048077b-1573-4cb7-8ba7-cce823857ba5' repo_symlinks: NFV: 'nfv' renames: @@ -87,8 +88,10 @@ Workstation-Lite: rocky-live-workstation-lite.ks XFCE: rocky-live-xfce.ks KDE: rocky-live-kde.ks + MATE: rocky-live-mate.ks allowed_arches: - x86_64 + - aarch64 required_pkgs: - 'lorax-lmc-novirt' - 'vim-minimal' diff --git a/iso/empanadas/empanadas/configs/el9.yaml b/iso/empanadas/empanadas/configs/el9.yaml index f67f28c..d586ff8 100644 --- a/iso/empanadas/empanadas/configs/el9.yaml +++ b/iso/empanadas/empanadas/configs/el9.yaml @@ -8,6 +8,7 @@ profile: '9' bugurl: 'https://bugs.rockylinux.org' checksum: 'sha256' + fedora_major: '20' allowed_arches: - x86_64 - aarch64 @@ -88,8 +89,10 @@ Workstation-Lite: rocky-live-workstation-lite.ks XFCE: rocky-live-xfce.ks KDE: rocky-live-kde.ks + MATE: rocky-live-mate.ks allowed_arches: - x86_64 + - aarch64 required_pkgs: - 'lorax-lmc-novirt' - 'vim-minimal' diff --git a/iso/empanadas/empanadas/configs/el9alt.yaml b/iso/empanadas/empanadas/configs/el9alt.yaml new file mode 100644 index 0000000..680b1df --- /dev/null +++ b/iso/empanadas/empanadas/configs/el9alt.yaml @@ -0,0 +1,58 @@ +# This is specifically for secondary/tertiary architectures +--- +'9altarch': + fullname: 'Rocky Linux 9.0' + revision: '9.0' + rclvl: 'RC2' + major: '9' + minor: '0' + profile: '9' + bugurl: 'https://bugs.rockylinux.org' + checksum: 'sha256' + fedora_major: '20' + allowed_arches: + - armv7hl + - riscv64 + provide_multilib: False + project_id: '' + renames: + all: 'devel' + all_repos: + - 'all' + - 'BaseOS' + - 'AppStream' + - 'CRB' + - 'extras' + - 'plus' + structure: + packages: 'os/Packages' + repodata: 'os/repodata' + iso_map: {} + livemap: {} + repoclosure_map: + arches: + armv7hl: '--forcearch=armv7hl --arch=noarch' + riscv64: '--forcearch=riscv64 --arch=noarch' + repos: + devel: [] + BaseOS: [] + AppStream: + - BaseOS + CRB: + - 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/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-9' + testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing' + list: + - 'SOURCES/Contributors' + - 'SOURCES/COMMUNITY-CHARTER' + - 'SOURCES/EULA' + - 'SOURCES/LICENSE' + - 'SOURCES/RPM-GPG-KEY-Rocky-9' + - 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing' +... diff --git a/iso/empanadas/empanadas/configs/el9lh.yaml b/iso/empanadas/empanadas/configs/el9lh.yaml index e817298..953b5ac 100644 --- a/iso/empanadas/empanadas/configs/el9lh.yaml +++ b/iso/empanadas/empanadas/configs/el9lh.yaml @@ -1,20 +1,21 @@ --- '9-lookahead': - fullname: 'Rocky Linux 9.1' - revision: '9.1' + fullname: 'Rocky Linux 9.2' + revision: '9.2' rclvl: 'LH1' major: '9' - minor: '1' + minor: '2' profile: '9-lookahead' bugurl: 'https://bugs.rockylinux.org' checksum: 'sha256' + fedora_major: '20' allowed_arches: - x86_64 - aarch64 - ppc64le - s390x provide_multilib: True - project_id: '' + project_id: '6794b5a8-290b-4d0d-ad5a-47164329cbb0' repo_symlinks: NFV: 'nfv' renames: @@ -87,8 +88,10 @@ Workstation-Lite: rocky-live-workstation-lite.ks XFCE: rocky-live-xfce.ks KDE: rocky-live-kde.ks + MATE: rocky-live-mate.ks allowed_arches: - x86_64 + - aarch64 required_pkgs: - 'lorax-lmc-novirt' - 'vim-minimal' diff --git a/iso/empanadas/empanadas/configs/rln.yaml b/iso/empanadas/empanadas/configs/rln.yaml index 3df3104..8f5feed 100644 --- a/iso/empanadas/empanadas/configs/rln.yaml +++ b/iso/empanadas/empanadas/configs/rln.yaml @@ -88,6 +88,7 @@ KDE: rocky-live-kde.ks allowed_arches: - x86_64 + - aarch64 required_pkgs: - 'lorax-lmc-novirt' - 'vim-minimal' diff --git a/iso/empanadas/empanadas/scripts/build_image.py b/iso/empanadas/empanadas/scripts/build_image.py index 5085253..8d8408f 100644 --- a/iso/empanadas/empanadas/scripts/build_image.py +++ b/iso/empanadas/empanadas/scripts/build_image.py @@ -388,7 +388,7 @@ class ImageBuild: except Exception as e: log.exception(e) finally: - f.flush() + f.flush() def run(): try: diff --git a/iso/empanadas/empanadas/scripts/build_iso_extra.py b/iso/empanadas/empanadas/scripts/build_iso_extra.py index b645747..90b2681 100755 --- a/iso/empanadas/empanadas/scripts/build_iso_extra.py +++ b/iso/empanadas/empanadas/scripts/build_iso_extra.py @@ -17,6 +17,8 @@ parser.add_argument('--logger', type=str) parser.add_argument('--extra-iso', type=str, help="Granular choice in which iso is built") parser.add_argument('--extra-iso-mode', type=str, default='local') parser.add_argument('--hashed', action='store_true') +parser.add_argument('--updated-image', action='store_true') +parser.add_argument('--image-increment',type=str, default='0') results = parser.parse_args() rlvars = rldict[results.release] major = rlvars['major'] @@ -32,7 +34,9 @@ a = IsoBuild( extra_iso_mode=results.extra_iso_mode, compose_dir_is_here=results.local_compose, hashed=results.hashed, - logger=results.logger + logger=results.logger, + updated_image=results.updated_image, + image_increment=results.image_increment ) def run(): diff --git a/iso/empanadas/empanadas/scripts/generate_compose.py b/iso/empanadas/empanadas/scripts/generate_compose.py index 19b85a1..f388a7e 100755 --- a/iso/empanadas/empanadas/scripts/generate_compose.py +++ b/iso/empanadas/empanadas/scripts/generate_compose.py @@ -14,7 +14,8 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose") # All of our options parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True) -parser.add_argument('--symlink', action='store_true', help="symlink") +parser.add_argument('--sig', type=str, help="SIG Name if applicable") +parser.add_argument('--symlink', action='store_true', help="symlink to latest") parser.add_argument('--logger', type=str) # Parse them @@ -48,6 +49,9 @@ def run(): profile = rlvars['profile'] logger = log + if results.sig is not None: + shortname = 'SIG-' + results.sig + generated_dir = Shared.generate_compose_dirs( compose_base, shortname, diff --git a/iso/empanadas/empanadas/scripts/peridot_repoclosure.py b/iso/empanadas/empanadas/scripts/peridot_repoclosure.py new file mode 100644 index 0000000..b19757f --- /dev/null +++ b/iso/empanadas/empanadas/scripts/peridot_repoclosure.py @@ -0,0 +1,38 @@ +# This is for doing repoclosures upstream + +import argparse + +from empanadas.common import * +from empanadas.util import Checks +from empanadas.util import RepoSync + +# Start up the parser baby +parser = argparse.ArgumentParser(description="Peridot Upstream Repoclosure") + +# All of our options +parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True) +parser.add_argument('--simple', action='store_false') +parser.add_argument('--enable-repo-gpg-check', action='store_true') +parser.add_argument('--hashed', action='store_true') +parser.add_argument('--logger', type=str) + +# Parse them +results = parser.parse_args() +rlvars = rldict[results.release] +major = rlvars['major'] + +r = Checks(rlvars, config['arch']) +r.check_valid_arch() + +a = RepoSync( + rlvars, + config, + major=major, + hashed=results.hashed, + parallel=results.simple, + repo_gpg_check=results.enable_repo_gpg_check, + logger=results.logger, +) + +def run(): + a.run_upstream_repoclosure() diff --git a/iso/empanadas/empanadas/scripts/pull_cloud_image.py b/iso/empanadas/empanadas/scripts/pull_cloud_image.py index 4e175de..84e8718 100755 --- a/iso/empanadas/empanadas/scripts/pull_cloud_image.py +++ b/iso/empanadas/empanadas/scripts/pull_cloud_image.py @@ -9,7 +9,7 @@ from empanadas.util import IsoBuild parser = argparse.ArgumentParser(description="ISO Artifact Builder") parser.add_argument('--release', type=str, help="Major Release Version", required=True) -parser.add_argument('--s3', action='store_true', help="Release Candidate") +parser.add_argument('--s3', action='store_true', help="S3") parser.add_argument('--arch', type=str, help="Architecture") parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here") parser.add_argument('--force-download', action='store_true', help="Force a download") diff --git a/iso/empanadas/empanadas/scripts/pull_unpack_tree.py b/iso/empanadas/empanadas/scripts/pull_unpack_tree.py index 77f8100..54d3cef 100755 --- a/iso/empanadas/empanadas/scripts/pull_unpack_tree.py +++ b/iso/empanadas/empanadas/scripts/pull_unpack_tree.py @@ -9,7 +9,7 @@ from empanadas.util import IsoBuild parser = argparse.ArgumentParser(description="ISO Artifact Builder") parser.add_argument('--release', type=str, help="Major Release Version", required=True) -parser.add_argument('--s3', action='store_true', help="Release Candidate") +parser.add_argument('--s3', action='store_true', help="S3") parser.add_argument('--rc', action='store_true', help="Release Candidate") parser.add_argument('--arch', type=str, help="Architecture") parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here") diff --git a/iso/empanadas/empanadas/scripts/sync_from_peridot.py b/iso/empanadas/empanadas/scripts/sync_from_peridot.py index d025f65..2110fac 100755 --- a/iso/empanadas/empanadas/scripts/sync_from_peridot.py +++ b/iso/empanadas/empanadas/scripts/sync_from_peridot.py @@ -26,6 +26,9 @@ parser.add_argument('--refresh-treeinfo', action='store_true') # I am aware this is confusing, I want podman to be the default option parser.add_argument('--simple', action='store_false') parser.add_argument('--logger', type=str) +parser.add_argument('--disable-gpg-check', action='store_false') +parser.add_argument('--disable-repo-gpg-check', action='store_false') +parser.add_argument('--clean-old-packages', action='store_true') # Parse them results = parser.parse_args() @@ -54,6 +57,9 @@ a = RepoSync( logger=results.logger, refresh_extra_files=results.refresh_extra_files, refresh_treeinfo=results.refresh_treeinfo, + gpg_check=results.disable_gpg_check, + repo_gpg_check=results.disable_repo_gpg_check, + reposync_clean_old=results.clean_old_packages, ) def run(): diff --git a/iso/empanadas/empanadas/scripts/sync_sig.py b/iso/empanadas/empanadas/scripts/sync_sig.py index 3de8479..1cfb70f 100755 --- a/iso/empanadas/empanadas/scripts/sync_sig.py +++ b/iso/empanadas/empanadas/scripts/sync_sig.py @@ -15,7 +15,7 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose") # All of our options parser.add_argument('--release', type=str, help="Major Release Version", required=True) parser.add_argument('--repo', type=str, help="Repository name") -parser.add_argument('--sig', type=str, help="SIG name") +parser.add_argument('--sig', type=str, help="SIG name", required=True) parser.add_argument('--arch', type=str, help="Architecture") parser.add_argument('--ignore-debug', action='store_true') parser.add_argument('--ignore-source', action='store_true') @@ -25,9 +25,13 @@ parser.add_argument('--hashed', action='store_true') parser.add_argument('--dry-run', action='store_true') parser.add_argument('--full-run', action='store_true') parser.add_argument('--no-fail', action='store_true') +parser.add_argument('--refresh-extra-files', action='store_true') # I am aware this is confusing, I want podman to be the default option parser.add_argument('--simple', action='store_false') parser.add_argument('--logger', type=str) +parser.add_argument('--disable-gpg-check', action='store_false') +parser.add_argument('--disable-repo-gpg-check', action='store_false') +parser.add_argument('--clean-old-packages', action='store_true') # Parse them results = parser.parse_args() @@ -46,6 +50,7 @@ a = SigRepoSync( repo=results.repo, arch=results.arch, ignore_source=results.ignore_source, + ignore_debug=results.ignore_debug, repoclosure=results.repoclosure, skip_all=results.skip_all, hashed=results.hashed, @@ -53,7 +58,11 @@ a = SigRepoSync( dryrun=results.dry_run, fullrun=results.full_run, nofail=results.no_fail, - logger=results.logger + refresh_extra_files=results.refresh_extra_files, + logger=results.logger, + gpg_check=results.disable_gpg_check, + repo_gpg_check=results.disable_repo_gpg_check, + reposync_clean_old=results.clean_old_packages, ) diff --git a/iso/empanadas/empanadas/sig/altarch.yaml b/iso/empanadas/empanadas/sig/altarch.yaml index 50c425a..f3895f7 100644 --- a/iso/empanadas/empanadas/sig/altarch.yaml +++ b/iso/empanadas/empanadas/sig/altarch.yaml @@ -1,17 +1,43 @@ --- altarch: '8': - rockyrpi: - allowed_arches: - - aarch64 - project_id: '' - additional_dirs: - - 'images' + profile: 'altarch' + project_id: 'a1aac235-dd66-4d5b-8ff0-87467732f322' + repo: + altarch-common: + allowed_arches: + - aarch64 + altarch-rockyrpi: + allowed_arches: + - aarch64 + additional_dirs: + - 'images' + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r8/' + branch: 'r8' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' '9': - rockyrpi: - allowed_arches: - - aarch64 - project_id: '' - additional_dirs: - - 'images' + profile: 'altarch' + project_id: '6047887d-a395-4bc7-a0bd-fc1873b5d13d' + repo: + altarch-common: + allowed_arches: + - aarch64 + altarch-rockyrpi: + allowed_arches: + - aarch64 + additional_dirs: + - 'images' + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-altarch.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-altarch/-/raw/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-AltArch' ... diff --git a/iso/empanadas/empanadas/sig/cloud.yaml b/iso/empanadas/empanadas/sig/cloud.yaml index e0ad17a..1534591 100644 --- a/iso/empanadas/empanadas/sig/cloud.yaml +++ b/iso/empanadas/empanadas/sig/cloud.yaml @@ -2,16 +2,17 @@ cloud: '8': profile: 'cloud' - cloud-kernel: - project_id: 'f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c' - allowed_arches: - - aarch64 - - x86_64 - cloud-common: - allowed_arches: - - aarch64 - - x86_64 - project_id: 'f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c' + project_id: 'f91da90d-5bdb-4cf2-80ea-e07f8dae5a5c' + addtional_dirs: [] + repo: + cloud-kernel: + allowed_arches: + - aarch64 + - x86_64 + cloud-common: + allowed_arches: + - aarch64 + - x86_64 extra_files: git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git' git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r8/' @@ -21,18 +22,28 @@ cloud: list: - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud' '9': - cloud-kernel: - project_id: '' - allowed_arches: - - aarch64 - - x86_64 - - ppc64le - - s390x - cloud-common: - project_id: '' - allowed_arches: - - aarch64 - - x86_64 - - ppc64le - - s390x + profile: 'cloud' + project_id: '15016370-1410-4459-a1a2-a1576041fd19' + addtional_dirs: [] + repo: + cloud-kernel: + allowed_arches: + - aarch64 + - x86_64 + - ppc64le + - s390x + cloud-common: + allowed_arches: + - aarch64 + - x86_64 + - ppc64le + - s390x + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-cloud.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-cloud/-/raw/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Cloud' ... diff --git a/iso/empanadas/empanadas/sig/core.yaml b/iso/empanadas/empanadas/sig/core.yaml index b8a97fd..1a3573e 100644 --- a/iso/empanadas/empanadas/sig/core.yaml +++ b/iso/empanadas/empanadas/sig/core.yaml @@ -1,13 +1,49 @@ --- core: '8': - core-common: - project_id: '' - core-infra: - project_id: '' + profile: 'core' + project_id: '' + addtional_dirs: [] + repo: + core-common: + allowed_arches: + - x86_64 + - aarch64 + core-infra: + allowed_arches: + - x86_64 + - aarch64 + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r8/' + branch: 'r8' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' '9': - core-common: - project_id: '' - core-infra: - project_id: '' + profile: 'core' + project_id: '' + addtional_dirs: [] + repo: + core-common: + allowed_arches: + - x86_64 + - aarch64 + - ppc64le + - s390x + core-infra: + allowed_arches: + - x86_64 + - aarch64 + - ppc64le + - s390x + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-core.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-core/-/raw/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core' ... diff --git a/iso/empanadas/empanadas/sig/desktop.yaml b/iso/empanadas/empanadas/sig/desktop.yaml new file mode 100644 index 0000000..8af70d6 --- /dev/null +++ b/iso/empanadas/empanadas/sig/desktop.yaml @@ -0,0 +1,37 @@ +--- +desktop: + '8': + profile: 'desktop' + project_id: '8b3c9b53-0633-47bd-98a3-1ca3ec141278' + addtional_dirs: [] + repo: + desktop-common: + allowed_arches: + - x86_64 + - aarch64 + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r8/' + branch: 'r8' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' + '9': + profile: 'desktop' + project_id: 'b0460c25-22cf-496c-a3a3-067b9a2af14a' + addtional_dirs: [] + repo: + desktop-common: + allowed_arches: + - x86_64 + - aarch64 + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-desktop.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-desktop/-/raw/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Desktop' +... diff --git a/iso/empanadas/empanadas/sig/virt.yaml b/iso/empanadas/empanadas/sig/virt.yaml new file mode 100644 index 0000000..083ded4 --- /dev/null +++ b/iso/empanadas/empanadas/sig/virt.yaml @@ -0,0 +1,38 @@ +--- +virt: + '8': + profile: 'virt' + project_id: 'd911867a-658e-4f41-8343-5ceac6c41f67' + addtional_dirs: [] + repo: + virt-common: + allowed_arches: + - x86_64 + - aarch64 + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r8/' + branch: 'r8' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' + '9': + profile: 'virt' + project_id: '925ceece-47ce-4f51-90f7-ff8689e4fe5e' + addtional_dirs: [] + repo: + virt-common: + allowed_arches: + - x86_64 + - aarch64 + - ppc64le + extra_files: + git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-virt.git' + git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-virt/-/raw/r9/' + branch: 'r9' + gpg: + stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' + list: + - 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Virt' +... diff --git a/iso/empanadas/empanadas/templates/ISOREADME.tmpl b/iso/empanadas/empanadas/templates/ISOREADME.tmpl new file mode 100644 index 0000000..19ad140 --- /dev/null +++ b/iso/empanadas/empanadas/templates/ISOREADME.tmpl @@ -0,0 +1,41 @@ +This directory contains ISO's for the {{ arch }} architecture. You will see +multiple types of ISO's, including accompanying manifests and CHECKSUM files +that match the given ISO. You will see the following formats: + +* Rocky-X.Y-ARCH-TYPE (ISO File) +* Rocky-X.Y-DATE-ARCH-TYPE (ISO File) +* Rocky-ARCH-TYPE (Symlink) + +X will be the major release. +Y will be the minor release. +ARCH is the given architecture. +DATE will be the date the ISO was built (if applicable) +TYPE will be the type of ISO (boot, dvd, minimal) + +The first format is the most common and is the day-of-release ISO. + +The second format is in the case of rebuilt ISO's, in the case of addressing +a bug or providing an updated image (eg for a newer kernel, a newer secure +boot shim, and so on). + +The third format in the list is a symlink to the "latest" ISO. Currently, this +is not advertised on the main site, but there may be potential for this in +the future as a value add. + +This is "unversioned" ISO symlink is for these cases: + +* A pre-determined download location for users/mirrors/service providers who + want an always available and deterministic download location, which can be + easier to script + +* osinfo database / libvirt use where if a user selects Rocky Linux X, it + should be aware of and be able to download from that location. This should + be fully supported in Rocky Linux 8.7 and 9.1, and future Fedora versions. + +If you have any questions, please reach out to us: + +* https://chat.rockylinux.org ~Development, ~Infrastructure, ~General +* https://forums.rockylinux.org +* https://lists.resf.org/mailman3/lists/rocky.lists.resf.org/ - Rocky General Mail List +* https://lists.resf.org/mailman3/lists/rocky-mirror.lists.resf.org/ - Mirror Mail List + diff --git a/iso/empanadas/empanadas/templates/README.tmpl b/iso/empanadas/empanadas/templates/README.tmpl index ea4ec00..1c9f866 100644 --- a/iso/empanadas/empanadas/templates/README.tmpl +++ b/iso/empanadas/empanadas/templates/README.tmpl @@ -11,6 +11,15 @@ metadata provides. # Notes # +## Unversioned ISO Files ## + +There are unversioned ISO files in the isos and live directories per +architecture. This is to allow libvirt users an easy way to download an ISO for +a given release of their choosing easily. It also allows users as a whole to +always have a pre-determined path to download the latest ISO of a given release +by just relying on it being in the URL itself rather than in the ISO name. Note +that these unversioned ISO files may or may not advertised on the main site. + ## Checksums ## CHECKSUM Validation: https://github.com/rocky-linux/checksums diff --git a/iso/empanadas/empanadas/templates/buildExtraImage.tmpl.sh b/iso/empanadas/empanadas/templates/buildExtraImage.tmpl.sh index fbac286..cbb6c5f 100644 --- a/iso/empanadas/empanadas/templates/buildExtraImage.tmpl.sh +++ b/iso/empanadas/empanadas/templates/buildExtraImage.tmpl.sh @@ -23,3 +23,9 @@ fi {{ make_manifest }} +{% if extra_iso_mode == "podman" %} +# symlink to unversioned image name +ln -sf {{ isoname }} {{ generic_isoname }} +ln -sf {{ isoname }}.manifest {{ generic_isoname }}.manifest + +{% endif %} diff --git a/iso/empanadas/empanadas/templates/buildImage.tmpl.sh b/iso/empanadas/empanadas/templates/buildImage.tmpl.sh index 817d73b..3a8d983 100644 --- a/iso/empanadas/empanadas/templates/buildImage.tmpl.sh +++ b/iso/empanadas/empanadas/templates/buildImage.tmpl.sh @@ -53,6 +53,8 @@ elif [ -f "/usr/bin/isoinfo" ]; then grep -v '/TRANS.TBL$' | sort >> lorax/images/boot.iso.manifest fi +find lorax -perm 700 -exec chmod 755 {} \; + tar czf "${LORAX_TAR}" lorax "${LOGFILE}" tar_ret_val=$? diff --git a/iso/empanadas/empanadas/templates/buildLiveImage.tmpl.sh b/iso/empanadas/empanadas/templates/buildLiveImage.tmpl.sh index 841987a..a2bd4d0 100644 --- a/iso/empanadas/empanadas/templates/buildLiveImage.tmpl.sh +++ b/iso/empanadas/empanadas/templates/buildLiveImage.tmpl.sh @@ -18,9 +18,9 @@ cd /builddir {{ git_clone }} if [ -d "/builddir/ks/live/{{ major }}/peridot" ]; then - pushd /builddir/ks/live/{{ major }}/peridot || { echo "Could not change directory"; exit 1; } + pushd /builddir/ks/live/{{ major }}/{{ arch }}/peridot || { echo "Could not change directory"; exit 1; } else - pushd /builddir/ks/live/{{ major }}/staging || { echo "Could not change directory"; exit 1; } + pushd /builddir/ks/live/{{ major }}/{{ arch }}/stage || { echo "Could not change directory"; exit 1; } fi ksflatten -c {{ ks_file }} -o /builddir/ks.cfg if [ $? -ne 0 ]; then diff --git a/iso/empanadas/empanadas/templates/icicle/tdl-new.xml.tmpl b/iso/empanadas/empanadas/templates/icicle/tdl-new.xml.tmpl new file mode 100644 index 0000000..1297d90 --- /dev/null +++ b/iso/empanadas/empanadas/templates/icicle/tdl-new.xml.tmpl @@ -0,0 +1,21 @@ + + + diff --git a/iso/empanadas/empanadas/templates/icicle/tdl.xml.tmpl b/iso/empanadas/empanadas/templates/icicle/tdl.xml.tmpl index 5ba9c6d..93016ea 100644 --- a/iso/empanadas/empanadas/templates/icicle/tdl.xml.tmpl +++ b/iso/empanadas/empanadas/templates/icicle/tdl.xml.tmpl @@ -10,7 +10,6 @@ rpm -qa --qf '%{NAME},%{VERSION},%{RELEASE},%{ARCH},%{EPOCH},%{SIZE},%{SIGMD5},%{BUILDTIME}\n' - console=tty0 inst.usefbx Rocky-{{major}}-{{type}}-{{version_variant}}.{{iso8601date}}.{{release}}.{{architecture}} Generated on {{utcnow}} diff --git a/iso/empanadas/empanadas/templates/repoconfig.tmpl b/iso/empanadas/empanadas/templates/repoconfig.tmpl index d322929..248ee48 100644 --- a/iso/empanadas/empanadas/templates/repoconfig.tmpl +++ b/iso/empanadas/empanadas/templates/repoconfig.tmpl @@ -3,24 +3,24 @@ name={{repo.name}} baseurl={{ repo.baseurl }} enabled=1 -gpgcheck=1 -repo_gpgcheck=1 +gpgcheck={{ gpg_check }} +repo_gpgcheck={{ repo_gpg_check }} gpgkey={{ repo.gpgkey }} [{{ repo.name }}-debug] name={{repo.name}} baseurl={{ repo.baseurl }}-debug enabled=1 -gpgcheck=1 -repo_gpgcheck=1 +gpgcheck={{ gpg_check }} +repo_gpgcheck={{ repo_gpg_check }} gpgkey={{ repo.gpgkey }} [{{ repo.name }}-source] name={{repo.name}} baseurl={{ repo.srcbaseurl }} enabled=1 -gpgcheck=1 -repo_gpgcheck=1 +gpgcheck={{ gpg_check }} +repo_gpgcheck={{ repo_gpg_check }} gpgkey={{ repo.gpgkey }} {% endfor %} diff --git a/iso/empanadas/empanadas/templates/reposync-src.tmpl b/iso/empanadas/empanadas/templates/reposync-src.tmpl index 3758643..59779f0 100644 --- a/iso/empanadas/empanadas/templates/reposync-src.tmpl +++ b/iso/empanadas/empanadas/templates/reposync-src.tmpl @@ -3,6 +3,7 @@ set -o pipefail {{ import_gpg_cmd }} | tee -a {{ sync_log }} {{ dnf_plugin_cmd }} | tee -a {{ sync_log }} sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/*.repo +{{ metadata_cmd }} | tee -a {{ sync_log }} {{ sync_cmd }} | tee -a {{ sync_log }} # Yes this is a bit hacky. Can't think of a better way to do this. @@ -18,8 +19,13 @@ if [ "$ret_val" -eq 0 ]; then echo "SOME PACKAGES DID NOT DOWNLOAD" | tee -a {{ sync_log }} exit 1 else +{% if deploy_extra_files %} + pushd {{ download_path }} + curl -RO {{ gpg_key_url }} + popd +{% endif %} exit 0 fi fi -# {{ check_cmd }} | tee -a {{ sync_log }} +# {{ check_cmd }} | tee -a {{ sync_log }} diff --git a/iso/empanadas/empanadas/templates/reposync.tmpl b/iso/empanadas/empanadas/templates/reposync.tmpl index 0709b6f..c0092db 100644 --- a/iso/empanadas/empanadas/templates/reposync.tmpl +++ b/iso/empanadas/empanadas/templates/reposync.tmpl @@ -4,6 +4,7 @@ set -o pipefail {{ arch_force_cp }} | tee -a {{ sync_log }} {{ dnf_plugin_cmd }} | tee -a {{ sync_log }} sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/*.repo +{{ metadata_cmd }} | tee -a {{ sync_log }} {{ sync_cmd }} | tee -a {{ sync_log }} # Yes this is a bit hacky. Can't think of a better way to do this. @@ -25,6 +26,11 @@ if [ "$ret_val" -eq 0 ]; then # echo "Repository is empty." | tee -a {{ sync_log }} # rm -rf {{ download_path }} #fi +{%- if deploy_extra_files %} + pushd {{ download_path }} + curl -RO {{ gpg_key_url }} + popd +{% endif %} exit 0 fi fi diff --git a/iso/empanadas/empanadas/templates/xorriso.tmpl.txt b/iso/empanadas/empanadas/templates/xorriso.tmpl.txt index 133aa11..934066b 100644 --- a/iso/empanadas/empanadas/templates/xorriso.tmpl.txt +++ b/iso/empanadas/empanadas/templates/xorriso.tmpl.txt @@ -1,6 +1,10 @@ -indev {{ boot_iso }} -outdev {{ isoname }} -boot_image any replay +-joliet on +-system_id {{ 'PPC' if arch == 'ppc64le' else 'LINUX' }} +-compliance joliet_long_names +{{ '-compliance untranslated_names' if arch == 'ppc64le' }} -volid {{ volid }} {{ graft }} -end diff --git a/iso/empanadas/empanadas/util/dnf_utils.backup b/iso/empanadas/empanadas/util/dnf_utils.backup new file mode 100644 index 0000000..3d66aae --- /dev/null +++ b/iso/empanadas/empanadas/util/dnf_utils.backup @@ -0,0 +1,1663 @@ +""" +Syncs yum repos for mirroring and composing. + +Louis Abel