From db2938421974a5d53b5f82104eaedbf2f8b2f1c8 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:04:21 -0500 Subject: [PATCH 01/22] ci: inspect artifact repositories --- .github/workflows/bootstrap-package-2.yml | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/bootstrap-package-2.yml diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml new file mode 100644 index 0000000..f347d1c --- /dev/null +++ b/.github/workflows/bootstrap-package-2.yml @@ -0,0 +1,54 @@ +name: Bootstrap Package 2 metadata + +on: + push: + branches: + - feat/artifact-locks + +permissions: + contents: read + +jobs: + inspect: + name: inspect (${{ matrix.architecture }}) + strategy: + fail-fast: false + matrix: + include: + - architecture: amd64 + runner: ubuntu-24.04 + platform: linux/amd64 + - architecture: arm64 + runner: ubuntu-24.04-arm + platform: linux/arm64 + runs-on: ${{ matrix.runner }} + timeout-minutes: 20 + steps: + - name: Check out repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Inspect UBI package and source repositories + env: + PLATFORM: ${{ matrix.platform }} + UBI_MINIMAL: registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93 + run: | + mkdir -p bootstrap-output + docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ + sh -c 'cat /etc/yum.repos.d/ubi.repo' \ + >bootstrap-output/ubi.repo + docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ + sh -c 'microdnf install -y dnf dnf-plugins-core >/dev/null && dnf repolist --all' \ + >bootstrap-output/repolist.txt + docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ + sh -c 'rpm -q --qf "%{NAME}\t%{VERSION}-%{RELEASE}\t%{ARCH}\t%{SOURCERPM}\n" -a | sort' \ + >bootstrap-output/base-packages.tsv + + - name: Retain inspection + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: package-2-bootstrap-${{ matrix.architecture }} + path: bootstrap-output + if-no-files-found: error + retention-days: 2 From fae46b4a479b5c19ae9880fe70c3c3e1bdb63e09 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:07:11 -0500 Subject: [PATCH 02/22] ci: inspect source package metadata --- .github/workflows/bootstrap-package-2.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml index f347d1c..967a07f 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/bootstrap-package-2.yml @@ -45,6 +45,21 @@ jobs: sh -c 'rpm -q --qf "%{NAME}\t%{VERSION}-%{RELEASE}\t%{ARCH}\t%{SOURCERPM}\n" -a | sort' \ >bootstrap-output/base-packages.tsv + - name: Inspect queryable binary and source metadata + env: + PLATFORM: ${{ matrix.platform }} + UBI_MINIMAL: registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93 + run: | + docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ + sh -euc ' + microdnf install -y dnf dnf-plugins-core >/dev/null + format="%{name}|%{epoch}|%{version}|%{release}|%{arch}|%{downloadsize}|%{checksum}|%{location}|%{repoid}|%{sourcerpm}" + dnf repoquery --qf "${format}" ca-certificates + dnf repoquery --disablerepo="*" \ + --enablerepo="ubi-9-*-source-rpms" \ + --qf "${format}" ca-certificates + ' >bootstrap-output/repoquery-sample.txt + - name: Retain inspection uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: From f2578cffe7cf6d8bfd45d4127559644d03192f86 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:08:38 -0500 Subject: [PATCH 03/22] fix: use supported repository metadata fields --- .github/workflows/bootstrap-package-2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml index 967a07f..fe14467 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/bootstrap-package-2.yml @@ -53,7 +53,7 @@ jobs: docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ sh -euc ' microdnf install -y dnf dnf-plugins-core >/dev/null - format="%{name}|%{epoch}|%{version}|%{release}|%{arch}|%{downloadsize}|%{checksum}|%{location}|%{repoid}|%{sourcerpm}" + format="%{name}|%{epoch}|%{version}|%{release}|%{arch}|%{downloadsize}|%{location}|%{repoid}|%{sourcerpm}" dnf repoquery --qf "${format}" ca-certificates dnf repoquery --disablerepo="*" \ --enablerepo="ubi-9-*-source-rpms" \ From c84bf5facb75a9b5df29024521973a016c201d26 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:11:39 -0500 Subject: [PATCH 04/22] ci: inspect approved signing keys --- .github/workflows/bootstrap-package-2.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml index fe14467..650e2ea 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/bootstrap-package-2.yml @@ -60,6 +60,20 @@ jobs: --qf "${format}" ca-certificates ' >bootstrap-output/repoquery-sample.txt + - name: Inspect approved Red Hat keys + run: | + mkdir -p bootstrap-output/keys + curl --fail --location --proto '=https' --retry 3 \ + --output bootstrap-output/keys/fd431d51.asc \ + https://security.access.redhat.com/data/fd431d51.txt + curl --fail --location --proto '=https' --retry 3 \ + --output bootstrap-output/keys/5a6340b3.asc \ + https://security.access.redhat.com/data/5a6340b3.txt + sha256sum bootstrap-output/keys/*.asc \ + >bootstrap-output/key-sha256.txt + gpg --batch --show-keys --with-colons bootstrap-output/keys/*.asc \ + >bootstrap-output/key-metadata.txt + - name: Retain inspection uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: From cce6e69d00ef28c3ee9ee086604de60eba28387a Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:20:00 -0500 Subject: [PATCH 05/22] feat: resolve complete artifact closure --- .github/workflows/bootstrap-package-2.yml | 82 ++-- artifacts/artifact-lock.schema.json | 110 ++++++ artifacts/lock-inputs.json | 75 ++++ scripts/artifacts.py | 456 ++++++++++++++++++++++ scripts/render-lock.py | 125 ++++++ scripts/resolve-lock.sh | 122 ++++++ 6 files changed, 926 insertions(+), 44 deletions(-) create mode 100644 artifacts/artifact-lock.schema.json create mode 100644 artifacts/lock-inputs.json create mode 100644 scripts/artifacts.py create mode 100644 scripts/render-lock.py create mode 100644 scripts/resolve-lock.sh diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml index 650e2ea..32a7dc8 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/bootstrap-package-2.yml @@ -1,4 +1,4 @@ -name: Bootstrap Package 2 metadata +name: Bootstrap Package 2 locks on: push: @@ -9,8 +9,8 @@ permissions: contents: read jobs: - inspect: - name: inspect (${{ matrix.architecture }}) + resolve: + name: resolve (${{ matrix.architecture }}) strategy: fail-fast: false matrix: @@ -22,62 +22,56 @@ jobs: runner: ubuntu-24.04-arm platform: linux/arm64 runs-on: ${{ matrix.runner }} - timeout-minutes: 20 + timeout-minutes: 45 steps: - name: Check out repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - - name: Inspect UBI package and source repositories + - name: Validate reviewed lock inputs + run: python scripts/artifacts.py validate-inputs artifacts/lock-inputs.json + + - name: Acquire PostgreSQL seeds and approved keys env: - PLATFORM: ${{ matrix.platform }} - UBI_MINIMAL: registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93 - run: | - mkdir -p bootstrap-output - docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ - sh -c 'cat /etc/yum.repos.d/ubi.repo' \ - >bootstrap-output/ubi.repo - docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ - sh -c 'microdnf install -y dnf dnf-plugins-core >/dev/null && dnf repolist --all' \ - >bootstrap-output/repolist.txt - docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ - sh -c 'rpm -q --qf "%{NAME}\t%{VERSION}-%{RELEASE}\t%{ARCH}\t%{SOURCERPM}\n" -a | sort' \ - >bootstrap-output/base-packages.tsv + ARCHITECTURE: ${{ matrix.architecture }} + run: >- + python scripts/artifacts.py acquire-inputs + --inputs artifacts/lock-inputs.json + --architecture "${ARCHITECTURE}" + --output bootstrap-inputs - - name: Inspect queryable binary and source metadata + - name: Resolve and inspect the complete RPM closure env: + ARCHITECTURE: ${{ matrix.architecture }} PLATFORM: ${{ matrix.platform }} UBI_MINIMAL: registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93 - run: | - docker run --rm --platform "${PLATFORM}" "${UBI_MINIMAL}" \ - sh -euc ' - microdnf install -y dnf dnf-plugins-core >/dev/null - format="%{name}|%{epoch}|%{version}|%{release}|%{arch}|%{downloadsize}|%{location}|%{repoid}|%{sourcerpm}" - dnf repoquery --qf "${format}" ca-certificates - dnf repoquery --disablerepo="*" \ - --enablerepo="ubi-9-*-source-rpms" \ - --qf "${format}" ca-certificates - ' >bootstrap-output/repoquery-sample.txt + run: >- + docker run --rm --platform "${PLATFORM}" + --volume "${PWD}:/work" --workdir /work + "${UBI_MINIMAL}" bash scripts/resolve-lock.sh + "${ARCHITECTURE}" /work/bootstrap-inputs /work/bootstrap-output - - name: Inspect approved Red Hat keys + - name: Render and validate lock + env: + ARCHITECTURE: ${{ matrix.architecture }} run: | - mkdir -p bootstrap-output/keys - curl --fail --location --proto '=https' --retry 3 \ - --output bootstrap-output/keys/fd431d51.asc \ - https://security.access.redhat.com/data/fd431d51.txt - curl --fail --location --proto '=https' --retry 3 \ - --output bootstrap-output/keys/5a6340b3.asc \ - https://security.access.redhat.com/data/5a6340b3.txt - sha256sum bootstrap-output/keys/*.asc \ - >bootstrap-output/key-sha256.txt - gpg --batch --show-keys --with-colons bootstrap-output/keys/*.asc \ - >bootstrap-output/key-metadata.txt + python scripts/render-lock.py \ + --inputs artifacts/lock-inputs.json \ + --architecture "${ARCHITECTURE}" \ + --binary-inventory bootstrap-output/binary-inventory.tsv \ + --source-inventory bootstrap-output/source-inventory.tsv \ + --output "bootstrap-output/${ARCHITECTURE}.lock.json" + python scripts/artifacts.py validate-lock \ + "bootstrap-output/${ARCHITECTURE}.lock.json" - - name: Retain inspection + - name: Retain reviewed lock candidate uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: package-2-bootstrap-${{ matrix.architecture }} - path: bootstrap-output + name: artifact-lock-${{ matrix.architecture }} + path: | + bootstrap-output/${{ matrix.architecture }}.lock.json + bootstrap-output/binary-inventory.tsv + bootstrap-output/source-inventory.tsv if-no-files-found: error retention-days: 2 diff --git a/artifacts/artifact-lock.schema.json b/artifacts/artifact-lock.schema.json new file mode 100644 index 0000000..e6bb0f3 --- /dev/null +++ b/artifacts/artifact-lock.schema.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/datopsis/postgresql-ubi/artifacts/artifact-lock.schema.json", + "title": "postgresql-ubi artifact lock", + "type": "object", + "additionalProperties": false, + "required": [ + "schema_version", + "bundle_version", + "architecture", + "rpm_architecture", + "generated_at", + "postgresql_version", + "postgresql_rpm_version", + "base_images", + "signing_keys", + "packages", + "source_packages" + ], + "properties": { + "schema_version": { "const": 1 }, + "bundle_version": { "const": 1 }, + "architecture": { "enum": ["amd64", "arm64"] }, + "rpm_architecture": { "enum": ["x86_64", "aarch64"] }, + "generated_at": { "type": "string", "format": "date-time" }, + "postgresql_version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+$" }, + "postgresql_rpm_version": { "type": "string", "minLength": 1 }, + "base_images": { + "type": "object", + "additionalProperties": false, + "required": ["builder", "runtime"], + "properties": { + "builder": { "$ref": "#/$defs/baseImage" }, + "runtime": { "$ref": "#/$defs/baseImage" } + } + }, + "signing_keys": { + "type": "array", + "minItems": 1, + "items": { "$ref": "#/$defs/key" } + }, + "packages": { + "type": "array", + "minItems": 1, + "items": { "$ref": "#/$defs/package" } + }, + "source_packages": { + "type": "array", + "minItems": 1, + "items": { "$ref": "#/$defs/sourcePackage" } + } + }, + "$defs": { + "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, + "baseImage": { + "type": "object", + "additionalProperties": false, + "required": ["reference", "digest", "platform"], + "properties": { + "reference": { "type": "string", "minLength": 1 }, + "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }, + "platform": { "type": "string", "pattern": "^linux/(amd64|arm64)$" } + } + }, + "key": { + "type": "object", + "additionalProperties": false, + "required": ["id", "filename", "url", "sha256", "fingerprint"], + "properties": { + "id": { "type": "string", "pattern": "^[a-z0-9-]+$" }, + "filename": { "type": "string", "pattern": "^[A-Za-z0-9._-]+$" }, + "url": { "type": "string", "pattern": "^https://" }, + "sha256": { "$ref": "#/$defs/sha256" }, + "fingerprint": { "type": "string", "pattern": "^[A-F0-9]{40}$" } + } + }, + "package": { + "type": "object", + "additionalProperties": false, + "required": ["name", "epoch", "version", "release", "architecture", "nevra", "filename", "url", "repository", "size", "sha256", "signing_key_fingerprint", "source_rpm"], + "properties": { + "name": { "type": "string", "minLength": 1 }, + "epoch": { "type": "integer", "minimum": 0 }, + "version": { "type": "string", "minLength": 1 }, + "release": { "type": "string", "minLength": 1 }, + "architecture": { "type": "string", "minLength": 1 }, + "nevra": { "type": "string", "minLength": 1 }, + "filename": { "type": "string", "pattern": "^[A-Za-z0-9+_.-]+\\.rpm$" }, + "url": { "type": "string", "pattern": "^https://" }, + "repository": { "type": "string", "minLength": 1 }, + "size": { "type": "integer", "minimum": 1 }, + "sha256": { "$ref": "#/$defs/sha256" }, + "signing_key_fingerprint": { "type": "string", "pattern": "^[A-F0-9]{40}$" }, + "source_rpm": { "type": "string", "pattern": "^[A-Za-z0-9+_.-]+\\.src\\.rpm$" } + } + }, + "sourcePackage": { + "type": "object", + "additionalProperties": false, + "required": ["filename", "url", "repository", "size", "sha256"], + "properties": { + "filename": { "type": "string", "pattern": "^[A-Za-z0-9+_.-]+\\.src\\.rpm$" }, + "url": { "type": "string", "pattern": "^https://" }, + "repository": { "type": "string", "minLength": 1 }, + "size": { "type": "integer", "minimum": 1 }, + "sha256": { "$ref": "#/$defs/sha256" } + } + } + } +} diff --git a/artifacts/lock-inputs.json b/artifacts/lock-inputs.json new file mode 100644 index 0000000..a76d474 --- /dev/null +++ b/artifacts/lock-inputs.json @@ -0,0 +1,75 @@ +{ + "schema_version": 1, + "bundle_version": 1, + "postgresql_version": "18.6", + "postgresql_rpm_version": "18.6-1PGDG.rhel9.8", + "ubi_release": "9.8", + "base_images": { + "builder": "registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93", + "runtime": "registry.access.redhat.com/ubi9/ubi-micro:9.8@sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6" + }, + "architectures": { + "amd64": { + "rpm_architecture": "x86_64", + "postgresql_rpms": [ + { + "sha256": "ae57ba32d87fa3c311da9545bc85682ae04dc41cfbabf60d7f6c185099604f8a", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-18.6-1PGDG.rhel9.8.x86_64.rpm" + }, + { + "sha256": "7a4d55c02b8bab1b359aa25ce53d81db77cd39026a980dd8f0210031a5c31654", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-libs-18.6-1PGDG.rhel9.8.x86_64.rpm" + }, + { + "sha256": "f7f1915d63756f6a37f3f2e5cc84d03893d0d7a55dab8ac350871bd1c48a0754", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-server-18.6-1PGDG.rhel9.8.x86_64.rpm" + } + ], + "pgdg_key": "pgdg-rhel" + }, + "arm64": { + "rpm_architecture": "aarch64", + "postgresql_rpms": [ + { + "sha256": "3ec399a4d57b43cbba03f610adc4a4c6daaea0dc8b4f3d73175b1dedf7e2bddf", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-18.6-1PGDG.rhel9.8.aarch64.rpm" + }, + { + "sha256": "662bac810d50ece9d32f7ab6960f01e8e1416cc0a0634a4ea7f7ec8ea744146b", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-libs-18.6-1PGDG.rhel9.8.aarch64.rpm" + }, + { + "sha256": "761001b6e560041f2f6f0d7abe9e57b30a98a2c039b81682d77969928a366add", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-server-18.6-1PGDG.rhel9.8.aarch64.rpm" + } + ], + "pgdg_key": "pgdg-aarch64-rhel" + } + }, + "signing_keys": [ + { + "fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "id": "pgdg-rhel", + "sha256": "a70c9527426017d00fa4e6f9d2941d515357a27a7be82e155248ece53bbe5453", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL" + }, + { + "fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "id": "pgdg-aarch64-rhel", + "sha256": "cc506fa92aa97e8e58f88551a2ec99a61d9d603f7f2c1ae0c06191f58c29979f", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-AARCH64-RHEL" + }, + { + "fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "id": "redhat-release", + "sha256": "d4b2543626bee31d9438d4a31731aae712c072893c7aed8854f16c42fafc742b", + "url": "https://security.access.redhat.com/data/fd431d51.txt" + }, + { + "fingerprint": "7E4624258C406535D56D6F135054E4A45A6340B3", + "id": "redhat-release-2", + "sha256": "d37ed8bd8bddb29983a38c6fde4e59d329e6a7c2ecbc702e929f0d05ae5eba59", + "url": "https://security.access.redhat.com/data/5a6340b3.txt" + } + ] +} diff --git a/scripts/artifacts.py b/scripts/artifacts.py new file mode 100644 index 0000000..145c5ec --- /dev/null +++ b/scripts/artifacts.py @@ -0,0 +1,456 @@ +#!/usr/bin/env python3 +"""Validate locks, acquire exact artifacts, and prepare offline bundles.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import re +import shutil +import sys +import tempfile +import time +import urllib.error +import urllib.parse +import urllib.request +from pathlib import Path + + +ALLOWED_HOSTS = { + "cdn-ubi.redhat.com", + "dnf-srpms.postgresql.org", + "download.postgresql.org", + "security.access.redhat.com", +} +SHA256_RE = re.compile(r"^[a-f0-9]{64}$") +DIGEST_RE = re.compile(r"^sha256:[a-f0-9]{64}$") +FINGERPRINT_RE = re.compile(r"^[A-F0-9]{40}$") +FILENAME_RE = re.compile(r"^[A-Za-z0-9+_.-]+$") +ARCHES = {"amd64": "x86_64", "arm64": "aarch64"} + + +class LockError(ValueError): + """A lock or bundle violated the fail-closed contract.""" + + +def fail(message: str) -> None: + raise LockError(message) + + +def read_json(path: Path) -> dict: + try: + data = json.loads(path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + fail(f"cannot read valid JSON from {path}: {exc}") + if not isinstance(data, dict): + fail(f"{path} must contain one JSON object") + return data + + +def sha256_file(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def validate_url(url: object, label: str) -> str: + if not isinstance(url, str): + fail(f"{label} URL must be a string") + parsed = urllib.parse.urlsplit(url) + if ( + parsed.scheme != "https" + or parsed.hostname not in ALLOWED_HOSTS + or parsed.username + or parsed.password + or parsed.query + or parsed.fragment + ): + fail(f"{label} has an unapproved URL: {url}") + return url + + +def require_keys(value: dict, required: set[str], allowed: set[str], label: str) -> None: + missing = required - value.keys() + extra = value.keys() - allowed + if missing: + fail(f"{label} is missing fields: {', '.join(sorted(missing))}") + if extra: + fail(f"{label} has unexpected fields: {', '.join(sorted(extra))}") + + +def require_string(value: object, label: str) -> str: + if not isinstance(value, str) or not value: + fail(f"{label} must be a non-empty string") + return value + + +def require_sha256(value: object, label: str) -> str: + if not isinstance(value, str) or not SHA256_RE.fullmatch(value): + fail(f"{label} must be a lowercase SHA-256 value") + return value + + +def validate_inputs(path: Path) -> dict: + data = read_json(path) + required = { + "schema_version", + "bundle_version", + "postgresql_version", + "postgresql_rpm_version", + "ubi_release", + "base_images", + "architectures", + "signing_keys", + } + require_keys(data, required, required, "lock inputs") + if data["schema_version"] != 1 or data["bundle_version"] != 1: + fail("only lock schema and bundle version 1 are supported") + for role in ("builder", "runtime"): + reference = require_string(data["base_images"].get(role), f"base image {role}") + if "@sha256:" not in reference or not DIGEST_RE.fullmatch(reference.rsplit("@", 1)[1]): + fail(f"base image {role} is not digest pinned") + if set(data["architectures"]) != set(ARCHES): + fail("lock inputs must define exactly amd64 and arm64") + for architecture, rpm_architecture in ARCHES.items(): + entry = data["architectures"][architecture] + require_keys( + entry, + {"rpm_architecture", "postgresql_rpms", "pgdg_key"}, + {"rpm_architecture", "postgresql_rpms", "pgdg_key"}, + f"architecture {architecture}", + ) + if entry["rpm_architecture"] != rpm_architecture: + fail(f"architecture {architecture} has the wrong RPM architecture") + if len(entry["postgresql_rpms"]) != 3: + fail(f"architecture {architecture} must seed exactly three PostgreSQL RPMs") + for item in entry["postgresql_rpms"]: + require_keys(item, {"url", "sha256"}, {"url", "sha256"}, "PostgreSQL seed") + validate_url(item["url"], "PostgreSQL seed") + require_sha256(item["sha256"], "PostgreSQL seed") + validate_keys(data["signing_keys"]) + return data + + +def validate_keys(keys: object) -> list[dict]: + if not isinstance(keys, list) or not keys: + fail("signing_keys must be a non-empty array") + ids: set[str] = set() + filenames: set[str] = set() + fingerprints: set[str] = set() + for key in keys: + if not isinstance(key, dict): + fail("each signing key must be an object") + required = {"id", "filename", "url", "sha256", "fingerprint"} + # Input selections omit filename; the rendered lock adds it. + input_required = required - {"filename"} + if set(key) == input_required: + filename = Path(urllib.parse.urlsplit(validate_url(key["url"], "signing key")).path).name + else: + require_keys(key, required, required, "signing key") + filename = require_string(key["filename"], "signing key filename") + key_id = require_string(key["id"], "signing key id") + fingerprint = require_string(key["fingerprint"], "signing key fingerprint") + if not FILENAME_RE.fullmatch(filename): + fail(f"unsafe signing key filename: {filename}") + validate_url(key["url"], "signing key") + require_sha256(key["sha256"], "signing key") + if not FINGERPRINT_RE.fullmatch(fingerprint): + fail(f"invalid full signing-key fingerprint: {fingerprint}") + if key_id in ids or filename in filenames or fingerprint in fingerprints: + fail("duplicate signing key id, filename, or fingerprint") + ids.add(key_id) + filenames.add(filename) + fingerprints.add(fingerprint) + return keys + + +def validate_lock(path: Path) -> dict: + data = read_json(path) + required = { + "schema_version", + "bundle_version", + "architecture", + "rpm_architecture", + "generated_at", + "postgresql_version", + "postgresql_rpm_version", + "base_images", + "signing_keys", + "packages", + "source_packages", + } + require_keys(data, required, required, "artifact lock") + if data["schema_version"] != 1 or data["bundle_version"] != 1: + fail("only lock schema and bundle version 1 are supported") + architecture = data["architecture"] + if architecture not in ARCHES or data["rpm_architecture"] != ARCHES[architecture]: + fail("lock architecture and RPM architecture do not match") + require_string(data["generated_at"], "generated_at") + require_string(data["postgresql_version"], "postgresql_version") + require_string(data["postgresql_rpm_version"], "postgresql_rpm_version") + bases = data["base_images"] + require_keys(bases, {"builder", "runtime"}, {"builder", "runtime"}, "base_images") + for role, base in bases.items(): + require_keys(base, {"reference", "digest", "platform"}, {"reference", "digest", "platform"}, f"base {role}") + reference = require_string(base["reference"], f"base {role} reference") + digest = require_string(base["digest"], f"base {role} digest") + if not DIGEST_RE.fullmatch(digest) or not reference.endswith(f"@{digest}"): + fail(f"base {role} reference and digest do not match") + if base["platform"] != f"linux/{architecture}": + fail(f"base {role} platform does not match lock architecture") + keys = validate_keys(data["signing_keys"]) + fingerprints = {key["fingerprint"] for key in keys} + packages = data["packages"] + sources = data["source_packages"] + if not isinstance(packages, list) or not packages: + fail("packages must be a non-empty array") + if not isinstance(sources, list) or not sources: + fail("source_packages must be a non-empty array") + package_files: set[str] = set() + package_nevras: set[str] = set() + for package in packages: + validate_package(package, architecture, data, fingerprints) + if package["filename"] in package_files or package["nevra"] in package_nevras: + fail("duplicate package filename or NEVRA") + package_files.add(package["filename"]) + package_nevras.add(package["nevra"]) + if [item["nevra"] for item in packages] != sorted(item["nevra"] for item in packages): + fail("packages must be sorted by NEVRA") + source_files: set[str] = set() + for source in sources: + validate_source(source) + if source["filename"] in source_files: + fail("duplicate source package filename") + source_files.add(source["filename"]) + if [item["filename"] for item in sources] != sorted(source_files): + fail("source_packages must be sorted by filename") + missing_sources = {item["source_rpm"] for item in packages} - source_files + if missing_sources: + fail(f"binary packages lack source records: {', '.join(sorted(missing_sources))}") + required_pg = {"postgresql18", "postgresql18-libs", "postgresql18-server"} + if required_pg - {item["name"] for item in packages}: + fail("lock does not contain all required PostgreSQL packages") + return data + + +def validate_package(package: object, architecture: str, lock: dict, fingerprints: set[str]) -> None: + if not isinstance(package, dict): + fail("each package must be an object") + required = {"name", "epoch", "version", "release", "architecture", "nevra", "filename", "url", "repository", "size", "sha256", "signing_key_fingerprint", "source_rpm"} + require_keys(package, required, required, "package") + for field in ("name", "version", "release", "architecture", "nevra", "repository", "source_rpm"): + require_string(package[field], f"package {field}") + if not isinstance(package["epoch"], int) or package["epoch"] < 0: + fail("package epoch must be a non-negative integer") + if package["architecture"] not in {ARCHES[architecture], "noarch"}: + fail(f"package {package['nevra']} has the wrong architecture") + expected_nevra = f"{package['name']}-{package['epoch']}:{package['version']}-{package['release']}.{package['architecture']}" + if package["nevra"] != expected_nevra: + fail(f"package NEVRA is inconsistent: {package['nevra']}") + if not FILENAME_RE.fullmatch(package["filename"]) or not package["filename"].endswith(".rpm"): + fail(f"unsafe package filename: {package['filename']}") + validate_url(package["url"], f"package {package['nevra']}") + if not isinstance(package["size"], int) or package["size"] < 1: + fail(f"package {package['nevra']} has an invalid size") + require_sha256(package["sha256"], f"package {package['nevra']}") + if package["signing_key_fingerprint"] not in fingerprints: + fail(f"package {package['nevra']} uses an unapproved signing key") + if not package["source_rpm"].endswith(".src.rpm"): + fail(f"package {package['nevra']} has an invalid source RPM") + if package["name"].startswith("postgresql18") and ( + package["version"] != lock["postgresql_version"] + or f"{package['version']}-{package['release']}" != lock["postgresql_rpm_version"] + ): + fail(f"package {package['nevra']} violates the locked PostgreSQL version") + + +def validate_source(source: object) -> None: + if not isinstance(source, dict): + fail("each source package must be an object") + required = {"filename", "url", "repository", "size", "sha256"} + require_keys(source, required, required, "source package") + filename = require_string(source["filename"], "source package filename") + if not FILENAME_RE.fullmatch(filename) or not filename.endswith(".src.rpm"): + fail(f"unsafe source package filename: {filename}") + validate_url(source["url"], f"source package {filename}") + require_string(source["repository"], "source package repository") + if not isinstance(source["size"], int) or source["size"] < 1: + fail(f"source package {filename} has an invalid size") + require_sha256(source["sha256"], f"source package {filename}") + + +class ApprovedRedirectHandler(urllib.request.HTTPRedirectHandler): + def redirect_request(self, req, fp, code, msg, headers, newurl): # noqa: ANN001 + validate_url(newurl, "redirect") + return super().redirect_request(req, fp, code, msg, headers, newurl) + + +def download(url: str, output: Path, expected_size: int | None, expected_sha256: str) -> None: + validate_url(url, output.name) + opener = urllib.request.build_opener(ApprovedRedirectHandler()) + for attempt in range(3): + temporary = output.with_suffix(output.suffix + ".partial") + try: + request = urllib.request.Request(url, headers={"User-Agent": "postgresql-ubi-artifact-acquirer/1"}) + digest = hashlib.sha256() + size = 0 + with opener.open(request, timeout=30) as response, temporary.open("wb") as target: + validate_url(response.geturl(), "final response") + for block in iter(lambda: response.read(1024 * 1024), b""): + size += len(block) + if expected_size is not None and size > expected_size: + fail(f"download exceeded locked size for {output.name}") + digest.update(block) + target.write(block) + if expected_size is not None and size != expected_size: + fail(f"size mismatch for {output.name}: expected {expected_size}, got {size}") + if digest.hexdigest() != expected_sha256: + fail(f"SHA-256 mismatch for {output.name}") + os.replace(temporary, output) + return + except (OSError, urllib.error.URLError, LockError) as exc: + temporary.unlink(missing_ok=True) + if attempt == 2 or isinstance(exc, LockError): + raise + time.sleep(2**attempt) + + +def lock_files(lock: dict, include_sources: bool) -> list[tuple[str, dict]]: + files = [(f"keys/{item['filename']}", item) for item in lock["signing_keys"]] + files.extend((f"rpms/{item['filename']}", item) for item in lock["packages"]) + if include_sources: + files.extend((f"srpms/{item['filename']}", item) for item in lock["source_packages"]) + return files + + +def verify_bundle(lock_path: Path, bundle: Path, include_sources: bool) -> None: + lock = validate_lock(lock_path) + expected = {relative for relative, _ in lock_files(lock, include_sources)} + expected.update({"LOCK-SHA256", "rpm-manifest.tsv"}) + actual = { + path.relative_to(bundle).as_posix() + for path in bundle.rglob("*") + if path.is_file() + } + if actual != expected: + missing = sorted(expected - actual) + extra = sorted(actual - expected) + fail(f"bundle inventory mismatch; missing={missing}; unexpected={extra}") + for relative, item in lock_files(lock, include_sources): + path = bundle / relative + if path.stat().st_size != item.get("size", path.stat().st_size): + fail(f"size mismatch for bundled {relative}") + if sha256_file(path) != item["sha256"]: + fail(f"SHA-256 mismatch for bundled {relative}") + expected_lock_sha = sha256_file(lock_path) + if (bundle / "LOCK-SHA256").read_text(encoding="ascii").strip() != expected_lock_sha: + fail("bundle lock digest does not match the selected lock") + expected_manifest = rpm_manifest(lock) + if (bundle / "rpm-manifest.tsv").read_text(encoding="utf-8") != expected_manifest: + fail("bundle RPM manifest does not match the selected lock") + + +def rpm_manifest(lock: dict) -> str: + rows = [] + for package in lock["packages"]: + rows.append("\t".join([ + package["filename"], + package["name"], + str(package["epoch"]), + package["version"], + package["release"], + package["architecture"], + package["source_rpm"], + package["signing_key_fingerprint"], + ])) + return "\n".join(rows) + "\n" + + +def acquire(lock_path: Path, output: Path, include_sources: bool) -> None: + lock = validate_lock(lock_path) + if output.exists(): + fail(f"refusing to overwrite existing bundle directory: {output}") + output.parent.mkdir(parents=True, exist_ok=True) + temporary = Path(tempfile.mkdtemp(prefix=f".{output.name}-", dir=output.parent)) + try: + for relative, item in lock_files(lock, include_sources): + destination = temporary / relative + destination.parent.mkdir(parents=True, exist_ok=True) + download(item["url"], destination, item.get("size"), item["sha256"]) + (temporary / "LOCK-SHA256").write_text(sha256_file(lock_path) + "\n", encoding="ascii") + (temporary / "rpm-manifest.tsv").write_text(rpm_manifest(lock), encoding="utf-8", newline="\n") + verify_bundle(lock_path, temporary, include_sources) + os.replace(temporary, output) + except Exception: + shutil.rmtree(temporary, ignore_errors=True) + raise + + +def acquire_inputs(inputs_path: Path, architecture: str, output: Path) -> None: + inputs = validate_inputs(inputs_path) + if architecture not in ARCHES: + fail(f"unsupported architecture: {architecture}") + if output.exists(): + fail(f"refusing to overwrite existing input directory: {output}") + output.parent.mkdir(parents=True, exist_ok=True) + temporary = Path(tempfile.mkdtemp(prefix=f".{output.name}-", dir=output.parent)) + try: + for key in inputs["signing_keys"]: + filename = Path(urllib.parse.urlsplit(key["url"]).path).name + destination = temporary / "keys" / filename + destination.parent.mkdir(parents=True, exist_ok=True) + download(key["url"], destination, None, key["sha256"]) + for item in inputs["architectures"][architecture]["postgresql_rpms"]: + filename = Path(urllib.parse.urlsplit(item["url"]).path).name + destination = temporary / "rpms" / filename + destination.parent.mkdir(parents=True, exist_ok=True) + download(item["url"], destination, None, item["sha256"]) + os.replace(temporary, output) + except Exception: + shutil.rmtree(temporary, ignore_errors=True) + raise + + +def main() -> int: + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="command", required=True) + inputs_parser = subparsers.add_parser("validate-inputs") + inputs_parser.add_argument("path", type=Path) + lock_parser = subparsers.add_parser("validate-lock") + lock_parser.add_argument("path", type=Path) + acquire_parser = subparsers.add_parser("acquire") + acquire_parser.add_argument("--lock", required=True, type=Path) + acquire_parser.add_argument("--output", required=True, type=Path) + acquire_parser.add_argument("--include-sources", action="store_true") + input_acquire_parser = subparsers.add_parser("acquire-inputs") + input_acquire_parser.add_argument("--inputs", required=True, type=Path) + input_acquire_parser.add_argument("--architecture", required=True) + input_acquire_parser.add_argument("--output", required=True, type=Path) + verify_parser = subparsers.add_parser("verify-bundle") + verify_parser.add_argument("--lock", required=True, type=Path) + verify_parser.add_argument("--bundle", required=True, type=Path) + verify_parser.add_argument("--include-sources", action="store_true") + arguments = parser.parse_args() + try: + if arguments.command == "validate-inputs": + validate_inputs(arguments.path) + elif arguments.command == "validate-lock": + validate_lock(arguments.path) + elif arguments.command == "acquire": + acquire(arguments.lock, arguments.output, arguments.include_sources) + elif arguments.command == "acquire-inputs": + acquire_inputs(arguments.inputs, arguments.architecture, arguments.output) + elif arguments.command == "verify-bundle": + verify_bundle(arguments.lock, arguments.bundle, arguments.include_sources) + except LockError as exc: + print(f"artifact verification failed: {exc}", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/render-lock.py b/scripts/render-lock.py new file mode 100644 index 0000000..283dbbf --- /dev/null +++ b/scripts/render-lock.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 +"""Render a deterministic artifact lock from native resolver inventories.""" + +from __future__ import annotations + +import argparse +import json +from datetime import datetime, timezone +from pathlib import Path + +from artifacts import LockError, validate_inputs, validate_lock + + +def read_tsv(path: Path, fields: list[str]) -> list[dict[str, str]]: + rows = [] + for number, line in enumerate(path.read_text(encoding="utf-8").splitlines(), 1): + values = line.split("\t") + if len(values) != len(fields): + raise LockError(f"{path}:{number} has {len(values)} fields; expected {len(fields)}") + rows.append(dict(zip(fields, values, strict=True))) + if not rows: + raise LockError(f"{path} is empty") + return rows + + +def fingerprint_for_key_id(keys: list[dict], key_id: str) -> str: + normalized = key_id.upper() + matches = [key["fingerprint"] for key in keys if key["fingerprint"].endswith(normalized)] + if len(matches) != 1: + raise LockError(f"RPM key ID {key_id} does not select exactly one approved fingerprint") + return matches[0] + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--inputs", required=True, type=Path) + parser.add_argument("--architecture", required=True, choices=("amd64", "arm64")) + parser.add_argument("--binary-inventory", required=True, type=Path) + parser.add_argument("--source-inventory", required=True, type=Path) + parser.add_argument("--output", required=True, type=Path) + arguments = parser.parse_args() + + inputs = validate_inputs(arguments.inputs) + keys = [] + for key in inputs["signing_keys"]: + rendered = dict(key) + rendered["filename"] = Path(key["url"]).name + keys.append(rendered) + keys.sort(key=lambda item: item["id"]) + + binary_fields = [ + "filename", + "name", + "epoch", + "version", + "release", + "architecture", + "source_rpm", + "key_id", + "repository", + "url", + "size", + "sha256", + ] + packages = [] + for row in read_tsv(arguments.binary_inventory, binary_fields): + package = { + "name": row["name"], + "epoch": int(row["epoch"]), + "version": row["version"], + "release": row["release"], + "architecture": row["architecture"], + "nevra": f"{row['name']}-{row['epoch']}:{row['version']}-{row['release']}.{row['architecture']}", + "filename": row["filename"], + "url": row["url"], + "repository": row["repository"], + "size": int(row["size"]), + "sha256": row["sha256"], + "signing_key_fingerprint": fingerprint_for_key_id(keys, row["key_id"]), + "source_rpm": row["source_rpm"], + } + packages.append(package) + packages.sort(key=lambda item: item["nevra"]) + + source_fields = ["filename", "repository", "url", "size", "sha256"] + sources = [] + for row in read_tsv(arguments.source_inventory, source_fields): + sources.append({ + "filename": row["filename"], + "url": row["url"], + "repository": row["repository"], + "size": int(row["size"]), + "sha256": row["sha256"], + }) + sources.sort(key=lambda item: item["filename"]) + + architecture = arguments.architecture + bases = {} + for role, reference in inputs["base_images"].items(): + bases[role] = { + "reference": reference, + "digest": reference.rsplit("@", 1)[1], + "platform": f"linux/{architecture}", + } + lock = { + "schema_version": inputs["schema_version"], + "bundle_version": inputs["bundle_version"], + "architecture": architecture, + "rpm_architecture": inputs["architectures"][architecture]["rpm_architecture"], + "generated_at": datetime.now(timezone.utc).replace(microsecond=0).isoformat().replace("+00:00", "Z"), + "postgresql_version": inputs["postgresql_version"], + "postgresql_rpm_version": inputs["postgresql_rpm_version"], + "base_images": bases, + "signing_keys": keys, + "packages": packages, + "source_packages": sources, + } + arguments.output.parent.mkdir(parents=True, exist_ok=True) + arguments.output.write_text(json.dumps(lock, indent=2) + "\n", encoding="utf-8", newline="\n") + validate_lock(arguments.output) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/resolve-lock.sh b/scripts/resolve-lock.sh new file mode 100644 index 0000000..61a63ed --- /dev/null +++ b/scripts/resolve-lock.sh @@ -0,0 +1,122 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +architecture=${1:?usage: resolve-lock.sh ARCHITECTURE INPUT_DIR OUTPUT_DIR} +input_dir=${2:?usage: resolve-lock.sh ARCHITECTURE INPUT_DIR OUTPUT_DIR} +output_dir=${3:?usage: resolve-lock.sh ARCHITECTURE INPUT_DIR OUTPUT_DIR} + +case "${architecture}" in + amd64) rpm_architecture=x86_64 ;; + arm64) rpm_architecture=aarch64 ;; + *) printf 'unsupported architecture: %s\n' "${architecture}" >&2; exit 1 ;; +esac + +test -d "${input_dir}/rpms" +test -d "${input_dir}/keys" +test ! -e "${output_dir}" +mkdir -p "${output_dir}/rpms" "${output_dir}/srpms" + +# Resolution is deliberately online and isolated from ordinary assembly. +microdnf install -y dnf dnf-plugins-core >/dev/null +rpm --import "${input_dir}"/keys/* +rpm --checksig "${input_dir}"/rpms/*.rpm + +mkdir -p /tmp/resolve-root +dnf install -y \ + --downloadonly \ + --downloaddir="${output_dir}/rpms" \ + --installroot=/tmp/resolve-root \ + --releasever=9 \ + --setopt=localpkg_gpgcheck=1 \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + "${input_dir}"/rpms/*.rpm \ + ca-certificates nss_wrapper tzdata >/dev/null +cp "${input_dir}"/rpms/*.rpm "${output_dir}/rpms/" + +query_format='%{repoid}|%{location}' +binary_inventory="${output_dir}/binary-inventory.tsv" +: >"${binary_inventory}" + +find_url() { + local spec=$1 + local mode=${2:-binary} + local result + if test "${mode}" = source; then + result=$(dnf repoquery --disablerepo='*' \ + --enablerepo='ubi-9-*-source-rpms' \ + --qf "${query_format}" "${spec}") + else + result=$(dnf repoquery --qf "${query_format}" "${spec}") + fi + test "$(printf '%s\n' "${result}" | sed '/^$/d' | wc -l)" -eq 1 + printf '%s\n' "${result}" +} + +while IFS= read -r rpm_path; do + metadata=$(rpm -qp --qf \ + '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}|%{SIGPGP:pgpsig}|%{SIGGPG:pgpsig}' \ + "${rpm_path}") + IFS='|' read -r name epoch version release package_arch source_rpm sigpgp siggpg \ + <<<"${metadata}" + filename=$(basename "${rpm_path}") + if [[ ${name} == postgresql18* ]]; then + repository=pgdg-18 + url="https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-${rpm_architecture}/${filename}" + else + spec="${name}-${epoch}:${version}-${release}.${package_arch}" + query=$(find_url "${spec}") + repository=${query%%|*} + location=${query#*|} + case "${repository}" in + ubi-9-baseos-rpms) component=baseos ;; + ubi-9-appstream-rpms) component=appstream ;; + ubi-9-codeready-builder-rpms) component=codeready-builder ;; + *) printf 'unexpected binary repository: %s\n' "${repository}" >&2; exit 1 ;; + esac + url="https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/${rpm_architecture}/${component}/os/${location}" + fi + signature="${sigpgp} ${siggpg}" + key_id=$(sed -n 's/.*[Kk]ey ID \([0-9A-Fa-f]*\).*/\1/p' <<<"${signature}" | head -n1) + test -n "${key_id}" + size=$(stat -c '%s' "${rpm_path}") + sha256=$(sha256sum "${rpm_path}" | cut -d' ' -f1) + printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' \ + "${filename}" "${name}" "${epoch}" "${version}" "${release}" \ + "${package_arch}" "${source_rpm}" "${key_id}" "${repository}" \ + "${url}" "${size}" "${sha256}" >>"${binary_inventory}" +done < <(find "${output_dir}/rpms" -maxdepth 1 -type f -name '*.rpm' | sort) + +cut -f7 "${binary_inventory}" | sort -u >"${output_dir}/source-names.txt" +source_inventory="${output_dir}/source-inventory.tsv" +: >"${source_inventory}" + +while IFS= read -r source_rpm; do + if [[ ${source_rpm} == postgresql18-* ]]; then + repository=pgdg-18-source + url="https://dnf-srpms.postgresql.org/srpms/18/redhat/rhel-9-x86_64/${source_rpm}" + else + spec=${source_rpm%.rpm} + query=$(find_url "${spec}" source) + repository=${query%%|*} + location=${query#*|} + case "${repository}" in + ubi-9-baseos-source-rpms) component=baseos ;; + ubi-9-appstream-source-rpms) component=appstream ;; + ubi-9-codeready-builder-source-rpms) component=codeready-builder ;; + *) printf 'unexpected source repository: %s\n' "${repository}" >&2; exit 1 ;; + esac + url="https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/${rpm_architecture}/${component}/source/SRPMS/${location}" + fi + curl --fail --location --proto '=https' --retry 3 \ + --output "${output_dir}/srpms/${source_rpm}" "${url}" + rpm --checksig "${output_dir}/srpms/${source_rpm}" + size=$(stat -c '%s' "${output_dir}/srpms/${source_rpm}") + sha256=$(sha256sum "${output_dir}/srpms/${source_rpm}" | cut -d' ' -f1) + printf '%s\t%s\t%s\t%s\t%s\n' \ + "${source_rpm}" "${repository}" "${url}" "${size}" "${sha256}" \ + >>"${source_inventory}" +done <"${output_dir}/source-names.txt" + +sort -o "${binary_inventory}" "${binary_inventory}" +sort -o "${source_inventory}" "${source_inventory}" From 9b136812a8115d0eb6299393933f6b00b89e8c50 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:21:51 -0500 Subject: [PATCH 06/22] fix: trust approved keys in resolution root --- scripts/resolve-lock.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/resolve-lock.sh b/scripts/resolve-lock.sh index 61a63ed..58af921 100644 --- a/scripts/resolve-lock.sh +++ b/scripts/resolve-lock.sh @@ -22,6 +22,8 @@ rpm --import "${input_dir}"/keys/* rpm --checksig "${input_dir}"/rpms/*.rpm mkdir -p /tmp/resolve-root +rpm --root /tmp/resolve-root --initdb +rpm --root /tmp/resolve-root --import "${input_dir}"/keys/* dnf install -y \ --downloadonly \ --downloaddir="${output_dir}/rpms" \ From d7e66033c86c647ff7580b8237d83c802850b55c Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:25:35 -0500 Subject: [PATCH 07/22] chore: expose resolver diagnostics --- scripts/resolve-lock.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/resolve-lock.sh b/scripts/resolve-lock.sh index 58af921..22bd836 100644 --- a/scripts/resolve-lock.sh +++ b/scripts/resolve-lock.sh @@ -33,7 +33,7 @@ dnf install -y \ --setopt=install_weak_deps=0 \ --setopt=keepcache=0 \ "${input_dir}"/rpms/*.rpm \ - ca-certificates nss_wrapper tzdata >/dev/null + ca-certificates nss_wrapper tzdata cp "${input_dir}"/rpms/*.rpm "${output_dir}/rpms/" query_format='%{repoid}|%{location}' From 608356d3eace2a2ac7d4ee0b925131f07df44906 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:27:10 -0500 Subject: [PATCH 08/22] chore: diagnose repository mappings --- scripts/resolve-lock.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/resolve-lock.sh b/scripts/resolve-lock.sh index 22bd836..e297e6f 100644 --- a/scripts/resolve-lock.sh +++ b/scripts/resolve-lock.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash set -Eeuo pipefail +trap 'printf "resolver failed at line %s: %s\n" "${LINENO}" "${BASH_COMMAND}" >&2' ERR architecture=${1:?usage: resolve-lock.sh ARCHITECTURE INPUT_DIR OUTPUT_DIR} input_dir=${2:?usage: resolve-lock.sh ARCHITECTURE INPUT_DIR OUTPUT_DIR} @@ -51,7 +52,12 @@ find_url() { else result=$(dnf repoquery --qf "${query_format}" "${spec}") fi - test "$(printf '%s\n' "${result}" | sed '/^$/d' | wc -l)" -eq 1 + result_count=$(printf '%s\n' "${result}" | sed '/^$/d' | wc -l) + if test "${result_count}" -ne 1; then + printf 'repository lookup for %s (%s) returned %s matches:\n%s\n' \ + "${spec}" "${mode}" "${result_count}" "${result}" >&2 + return 1 + fi printf '%s\n' "${result}" } From 08c4dda86b0f1f02e78f408b3038d9f885fd4d16 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:28:18 -0500 Subject: [PATCH 09/22] fix: identify modern RPM signatures --- scripts/resolve-lock.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/resolve-lock.sh b/scripts/resolve-lock.sh index e297e6f..ad8a364 100644 --- a/scripts/resolve-lock.sh +++ b/scripts/resolve-lock.sh @@ -63,9 +63,9 @@ find_url() { while IFS= read -r rpm_path; do metadata=$(rpm -qp --qf \ - '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}|%{SIGPGP:pgpsig}|%{SIGGPG:pgpsig}' \ + '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}' \ "${rpm_path}") - IFS='|' read -r name epoch version release package_arch source_rpm sigpgp siggpg \ + IFS='|' read -r name epoch version release package_arch source_rpm \ <<<"${metadata}" filename=$(basename "${rpm_path}") if [[ ${name} == postgresql18* ]]; then @@ -84,7 +84,9 @@ while IFS= read -r rpm_path; do esac url="https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/${rpm_architecture}/${component}/os/${location}" fi - signature="${sigpgp} ${siggpg}" + signature=$(rpm -qp --qf \ + '%{SIGPGP:pgpsig}|%{SIGGPG:pgpsig}|%{RSAHEADER:pgpsig}|%{DSAHEADER:pgpsig}' \ + "${rpm_path}") key_id=$(sed -n 's/.*[Kk]ey ID \([0-9A-Fa-f]*\).*/\1/p' <<<"${signature}" | head -n1) test -n "${key_id}" size=$(stat -c '%s' "${rpm_path}") From 4f8bbd1e3c0c06c7b9a8a54b93fba49165d54917 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:31:53 -0500 Subject: [PATCH 10/22] fix: write lock outside resolver output --- .github/workflows/bootstrap-package-2.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/bootstrap-package-2.yml index 32a7dc8..0499dfd 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/bootstrap-package-2.yml @@ -61,16 +61,16 @@ jobs: --architecture "${ARCHITECTURE}" \ --binary-inventory bootstrap-output/binary-inventory.tsv \ --source-inventory bootstrap-output/source-inventory.tsv \ - --output "bootstrap-output/${ARCHITECTURE}.lock.json" + --output "${ARCHITECTURE}.lock.json" python scripts/artifacts.py validate-lock \ - "bootstrap-output/${ARCHITECTURE}.lock.json" + "${ARCHITECTURE}.lock.json" - name: Retain reviewed lock candidate uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: artifact-lock-${{ matrix.architecture }} path: | - bootstrap-output/${{ matrix.architecture }}.lock.json + ${{ matrix.architecture }}.lock.json bootstrap-output/binary-inventory.tsv bootstrap-output/source-inventory.tsv if-no-files-found: error From aa97c456d8edb5800e607d743efa1a3f4aac81c2 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:39:49 -0500 Subject: [PATCH 11/22] feat: enforce locked offline assembly --- .github/workflows/ci.yml | 42 +- ...otstrap-package-2.yml => update-locks.yml} | 31 +- .gitignore | 1 + Containerfile | 110 +- artifacts/locks/amd64.json | 3247 ++++++++++++++++ artifacts/locks/arm64.json | 3262 +++++++++++++++++ scripts/artifacts.py | 12 +- scripts/build-offline.sh | 42 + scripts/verify-key-fingerprints.sh | 18 + scripts/verify-rpm-bundle.sh | 31 + tests/test_artifacts.py | 179 + 11 files changed, 6874 insertions(+), 101 deletions(-) rename .github/workflows/{bootstrap-package-2.yml => update-locks.yml} (71%) create mode 100644 artifacts/locks/amd64.json create mode 100644 artifacts/locks/arm64.json create mode 100644 scripts/build-offline.sh create mode 100644 scripts/verify-key-fingerprints.sh create mode 100644 scripts/verify-rpm-bundle.sh create mode 100644 tests/test_artifacts.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1115f7e..8de21c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,15 @@ jobs: - name: Run repository checks run: pre-commit run --all-files --show-diff-on-failure + - name: Run artifact lock negative tests + run: python -m unittest discover -s tests -p 'test_*.py' -v + + - name: Validate committed artifact locks + run: | + python scripts/artifacts.py validate-inputs artifacts/lock-inputs.json + python scripts/artifacts.py validate-lock artifacts/locks/amd64.json + python scripts/artifacts.py validate-lock artifacts/locks/arm64.json + - name: Audit GitHub Actions security uses: zizmorcore/zizmor-action@70fb788f84895a7701f5643d103d587e460b5c99 # v0.6.3 with: @@ -97,25 +106,30 @@ jobs: with: persist-credentials: false - - name: Set up Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 - - name: Confirm native runner architecture env: EXPECTED_MACHINE: ${{ matrix.machine }} run: test "$(uname -m)" = "${EXPECTED_MACHINE}" - - name: Build test image - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 - with: - context: . - file: Containerfile - platforms: ${{ matrix.platform }} - load: true - push: false - tags: ${{ env.TEST_IMAGE }} - cache-from: type=gha,scope=image-${{ matrix.architecture }} - cache-to: type=gha,mode=max,scope=image-${{ matrix.architecture }} + - name: Acquire, verify, and build from the locked bundle + env: + CONTAINER_RUNTIME: docker + IMAGE: ${{ env.TEST_IMAGE }} + run: bash scripts/build-offline.sh + + - name: Prove acquisition material is absent from the final image + run: | + test -z "$(docker history --no-trunc --format '{{.CreatedBy}}' "${TEST_IMAGE}" | grep -E 'https?://|RPM-GPG-KEY|/tmp/artifacts' || true)" + docker run --rm --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' + test ! -e /etc/dnf + test ! -e /etc/pki/entitlement + test ! -e /etc/pki/rpm-gpg + test ! -e /etc/rhsm + test ! -e /etc/yum.repos.d + test ! -e /var/cache/dnf + test ! -e /var/cache/yum + test -z "$(find / -xdev -type f \( -name "*RPM-GPG-KEY*" -o -name "*.repo" \) -print -quit)" + ' - name: Confirm loaded image architecture env: diff --git a/.github/workflows/bootstrap-package-2.yml b/.github/workflows/update-locks.yml similarity index 71% rename from .github/workflows/bootstrap-package-2.yml rename to .github/workflows/update-locks.yml index 0499dfd..d2b249b 100644 --- a/.github/workflows/bootstrap-package-2.yml +++ b/.github/workflows/update-locks.yml @@ -1,16 +1,14 @@ -name: Bootstrap Package 2 locks +name: Propose artifact lock update on: - push: - branches: - - feat/artifact-locks + workflow_dispatch: permissions: contents: read jobs: resolve: - name: resolve (${{ matrix.architecture }}) + name: resolve candidate (${{ matrix.architecture }}) strategy: fail-fast: false matrix: @@ -39,7 +37,7 @@ jobs: python scripts/artifacts.py acquire-inputs --inputs artifacts/lock-inputs.json --architecture "${ARCHITECTURE}" - --output bootstrap-inputs + --output resolution-inputs - name: Resolve and inspect the complete RPM closure env: @@ -50,28 +48,27 @@ jobs: docker run --rm --platform "${PLATFORM}" --volume "${PWD}:/work" --workdir /work "${UBI_MINIMAL}" bash scripts/resolve-lock.sh - "${ARCHITECTURE}" /work/bootstrap-inputs /work/bootstrap-output + "${ARCHITECTURE}" /work/resolution-inputs /work/resolution-output - - name: Render and validate lock + - name: Render and validate candidate lock env: ARCHITECTURE: ${{ matrix.architecture }} run: | python scripts/render-lock.py \ --inputs artifacts/lock-inputs.json \ --architecture "${ARCHITECTURE}" \ - --binary-inventory bootstrap-output/binary-inventory.tsv \ - --source-inventory bootstrap-output/source-inventory.tsv \ + --binary-inventory resolution-output/binary-inventory.tsv \ + --source-inventory resolution-output/source-inventory.tsv \ --output "${ARCHITECTURE}.lock.json" - python scripts/artifacts.py validate-lock \ - "${ARCHITECTURE}.lock.json" + python scripts/artifacts.py validate-lock "${ARCHITECTURE}.lock.json" - - name: Retain reviewed lock candidate + - name: Retain candidate for maintainer review uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: artifact-lock-${{ matrix.architecture }} + name: artifact-lock-candidate-${{ matrix.architecture }} path: | ${{ matrix.architecture }}.lock.json - bootstrap-output/binary-inventory.tsv - bootstrap-output/source-inventory.tsv + resolution-output/binary-inventory.tsv + resolution-output/source-inventory.tsv if-no-files-found: error - retention-days: 2 + retention-days: 7 diff --git a/.gitignore b/.gitignore index 1c271fd..5c94931 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ cosign.bundle .venv/ __pycache__/ .pytest_cache/ +.artifact-bundle/ # Local database and secret material data/ diff --git a/Containerfile b/Containerfile index b7166e3..355cc9e 100644 --- a/Containerfile +++ b/Containerfile @@ -3,82 +3,53 @@ ARG UBI_MINIMAL_IMAGE="registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93" ARG UBI_MICRO_IMAGE="registry.access.redhat.com/ubi9/ubi-micro:9.8@sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6" -FROM scratch AS pgdg-artifacts-amd64 - -ADD --checksum=sha256:ae57ba32d87fa3c311da9545bc85682ae04dc41cfbabf60d7f6c185099604f8a \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-18.6-1PGDG.rhel9.8.x86_64.rpm /postgresql18.rpm -ADD --checksum=sha256:7a4d55c02b8bab1b359aa25ce53d81db77cd39026a980dd8f0210031a5c31654 \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-libs-18.6-1PGDG.rhel9.8.x86_64.rpm /postgresql18-libs.rpm -ADD --checksum=sha256:f7f1915d63756f6a37f3f2e5cc84d03893d0d7a55dab8ac350871bd1c48a0754 \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-server-18.6-1PGDG.rhel9.8.x86_64.rpm /postgresql18-server.rpm - -FROM scratch AS pgdg-artifacts-arm64 - -ADD --checksum=sha256:3ec399a4d57b43cbba03f610adc4a4c6daaea0dc8b4f3d73175b1dedf7e2bddf \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-18.6-1PGDG.rhel9.8.aarch64.rpm /postgresql18.rpm -ADD --checksum=sha256:662bac810d50ece9d32f7ab6960f01e8e1416cc0a0634a4ea7f7ec8ea744146b \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-libs-18.6-1PGDG.rhel9.8.aarch64.rpm /postgresql18-libs.rpm -ADD --checksum=sha256:761001b6e560041f2f6f0d7abe9e57b30a98a2c039b81682d77969928a366add \ - https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-server-18.6-1PGDG.rhel9.8.aarch64.rpm /postgresql18-server.rpm - -ARG TARGETARCH -# The selected scratch stage contains checksum-pinned artifacts only. -# hadolint ignore=DL3006 -FROM pgdg-artifacts-${TARGETARCH} AS pgdg-artifacts - -FROM scratch AS pgdg-key - -ADD --checksum=sha256:a70c9527426017d00fa4e6f9d2941d515357a27a7be82e155248ece53bbe5453 \ - https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL /PGDG-RPM-GPG-KEY-RHEL -ADD --checksum=sha256:cc506fa92aa97e8e58f88551a2ec99a61d9d603f7f2c1ae0c06191f58c29979f \ - https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-AARCH64-RHEL /PGDG-RPM-GPG-KEY-AARCH64-RHEL +FROM ${UBI_MICRO_IMAGE} AS runtime-base FROM ${UBI_MINIMAL_IMAGE} AS builder -COPY --from=pgdg-artifacts / /tmp/pgdg/ -COPY --from=pgdg-key /PGDG-RPM-GPG-KEY-RHEL /PGDG-RPM-GPG-KEY-AARCH64-RHEL /tmp/pgdg/ - -# PostgreSQL artifacts and their signing key are checksum-pinned above. RPM -# signatures are then verified before DNF resolves only their UBI dependencies. -# The first release must also lock that dependency closure and assemble without -# network access as defined in docs/ROADMAP.md. -# hadolint ignore=DL3041 -RUN microdnf install -y dnf \ - && rpm --import \ - /tmp/pgdg/PGDG-RPM-GPG-KEY-RHEL \ - /tmp/pgdg/PGDG-RPM-GPG-KEY-AARCH64-RHEL \ - && rpm --checksig /tmp/pgdg/*.rpm \ +ARG TARGETARCH +ARG ARTIFACT_LOCK_SHA256 +COPY .artifact-bundle/${TARGETARCH}/ /tmp/artifacts/ +COPY --chmod=0755 scripts/verify-rpm-bundle.sh /usr/local/bin/verify-rpm-bundle +COPY --from=runtime-base / /final/ + +# The bundle is acquired and hash/fingerprint verified before this build. The +# build rechecks its selected lock, exact RPM metadata, and signatures without +# contacting repositories or resolving dependencies. +RUN test -n "${ARTIFACT_LOCK_SHA256}" \ + && test "$(cat /tmp/artifacts/LOCK-SHA256)" = "${ARTIFACT_LOCK_SHA256}" \ + && verify-rpm-bundle /tmp/artifacts \ && mkdir -p /runtime \ && rpm --root /runtime --initdb \ - && rpm --root /runtime --import \ - /tmp/pgdg/PGDG-RPM-GPG-KEY-RHEL \ - /tmp/pgdg/PGDG-RPM-GPG-KEY-AARCH64-RHEL \ - && dnf install -y \ - --installroot=/runtime \ - --releasever=9 \ - --setopt=localpkg_gpgcheck=1 \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - /tmp/pgdg/postgresql18.rpm \ - /tmp/pgdg/postgresql18-libs.rpm \ - /tmp/pgdg/postgresql18-server.rpm \ - ca-certificates nss_wrapper tzdata \ - && dnf clean all \ - && microdnf clean all \ + && rpm --root /runtime --import /tmp/artifacts/keys/* \ + && rpm --root /runtime --install /tmp/artifacts/rpms/*.rpm \ + && rpm --root /runtime --query 'gpg-pubkey*' \ + --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' > /tmp/imported-keys \ + && while IFS= read -r key; do \ + rpm --root /runtime --erase "${key}"; \ + done < /tmp/imported-keys \ + && cp -a /runtime/. /final/ \ && rm -rf \ - /runtime/run/* \ - /runtime/tmp/* \ - /runtime/var/cache/dnf \ - /runtime/var/log/* \ - /runtime/var/tmp/* \ - && mkdir -p /runtime/var/lib/pgsql \ - && chown -R 26:0 /runtime/var/lib/pgsql \ - && chmod 2775 /runtime/var/lib/pgsql - -FROM ${UBI_MICRO_IMAGE} + /final/etc/dnf \ + /final/etc/pki/entitlement \ + /final/etc/pki/rpm-gpg \ + /final/etc/rhsm \ + /final/etc/yum.repos.d \ + /final/run/* \ + /final/tmp/* \ + /final/var/cache/dnf \ + /final/var/cache/yum \ + /final/var/log/* \ + /final/var/tmp/* \ + && mkdir -p /final/var/lib/pgsql \ + && chown -R 26:0 /final/var/lib/pgsql \ + && chmod 2775 /final/var/lib/pgsql + +FROM scratch ARG POSTGRESQL_VERSION="18.6" ARG POSTGRESQL_RPM_VERSION="18.6-1PGDG.rhel9.8" +ARG ARTIFACT_LOCK_SHA256 LABEL org.opencontainers.image.title="PostgreSQL on Red Hat UBI 9" \ org.opencontainers.image.description="A security-oriented, rootless PostgreSQL image built on Red Hat UBI 9 Micro" \ @@ -87,9 +58,10 @@ LABEL org.opencontainers.image.title="PostgreSQL on Red Hat UBI 9" \ org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.vendor="Datopsis" \ org.opencontainers.image.version="${POSTGRESQL_VERSION}" \ - io.datopsis.postgresql.rpm-version="${POSTGRESQL_RPM_VERSION}" + io.datopsis.postgresql.rpm-version="${POSTGRESQL_RPM_VERSION}" \ + io.datopsis.artifact-lock.sha256="${ARTIFACT_LOCK_SHA256}" -COPY --from=builder /runtime/ / +COPY --from=builder /final/ / COPY --chown=0:0 --chmod=0755 container/entrypoint.sh /usr/local/bin/postgresql-entrypoint ENV LANG="C.UTF-8" \ diff --git a/artifacts/locks/amd64.json b/artifacts/locks/amd64.json new file mode 100644 index 0000000..e6d852d --- /dev/null +++ b/artifacts/locks/amd64.json @@ -0,0 +1,3247 @@ +{ + "schema_version": 1, + "bundle_version": 1, + "architecture": "amd64", + "rpm_architecture": "x86_64", + "generated_at": "2026-09-11T13:33:47Z", + "postgresql_version": "18.6", + "postgresql_rpm_version": "18.6-1PGDG.rhel9.8", + "base_images": { + "builder": { + "reference": "registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93", + "digest": "sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93", + "platform": "linux/amd64" + }, + "runtime": { + "reference": "registry.access.redhat.com/ubi9/ubi-micro:9.8@sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6", + "digest": "sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6", + "platform": "linux/amd64" + } + }, + "signing_keys": [ + { + "fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "id": "pgdg-aarch64-rhel", + "sha256": "cc506fa92aa97e8e58f88551a2ec99a61d9d603f7f2c1ae0c06191f58c29979f", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-AARCH64-RHEL", + "filename": "PGDG-RPM-GPG-KEY-AARCH64-RHEL" + }, + { + "fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "id": "pgdg-rhel", + "sha256": "a70c9527426017d00fa4e6f9d2941d515357a27a7be82e155248ece53bbe5453", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL", + "filename": "PGDG-RPM-GPG-KEY-RHEL" + }, + { + "fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "id": "redhat-release", + "sha256": "d4b2543626bee31d9438d4a31731aae712c072893c7aed8854f16c42fafc742b", + "url": "https://security.access.redhat.com/data/fd431d51.txt", + "filename": "fd431d51.txt" + }, + { + "fingerprint": "7E4624258C406535D56D6F135054E4A45A6340B3", + "id": "redhat-release-2", + "sha256": "d37ed8bd8bddb29983a38c6fde4e59d329e6a7c2ecbc702e929f0d05ae5eba59", + "url": "https://security.access.redhat.com/data/5a6340b3.txt", + "filename": "5a6340b3.txt" + } + ], + "packages": [ + { + "name": "acl", + "epoch": 0, + "version": "2.4.0", + "release": "1.el9_8", + "architecture": "x86_64", + "nevra": "acl-0:2.4.0-1.el9_8.x86_64", + "filename": "acl-2.4.0-1.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/a/acl-2.4.0-1.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 85269, + "sha256": "611da2c85401a2f26dba165c0be27b2e62fa71ceb5c392c8f5a9d30c31238d5b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "acl-2.4.0-1.el9_8.src.rpm" + }, + { + "name": "alternatives", + "epoch": 0, + "version": "1.24", + "release": "2.el9", + "architecture": "x86_64", + "nevra": "alternatives-0:1.24-2.el9.x86_64", + "filename": "alternatives-1.24-2.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/a/alternatives-1.24-2.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 42874, + "sha256": "1c520b9bf7b592d936bb347a5107702e51678e160b88ecfbba6a30e35e47d24e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "chkconfig-1.24-2.el9.src.rpm" + }, + { + "name": "audit-libs", + "epoch": 0, + "version": "3.1.5", + "release": "8.el9", + "architecture": "x86_64", + "nevra": "audit-libs-0:3.1.5-8.el9.x86_64", + "filename": "audit-libs-3.1.5-8.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/a/audit-libs-3.1.5-8.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 130600, + "sha256": "637ac2995ce1a6c222772b60f6bc6e6f2829355d2c88dfb1262fb76146d985ae", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "audit-3.1.5-8.el9.src.rpm" + }, + { + "name": "basesystem", + "epoch": 0, + "version": "11", + "release": "13.el9", + "architecture": "noarch", + "nevra": "basesystem-0:11-13.el9.noarch", + "filename": "basesystem-11-13.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/b/basesystem-11-13.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 8229, + "sha256": "f498b0813fa1a825d550e8e3a9e42255eabfa18e6fc96adfc6cc8fa7e16dd513", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "basesystem-11-13.el9.src.rpm" + }, + { + "name": "bash", + "epoch": 0, + "version": "5.1.8", + "release": "9.el9", + "architecture": "x86_64", + "nevra": "bash-0:5.1.8-9.el9.x86_64", + "filename": "bash-5.1.8-9.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/b/bash-5.1.8-9.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1769540, + "sha256": "d3adf8b09aa0bf935c67aa12444e0ee02f70a82c2682bfb2b02bda0a989bb806", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "bash-5.1.8-9.el9.src.rpm" + }, + { + "name": "bzip2-libs", + "epoch": 0, + "version": "1.0.8", + "release": "11.el9", + "architecture": "x86_64", + "nevra": "bzip2-libs-0:1.0.8-11.el9.x86_64", + "filename": "bzip2-libs-1.0.8-11.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/b/bzip2-libs-1.0.8-11.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 46333, + "sha256": "948f763ed17672b8dd83356541e27a53ce97c6df38339c4416a188d452ca4d1e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "bzip2-1.0.8-11.el9.src.rpm" + }, + { + "name": "ca-certificates", + "epoch": 0, + "version": "2025.2.80_v9.0.305", + "release": "91.el9", + "architecture": "noarch", + "nevra": "ca-certificates-0:2025.2.80_v9.0.305-91.el9.noarch", + "filename": "ca-certificates-2025.2.80_v9.0.305-91.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/ca-certificates-2025.2.80_v9.0.305-91.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1072208, + "sha256": "0554bf65d573950e7d550a07bf7d0b3def85ca3b45a7fbde4cce7cadd9a476a7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm" + }, + { + "name": "cmake-filesystem", + "epoch": 0, + "version": "3.31.8", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "cmake-filesystem-0:3.31.8-3.el9.x86_64", + "filename": "cmake-filesystem-3.31.8-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/c/cmake-filesystem-3.31.8-3.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 19309, + "sha256": "b5ea81385a9e4e6a1ae2bb1175cd774af82f9c570a37008cde873ead466ba5f7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cmake-3.31.8-3.el9.src.rpm" + }, + { + "name": "coreutils", + "epoch": 0, + "version": "8.32", + "release": "41.el9_8.1", + "architecture": "x86_64", + "nevra": "coreutils-0:8.32-41.el9_8.1.x86_64", + "filename": "coreutils-8.32-41.el9_8.1.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/coreutils-8.32-41.el9_8.1.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1222083, + "sha256": "374257c4cd69107333a7f524dd99579f3ea3ab842b66168eade0a3475fb6eea1", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "coreutils-8.32-41.el9_8.1.src.rpm" + }, + { + "name": "coreutils-common", + "epoch": 0, + "version": "8.32", + "release": "41.el9_8.1", + "architecture": "x86_64", + "nevra": "coreutils-common-0:8.32-41.el9_8.1.x86_64", + "filename": "coreutils-common-8.32-41.el9_8.1.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/coreutils-common-8.32-41.el9_8.1.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2113503, + "sha256": "41f69eb8b2087feaa98d0228fb933b6fe8af20a4bf371cfef51e11cbd1f84b4e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "coreutils-8.32-41.el9_8.1.src.rpm" + }, + { + "name": "cracklib", + "epoch": 0, + "version": "2.9.6", + "release": "28.el9", + "architecture": "x86_64", + "nevra": "cracklib-0:2.9.6-28.el9.x86_64", + "filename": "cracklib-2.9.6-28.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-2.9.6-28.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 102444, + "sha256": "3b415381d4bd307686268ec42f646c7770f6a815de73a40a88aab7a7061b30a9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cracklib-2.9.6-28.el9.src.rpm" + }, + { + "name": "cracklib-dicts", + "epoch": 0, + "version": "2.9.6", + "release": "28.el9", + "architecture": "x86_64", + "nevra": "cracklib-dicts-0:2.9.6-28.el9.x86_64", + "filename": "cracklib-dicts-2.9.6-28.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 3829431, + "sha256": "61c11d3c23b62016b9939f917bb7f7e03cba324eb4ad35b375387ce9f18e25a1", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cracklib-2.9.6-28.el9.src.rpm" + }, + { + "name": "crypto-policies", + "epoch": 0, + "version": "20260224", + "release": "1.gitea0f072.el9_8", + "architecture": "noarch", + "nevra": "crypto-policies-0:20260224-1.gitea0f072.el9_8.noarch", + "filename": "crypto-policies-20260224-1.gitea0f072.el9_8.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/crypto-policies-20260224-1.gitea0f072.el9_8.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 98707, + "sha256": "a9ad86b8df75a7c9c29c6f6dd4b8f78cfa1f42b492eff0d11b82c457d37a7f9f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm" + }, + { + "name": "cyrus-sasl-lib", + "epoch": 0, + "version": "2.1.27", + "release": "22.el9", + "architecture": "x86_64", + "nevra": "cyrus-sasl-lib-0:2.1.27-22.el9.x86_64", + "filename": "cyrus-sasl-lib-2.1.27-22.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/c/cyrus-sasl-lib-2.1.27-22.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 786202, + "sha256": "a85ebdee7a9a49990f87e4709c368212e6a54ecf18c88a3dd54d823a82443898", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cyrus-sasl-2.1.27-22.el9.src.rpm" + }, + { + "name": "dbus", + "epoch": 1, + "version": "1.12.20", + "release": "8.el9", + "architecture": "x86_64", + "nevra": "dbus-1:1.12.20-8.el9.x86_64", + "filename": "dbus-1.12.20-8.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/d/dbus-1.12.20-8.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 8073, + "sha256": "96b1daa4de0a635ab760a8431fb005022bb7cb48d2d1d3ec9a8adb1798c0e10e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-1.12.20-8.el9.src.rpm" + }, + { + "name": "dbus-broker", + "epoch": 0, + "version": "28", + "release": "9.el9_8", + "architecture": "x86_64", + "nevra": "dbus-broker-0:28-9.el9_8.x86_64", + "filename": "dbus-broker-28-9.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/d/dbus-broker-28-9.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 180434, + "sha256": "2c3b853f8548394af581f487d3682e3e6a4fd27bb451088ce278c7f00af454db", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-broker-28-9.el9_8.src.rpm" + }, + { + "name": "dbus-common", + "epoch": 1, + "version": "1.12.20", + "release": "8.el9", + "architecture": "noarch", + "nevra": "dbus-common-1:1.12.20-8.el9.noarch", + "filename": "dbus-common-1.12.20-8.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/d/dbus-common-1.12.20-8.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 18551, + "sha256": "298f1cada3cbcef6713098b9925694a0e30e8566f7a5bdbd72384520cf6c8360", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-1.12.20-8.el9.src.rpm" + }, + { + "name": "expat", + "epoch": 0, + "version": "2.5.0", + "release": "6.el9_8.3", + "architecture": "x86_64", + "nevra": "expat-0:2.5.0-6.el9_8.3.x86_64", + "filename": "expat-2.5.0-6.el9_8.3.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 128577, + "sha256": "3c9c96529f94f84fc19c8039d8852269e1085d16b5af2933f44ff286dec66a35", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "expat-2.5.0-6.el9_8.3.src.rpm" + }, + { + "name": "filesystem", + "epoch": 0, + "version": "3.16", + "release": "5.el9", + "architecture": "x86_64", + "nevra": "filesystem-0:3.16-5.el9.x86_64", + "filename": "filesystem-3.16-5.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/f/filesystem-3.16-5.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 5003807, + "sha256": "9567592e6e32a9ebd45584cc4feb5d00812f143fcb2d8cd8b1d95108f4f66a2d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "filesystem-3.16-5.el9.src.rpm" + }, + { + "name": "findutils", + "epoch": 1, + "version": "4.8.0", + "release": "7.el9", + "architecture": "x86_64", + "nevra": "findutils-1:4.8.0-7.el9.x86_64", + "filename": "findutils-4.8.0-7.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/f/findutils-4.8.0-7.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 563531, + "sha256": "a6328afea0a11647b7fb5c48436f0af6c795407bac0650676d3196dd47070de6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "findutils-4.8.0-7.el9.src.rpm" + }, + { + "name": "gawk", + "epoch": 0, + "version": "5.1.0", + "release": "6.el9", + "architecture": "x86_64", + "nevra": "gawk-0:5.1.0-6.el9.x86_64", + "filename": "gawk-5.1.0-6.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/gawk-5.1.0-6.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1045534, + "sha256": "99fda6725a2c668bae29fbab74d1b347e074f4e8c8ed18d656cb928fb6fc92b7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gawk-5.1.0-6.el9.src.rpm" + }, + { + "name": "gdbm-libs", + "epoch": 1, + "version": "1.23", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "gdbm-libs-1:1.23-1.el9.x86_64", + "filename": "gdbm-libs-1.23-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 60152, + "sha256": "c8b8346a98d921206666ce740a3647a52ad7a87c2d01d73166165b3e9a789a6c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gdbm-1.23-1.el9.src.rpm" + }, + { + "name": "glibc", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "x86_64", + "nevra": "glibc-0:2.34-275.el9_8.x86_64", + "filename": "glibc-2.34-275.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/glibc-2.34-275.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2083064, + "sha256": "7d2d420b97c05c09ee1e9bd881cb0725fe8d89688b933f411f278cb23210c65d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "glibc-common", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "x86_64", + "nevra": "glibc-common-0:2.34-275.el9_8.x86_64", + "filename": "glibc-common-2.34-275.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/glibc-common-2.34-275.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 321585, + "sha256": "f23581b888783f576bd3a55503618a48f74f468fcfd4837bbd7a2d00fe7f3530", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "glibc-minimal-langpack", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "x86_64", + "nevra": "glibc-minimal-langpack-0:2.34-275.el9_8.x86_64", + "filename": "glibc-minimal-langpack-2.34-275.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/glibc-minimal-langpack-2.34-275.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30913, + "sha256": "6cc48d78bf2ceacfa5b58633b648c564b66505f4677adea8eb663fe90acd76f2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "gmp", + "epoch": 1, + "version": "6.2.0", + "release": "13.el9", + "architecture": "x86_64", + "nevra": "gmp-1:6.2.0-13.el9.x86_64", + "filename": "gmp-6.2.0-13.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/gmp-6.2.0-13.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 326840, + "sha256": "d4529445e30b7eb9a8225b0539f70d26d585d7fe306296f948ea73114d1c171f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gmp-6.2.0-13.el9.src.rpm" + }, + { + "name": "grep", + "epoch": 0, + "version": "3.6", + "release": "5.el9", + "architecture": "x86_64", + "nevra": "grep-0:3.6-5.el9.x86_64", + "filename": "grep-3.6-5.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/grep-3.6-5.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 279174, + "sha256": "5556895ff1817066ca71b50785615e944b0fcc7e1c94c983087c7c691819623d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "grep-3.6-5.el9.src.rpm" + }, + { + "name": "groff-base", + "epoch": 0, + "version": "1.22.4", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "groff-base-0:1.22.4-10.el9.x86_64", + "filename": "groff-base-1.22.4-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/groff-base-1.22.4-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1133828, + "sha256": "4d8ff13569b3b231b3fb847e9e22615c6e08215d1f2c0c78eac2e345b9efd394", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "groff-1.22.4-10.el9.src.rpm" + }, + { + "name": "gzip", + "epoch": 0, + "version": "1.12", + "release": "2.el9_8", + "architecture": "x86_64", + "nevra": "gzip-0:1.12-2.el9_8.x86_64", + "filename": "gzip-1.12-2.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/g/gzip-1.12-2.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 172571, + "sha256": "a87bdcce45011f232758c01bd99c564b5f6b549d391646cc573a132d22604b85", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gzip-1.12-2.el9_8.src.rpm" + }, + { + "name": "keyutils-libs", + "epoch": 0, + "version": "1.6.3", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "keyutils-libs-0:1.6.3-1.el9.x86_64", + "filename": "keyutils-libs-1.6.3-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/k/keyutils-libs-1.6.3-1.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 34363, + "sha256": "96d75824948387a884d206865db534cd3d46f32422efcb020c20060b59edb27c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "keyutils-1.6.3-1.el9.src.rpm" + }, + { + "name": "kmod-libs", + "epoch": 0, + "version": "28", + "release": "11.el9", + "architecture": "x86_64", + "nevra": "kmod-libs-0:28-11.el9.x86_64", + "filename": "kmod-libs-28-11.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/k/kmod-libs-28-11.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 63619, + "sha256": "f296bc24a1b8ba6c40ed73ba736be97ed78e4124b6dbdd8a0a25a9683d4ff1ce", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "kmod-28-11.el9.src.rpm" + }, + { + "name": "krb5-libs", + "epoch": 0, + "version": "1.21.1", + "release": "10.el9_8", + "architecture": "x86_64", + "nevra": "krb5-libs-0:1.21.1-10.el9_8.x86_64", + "filename": "krb5-libs-1.21.1-10.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/k/krb5-libs-1.21.1-10.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 790743, + "sha256": "8906be9f2d414c5f4e1218db0c94955c2b3394b43a04b7dbcc2ef66c4340ebc6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "krb5-1.21.1-10.el9_8.src.rpm" + }, + { + "name": "libacl", + "epoch": 0, + "version": "2.4.0", + "release": "1.el9_8", + "architecture": "x86_64", + "nevra": "libacl-0:2.4.0-1.el9_8.x86_64", + "filename": "libacl-2.4.0-1.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libacl-2.4.0-1.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 31657, + "sha256": "a81fb7a4d7c946e9bd886ee3c471a4b5040dedbb8ffb2a388120b2094be93cc8", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "acl-2.4.0-1.el9_8.src.rpm" + }, + { + "name": "libattr", + "epoch": 0, + "version": "2.6.0", + "release": "1.el9_8", + "architecture": "x86_64", + "nevra": "libattr-0:2.6.0-1.el9_8.x86_64", + "filename": "libattr-2.6.0-1.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libattr-2.6.0-1.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 23752, + "sha256": "9e37537f690c748f7f05faa80966072f118ec722e38ef332fe19cf22b087349f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "attr-2.6.0-1.el9_8.src.rpm" + }, + { + "name": "libblkid", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "libblkid-0:2.37.4-25.el9.x86_64", + "filename": "libblkid-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libblkid-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 114192, + "sha256": "a858400abe83a7955ae509c920f835a950ea2cf1156916823c595a23ba46d536", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libcap", + "epoch": 0, + "version": "2.48", + "release": "10.el9_8.1", + "architecture": "x86_64", + "nevra": "libcap-0:2.48-10.el9_8.1.x86_64", + "filename": "libcap-2.48-10.el9_8.1.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libcap-2.48-10.el9_8.1.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 78928, + "sha256": "d4805439b10fa551b7535cf30ca28d4d5862132c9c429b2b31221bea7f43263a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libcap-2.48-10.el9_8.1.src.rpm" + }, + { + "name": "libcap-ng", + "epoch": 0, + "version": "0.8.2", + "release": "7.el9", + "architecture": "x86_64", + "nevra": "libcap-ng-0:0.8.2-7.el9.x86_64", + "filename": "libcap-ng-0.8.2-7.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libcap-ng-0.8.2-7.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 36752, + "sha256": "ebddfc188d1ddbb0d6a238583cbc02dcb9fc0bd063a850b22d48980899976628", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libcap-ng-0.8.2-7.el9.src.rpm" + }, + { + "name": "libcom_err", + "epoch": 0, + "version": "1.46.5", + "release": "8.el9", + "architecture": "x86_64", + "nevra": "libcom_err-0:1.46.5-8.el9.x86_64", + "filename": "libcom_err-1.46.5-8.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libcom_err-1.46.5-8.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 26980, + "sha256": "b7593ee2d841c69573d8ed553b7416ef727b2c77c0473416a5dadf4b567bf547", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "e2fsprogs-1.46.5-8.el9.src.rpm" + }, + { + "name": "libdb", + "epoch": 0, + "version": "5.3.28", + "release": "57.el9_6", + "architecture": "x86_64", + "nevra": "libdb-0:5.3.28-57.el9_6.x86_64", + "filename": "libdb-5.3.28-57.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 755192, + "sha256": "3246e76f197e2b60eb470b9b55d3e0dda2301b029f295fed9c38ff70b87c5b6b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libdb-5.3.28-57.el9_6.src.rpm" + }, + { + "name": "libeconf", + "epoch": 0, + "version": "0.4.1", + "release": "7.el9_8", + "architecture": "x86_64", + "nevra": "libeconf-0:0.4.1-7.el9_8.x86_64", + "filename": "libeconf-0.4.1-7.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 33179, + "sha256": "a570c5baaedeb1445bc2e4f3930b0a709411bbefbdbf463c3e006cbfc7018894", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libeconf-0.4.1-7.el9_8.src.rpm" + }, + { + "name": "libevent", + "epoch": 0, + "version": "2.1.12", + "release": "8.el9_4", + "architecture": "x86_64", + "nevra": "libevent-0:2.1.12-8.el9_4.x86_64", + "filename": "libevent-2.1.12-8.el9_4.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libevent-2.1.12-8.el9_4.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 272588, + "sha256": "072426910a254b797bbe977b3397ab90513911d020580a0135179f700a48df44", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libevent-2.1.12-8.el9_4.src.rpm" + }, + { + "name": "libfdisk", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "libfdisk-0:2.37.4-25.el9.x86_64", + "filename": "libfdisk-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 161769, + "sha256": "1b861f267752e718ce696a80dcc06ef1dde8e9aa73fa2abed3775626d719c124", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libffi", + "epoch": 0, + "version": "3.4.2", + "release": "8.el9", + "architecture": "x86_64", + "nevra": "libffi-0:3.4.2-8.el9.x86_64", + "filename": "libffi-3.4.2-8.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libffi-3.4.2-8.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 40619, + "sha256": "dde0012a94c6f3825e605b095b15767d89c2b87a5da097348310d7e87721c645", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libffi-3.4.2-8.el9.src.rpm" + }, + { + "name": "libgcc", + "epoch": 0, + "version": "11.5.0", + "release": "14.el9", + "architecture": "x86_64", + "nevra": "libgcc-0:11.5.0-14.el9.x86_64", + "filename": "libgcc-11.5.0-14.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libgcc-11.5.0-14.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 87280, + "sha256": "77c66827ffc14df2f43612b26128b1fd58d5c9597d4d4e564aa239b161272872", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gcc-11.5.0-14.el9.src.rpm" + }, + { + "name": "libgcrypt", + "epoch": 0, + "version": "1.10.0", + "release": "13.el9_8", + "architecture": "x86_64", + "nevra": "libgcrypt-0:1.10.0-13.el9_8.x86_64", + "filename": "libgcrypt-1.10.0-13.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libgcrypt-1.10.0-13.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 523829, + "sha256": "c07cd9f613809195b8691d28fd2f3bff55b2a83b9c1cdf4a32c681e0e32dfafb", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libgcrypt-1.10.0-13.el9_8.src.rpm" + }, + { + "name": "libgpg-error", + "epoch": 0, + "version": "1.42", + "release": "5.el9", + "architecture": "x86_64", + "nevra": "libgpg-error-0:1.42-5.el9.x86_64", + "filename": "libgpg-error-1.42-5.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libgpg-error-1.42-5.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 225603, + "sha256": "8248e20d7a253aa9c0dc7dc3d56b42e1def4fd5753ce8e8b9e980aa664fc9068", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libgpg-error-1.42-5.el9.src.rpm" + }, + { + "name": "libicu", + "epoch": 0, + "version": "67.1", + "release": "10.el9_6", + "architecture": "x86_64", + "nevra": "libicu-0:67.1-10.el9_6.x86_64", + "filename": "libicu-67.1-10.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libicu-67.1-10.el9_6.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 10037375, + "sha256": "1ea6ee313827c1f5d1a73ea84c2f72b3f6567bf821a019efbd6caee00e3d5543", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "icu-67.1-10.el9_6.src.rpm" + }, + { + "name": "libmount", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "libmount-0:2.37.4-25.el9.x86_64", + "filename": "libmount-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libmount-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 142467, + "sha256": "a9a2022eb9e39301bfcd3273573a108486b2b315c89247f147870016b2e9222c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libpkgconf", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "libpkgconf-0:1.7.3-10.el9.x86_64", + "filename": "libpkgconf-1.7.3-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libpkgconf-1.7.3-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 38387, + "sha256": "4feae5941b73640bd86b8d506a657cac5b770043db1464fbcd207721b2159dda", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "libpwquality", + "epoch": 0, + "version": "1.4.4", + "release": "8.el9", + "architecture": "x86_64", + "nevra": "libpwquality-0:1.4.4-8.el9.x86_64", + "filename": "libpwquality-1.4.4-8.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libpwquality-1.4.4-8.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 126104, + "sha256": "14b7ff2f7fdaf8ebec90261f4619ea7f7c3564c4de8483666de7ed4b1f49b66f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libpwquality-1.4.4-8.el9.src.rpm" + }, + { + "name": "libseccomp", + "epoch": 0, + "version": "2.5.2", + "release": "2.el9", + "architecture": "x86_64", + "nevra": "libseccomp-0:2.5.2-2.el9.x86_64", + "filename": "libseccomp-2.5.2-2.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libseccomp-2.5.2-2.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 76200, + "sha256": "e2015f60dbe784330d5df43f3f05c68c307694600a636a1706bf86527cc82e82", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libseccomp-2.5.2-2.el9.src.rpm" + }, + { + "name": "libselinux", + "epoch": 0, + "version": "3.6", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "libselinux-0:3.6-3.el9.x86_64", + "filename": "libselinux-3.6-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libselinux-3.6-3.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 89722, + "sha256": "ce1cc63a7212c39f5f2a35f719ee38d6418cf081ea78c9317f388d9f41e4a627", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libselinux-3.6-3.el9.src.rpm" + }, + { + "name": "libsemanage", + "epoch": 0, + "version": "3.6", + "release": "5.el9_6", + "architecture": "x86_64", + "nevra": "libsemanage-0:3.6-5.el9_6.x86_64", + "filename": "libsemanage-3.6-5.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libsemanage-3.6-5.el9_6.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 123449, + "sha256": "7ac29f46714cd762f18a52e9807fd1766b0cf9e0388aa3d9befaabf8785a01e3", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsemanage-3.6-5.el9_6.src.rpm" + }, + { + "name": "libsepol", + "epoch": 0, + "version": "3.6", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "libsepol-0:3.6-3.el9.x86_64", + "filename": "libsepol-3.6-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libsepol-3.6-3.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 338766, + "sha256": "b98984b2bf42203964cc979ac157df090c63b89a0f5c6560ede01965531c8ffd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsepol-3.6-3.el9.src.rpm" + }, + { + "name": "libsigsegv", + "epoch": 0, + "version": "2.13", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "libsigsegv-0:2.13-4.el9.x86_64", + "filename": "libsigsegv-2.13-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libsigsegv-2.13-4.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30681, + "sha256": "24005c62017797b612d047a2af83a218633b32302a787fabd22e52230db6adc1", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsigsegv-2.13-4.el9.src.rpm" + }, + { + "name": "libsmartcols", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "libsmartcols-0:2.37.4-25.el9.x86_64", + "filename": "libsmartcols-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libsmartcols-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 68692, + "sha256": "c1da912799780b89cd44db4acc318ea4a83adba0d8d99aad1b877879f40dbd48", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libstdc++", + "epoch": 0, + "version": "11.5.0", + "release": "14.el9", + "architecture": "x86_64", + "nevra": "libstdc++-0:11.5.0-14.el9.x86_64", + "filename": "libstdc++-11.5.0-14.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libstdc++-11.5.0-14.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 763021, + "sha256": "513df35338962e053052b9d52429e8a5f3d60dfe6b1757cd9faaf61d6abda955", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gcc-11.5.0-14.el9.src.rpm" + }, + { + "name": "libtasn1", + "epoch": 0, + "version": "4.16.0", + "release": "10.el9_8", + "architecture": "x86_64", + "nevra": "libtasn1-0:4.16.0-10.el9_8.x86_64", + "filename": "libtasn1-4.16.0-10.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libtasn1-4.16.0-10.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 81418, + "sha256": "f9473f322407f10205b0db98b89cf8f603e9c769e9977250734136df56cbb981", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libtasn1-4.16.0-10.el9_8.src.rpm" + }, + { + "name": "libtool-ltdl", + "epoch": 0, + "version": "2.4.6", + "release": "46.el9", + "architecture": "x86_64", + "nevra": "libtool-ltdl-0:2.4.6-46.el9.x86_64", + "filename": "libtool-ltdl-2.4.6-46.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/l/libtool-ltdl-2.4.6-46.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 38043, + "sha256": "44f7303229bdb4c2975f9829e3dd13dc7984e2cb53ef0f85baf894b39f605c38", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libtool-2.4.6-46.el9.src.rpm" + }, + { + "name": "liburing", + "epoch": 0, + "version": "2.12", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "liburing-0:2.12-1.el9.x86_64", + "filename": "liburing-2.12-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/l/liburing-2.12-1.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 43322, + "sha256": "54e8d74fbffb7ff58d19257f68ccf65cb41212715146a18c83d0756782bd1399", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "liburing-2.12-1.el9.src.rpm" + }, + { + "name": "libutempter", + "epoch": 0, + "version": "1.2.1", + "release": "6.el9", + "architecture": "x86_64", + "nevra": "libutempter-0:1.2.1-6.el9.x86_64", + "filename": "libutempter-1.2.1-6.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libutempter-1.2.1-6.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30354, + "sha256": "0f1df5e0d48c2ac9914bfffa7ed569cd58e42b17ba96bb3f7cf74d1e80de2597", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libutempter-1.2.1-6.el9.src.rpm" + }, + { + "name": "libuuid", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "libuuid-0:2.37.4-25.el9.x86_64", + "filename": "libuuid-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libuuid-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 32757, + "sha256": "5694aafca42c707f85af66bba11d102f7636ee17f586466b3ff80254e995ed7b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libverto", + "epoch": 0, + "version": "0.3.2", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "libverto-0:0.3.2-3.el9.x86_64", + "filename": "libverto-0.3.2-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libverto-0.3.2-3.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 25042, + "sha256": "7008029afd91af33ca17a22e6eb4ba792fd9b32bee8fb613c79c1527fa6f589a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libverto-0.3.2-3.el9.src.rpm" + }, + { + "name": "libxcrypt", + "epoch": 0, + "version": "4.4.18", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "libxcrypt-0:4.4.18-3.el9.x86_64", + "filename": "libxcrypt-4.4.18-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libxcrypt-4.4.18-3.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 122599, + "sha256": "a50bb26a28ee7e6379c86b5b91285299b71569fa87ea968d800a56090b7a179d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libxcrypt-4.4.18-3.el9.src.rpm" + }, + { + "name": "libxml2", + "epoch": 0, + "version": "2.9.13", + "release": "14.el9_8.4", + "architecture": "x86_64", + "nevra": "libxml2-0:2.9.13-14.el9_8.4.x86_64", + "filename": "libxml2-2.9.13-14.el9_8.4.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libxml2-2.9.13-14.el9_8.4.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 772646, + "sha256": "3b2b7f705584d2aa9dc1a110ef1b00dbefb3305285877a24a24605fcb9567eb0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libxml2-2.9.13-14.el9_8.4.src.rpm" + }, + { + "name": "libzstd", + "epoch": 0, + "version": "1.5.5", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "libzstd-0:1.5.5-1.el9.x86_64", + "filename": "libzstd-1.5.5-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libzstd-1.5.5-1.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 304135, + "sha256": "d8a149f0d8f217126642cc4b40199d631b940f7d227191cc2179f3158fd47f9e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "zstd-1.5.5-1.el9.src.rpm" + }, + { + "name": "lz4-libs", + "epoch": 0, + "version": "1.9.3", + "release": "5.el9", + "architecture": "x86_64", + "nevra": "lz4-libs-0:1.9.3-5.el9.x86_64", + "filename": "lz4-libs-1.9.3-5.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/lz4-libs-1.9.3-5.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 70922, + "sha256": "9658da838021711f687cf283368664984bfb1c8b9176897d7d477a724a11a731", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "lz4-1.9.3-5.el9.src.rpm" + }, + { + "name": "mpfr", + "epoch": 0, + "version": "4.1.0", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "mpfr-0:4.1.0-10.el9.x86_64", + "filename": "mpfr-4.1.0-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/m/mpfr-4.1.0-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 338130, + "sha256": "4adb12cda3b0e537ba5b22e7615288df751720d2e738bd182675d529cf1ead0c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "mpfr-4.1.0-10.el9.src.rpm" + }, + { + "name": "ncurses", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "x86_64", + "nevra": "ncurses-0:6.2-12.20210508.el9.x86_64", + "filename": "ncurses-6.2-12.20210508.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/n/ncurses-6.2-12.20210508.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 416252, + "sha256": "d2835ed9dbf6c4e1db0dfae027cc2a3615b62e4593c8c38eec7273c995b8ac39", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "ncurses-base", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "noarch", + "nevra": "ncurses-base-0:6.2-12.20210508.el9.noarch", + "filename": "ncurses-base-6.2-12.20210508.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/n/ncurses-base-6.2-12.20210508.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 97840, + "sha256": "d62dfd41f9688efa2cf1ceedb96084c63e297fbdcfd1e72bc6757c730092b60c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "ncurses-libs", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "x86_64", + "nevra": "ncurses-libs-0:6.2-12.20210508.el9.x86_64", + "filename": "ncurses-libs-6.2-12.20210508.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/n/ncurses-libs-6.2-12.20210508.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 336270, + "sha256": "f3e1f8e59c7116278aa19b6705a1443f6307d4d6fbdde75a23d2f5d60636cb16", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "nss_wrapper", + "epoch": 0, + "version": "1.1.13", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "nss_wrapper-0:1.1.13-1.el9.x86_64", + "filename": "nss_wrapper-1.1.13-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/n/nss_wrapper-1.1.13-1.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17064, + "sha256": "cfbc7a6401d85124ac6b912b63778ff449031a4bcf80f9d0e8c67982c62ad458", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "nss_wrapper-1.1.13-1.el9.src.rpm" + }, + { + "name": "nss_wrapper-libs", + "epoch": 0, + "version": "1.1.13", + "release": "1.el9", + "architecture": "x86_64", + "nevra": "nss_wrapper-libs-0:1.1.13-1.el9.x86_64", + "filename": "nss_wrapper-libs-1.1.13-1.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/n/nss_wrapper-libs-1.1.13-1.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 42421, + "sha256": "4502ad25db18ef8a48d37d513d6c685f33b91cf209db98f7f3387af105db4326", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "nss_wrapper-1.1.13-1.el9.src.rpm" + }, + { + "name": "numactl-libs", + "epoch": 0, + "version": "2.0.19", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "numactl-libs-0:2.0.19-3.el9.x86_64", + "filename": "numactl-libs-2.0.19-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/n/numactl-libs-2.0.19-3.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 31071, + "sha256": "dcf66dcbdacd6d030f240de129ba1e939c30ed4217ccf40d36dcaebb3aa9e728", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "numactl-2.0.19-3.el9.src.rpm" + }, + { + "name": "openldap", + "epoch": 0, + "version": "2.6.8", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "openldap-0:2.6.8-4.el9.x86_64", + "filename": "openldap-2.6.8-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openldap-2.6.8-4.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 296805, + "sha256": "68df8cf8fb4d54c2f1681fa9a030f7af3b179e6dd4fd10ffd7532824121ea74c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openldap-2.6.8-4.el9.src.rpm" + }, + { + "name": "openssl", + "epoch": 1, + "version": "3.5.5", + "release": "6.el9_8", + "architecture": "x86_64", + "nevra": "openssl-1:3.5.5-6.el9_8.x86_64", + "filename": "openssl-3.5.5-6.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-3.5.5-6.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1564334, + "sha256": "1c502507f42674119318b66b111448f618efe2767a55edde5fadddcecb47ac64", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-3.5.5-6.el9_8.src.rpm" + }, + { + "name": "openssl-fips-provider", + "epoch": 0, + "version": "3.0.7", + "release": "11.el9_8", + "architecture": "x86_64", + "nevra": "openssl-fips-provider-0:3.0.7-11.el9_8.x86_64", + "filename": "openssl-fips-provider-3.0.7-11.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-fips-provider-3.0.7-11.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 14256, + "sha256": "c00860e9c5a1d90488aa2eb65fe41f62926b38c6b3669d331a8b97e4a60223ac", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm" + }, + { + "name": "openssl-fips-provider-so", + "epoch": 0, + "version": "3.0.7", + "release": "11.el9_8", + "architecture": "x86_64", + "nevra": "openssl-fips-provider-so-0:3.0.7-11.el9_8.x86_64", + "filename": "openssl-fips-provider-so-3.0.7-11.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-fips-provider-so-3.0.7-11.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 595008, + "sha256": "60d36ad3a67d6b00e67bb0a19c0902fbb2ecdd873cf7f280a3039d04a092790c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm" + }, + { + "name": "openssl-libs", + "epoch": 1, + "version": "3.5.5", + "release": "6.el9_8", + "architecture": "x86_64", + "nevra": "openssl-libs-1:3.5.5-6.el9_8.x86_64", + "filename": "openssl-libs-3.5.5-6.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-libs-3.5.5-6.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2427181, + "sha256": "a289cdf4da547031cd39a4f31decd0bb22649bbcb5fe4f88b939d341a83708be", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-3.5.5-6.el9_8.src.rpm" + }, + { + "name": "p11-kit", + "epoch": 0, + "version": "0.26.4", + "release": "1.el9_8", + "architecture": "x86_64", + "nevra": "p11-kit-0:0.26.4-1.el9_8.x86_64", + "filename": "p11-kit-0.26.4-1.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/p11-kit-0.26.4-1.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 625862, + "sha256": "a00ba14bfd0fc5dd2818f605f2e0520b52ea4b36167504c2523f92a065c2bdaf", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "p11-kit-0.26.4-1.el9_8.src.rpm" + }, + { + "name": "p11-kit-trust", + "epoch": 0, + "version": "0.26.4", + "release": "1.el9_8", + "architecture": "x86_64", + "nevra": "p11-kit-trust-0:0.26.4-1.el9_8.x86_64", + "filename": "p11-kit-trust-0.26.4-1.el9_8.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/p11-kit-trust-0.26.4-1.el9_8.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 165521, + "sha256": "41b84ab0ee4cf914d570a3d648ed98b7de44cef73ea3dfa58ff5eebdec85f42a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "p11-kit-0.26.4-1.el9_8.src.rpm" + }, + { + "name": "pam", + "epoch": 0, + "version": "1.5.1", + "release": "28.el9_8.1", + "architecture": "x86_64", + "nevra": "pam-0:1.5.1-28.el9_8.1.x86_64", + "filename": "pam-1.5.1-28.el9_8.1.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pam-1.5.1-28.el9_8.1.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 645147, + "sha256": "9285aea93392dada0c8399b7d8a1c85ce7a6fdafd2fb5264727448549c15637c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pam-1.5.1-28.el9_8.1.src.rpm" + }, + { + "name": "pcre", + "epoch": 0, + "version": "8.44", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "pcre-0:8.44-4.el9.x86_64", + "filename": "pcre-8.44-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pcre-8.44-4.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 205261, + "sha256": "e9ddc7d57d4f6e7400b66bcc78b9bafc1f05630e3e0d2a14000bc907f429ddc4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre-8.44-4.el9.src.rpm" + }, + { + "name": "pcre2", + "epoch": 0, + "version": "10.40", + "release": "6.el9", + "architecture": "x86_64", + "nevra": "pcre2-0:10.40-6.el9.x86_64", + "filename": "pcre2-10.40-6.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pcre2-10.40-6.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 241900, + "sha256": "75db1e5a50e7b1794d7ba18212d95cd2684559da9e7c52eee46490302c7f24dd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre2-10.40-6.el9.src.rpm" + }, + { + "name": "pcre2-syntax", + "epoch": 0, + "version": "10.40", + "release": "6.el9", + "architecture": "noarch", + "nevra": "pcre2-syntax-0:10.40-6.el9.noarch", + "filename": "pcre2-syntax-10.40-6.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pcre2-syntax-10.40-6.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 147926, + "sha256": "d386b5e9b3a4b077b2ba143882e605750855dd3354f13c55fa12ed26908cb442", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre2-10.40-6.el9.src.rpm" + }, + { + "name": "perl-AutoLoader", + "epoch": 0, + "version": "5.74", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-AutoLoader-0:5.74-481.1.el9_6.noarch", + "filename": "perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 21344, + "sha256": "b4557d853be8048aaefde5c4083c43fa34375e224731e93e584e4e3d5db46ac3", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-B", + "epoch": 0, + "version": "1.80", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-B-0:1.80-481.1.el9_6.x86_64", + "filename": "perl-B-1.80-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-B-1.80-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 183818, + "sha256": "8b5a3d27f69cce8dd4c237510c2aaa2d01b3e884452e5da467d9c41015372c6a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Carp", + "epoch": 0, + "version": "1.50", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Carp-0:1.50-460.el9.noarch", + "filename": "perl-Carp-1.50-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Carp-1.50-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 32039, + "sha256": "c51470a55b1dce42f944bdea06a10469f5a42d55be898a33c2fed3a99843fbb2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Carp-1.50-460.el9.src.rpm" + }, + { + "name": "perl-Class-Struct", + "epoch": 0, + "version": "0.66", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Class-Struct-0:0.66-481.1.el9_6.noarch", + "filename": "perl-Class-Struct-0.66-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Class-Struct-0.66-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22220, + "sha256": "d35ff343bd718fbd8531995a8aedb866c6d37fac6a688fcf9a458017781bf058", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Data-Dumper", + "epoch": 0, + "version": "2.174", + "release": "462.el9", + "architecture": "x86_64", + "nevra": "perl-Data-Dumper-0:2.174-462.el9.x86_64", + "filename": "perl-Data-Dumper-2.174-462.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Data-Dumper-2.174-462.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 59910, + "sha256": "6cd912e640cbc8785e33dae9cf07561509491a0ec76a81c01d6b7a77ad08668d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Data-Dumper-2.174-462.el9.src.rpm" + }, + { + "name": "perl-Digest", + "epoch": 0, + "version": "1.19", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Digest-0:1.19-4.el9.noarch", + "filename": "perl-Digest-1.19-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Digest-1.19-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 29409, + "sha256": "e0b8633f818467f9e1bf46b9c0012af7bf8a309ac64e903a2a9faf3fae7705f9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Digest-1.19-4.el9.src.rpm" + }, + { + "name": "perl-Digest-MD5", + "epoch": 0, + "version": "2.58", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "perl-Digest-MD5-0:2.58-4.el9.x86_64", + "filename": "perl-Digest-MD5-2.58-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Digest-MD5-2.58-4.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 40274, + "sha256": "2a6b21a144ae1d060e51ee2b6328c5dd1a646f429da160f386c2eb420b1220b4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Digest-MD5-2.58-4.el9.src.rpm" + }, + { + "name": "perl-Encode", + "epoch": 4, + "version": "3.08", + "release": "462.el9", + "architecture": "x86_64", + "nevra": "perl-Encode-4:3.08-462.el9.x86_64", + "filename": "perl-Encode-3.08-462.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Encode-3.08-462.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 1802386, + "sha256": "d05248697e48928be004ed4c683b04966aa452ae1e2bd81f650c6de108b46956", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Encode-3.08-462.el9.src.rpm" + }, + { + "name": "perl-Errno", + "epoch": 0, + "version": "1.30", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-Errno-0:1.30-481.1.el9_6.x86_64", + "filename": "perl-Errno-1.30-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Errno-1.30-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14862, + "sha256": "9c03ad1166d9f8e6d2affb52185f59d625468d160f7c749e3d53a844d5129d4c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Exporter", + "epoch": 0, + "version": "5.74", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Exporter-0:5.74-461.el9.noarch", + "filename": "perl-Exporter-5.74-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Exporter-5.74-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 34509, + "sha256": "888e14ebd70c2b69150873236b0df7c3a29c9edd488fd8488527c179e798b409", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Exporter-5.74-461.el9.src.rpm" + }, + { + "name": "perl-Fcntl", + "epoch": 0, + "version": "1.13", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-Fcntl-0:1.13-481.1.el9_6.x86_64", + "filename": "perl-Fcntl-1.13-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Fcntl-1.13-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 20397, + "sha256": "72587bf21b26885361ec991d153e1b4db26e9b117c1c70b92cc2891cecae4575", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-File-Basename", + "epoch": 0, + "version": "2.85", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-File-Basename-0:2.85-481.1.el9_6.noarch", + "filename": "perl-File-Basename-2.85-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-Basename-2.85-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17211, + "sha256": "e39dcc13a24d3b5a7ba11288e63b22a055a8e1061743b8a409858d98ebd794e4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-File-Path", + "epoch": 0, + "version": "2.18", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-File-Path-0:2.18-4.el9.noarch", + "filename": "perl-File-Path-2.18-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 38466, + "sha256": "d1df5e509c10365eaa329a0b97e38bc2667874240d3942195eb6ce7a88985a41", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-File-Path-2.18-4.el9.src.rpm" + }, + { + "name": "perl-File-Temp", + "epoch": 1, + "version": "0.231.100", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-File-Temp-1:0.231.100-4.el9.noarch", + "filename": "perl-File-Temp-0.231.100-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-Temp-0.231.100-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 64150, + "sha256": "0a81b062391ac6dac3ec28ff1e435001dd798cf1ff19fdb52cfe1e0720d5de03", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-File-Temp-0.231.100-4.el9.src.rpm" + }, + { + "name": "perl-File-stat", + "epoch": 0, + "version": "1.09", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-File-stat-0:1.09-481.1.el9_6.noarch", + "filename": "perl-File-stat-1.09-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-File-stat-1.09-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17117, + "sha256": "b235134c1961e9b57f86bddc02e874607c17c155d2aa5ad78cc3ed9c8fd9c95b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-FileHandle", + "epoch": 0, + "version": "2.03", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-FileHandle-0:2.03-481.1.el9_6.noarch", + "filename": "perl-FileHandle-2.03-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-FileHandle-2.03-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 15452, + "sha256": "c2139abdb9b3335f592aa2835ef6d6fcde1e89232eb3d3c5a15f7cc1d0829f8d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Getopt-Long", + "epoch": 1, + "version": "2.52", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Getopt-Long-1:2.52-4.el9.noarch", + "filename": "perl-Getopt-Long-2.52-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Getopt-Long-2.52-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 65144, + "sha256": "055fe33d2a7a421c1de8902b86a2f246ef6457774239d04b604f2d0ec6a00a14", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Getopt-Long-2.52-4.el9.src.rpm" + }, + { + "name": "perl-Getopt-Std", + "epoch": 0, + "version": "1.12", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Getopt-Std-0:1.12-481.1.el9_6.noarch", + "filename": "perl-Getopt-Std-1.12-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Getopt-Std-1.12-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 15551, + "sha256": "49bd8381823d680d17c37f3bebfd97dd92bfbf59e8019f15c7606f41dca02a7d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-HTTP-Tiny", + "epoch": 0, + "version": "0.076", + "release": "462.el9", + "architecture": "noarch", + "nevra": "perl-HTTP-Tiny-0:0.076-462.el9.noarch", + "filename": "perl-HTTP-Tiny-0.076-462.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 58720, + "sha256": "696f388a50f5be81596757d68251067449203e1c126ee8c23a7c5a0ad1ac5418", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-HTTP-Tiny-0.076-462.el9.src.rpm" + }, + { + "name": "perl-IO", + "epoch": 0, + "version": "1.43", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-IO-0:1.43-481.1.el9_6.x86_64", + "filename": "perl-IO-1.43-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-IO-1.43-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 90423, + "sha256": "e29f5b38c643882a6b9ab9ddbb77bdd476d1a55e3ab649e886e99dd726b3c822", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-IO-Socket-IP", + "epoch": 0, + "version": "0.41", + "release": "5.el9", + "architecture": "noarch", + "nevra": "perl-IO-Socket-IP-0:0.41-5.el9.noarch", + "filename": "perl-IO-Socket-IP-0.41-5.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-IO-Socket-IP-0.41-5.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 46457, + "sha256": "4c80030ce256198584c4a58171b9dfe3adb4a8d7593110229e40ece76786a32f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-IO-Socket-IP-0.41-5.el9.src.rpm" + }, + { + "name": "perl-IO-Socket-SSL", + "epoch": 0, + "version": "2.073", + "release": "2.el9", + "architecture": "noarch", + "nevra": "perl-IO-Socket-SSL-0:2.073-2.el9.noarch", + "filename": "perl-IO-Socket-SSL-2.073-2.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-IO-Socket-SSL-2.073-2.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 226003, + "sha256": "b52d5b6a5081e3c142b2364b3f1ef58f569b39052df045f24363de9bb4f9cfd2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-IO-Socket-SSL-2.073-2.el9.src.rpm" + }, + { + "name": "perl-IPC-Open3", + "epoch": 0, + "version": "1.21", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-IPC-Open3-0:1.21-481.1.el9_6.noarch", + "filename": "perl-IPC-Open3-1.21-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-IPC-Open3-1.21-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22968, + "sha256": "7ea36dcf28da3fc7250eb041ba19f99c87543c0870f5da67da614f5ca8d18b92", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-MIME-Base64", + "epoch": 0, + "version": "3.16", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "perl-MIME-Base64-0:3.16-4.el9.x86_64", + "filename": "perl-MIME-Base64-3.16-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-MIME-Base64-3.16-4.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 35058, + "sha256": "3ae8affe13cc15cfaee1c6dd078ada14891dde5dca263927a9b5ed87f241d2c0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-MIME-Base64-3.16-4.el9.src.rpm" + }, + { + "name": "perl-Mozilla-CA", + "epoch": 0, + "version": "20200520", + "release": "6.el9", + "architecture": "noarch", + "nevra": "perl-Mozilla-CA-0:20200520-6.el9.noarch", + "filename": "perl-Mozilla-CA-20200520-6.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Mozilla-CA-20200520-6.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14781, + "sha256": "99030bfb6a1a2ac41e0720841abaa8ba58c26e91640f4058cc6133e227e928a7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Mozilla-CA-20200520-6.el9.src.rpm" + }, + { + "name": "perl-Net-SSLeay", + "epoch": 0, + "version": "1.94", + "release": "3.el9", + "architecture": "x86_64", + "nevra": "perl-Net-SSLeay-0:1.94-3.el9.x86_64", + "filename": "perl-Net-SSLeay-1.94-3.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Net-SSLeay-1.94-3.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 424361, + "sha256": "e786e9bf9a3485be034b5f1ce80f4d1e2fc82502e27ac36a6d1a7681ea0ce261", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Net-SSLeay-1.94-3.el9.src.rpm" + }, + { + "name": "perl-POSIX", + "epoch": 0, + "version": "1.94", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-POSIX-0:1.94-481.1.el9_6.x86_64", + "filename": "perl-POSIX-1.94-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-POSIX-1.94-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 98084, + "sha256": "434ef22a697f38f3dda351db9ab427e02e7a1220b2dcbc3046087bd9129b742e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-PathTools", + "epoch": 0, + "version": "3.78", + "release": "461.el9", + "architecture": "x86_64", + "nevra": "perl-PathTools-0:3.78-461.el9.x86_64", + "filename": "perl-PathTools-3.78-461.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-PathTools-3.78-461.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 94564, + "sha256": "0647785b169c4bbdc65adf06d28981ce7fd1c9f93aecaa4e53a4515a21ebbf81", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-PathTools-3.78-461.el9.src.rpm" + }, + { + "name": "perl-Pod-Escapes", + "epoch": 1, + "version": "1.07", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Escapes-1:1.07-460.el9.noarch", + "filename": "perl-Pod-Escapes-1.07-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Pod-Escapes-1.07-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22564, + "sha256": "42fa08cc02a405933395316610a56e2bff58f6f7be16e9a063ec634747199bc0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Escapes-1.07-460.el9.src.rpm" + }, + { + "name": "perl-Pod-Perldoc", + "epoch": 0, + "version": "3.28.01", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Perldoc-0:3.28.01-461.el9.noarch", + "filename": "perl-Pod-Perldoc-3.28.01-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Pod-Perldoc-3.28.01-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 93727, + "sha256": "db3285dbe77ddc822d6bb847f857ea7032786cf7996b26d6c01481903b6d26e0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Perldoc-3.28.01-461.el9.src.rpm" + }, + { + "name": "perl-Pod-Simple", + "epoch": 1, + "version": "3.42", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Simple-1:3.42-4.el9.noarch", + "filename": "perl-Pod-Simple-3.42-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Pod-Simple-3.42-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 234403, + "sha256": "2752454ce47a46227c6b7b98a5d9a25dcf3a992f27109a726744a66cd93c7b9a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Simple-3.42-4.el9.src.rpm" + }, + { + "name": "perl-Pod-Usage", + "epoch": 4, + "version": "2.01", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Usage-4:2.01-4.el9.noarch", + "filename": "perl-Pod-Usage-2.01-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Pod-Usage-2.01-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 44477, + "sha256": "c170870a2d1ff32048d13497fa67c382fe5aaf3d8d21bae639356ac28003dba9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Usage-2.01-4.el9.src.rpm" + }, + { + "name": "perl-Scalar-List-Utils", + "epoch": 4, + "version": "1.56", + "release": "462.el9", + "architecture": "x86_64", + "nevra": "perl-Scalar-List-Utils-4:1.56-462.el9.x86_64", + "filename": "perl-Scalar-List-Utils-1.56-462.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Scalar-List-Utils-1.56-462.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 77262, + "sha256": "7ce874bde7d9ad15abf70a3b7edbab77548eb2eb8b529c1e48b2426ee7f948f9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Scalar-List-Utils-1.56-462.el9.src.rpm" + }, + { + "name": "perl-SelectSaver", + "epoch": 0, + "version": "1.02", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-SelectSaver-0:1.02-481.1.el9_6.noarch", + "filename": "perl-SelectSaver-1.02-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-SelectSaver-1.02-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 11553, + "sha256": "8ec404df551d6cc4750efa34b9897d2288d07a26d49cd3d3d2315584976932b0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Socket", + "epoch": 4, + "version": "2.031", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "perl-Socket-4:2.031-4.el9.x86_64", + "filename": "perl-Socket-2.031-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Socket-2.031-4.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 59776, + "sha256": "762751146305f9aea53b74a21495a610e7bdde956fa3246565d265b1128b56a8", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Socket-2.031-4.el9.src.rpm" + }, + { + "name": "perl-Storable", + "epoch": 1, + "version": "3.21", + "release": "460.el9", + "architecture": "x86_64", + "nevra": "perl-Storable-1:3.21-460.el9.x86_64", + "filename": "perl-Storable-3.21-460.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Storable-3.21-460.el9.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 100335, + "sha256": "0097fdb40a1f83e56d5bf91160c07151b7cdd64f829fc0e328cdf3b43c2b4fa6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Storable-3.21-460.el9.src.rpm" + }, + { + "name": "perl-Symbol", + "epoch": 0, + "version": "1.08", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Symbol-0:1.08-481.1.el9_6.noarch", + "filename": "perl-Symbol-1.08-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Symbol-1.08-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14061, + "sha256": "aa9942be4c837c024c6a0a376b13f9563e16ee8b66631ad6c5ff35cd0124728d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Term-ANSIColor", + "epoch": 0, + "version": "5.01", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Term-ANSIColor-0:5.01-461.el9.noarch", + "filename": "perl-Term-ANSIColor-5.01-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Term-ANSIColor-5.01-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 52228, + "sha256": "996148d460395369394e9d4721e9000c5b2fa34ee800390a4a9d885b6db95b23", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Term-ANSIColor-5.01-461.el9.src.rpm" + }, + { + "name": "perl-Term-Cap", + "epoch": 0, + "version": "1.17", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Term-Cap-0:1.17-460.el9.noarch", + "filename": "perl-Term-Cap-1.17-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Term-Cap-1.17-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25043, + "sha256": "015a6d02b9c84bd353680d4bad61f3c8d297c53c3a43325e08e4ac4b48f97f17", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Term-Cap-1.17-460.el9.src.rpm" + }, + { + "name": "perl-Text-ParseWords", + "epoch": 0, + "version": "3.30", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Text-ParseWords-0:3.30-460.el9.noarch", + "filename": "perl-Text-ParseWords-3.30-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Text-ParseWords-3.30-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 18680, + "sha256": "4d47f3ba0ce454be5d781e968cfe15f01f393e68a47c415f35c0d88358ab4af9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Text-ParseWords-3.30-460.el9.src.rpm" + }, + { + "name": "perl-Text-Tabs+Wrap", + "epoch": 0, + "version": "2013.0523", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Text-Tabs+Wrap-0:2013.0523-460.el9.noarch", + "filename": "perl-Text-Tabs+Wrap-2013.0523-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Text-Tabs+Wrap-2013.0523-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25935, + "sha256": "5ad6ef70bbb4ba8d5cfd6ee0b3dda0ddc8cf0103199959499944019a66f7edcd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm" + }, + { + "name": "perl-Time-Local", + "epoch": 2, + "version": "1.300", + "release": "7.el9", + "architecture": "noarch", + "nevra": "perl-Time-Local-2:1.300-7.el9.noarch", + "filename": "perl-Time-Local-1.300-7.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-Time-Local-1.300-7.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 37469, + "sha256": "e8e1e692b6e52cdb69515b2ad44b84ca71917bea5f47908cb9ae89b2bbd145a1", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Time-Local-1.300-7.el9.src.rpm" + }, + { + "name": "perl-URI", + "epoch": 0, + "version": "5.09", + "release": "3.el9", + "architecture": "noarch", + "nevra": "perl-URI-0:5.09-3.el9.noarch", + "filename": "perl-URI-5.09-3.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-URI-5.09-3.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 128279, + "sha256": "1635b7d818e4f70445f7207f13e058c63c5d1f5aa081cfd2583912ae45f8e1bd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-URI-5.09-3.el9.src.rpm" + }, + { + "name": "perl-base", + "epoch": 0, + "version": "2.27", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-base-0:2.27-481.1.el9_6.noarch", + "filename": "perl-base-2.27-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-base-2.27-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 16220, + "sha256": "0be44f055107893b011ed0e88f39ff202ba451db8a94351ad4472d350c780d0d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-constant", + "epoch": 0, + "version": "1.33", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-constant-0:1.33-461.el9.noarch", + "filename": "perl-constant-1.33-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-constant-1.33-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25865, + "sha256": "8ab94e13cab4e7eee081c7618ea7738b072d8093631d97b8b1f83bff893cf892", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-constant-1.33-461.el9.src.rpm" + }, + { + "name": "perl-if", + "epoch": 0, + "version": "0.60.800", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-if-0:0.60.800-481.1.el9_6.noarch", + "filename": "perl-if-0.60.800-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-if-0.60.800-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 13876, + "sha256": "ae3ce80bee55e1057ed004ec03a0e826b0cdd90ace4c0784ab2f569a2d81d40c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-interpreter", + "epoch": 4, + "version": "5.32.1", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-interpreter-4:5.32.1-481.1.el9_6.x86_64", + "filename": "perl-interpreter-5.32.1-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-interpreter-5.32.1-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 72173, + "sha256": "92959263a20ad89d33bc92826cdfed32f507652ff08d0c18b50b604fa5f9f594", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-libnet", + "epoch": 0, + "version": "3.13", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-libnet-0:3.13-4.el9.noarch", + "filename": "perl-libnet-3.13-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-libnet-3.13-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 137289, + "sha256": "79156f91a2ee21fb96f10e331047c55ff913e36f9a13ff89d0a479f0fc4dcb98", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-libnet-3.13-4.el9.src.rpm" + }, + { + "name": "perl-libs", + "epoch": 4, + "version": "5.32.1", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-libs-4:5.32.1-481.1.el9_6.x86_64", + "filename": "perl-libs-5.32.1-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-libs-5.32.1-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 2303689, + "sha256": "aa0e9b31c82b50de7ace1b7e4b85a26ac9572cc77b8ded88866c06915748ccd7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-mro", + "epoch": 0, + "version": "1.23", + "release": "481.1.el9_6", + "architecture": "x86_64", + "nevra": "perl-mro-0:1.23-481.1.el9_6.x86_64", + "filename": "perl-mro-1.23-481.1.el9_6.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-mro-1.23-481.1.el9_6.x86_64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 28410, + "sha256": "4ed671f36290bc6c15f37d550f67ce33ced1c27a3e2ea24f0a37038d45d1805a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-overload", + "epoch": 0, + "version": "1.31", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-overload-0:1.31-481.1.el9_6.noarch", + "filename": "perl-overload-1.31-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-overload-1.31-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 46157, + "sha256": "f172df7417780cb61b879effe60ce6b7b4399773c46cb9896a5edf2bfba6dbda", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-overloading", + "epoch": 0, + "version": "0.02", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-overloading-0:0.02-481.1.el9_6.noarch", + "filename": "perl-overloading-0.02-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-overloading-0.02-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 12747, + "sha256": "4aae487e802df60e1e2d778b264592290ad492078877784771299561d45dfd47", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-parent", + "epoch": 1, + "version": "0.238", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-parent-1:0.238-460.el9.noarch", + "filename": "perl-parent-0.238-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-parent-0.238-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 16286, + "sha256": "a9b2ccc25a5ed5cc024935ef573772e203ed363f67dd5acc0d2ad5907498c463", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-parent-0.238-460.el9.src.rpm" + }, + { + "name": "perl-podlators", + "epoch": 1, + "version": "4.14", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-podlators-1:4.14-460.el9.noarch", + "filename": "perl-podlators-4.14-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-podlators-4.14-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 121317, + "sha256": "0401f715522a14b53956bccb60954025ad18a73802f7144ab0160d8504951a98", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-podlators-4.14-460.el9.src.rpm" + }, + { + "name": "perl-subs", + "epoch": 0, + "version": "1.03", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-subs-0:1.03-481.1.el9_6.noarch", + "filename": "perl-subs-1.03-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-subs-1.03-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 11525, + "sha256": "0a7ef4a9a174ab981949d27a4acdc8cec87fd3513e9e607f5869851dc1c74deb", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-vars", + "epoch": 0, + "version": "1.05", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-vars-0:1.05-481.1.el9_6.noarch", + "filename": "perl-vars-1.05-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/p/perl-vars-1.05-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 12885, + "sha256": "5d3c58094c0158b6193d7f4ba7a4bb7ae06a78738393b31255da8b7aadb10e38", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "pkgconf", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "pkgconf-0:1.7.3-10.el9.x86_64", + "filename": "pkgconf-1.7.3-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pkgconf-1.7.3-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 45675, + "sha256": "bb47b4ecc499c308f41031a99e723827d152d5d750f59849d0c265d820944a26", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "pkgconf-m4", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "noarch", + "nevra": "pkgconf-m4-0:1.7.3-10.el9.noarch", + "filename": "pkgconf-m4-1.7.3-10.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pkgconf-m4-1.7.3-10.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 16054, + "sha256": "91bafd6e06099451f60288327b275cfcc651822f6145176a157c6b0fa5131e02", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "pkgconf-pkg-config", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "pkgconf-pkg-config-0:1.7.3-10.el9.x86_64", + "filename": "pkgconf-pkg-config-1.7.3-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/p/pkgconf-pkg-config-1.7.3-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 12438, + "sha256": "9a502d81d73d3303ceb53a06ad7ce525c97117ea64352174a33708bf3429283d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "postgresql18", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "x86_64", + "nevra": "postgresql18-0:18.6-1PGDG.rhel9.8.x86_64", + "filename": "postgresql18-18.6-1PGDG.rhel9.8.x86_64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-18.6-1PGDG.rhel9.8.x86_64.rpm", + "repository": "pgdg-18", + "size": 2065203, + "sha256": "ae57ba32d87fa3c311da9545bc85682ae04dc41cfbabf60d7f6c185099604f8a", + "signing_key_fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "postgresql18-libs", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "x86_64", + "nevra": "postgresql18-libs-0:18.6-1PGDG.rhel9.8.x86_64", + "filename": "postgresql18-libs-18.6-1PGDG.rhel9.8.x86_64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-libs-18.6-1PGDG.rhel9.8.x86_64.rpm", + "repository": "pgdg-18", + "size": 311486, + "sha256": "7a4d55c02b8bab1b359aa25ce53d81db77cd39026a980dd8f0210031a5c31654", + "signing_key_fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "postgresql18-server", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "x86_64", + "nevra": "postgresql18-server-0:18.6-1PGDG.rhel9.8.x86_64", + "filename": "postgresql18-server-18.6-1PGDG.rhel9.8.x86_64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-x86_64/postgresql18-server-18.6-1PGDG.rhel9.8.x86_64.rpm", + "repository": "pgdg-18", + "size": 7606326, + "sha256": "f7f1915d63756f6a37f3f2e5cc84d03893d0d7a55dab8ac350871bd1c48a0754", + "signing_key_fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "readline", + "epoch": 0, + "version": "8.1", + "release": "4.el9", + "architecture": "x86_64", + "nevra": "readline-0:8.1-4.el9.x86_64", + "filename": "readline-8.1-4.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/r/readline-8.1-4.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 220174, + "sha256": "01bf315b3bc44c28515c4d33d49173b23d7979d2a09b7b15f749d434b60851e6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "readline-8.1-4.el9.src.rpm" + }, + { + "name": "redhat-release", + "epoch": 0, + "version": "9.8", + "release": "1.0.el9", + "architecture": "x86_64", + "nevra": "redhat-release-0:9.8-1.0.el9.x86_64", + "filename": "redhat-release-9.8-1.0.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/r/redhat-release-9.8-1.0.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 61742, + "sha256": "8157ed988fc34dcfeb6429272959471edd5bde4ac212f26611fd54c180391758", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "redhat-release-9.8-1.0.el9.src.rpm" + }, + { + "name": "sed", + "epoch": 0, + "version": "4.8", + "release": "10.el9", + "architecture": "x86_64", + "nevra": "sed-0:4.8-10.el9.x86_64", + "filename": "sed-4.8-10.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/sed-4.8-10.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 317456, + "sha256": "45e246453dc9eb1bad6a71c6f349aad1b1b2e1bf3ec645b80f0ed04fe69c960e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "sed-4.8-10.el9.src.rpm" + }, + { + "name": "setup", + "epoch": 0, + "version": "2.13.7", + "release": "10.el9", + "architecture": "noarch", + "nevra": "setup-0:2.13.7-10.el9.noarch", + "filename": "setup-2.13.7-10.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/setup-2.13.7-10.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 153791, + "sha256": "0891d395ce067121c28932534237ad1ce231f2bfa987411ad62e73a12d11eb6a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "setup-2.13.7-10.el9.src.rpm" + }, + { + "name": "shadow-utils", + "epoch": 2, + "version": "4.9", + "release": "16.el9", + "architecture": "x86_64", + "nevra": "shadow-utils-2:4.9-16.el9.x86_64", + "filename": "shadow-utils-4.9-16.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/shadow-utils-4.9-16.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1250179, + "sha256": "17294ee3fbc09c1b5cfc4114d3815cbd92584d6d70a6288e1dce2fda0a62dc59", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "shadow-utils-4.9-16.el9.src.rpm" + }, + { + "name": "systemd", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "x86_64", + "nevra": "systemd-0:252-67.el9_8.4.x86_64", + "filename": "systemd-252-67.el9_8.4.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/systemd-252-67.el9_8.4.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 4401138, + "sha256": "e3cbe70aaa847f1b02bd4ea9470625434c26b25368cbfcb0e9a18de99e3bc1c7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-libs", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "x86_64", + "nevra": "systemd-libs-0:252-67.el9_8.4.x86_64", + "filename": "systemd-libs-252-67.el9_8.4.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/systemd-libs-252-67.el9_8.4.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 681056, + "sha256": "ca5a11f102b0e3a32fdddf017a4509984db83290d7364c9566d037d0ef7f1e66", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-pam", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "x86_64", + "nevra": "systemd-pam-0:252-67.el9_8.4.x86_64", + "filename": "systemd-pam-252-67.el9_8.4.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/systemd-pam-252-67.el9_8.4.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 276960, + "sha256": "de8408dbe8ee06afa99fbb914377384774e27b9b337cb3b491a37f84ccca7e9b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-rpm-macros", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "noarch", + "nevra": "systemd-rpm-macros-0:252-67.el9_8.4.noarch", + "filename": "systemd-rpm-macros-252-67.el9_8.4.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/s/systemd-rpm-macros-252-67.el9_8.4.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 59475, + "sha256": "7d671ec39a7caeb7346be6d5fcb44212545844ced6f4974c4b409fef6a12a891", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "tzdata", + "epoch": 0, + "version": "2026c", + "release": "1.el9_8", + "architecture": "noarch", + "nevra": "tzdata-0:2026c-1.el9_8.noarch", + "filename": "tzdata-2026c-1.el9_8.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/t/tzdata-2026c-1.el9_8.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 933286, + "sha256": "8d6196e02853c0900c3c2e2367665beffb62cb2d0ff5f465ea2d00848a9a35dc", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "tzdata-2026c-1.el9_8.src.rpm" + }, + { + "name": "util-linux", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "util-linux-0:2.37.4-25.el9.x86_64", + "filename": "util-linux-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2382511, + "sha256": "35e0b73e574a7d8e93af0adf54adb2303f03423fd5761e357df86288f59d7933", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "util-linux-core", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "x86_64", + "nevra": "util-linux-core-0:2.37.4-25.el9.x86_64", + "filename": "util-linux-core-2.37.4-25.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 476811, + "sha256": "5575c8fc753d5a81022786dac33e172a6d1602ef41d247a58465754d3f952726", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "xz-libs", + "epoch": 0, + "version": "5.2.5", + "release": "8.el9_0", + "architecture": "x86_64", + "nevra": "xz-libs-0:5.2.5-8.el9_0.x86_64", + "filename": "xz-libs-5.2.5-8.el9_0.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/x/xz-libs-5.2.5-8.el9_0.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 96649, + "sha256": "de263f880a4394f04b5e84254ba0a88d781b5bd63665c9e028bc10351490c982", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "xz-5.2.5-8.el9_0.src.rpm" + }, + { + "name": "zlib", + "epoch": 0, + "version": "1.2.11", + "release": "40.el9", + "architecture": "x86_64", + "nevra": "zlib-0:1.2.11-40.el9.x86_64", + "filename": "zlib-1.2.11-40.el9.x86_64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/z/zlib-1.2.11-40.el9.x86_64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 95708, + "sha256": "baf95ffbf40ee014135f16fe33e343faf7ff1ca06509fd97cd988e6afeabf670", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "zlib-1.2.11-40.el9.src.rpm" + } + ], + "source_packages": [ + { + "filename": "acl-2.4.0-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/a/acl-2.4.0-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 609918, + "sha256": "b140deb68f46517b0093e18969d8fb42a17216064fb2ee5783e9316d786430db" + }, + { + "filename": "attr-2.6.0-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/a/attr-2.6.0-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 389805, + "sha256": "9bdd2e605e0ddc9818382bd95644594fa8b8eedfe08048303093db13cde9963c" + }, + { + "filename": "audit-3.1.5-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/a/audit-3.1.5-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1275064, + "sha256": "e0a3e72c863512032e0ba95337db076fa5af9368d9a80529a9624afc8877401c" + }, + { + "filename": "basesystem-11-13.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/b/basesystem-11-13.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 9884, + "sha256": "5a4ed0779fc06f08115d6e06aa95486f1e1e251f8f9ddb6c7e14e811bb2e24ef" + }, + { + "filename": "bash-5.1.8-9.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/b/bash-5.1.8-9.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 10512850, + "sha256": "5d7bbbf2538361be1a11846602862c3a56809b3ea43b69b86bcf407538e9e260" + }, + { + "filename": "bzip2-1.0.8-11.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/b/bzip2-1.0.8-11.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 828199, + "sha256": "ba58283fc4ef85911f20a8e45ffa00497775858102d48f2a32ebf1010a1abefc" + }, + { + "filename": "ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 711648, + "sha256": "d3193e155ddd297042a944729fe54c1b90c17bdbd1876fc68e4f66d7857f9e81" + }, + { + "filename": "chkconfig-1.24-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/chkconfig-1.24-2.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 214658, + "sha256": "b2618b278f5c8d6dacfae790c8c73b1fc1578b8f64011f325ced5a4a2e3b58bc" + }, + { + "filename": "cmake-3.31.8-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/c/cmake-3.31.8-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 11705300, + "sha256": "8fdb79c80877a829abcf38f374d20e4ce1416646128535ade2cf988f4bbc8eea" + }, + { + "filename": "coreutils-8.32-41.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/coreutils-8.32-41.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 5697510, + "sha256": "5852781d2fbb2c447c4425960f4fe30310870a0e4073363d2254047b785b5a9e" + }, + { + "filename": "cracklib-2.9.6-28.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/cracklib-2.9.6-28.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6416053, + "sha256": "4708420bdde578448be8c06a6b608635743682f6370d7d45d7cae46842529fa0" + }, + { + "filename": "crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 112905, + "sha256": "775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38" + }, + { + "filename": "cyrus-sasl-2.1.27-22.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 4025677, + "sha256": "f4b3d139bfb74a2d628592c5696a003bc8c4896711386b1bbc3dffdf8a33883e" + }, + { + "filename": "dbus-1.12.20-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/d/dbus-1.12.20-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2143916, + "sha256": "3fe74a2b4fb4485c93e974010d9376e30a63dfcc628bfd6c01837c27b4953912" + }, + { + "filename": "dbus-broker-28-9.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/d/dbus-broker-28-9.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 258866, + "sha256": "9ccbb440edb6826689fd5e0d650de4f08550c3c0f3b2732c54c1e99b0d361824" + }, + { + "filename": "e2fsprogs-1.46.5-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/e/e2fsprogs-1.46.5-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 7416727, + "sha256": "5c613445f928889a52a0a82f4ed866502e82c99b0c983024ab97421391abd061" + }, + { + "filename": "expat-2.5.0-6.el9_8.3.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 8403095, + "sha256": "0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392" + }, + { + "filename": "filesystem-3.16-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 20486, + "sha256": "c795690df30c46e521372e2f649c995a2abc159b76c8ef6cd5da8a713ea17937" + }, + { + "filename": "findutils-4.8.0-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/f/findutils-4.8.0-7.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2010585, + "sha256": "48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f" + }, + { + "filename": "gawk-5.1.0-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3190934, + "sha256": "37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d" + }, + { + "filename": "gcc-11.5.0-14.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 81978017, + "sha256": "19dec462f2880508570ca42a82c2f76fbd95fcad8d3e3ff812e9ca50cdeb2d8f" + }, + { + "filename": "gdbm-1.23-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/gdbm-1.23-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1130147, + "sha256": "ad42264274c2a792220395a4dbe736a1de6100c4e14611707ec1dd447583271f" + }, + { + "filename": "glibc-2.34-275.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/glibc-2.34-275.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 20442764, + "sha256": "bd7a453f66e13da24d073f53070c2d209fcd88ca2aaa24ab3b2f81cae198b46c" + }, + { + "filename": "gmp-6.2.0-13.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/gmp-6.2.0-13.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2503825, + "sha256": "d0d8a795eea9ae555da63fbcfc3575425e86bb7e96d117b9ae2785b4f5e82f7c" + }, + { + "filename": "grep-3.6-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/grep-3.6-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1620891, + "sha256": "81b14432ebe1645b74b57592f1dcde8fab15ec13632f483f72ff2407ed16c33e" + }, + { + "filename": "groff-1.22.4-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/groff-1.22.4-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 4138121, + "sha256": "16d1628338ede3c55a795782f05848112d47816ba073978af6fcd90ecce08f5c" + }, + { + "filename": "gzip-1.12-2.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/g/gzip-1.12-2.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 859023, + "sha256": "f28fcbe8f3de2ec7dcdb51b1f51f03f61d0afa18c9fef10d210f40ff0c71f3a0" + }, + { + "filename": "icu-67.1-10.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/i/icu-67.1-10.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 23181317, + "sha256": "3abe8dc1abc22213826dd6ffb214cdd88705def93dcb234ffc87c792909b0879" + }, + { + "filename": "keyutils-1.6.3-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 150790, + "sha256": "6afa567438acd0d3a6a66bc6a3c68ec2f4ae5ed9c7230c3f0478d2281a092688" + }, + { + "filename": "kmod-28-11.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/k/kmod-28-11.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 579198, + "sha256": "4f6fefbf0d004b23494fe18ccfff2b9151ea887a276c56a6f25ea597a250991c" + }, + { + "filename": "krb5-1.21.1-10.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/k/krb5-1.21.1-10.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 8964976, + "sha256": "b22a66515c98c14a4969a403d5419b9f9bab50015553863de866d3f45fd6d922" + }, + { + "filename": "libcap-2.48-10.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libcap-2.48-10.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 208035, + "sha256": "7f96d98c99f190b840985b3589183a3f1dc444e0932f256491b24d28c5031de3" + }, + { + "filename": "libcap-ng-0.8.2-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libcap-ng-0.8.2-7.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 470599, + "sha256": "48bb098662e2f3e1dbb94e27e4e612bc6794fbb62708e1f1a431cc2480fcdb00" + }, + { + "filename": "libdb-5.3.28-57.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libdb-5.3.28-57.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 35290920, + "sha256": "6a74a3d96bd4657659524050945e2a47e93779addf2de374a13e1baf32b4ab8d" + }, + { + "filename": "libeconf-0.4.1-7.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libeconf-0.4.1-7.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 206886, + "sha256": "425009c96135f39ca7bdb8a6ea948187d052d339dd76235979439fbd169da331" + }, + { + "filename": "libevent-2.1.12-8.el9_4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libevent-2.1.12-8.el9_4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1123179, + "sha256": "8c00dc837b8685fc660cc0bcdfd4f533888facaa8c83655c26d2fb068cb7b135" + }, + { + "filename": "libffi-3.4.2-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libffi-3.4.2-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1367398, + "sha256": "2b384204cc70c8f23d3a86e5cc9f736306a7a91a72e282044e3b23f3fd831647" + }, + { + "filename": "libgcrypt-1.10.0-13.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libgcrypt-1.10.0-13.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3983873, + "sha256": "c2737830c577d7c45aefa3213d770be924617a46e6ab56824edec9b6341af8d4" + }, + { + "filename": "libgpg-error-1.42-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libgpg-error-1.42-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 994101, + "sha256": "9586046fd9622e5e898f92a08821948bf0754a74ab343cc093ca21caae0352a6" + }, + { + "filename": "libpwquality-1.4.4-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libpwquality-1.4.4-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 447225, + "sha256": "14fbf335e2c6f22b441a9750a69b7c41e197c4dd21adac701fd81f17660ee0b4" + }, + { + "filename": "libseccomp-2.5.2-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libseccomp-2.5.2-2.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 653169, + "sha256": "43dd0fa2cd26306e2017704075e628bbe675c8731b17848df82f3b59337f1be8" + }, + { + "filename": "libselinux-3.6-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libselinux-3.6-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 271153, + "sha256": "a08a84389665ef614eb6d9b06a53128eab89b650c799c0558f3ae04df97c4b13" + }, + { + "filename": "libsemanage-3.6-5.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libsemanage-3.6-5.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 223978, + "sha256": "33e4ad8374bdaa1dd4b4a46b2b379d025590d80e5d666801aea4f437a9a6ccd9" + }, + { + "filename": "libsepol-3.6-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libsepol-3.6-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 543960, + "sha256": "2dacf2f1c1f61562ccc5ad082939158745e5a4a572d135d4f8ff00f75e1e94df" + }, + { + "filename": "libsigsegv-2.13-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libsigsegv-2.13-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 473267, + "sha256": "734651070d0113de033da80114b416931c4c0be21ce51f6b1c1641b1185c34f3" + }, + { + "filename": "libtasn1-4.16.0-10.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libtasn1-4.16.0-10.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1899881, + "sha256": "be5c3a993282ecde81ad5d00dd4e7b2c293e97e47d28709aa0ea7292b80ba610" + }, + { + "filename": "libtool-2.4.6-46.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/l/libtool-2.4.6-46.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 1002417, + "sha256": "1130b15333736ad40a18b5924959a8b0c6c151305bc252c0cbd5276432e10002" + }, + { + "filename": "liburing-2.12-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/l/liburing-2.12-1.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 452017, + "sha256": "6bf1c9b5cdd1091325e798c7f99e4a581f8505c35e81a069479ec7d301714e6b" + }, + { + "filename": "libutempter-1.2.1-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libutempter-1.2.1-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 30093, + "sha256": "e48843d2734fefad084a86165860ea9575bdc53f63bb5845d8807ce9ccb4f914" + }, + { + "filename": "libverto-0.3.2-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libverto-0.3.2-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 396005, + "sha256": "a648c6c90c2cfcd6836681bff947499285656e60a5b2243a53b7d6590a8b73ee" + }, + { + "filename": "libxcrypt-4.4.18-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libxcrypt-4.4.18-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 543970, + "sha256": "d18f72eb41ecd0370e2e47f1dc5774be54e9ff3b4dd333578017666c7c488f40" + }, + { + "filename": "libxml2-2.9.13-14.el9_8.4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/libxml2-2.9.13-14.el9_8.4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3310899, + "sha256": "9d6fcd494237d9bd176c7819465cd592fc0e4a5093404e04e3f192411db4639d" + }, + { + "filename": "lz4-1.9.3-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/l/lz4-1.9.3-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 333421, + "sha256": "44e9e079f0f30476a0d8d9849ef1cd940fcc37abee11f481d6043b184bd0cf14" + }, + { + "filename": "mpfr-4.1.0-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/m/mpfr-4.1.0-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1560595, + "sha256": "c812e3c35d5bd5c3e33c65cdcf39d434acfd538aaa68ac04e3a5a9cc60556d50" + }, + { + "filename": "ncurses-6.2-12.20210508.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/n/ncurses-6.2-12.20210508.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3586993, + "sha256": "cdb59ed3771a3a4f00e2ffca853f2de4aa887e3d5c3655317f2e2c03f461103f" + }, + { + "filename": "nss_wrapper-1.1.13-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/n/nss_wrapper-1.1.13-1.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 199854, + "sha256": "70665df15ed2534a7216880efc46d4073c61580e6929cfb6e033a9739f487aab" + }, + { + "filename": "numactl-2.0.19-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/n/numactl-2.0.19-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 233468, + "sha256": "493b0fe1b7e85894fca9efae91004c7b98b52e8e03e4547086aeaf3102bce6c2" + }, + { + "filename": "openldap-2.6.8-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/o/openldap-2.6.8-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6548889, + "sha256": "0d21c12c55d40d1fc2f006c8ec187b5fcc799b794cfd31ed2d98434189c62800" + }, + { + "filename": "openssl-3.5.5-6.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/o/openssl-3.5.5-6.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 53369050, + "sha256": "b79f08d2d04536fdb6801b6ba7da7174942d174dd2b7969316402c737689d735" + }, + { + "filename": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/o/openssl-fips-provider-3.0.7-11.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 28686020, + "sha256": "0b14c251cccb4506df185e78ec55cb49e14e7bcd8de19ad3f3246017b2120693" + }, + { + "filename": "p11-kit-0.26.4-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/p/p11-kit-0.26.4-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1121232, + "sha256": "6f06a4f6812fce869528ff17ab002d655a8da18fc745eafa6c02594bb23dfeeb" + }, + { + "filename": "pam-1.5.1-28.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/p/pam-1.5.1-28.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1142205, + "sha256": "fe61734fdb226915dff402bcd1ad2002e0fd7a4dad9042af65688804f428b30b" + }, + { + "filename": "pcre-8.44-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/p/pcre-8.44-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1624356, + "sha256": "7edbd87b866a3f6e3df1426d660b902e063193d6186027bf99f6d77626a43817" + }, + { + "filename": "pcre2-10.40-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/p/pcre2-10.40-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1789790, + "sha256": "a570f7192be555222aa3704882b9199fb013a84ad4d7dcf40a93d8de2ecf6e0a" + }, + { + "filename": "perl-5.32.1-481.1.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-5.32.1-481.1.el9_6.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 12786537, + "sha256": "cef69403d27b100525c0e630fb17d1ef1d598c608241ea07ba0975b559a42858" + }, + { + "filename": "perl-Carp-1.50-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Carp-1.50-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 37030, + "sha256": "67ec8f31b0276573adc231a83abb15d42f31f56c2520f377da39e6dc9904ccf9" + }, + { + "filename": "perl-Data-Dumper-2.174-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Data-Dumper-2.174-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 131573, + "sha256": "554ef703b9510fdfc7fb7439f20e5b5be6bc05f720ad81fc4cf3973111532d7e" + }, + { + "filename": "perl-Digest-1.19-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Digest-1.19-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 22653, + "sha256": "cfac6eec4d3564b4a9a46df943e5e3b11434673dccfe095e2f631978636d61d1" + }, + { + "filename": "perl-Digest-MD5-2.58-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Digest-MD5-2.58-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 60213, + "sha256": "759005f7d3a3ee7a97da1af8f4c4e30a6d8592f1bc5ca95e6e065c6793f8ea17" + }, + { + "filename": "perl-Encode-3.08-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Encode-3.08-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 1915541, + "sha256": "f5a4058ed88a2763aad3a39a13d7cbe68d0d76f8d7a98b634cb7de63f747e407" + }, + { + "filename": "perl-Exporter-5.74-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Exporter-5.74-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 32709, + "sha256": "67cf67c052ac12e234811589fe0a446a8ad79d4ab09da1187b422397d5f41440" + }, + { + "filename": "perl-File-Path-2.18-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-File-Path-2.18-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 43503, + "sha256": "2523a27381e16676442f21d6c90a0ebabeb65eb37d0ef4a2dacc02155bad183b" + }, + { + "filename": "perl-File-Temp-0.231.100-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-File-Temp-0.231.100-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 89500, + "sha256": "540bfbab1936e66314c0eac3a0880cd4a6ad55242055d7492a398868653d2d89" + }, + { + "filename": "perl-Getopt-Long-2.52-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Getopt-Long-2.52-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 55697, + "sha256": "c5260e60a5d3e4a6ba1ac7aad158322bfc7af0e9e85c10a4426860620cefda28" + }, + { + "filename": "perl-HTTP-Tiny-0.076-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-HTTP-Tiny-0.076-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 93389, + "sha256": "fe6eea19db536fbb948f3bbaf2d334bce7c39638342b8c6b79df7b3cc0a3a103" + }, + { + "filename": "perl-IO-Socket-IP-0.41-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-IO-Socket-IP-0.41-5.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 58169, + "sha256": "820b50e8bbd44baeb36fb2c4996d88909043fb26333c16a0f4f5335d1bc1d04a" + }, + { + "filename": "perl-IO-Socket-SSL-2.073-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-IO-Socket-SSL-2.073-2.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 295384, + "sha256": "f70d650d6e7f244491287e88d0f95637461c3fbd4e6a6124d285520eb0606924" + }, + { + "filename": "perl-MIME-Base64-3.16-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-MIME-Base64-3.16-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 43653, + "sha256": "b48266a93fef844c4b3ee3ff3d61df0cc497558b12e2b7be9e8a87fd3bd3a88b" + }, + { + "filename": "perl-Mozilla-CA-20200520-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Mozilla-CA-20200520-6.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 151174, + "sha256": "488e0f8b1f3d167a5eb3c0156045adea8d1dbe668b24c83b988fa42250690b0d" + }, + { + "filename": "perl-Net-SSLeay-1.94-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Net-SSLeay-1.94-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 693509, + "sha256": "c4b96a011129196428c74b1bc6d72a5c4d45514bd877e345dbf1ee9ede8c5769" + }, + { + "filename": "perl-PathTools-3.78-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-PathTools-3.78-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 141038, + "sha256": "3457f843826ffa381deea36e926b9c89e78b024bb0d7877d3eaf0ce9af414d1d" + }, + { + "filename": "perl-Pod-Escapes-1.07-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Pod-Escapes-1.07-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 22192, + "sha256": "278a6249918084e23053e4847fd00c417de61ecf551ae11c6eaca2068b136ded" + }, + { + "filename": "perl-Pod-Perldoc-3.28.01-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Pod-Perldoc-3.28.01-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 225409, + "sha256": "5ee087f47aa3f1f317069a5c5914f78caea706b0c5690baf6245c5fc9579d71a" + }, + { + "filename": "perl-Pod-Simple-3.42-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Pod-Simple-3.42-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 318605, + "sha256": "0519c7d5391807d300f0490e57ef0402a6831f6820045f6faec44c60b47e110c" + }, + { + "filename": "perl-Pod-Usage-2.01-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Pod-Usage-2.01-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 91508, + "sha256": "82e3309aa8a5b9967dd1bdae4c0e3855e91722244bec647cc95499709aec7bc9" + }, + { + "filename": "perl-Scalar-List-Utils-1.56-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Scalar-List-Utils-1.56-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 187594, + "sha256": "2b9117c65c6939ee02a54d235897441f826ec331eec1db4b674f37e06fc6638a" + }, + { + "filename": "perl-Socket-2.031-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Socket-2.031-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 57721, + "sha256": "cbd4a46e548d84325929c4fc205c20239359f1562729281247265d780fd375ad" + }, + { + "filename": "perl-Storable-3.21-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Storable-3.21-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 225886, + "sha256": "ec9eda9094c07d88067eda454000dfd55465b9dcc3f675599df828044317aa63" + }, + { + "filename": "perl-Term-ANSIColor-5.01-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Term-ANSIColor-5.01-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 69123, + "sha256": "40014939aeafb292b2baea665a8a3b1ee227dac7ecaac540c5fb537a6f8c3824" + }, + { + "filename": "perl-Term-Cap-1.17-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Term-Cap-1.17-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 23367, + "sha256": "52658f861201f1947d07040968098fa9d31433c46bb8b38cd33ca2cd1fdb3b67" + }, + { + "filename": "perl-Text-ParseWords-3.30-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Text-ParseWords-3.30-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 18773, + "sha256": "68425a0a7b9566b14abb56211c43f55146ac20c70a6dc69f983729505c94379c" + }, + { + "filename": "perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 30727, + "sha256": "e3728f77c64a1dc3edae34554fdcb1f6c940b54f665c8529b730f4afff6f1543" + }, + { + "filename": "perl-Time-Local-1.300-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-Time-Local-1.300-7.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 54755, + "sha256": "f9d3745fb10235d5097536f81976f8234921de7a5c4b5cd599aa2b790f4ad18b" + }, + { + "filename": "perl-URI-5.09-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-URI-5.09-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 123780, + "sha256": "20fa38e20285da9712b42fdb9a5dffbc72644c4d608db827e2a10e9d8055dce2" + }, + { + "filename": "perl-constant-1.33-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-constant-1.33-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 32045, + "sha256": "c68aeb1a1dbcf82f3be9b0b23a8fcbaaa9083d46328a76b6646af5412eaeedca" + }, + { + "filename": "perl-libnet-3.13-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-libnet-3.13-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 110461, + "sha256": "e473459e582b0cf07d4ecb9c7045547ad3543b24b5796f06ff8b42184d4a0fad" + }, + { + "filename": "perl-parent-0.238-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-parent-0.238-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 23463, + "sha256": "cb61d28f218c1b1f51be254fa0282270b54fb051e4a164e7937411d7023d8c66" + }, + { + "filename": "perl-podlators-4.14-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/p/perl-podlators-4.14-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 150048, + "sha256": "71e7c3e0eb8d62e314cf45b89d5be318ddb507399a96018079dd5fffe2b18de9" + }, + { + "filename": "pkgconf-1.7.3-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/p/pkgconf-1.7.3-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 310904, + "sha256": "4d53718592b298ca7c49665b1f4e7bd32dcb42cad15c89345585da9f20d4fcae" + }, + { + "filename": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + "url": "https://dnf-srpms.postgresql.org/srpms/18/redhat/rhel-9-x86_64/postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + "repository": "pgdg-18-source", + "size": 31846597, + "sha256": "73529be04e064ee9f0464adc47853f73d532698bc6fe03e35019aa469e4dcc7b" + }, + { + "filename": "readline-8.1-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/r/readline-8.1-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3009702, + "sha256": "bc7a168b7275d1f9bd0f16b47029dd857ddce83fa80c3cb32eac63cb55f591f3" + }, + { + "filename": "redhat-release-9.8-1.0.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/r/redhat-release-9.8-1.0.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 85364, + "sha256": "6c3f4a1287fb76e05e49217a15a33b9c228a56fc06e96376afb37201bfbe32da" + }, + { + "filename": "sed-4.8-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/s/sed-4.8-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1428416, + "sha256": "981073f2c251395b5ae42b7ff929f743260eea9738187fbb207042f11eae7ea7" + }, + { + "filename": "setup-2.13.7-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/s/setup-2.13.7-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 195940, + "sha256": "3acdbbd63bd77dd8b18210b9d597bd59ddf455ff728067638c54194ac3a8a32b" + }, + { + "filename": "shadow-utils-4.9-16.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/s/shadow-utils-4.9-16.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1713058, + "sha256": "771a5ed07cdb690c75cd428a8113e2ee471270044e6cb8025d92c54e32c180ff" + }, + { + "filename": "systemd-252-67.el9_8.4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/s/systemd-252-67.el9_8.4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 45009674, + "sha256": "e44181d1de2a135a5507b956d18a9eb11951a35aaa9c15dbc0f144ed8313f732" + }, + { + "filename": "tzdata-2026c-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/t/tzdata-2026c-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 933774, + "sha256": "4cc10832b19807c03a30bd9317fb37dc811d2f13c11b1ed35af8d2efa481622f" + }, + { + "filename": "util-linux-2.37.4-25.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/u/util-linux-2.37.4-25.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6291867, + "sha256": "6c788387cde9c0fde5481382f3f8416e3ecbcf09c908b409b6c63358b90a399f" + }, + { + "filename": "xz-5.2.5-8.el9_0.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/x/xz-5.2.5-8.el9_0.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1168293, + "sha256": "bce98f3a307e75a8ac28f909e29b41d64b15461fa9ddf0bf4ef3c2f6de946b46" + }, + { + "filename": "zlib-1.2.11-40.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/z/zlib-1.2.11-40.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 561153, + "sha256": "e47b884c132983fd0cc40c761de72e1a34ada9ee395cfe50997f9fb9257669d8" + }, + { + "filename": "zstd-1.5.5-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/z/zstd-1.5.5-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2378112, + "sha256": "922957570bae59b0a45bd9d96ce804c65c6c3260f50198f40804d95ffb0db65e" + } + ] +} diff --git a/artifacts/locks/arm64.json b/artifacts/locks/arm64.json new file mode 100644 index 0000000..4942276 --- /dev/null +++ b/artifacts/locks/arm64.json @@ -0,0 +1,3262 @@ +{ + "schema_version": 1, + "bundle_version": 1, + "architecture": "arm64", + "rpm_architecture": "aarch64", + "generated_at": "2026-09-11T13:35:04Z", + "postgresql_version": "18.6", + "postgresql_rpm_version": "18.6-1PGDG.rhel9.8", + "base_images": { + "builder": { + "reference": "registry.access.redhat.com/ubi9/ubi-minimal:9.8@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93", + "digest": "sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93", + "platform": "linux/arm64" + }, + "runtime": { + "reference": "registry.access.redhat.com/ubi9/ubi-micro:9.8@sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6", + "digest": "sha256:f332c99eb8f798a8486821c91937f10ad64ee83d7e739303be2df051040918f6", + "platform": "linux/arm64" + } + }, + "signing_keys": [ + { + "fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "id": "pgdg-aarch64-rhel", + "sha256": "cc506fa92aa97e8e58f88551a2ec99a61d9d603f7f2c1ae0c06191f58c29979f", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-AARCH64-RHEL", + "filename": "PGDG-RPM-GPG-KEY-AARCH64-RHEL" + }, + { + "fingerprint": "D4BF08AE67A0B4C7A1DBCCD240BCA2B408B40D20", + "id": "pgdg-rhel", + "sha256": "a70c9527426017d00fa4e6f9d2941d515357a27a7be82e155248ece53bbe5453", + "url": "https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL", + "filename": "PGDG-RPM-GPG-KEY-RHEL" + }, + { + "fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "id": "redhat-release", + "sha256": "d4b2543626bee31d9438d4a31731aae712c072893c7aed8854f16c42fafc742b", + "url": "https://security.access.redhat.com/data/fd431d51.txt", + "filename": "fd431d51.txt" + }, + { + "fingerprint": "7E4624258C406535D56D6F135054E4A45A6340B3", + "id": "redhat-release-2", + "sha256": "d37ed8bd8bddb29983a38c6fde4e59d329e6a7c2ecbc702e929f0d05ae5eba59", + "url": "https://security.access.redhat.com/data/5a6340b3.txt", + "filename": "5a6340b3.txt" + } + ], + "packages": [ + { + "name": "acl", + "epoch": 0, + "version": "2.4.0", + "release": "1.el9_8", + "architecture": "aarch64", + "nevra": "acl-0:2.4.0-1.el9_8.aarch64", + "filename": "acl-2.4.0-1.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/a/acl-2.4.0-1.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 84537, + "sha256": "241864fdb68d73b5a63df6269ae0895aec7c08e723fb0506fe446c148c9dad3f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "acl-2.4.0-1.el9_8.src.rpm" + }, + { + "name": "alternatives", + "epoch": 0, + "version": "1.24", + "release": "2.el9", + "architecture": "aarch64", + "nevra": "alternatives-0:1.24-2.el9.aarch64", + "filename": "alternatives-1.24-2.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/a/alternatives-1.24-2.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 42137, + "sha256": "6f7c0667ac015bc0d40836c9f55c73ebf65a209069f69aa8f58e6b4655c820a8", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "chkconfig-1.24-2.el9.src.rpm" + }, + { + "name": "audit-libs", + "epoch": 0, + "version": "3.1.5", + "release": "8.el9", + "architecture": "aarch64", + "nevra": "audit-libs-0:3.1.5-8.el9.aarch64", + "filename": "audit-libs-3.1.5-8.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/a/audit-libs-3.1.5-8.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 128901, + "sha256": "11880ec70b575841843cbee0853e03e50a0506321ea0a6f76c0c8145d79ae531", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "audit-3.1.5-8.el9.src.rpm" + }, + { + "name": "basesystem", + "epoch": 0, + "version": "11", + "release": "13.el9", + "architecture": "noarch", + "nevra": "basesystem-0:11-13.el9.noarch", + "filename": "basesystem-11-13.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/b/basesystem-11-13.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 8229, + "sha256": "f498b0813fa1a825d550e8e3a9e42255eabfa18e6fc96adfc6cc8fa7e16dd513", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "basesystem-11-13.el9.src.rpm" + }, + { + "name": "bash", + "epoch": 0, + "version": "5.1.8", + "release": "9.el9", + "architecture": "aarch64", + "nevra": "bash-0:5.1.8-9.el9.aarch64", + "filename": "bash-5.1.8-9.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/b/bash-5.1.8-9.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1760045, + "sha256": "7dc1febec9c2fb184ed4407f8a188ab267b7e46b3534866f702c6266008ababa", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "bash-5.1.8-9.el9.src.rpm" + }, + { + "name": "bzip2-libs", + "epoch": 0, + "version": "1.0.8", + "release": "11.el9", + "architecture": "aarch64", + "nevra": "bzip2-libs-0:1.0.8-11.el9.aarch64", + "filename": "bzip2-libs-1.0.8-11.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/b/bzip2-libs-1.0.8-11.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 47655, + "sha256": "8267a866b9289ac4e4a92cb4642adcdeff97c2ed816ddda87ed5d5e9d9431a2f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "bzip2-1.0.8-11.el9.src.rpm" + }, + { + "name": "ca-certificates", + "epoch": 0, + "version": "2025.2.80_v9.0.305", + "release": "91.el9", + "architecture": "noarch", + "nevra": "ca-certificates-0:2025.2.80_v9.0.305-91.el9.noarch", + "filename": "ca-certificates-2025.2.80_v9.0.305-91.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/ca-certificates-2025.2.80_v9.0.305-91.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1072208, + "sha256": "0554bf65d573950e7d550a07bf7d0b3def85ca3b45a7fbde4cce7cadd9a476a7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm" + }, + { + "name": "cmake-filesystem", + "epoch": 0, + "version": "3.31.8", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "cmake-filesystem-0:3.31.8-3.el9.aarch64", + "filename": "cmake-filesystem-3.31.8-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/c/cmake-filesystem-3.31.8-3.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 19282, + "sha256": "69a498723354740357fc3f4b4cd235da38fadd98835da193bec0c0850f68f3ad", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cmake-3.31.8-3.el9.src.rpm" + }, + { + "name": "coreutils", + "epoch": 0, + "version": "8.32", + "release": "41.el9_8.1", + "architecture": "aarch64", + "nevra": "coreutils-0:8.32-41.el9_8.1.aarch64", + "filename": "coreutils-8.32-41.el9_8.1.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/coreutils-8.32-41.el9_8.1.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1175876, + "sha256": "22827aedd764c1ab706086965859e7f8fef0d719ac0b3d8735f6b8e53b0a13e9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "coreutils-8.32-41.el9_8.1.src.rpm" + }, + { + "name": "coreutils-common", + "epoch": 0, + "version": "8.32", + "release": "41.el9_8.1", + "architecture": "aarch64", + "nevra": "coreutils-common-0:8.32-41.el9_8.1.aarch64", + "filename": "coreutils-common-8.32-41.el9_8.1.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/coreutils-common-8.32-41.el9_8.1.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2115646, + "sha256": "b449955249a6d2da7369522a5ac2759919d36633e129ba88924057814906d5f5", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "coreutils-8.32-41.el9_8.1.src.rpm" + }, + { + "name": "cracklib", + "epoch": 0, + "version": "2.9.6", + "release": "28.el9", + "architecture": "aarch64", + "nevra": "cracklib-0:2.9.6-28.el9.aarch64", + "filename": "cracklib-2.9.6-28.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-2.9.6-28.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 102026, + "sha256": "d85216b672a15e5dd8cc771b853e3b73e832034949ee23998d8403609fba00a2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cracklib-2.9.6-28.el9.src.rpm" + }, + { + "name": "cracklib-dicts", + "epoch": 0, + "version": "2.9.6", + "release": "28.el9", + "architecture": "aarch64", + "nevra": "cracklib-dicts-0:2.9.6-28.el9.aarch64", + "filename": "cracklib-dicts-2.9.6-28.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cracklib-dicts-2.9.6-28.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 3829400, + "sha256": "807345f95c448cb58d4db8d059f76e4c139ef029887d59b431efd20db934745a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cracklib-2.9.6-28.el9.src.rpm" + }, + { + "name": "crypto-policies", + "epoch": 0, + "version": "20260224", + "release": "1.gitea0f072.el9_8", + "architecture": "noarch", + "nevra": "crypto-policies-0:20260224-1.gitea0f072.el9_8.noarch", + "filename": "crypto-policies-20260224-1.gitea0f072.el9_8.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/crypto-policies-20260224-1.gitea0f072.el9_8.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 98707, + "sha256": "a9ad86b8df75a7c9c29c6f6dd4b8f78cfa1f42b492eff0d11b82c457d37a7f9f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm" + }, + { + "name": "cyrus-sasl-lib", + "epoch": 0, + "version": "2.1.27", + "release": "22.el9", + "architecture": "aarch64", + "nevra": "cyrus-sasl-lib-0:2.1.27-22.el9.aarch64", + "filename": "cyrus-sasl-lib-2.1.27-22.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/c/cyrus-sasl-lib-2.1.27-22.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 771760, + "sha256": "7e4f331fc477f0a8482c825ab1b6bfec7f4007481f4eb53fde7fa0ef2d1f6cde", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "cyrus-sasl-2.1.27-22.el9.src.rpm" + }, + { + "name": "dbus", + "epoch": 1, + "version": "1.12.20", + "release": "8.el9", + "architecture": "aarch64", + "nevra": "dbus-1:1.12.20-8.el9.aarch64", + "filename": "dbus-1.12.20-8.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/d/dbus-1.12.20-8.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 8025, + "sha256": "5178f638660d1699fb06caeeac91f41c07da59b500e94adf2653df892f2cbdf8", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-1.12.20-8.el9.src.rpm" + }, + { + "name": "dbus-broker", + "epoch": 0, + "version": "28", + "release": "9.el9_8", + "architecture": "aarch64", + "nevra": "dbus-broker-0:28-9.el9_8.aarch64", + "filename": "dbus-broker-28-9.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/d/dbus-broker-28-9.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 174219, + "sha256": "ffebc8de0cd9ed86122973be161b617aa46ce1e020f61f9e8e5a42246d4bd495", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-broker-28-9.el9_8.src.rpm" + }, + { + "name": "dbus-common", + "epoch": 1, + "version": "1.12.20", + "release": "8.el9", + "architecture": "noarch", + "nevra": "dbus-common-1:1.12.20-8.el9.noarch", + "filename": "dbus-common-1.12.20-8.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/d/dbus-common-1.12.20-8.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 18551, + "sha256": "298f1cada3cbcef6713098b9925694a0e30e8566f7a5bdbd72384520cf6c8360", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "dbus-1.12.20-8.el9.src.rpm" + }, + { + "name": "expat", + "epoch": 0, + "version": "2.5.0", + "release": "6.el9_8.3", + "architecture": "aarch64", + "nevra": "expat-0:2.5.0-6.el9_8.3.aarch64", + "filename": "expat-2.5.0-6.el9_8.3.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 122400, + "sha256": "df004398da989f75bae9267cfb0ad402ada6e6db46ebef0932c869894c013c08", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "expat-2.5.0-6.el9_8.3.src.rpm" + }, + { + "name": "filesystem", + "epoch": 0, + "version": "3.16", + "release": "5.el9", + "architecture": "aarch64", + "nevra": "filesystem-0:3.16-5.el9.aarch64", + "filename": "filesystem-3.16-5.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/f/filesystem-3.16-5.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 5003914, + "sha256": "484bc41109c49066cf350344150abe144e63263e0fafa0bf12c5a47f853e6a49", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "filesystem-3.16-5.el9.src.rpm" + }, + { + "name": "findutils", + "epoch": 1, + "version": "4.8.0", + "release": "7.el9", + "architecture": "aarch64", + "nevra": "findutils-1:4.8.0-7.el9.aarch64", + "filename": "findutils-4.8.0-7.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/f/findutils-4.8.0-7.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 564807, + "sha256": "158af4d5ecbd8b87f0da762ea1655bd4c86512071a95d8307eda3e0b3991105d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "findutils-4.8.0-7.el9.src.rpm" + }, + { + "name": "gawk", + "epoch": 0, + "version": "5.1.0", + "release": "6.el9", + "architecture": "aarch64", + "nevra": "gawk-0:5.1.0-6.el9.aarch64", + "filename": "gawk-5.1.0-6.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/gawk-5.1.0-6.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1024204, + "sha256": "a4b7202ac90653a7d3e072c2444bde6a9270d6a818eb6f2ffcfcaa50774f1fad", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gawk-5.1.0-6.el9.src.rpm" + }, + { + "name": "gdbm-libs", + "epoch": 1, + "version": "1.23", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "gdbm-libs-1:1.23-1.el9.aarch64", + "filename": "gdbm-libs-1.23-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 60311, + "sha256": "74fffe15dd7f5a41c7d1990c2804defa1b45fb845da29465b73a81d5866e8a72", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gdbm-1.23-1.el9.src.rpm" + }, + { + "name": "glibc", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "aarch64", + "nevra": "glibc-0:2.34-275.el9_8.aarch64", + "filename": "glibc-2.34-275.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/glibc-2.34-275.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1813928, + "sha256": "e40a78100f731b5f5a1b235880a0aaad5b08bb32e6521e90535b7f4a94c6e9e9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "glibc-common", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "aarch64", + "nevra": "glibc-common-0:2.34-275.el9_8.aarch64", + "filename": "glibc-common-2.34-275.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/glibc-common-2.34-275.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 312665, + "sha256": "24e1c7189d101531c526dd3cc1a42ab62d89f874824b54fb6b518ec24f190554", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "glibc-minimal-langpack", + "epoch": 0, + "version": "2.34", + "release": "275.el9_8", + "architecture": "aarch64", + "nevra": "glibc-minimal-langpack-0:2.34-275.el9_8.aarch64", + "filename": "glibc-minimal-langpack-2.34-275.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/glibc-minimal-langpack-2.34-275.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30881, + "sha256": "b1348c4c4fe3da979f342b0c27ff0d33a11688274a0b6708292d7750bbc8d853", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "glibc-2.34-275.el9_8.src.rpm" + }, + { + "name": "gmp", + "epoch": 1, + "version": "6.2.0", + "release": "13.el9", + "architecture": "aarch64", + "nevra": "gmp-1:6.2.0-13.el9.aarch64", + "filename": "gmp-6.2.0-13.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/gmp-6.2.0-13.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 275679, + "sha256": "df01d909e4613514b1844d6ca26d0bcdff8a659762e507188d04ed046fb0cec4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gmp-6.2.0-13.el9.src.rpm" + }, + { + "name": "grep", + "epoch": 0, + "version": "3.6", + "release": "5.el9", + "architecture": "aarch64", + "nevra": "grep-0:3.6-5.el9.aarch64", + "filename": "grep-3.6-5.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/grep-3.6-5.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 276244, + "sha256": "583a247a199901d44dc8a96d46010e15f6211f98f7c61ba089825155b0562520", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "grep-3.6-5.el9.src.rpm" + }, + { + "name": "groff-base", + "epoch": 0, + "version": "1.22.4", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "groff-base-0:1.22.4-10.el9.aarch64", + "filename": "groff-base-1.22.4-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/groff-base-1.22.4-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1088949, + "sha256": "452cfe5372c834bb174ef1f6eed4d0aa6179420fd572163467ac9036fc7a3a1d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "groff-1.22.4-10.el9.src.rpm" + }, + { + "name": "gzip", + "epoch": 0, + "version": "1.12", + "release": "2.el9_8", + "architecture": "aarch64", + "nevra": "gzip-0:1.12-2.el9_8.aarch64", + "filename": "gzip-1.12-2.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/g/gzip-1.12-2.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 171305, + "sha256": "efafc848fdaa3a8e5e77baddc07abc7d800dc973efd44ecf492bc64dca4fabe6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gzip-1.12-2.el9_8.src.rpm" + }, + { + "name": "keyutils-libs", + "epoch": 0, + "version": "1.6.3", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "keyutils-libs-0:1.6.3-1.el9.aarch64", + "filename": "keyutils-libs-1.6.3-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/k/keyutils-libs-1.6.3-1.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 34341, + "sha256": "d747ed6e1916d8ea400c89ad6078a8c298e30d652ec21985c93539e34c587a73", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "keyutils-1.6.3-1.el9.src.rpm" + }, + { + "name": "kmod-libs", + "epoch": 0, + "version": "28", + "release": "11.el9", + "architecture": "aarch64", + "nevra": "kmod-libs-0:28-11.el9.aarch64", + "filename": "kmod-libs-28-11.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/k/kmod-libs-28-11.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 62168, + "sha256": "58526b701eb3a72de98062c58b56524c35916a7b1191bb1a846da33be5a5f709", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "kmod-28-11.el9.src.rpm" + }, + { + "name": "krb5-libs", + "epoch": 0, + "version": "1.21.1", + "release": "10.el9_8", + "architecture": "aarch64", + "nevra": "krb5-libs-0:1.21.1-10.el9_8.aarch64", + "filename": "krb5-libs-1.21.1-10.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/k/krb5-libs-1.21.1-10.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 793489, + "sha256": "f8bbc9abe0da1ebe5bc028154bd54d465fe0682ddbb64c45882b84ff09f40e1d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "krb5-1.21.1-10.el9_8.src.rpm" + }, + { + "name": "libacl", + "epoch": 0, + "version": "2.4.0", + "release": "1.el9_8", + "architecture": "aarch64", + "nevra": "libacl-0:2.4.0-1.el9_8.aarch64", + "filename": "libacl-2.4.0-1.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libacl-2.4.0-1.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 31468, + "sha256": "70ba010505e9805254f772c3dd9cd9e6176fc9e007e8c9be7204c44f85d8bbd2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "acl-2.4.0-1.el9_8.src.rpm" + }, + { + "name": "libatomic", + "epoch": 0, + "version": "11.5.0", + "release": "14.el9", + "architecture": "aarch64", + "nevra": "libatomic-0:11.5.0-14.el9.aarch64", + "filename": "libatomic-11.5.0-14.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libatomic-11.5.0-14.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 26108, + "sha256": "bebe2e8fd98c64d1667e3de1eb3751b7b641bf5d0cd870ed6445fea5c4526326", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gcc-11.5.0-14.el9.src.rpm" + }, + { + "name": "libattr", + "epoch": 0, + "version": "2.6.0", + "release": "1.el9_8", + "architecture": "aarch64", + "nevra": "libattr-0:2.6.0-1.el9_8.aarch64", + "filename": "libattr-2.6.0-1.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libattr-2.6.0-1.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 23276, + "sha256": "ec08036348dbe2ee41645bdb96eb485b9db5121ec0524258b0639426a22a49bc", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "attr-2.6.0-1.el9_8.src.rpm" + }, + { + "name": "libblkid", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "libblkid-0:2.37.4-25.el9.aarch64", + "filename": "libblkid-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libblkid-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 113931, + "sha256": "2c38ac06d3a267b62fc5ea4e149a25c4287c19157f4f18e0f7edea4787b27e15", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libcap", + "epoch": 0, + "version": "2.48", + "release": "10.el9_8.1", + "architecture": "aarch64", + "nevra": "libcap-0:2.48-10.el9_8.1.aarch64", + "filename": "libcap-2.48-10.el9_8.1.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libcap-2.48-10.el9_8.1.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 78021, + "sha256": "1ac3014c33b84d7a492b99d46d47940b096e034a3d5886e16ace7159724be012", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libcap-2.48-10.el9_8.1.src.rpm" + }, + { + "name": "libcap-ng", + "epoch": 0, + "version": "0.8.2", + "release": "7.el9", + "architecture": "aarch64", + "nevra": "libcap-ng-0:0.8.2-7.el9.aarch64", + "filename": "libcap-ng-0.8.2-7.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libcap-ng-0.8.2-7.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 36033, + "sha256": "dc4eae31749196c0043225c6749e7306ff71f081c09cbdb2fc98a561087c4474", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libcap-ng-0.8.2-7.el9.src.rpm" + }, + { + "name": "libcom_err", + "epoch": 0, + "version": "1.46.5", + "release": "8.el9", + "architecture": "aarch64", + "nevra": "libcom_err-0:1.46.5-8.el9.aarch64", + "filename": "libcom_err-1.46.5-8.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libcom_err-1.46.5-8.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 26607, + "sha256": "b7e5c8fe9d9f15864966f46c124659de6cb9137d01e213b3e8cac00d10aab55a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "e2fsprogs-1.46.5-8.el9.src.rpm" + }, + { + "name": "libdb", + "epoch": 0, + "version": "5.3.28", + "release": "57.el9_6", + "architecture": "aarch64", + "nevra": "libdb-0:5.3.28-57.el9_6.aarch64", + "filename": "libdb-5.3.28-57.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 727417, + "sha256": "3a912b2a0a6226695a5773138ce5ce090c9fb155151dffe732b8d52e6dd22d63", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libdb-5.3.28-57.el9_6.src.rpm" + }, + { + "name": "libeconf", + "epoch": 0, + "version": "0.4.1", + "release": "7.el9_8", + "architecture": "aarch64", + "nevra": "libeconf-0:0.4.1-7.el9_8.aarch64", + "filename": "libeconf-0.4.1-7.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libeconf-0.4.1-7.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 32324, + "sha256": "8a5e117c2690c82835c6013f1fbac37b026f3e953fbffbd84c2f5ef6cf8df571", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libeconf-0.4.1-7.el9_8.src.rpm" + }, + { + "name": "libevent", + "epoch": 0, + "version": "2.1.12", + "release": "8.el9_4", + "architecture": "aarch64", + "nevra": "libevent-0:2.1.12-8.el9_4.aarch64", + "filename": "libevent-2.1.12-8.el9_4.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libevent-2.1.12-8.el9_4.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 265763, + "sha256": "0858687ac9d55a0db78ecc4f669ad21ccba6815744457d135f5a313898dfcab7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libevent-2.1.12-8.el9_4.src.rpm" + }, + { + "name": "libfdisk", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "libfdisk-0:2.37.4-25.el9.aarch64", + "filename": "libfdisk-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libfdisk-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 156711, + "sha256": "af043918fc50ce5b3de50c48c3de0143140b692fbf639db6f259270c4211a776", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libffi", + "epoch": 0, + "version": "3.4.2", + "release": "8.el9", + "architecture": "aarch64", + "nevra": "libffi-0:3.4.2-8.el9.aarch64", + "filename": "libffi-3.4.2-8.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libffi-3.4.2-8.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 38554, + "sha256": "d33e180b97a603542cb6f1a78b1c3b0ce4af1bc59ee0bb32620c98a629726bc4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libffi-3.4.2-8.el9.src.rpm" + }, + { + "name": "libgcc", + "epoch": 0, + "version": "11.5.0", + "release": "14.el9", + "architecture": "aarch64", + "nevra": "libgcc-0:11.5.0-14.el9.aarch64", + "filename": "libgcc-11.5.0-14.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libgcc-11.5.0-14.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 81211, + "sha256": "6923218fdef581189a4b51c7ba158083597f1c6df08cae021a1d90e9d61938a9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gcc-11.5.0-14.el9.src.rpm" + }, + { + "name": "libgcrypt", + "epoch": 0, + "version": "1.10.0", + "release": "13.el9_8", + "architecture": "aarch64", + "nevra": "libgcrypt-0:1.10.0-13.el9_8.aarch64", + "filename": "libgcrypt-1.10.0-13.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libgcrypt-1.10.0-13.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 469908, + "sha256": "4a270fae0cf2f5ad846ce530664bbde72e798bb4a8196afb8fd2db93086c31c9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libgcrypt-1.10.0-13.el9_8.src.rpm" + }, + { + "name": "libgpg-error", + "epoch": 0, + "version": "1.42", + "release": "5.el9", + "architecture": "aarch64", + "nevra": "libgpg-error-0:1.42-5.el9.aarch64", + "filename": "libgpg-error-1.42-5.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libgpg-error-1.42-5.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 222476, + "sha256": "aee968114aed0238eb26cff42ec9b0819ad32e2bac99aa8124d55b480806aca5", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libgpg-error-1.42-5.el9.src.rpm" + }, + { + "name": "libicu", + "epoch": 0, + "version": "67.1", + "release": "10.el9_6", + "architecture": "aarch64", + "nevra": "libicu-0:67.1-10.el9_6.aarch64", + "filename": "libicu-67.1-10.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libicu-67.1-10.el9_6.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 9930142, + "sha256": "1d4cee4d0496363be30182e85d80ba9af3fa7157607e66b00a49ba08f5e0c78e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "icu-67.1-10.el9_6.src.rpm" + }, + { + "name": "libmount", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "libmount-0:2.37.4-25.el9.aarch64", + "filename": "libmount-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libmount-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 140081, + "sha256": "152aee3abc8d97a37ff4ce2f5027d7e16e93ff2c77d25e900258da54e6fcc64e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libpkgconf", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "libpkgconf-0:1.7.3-10.el9.aarch64", + "filename": "libpkgconf-1.7.3-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libpkgconf-1.7.3-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 38310, + "sha256": "9bdfccf6b092e0683aa6984f7c6caa737b30c0b1495e16abb03b5d1a5f8e787a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "libpwquality", + "epoch": 0, + "version": "1.4.4", + "release": "8.el9", + "architecture": "aarch64", + "nevra": "libpwquality-0:1.4.4-8.el9.aarch64", + "filename": "libpwquality-1.4.4-8.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libpwquality-1.4.4-8.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 125712, + "sha256": "1657d94bbd79f93dc7a79d474316813bde681ce3a7f62f73314ec4d630e39349", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libpwquality-1.4.4-8.el9.src.rpm" + }, + { + "name": "libseccomp", + "epoch": 0, + "version": "2.5.2", + "release": "2.el9", + "architecture": "aarch64", + "nevra": "libseccomp-0:2.5.2-2.el9.aarch64", + "filename": "libseccomp-2.5.2-2.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libseccomp-2.5.2-2.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 76024, + "sha256": "fc1d5e93483d166ca7f2acb50c04c181db2f3e7b89dba8edc6b1e5f2b0f10619", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libseccomp-2.5.2-2.el9.src.rpm" + }, + { + "name": "libselinux", + "epoch": 0, + "version": "3.6", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "libselinux-0:3.6-3.el9.aarch64", + "filename": "libselinux-3.6-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libselinux-3.6-3.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 89531, + "sha256": "3d7249adbf19206e319cd24acc2e01b0da39975aa3e5af73bdb6c6d438108fac", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libselinux-3.6-3.el9.src.rpm" + }, + { + "name": "libsemanage", + "epoch": 0, + "version": "3.6", + "release": "5.el9_6", + "architecture": "aarch64", + "nevra": "libsemanage-0:3.6-5.el9_6.aarch64", + "filename": "libsemanage-3.6-5.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libsemanage-3.6-5.el9_6.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 120963, + "sha256": "233d8270827b9166ad11827599800d2a09284d29e73af09c7a12bae251a9463c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsemanage-3.6-5.el9_6.src.rpm" + }, + { + "name": "libsepol", + "epoch": 0, + "version": "3.6", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "libsepol-0:3.6-3.el9.aarch64", + "filename": "libsepol-3.6-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libsepol-3.6-3.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 326966, + "sha256": "496ed9e2d7fac9704afe764eab4c2c43b4a47e8c229c14498dd19786f98f80c0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsepol-3.6-3.el9.src.rpm" + }, + { + "name": "libsigsegv", + "epoch": 0, + "version": "2.13", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "libsigsegv-0:2.13-4.el9.aarch64", + "filename": "libsigsegv-2.13-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libsigsegv-2.13-4.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30566, + "sha256": "0998ac158161c9d5f3b97c5dc6e35becd84da0ddc5d347a8af581ada529b3b5c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libsigsegv-2.13-4.el9.src.rpm" + }, + { + "name": "libsmartcols", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "libsmartcols-0:2.37.4-25.el9.aarch64", + "filename": "libsmartcols-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libsmartcols-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 67440, + "sha256": "1704e73a566c920796d877c7bc3e5a96ea0c0c4194109c7b085c1128c01856af", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libstdc++", + "epoch": 0, + "version": "11.5.0", + "release": "14.el9", + "architecture": "aarch64", + "nevra": "libstdc++-0:11.5.0-14.el9.aarch64", + "filename": "libstdc++-11.5.0-14.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libstdc++-11.5.0-14.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 723913, + "sha256": "ae00c5009a2ee4682ec732cde66d3f4fcfc1a7099ba7b3701767d1748a4f2683", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "gcc-11.5.0-14.el9.src.rpm" + }, + { + "name": "libtasn1", + "epoch": 0, + "version": "4.16.0", + "release": "10.el9_8", + "architecture": "aarch64", + "nevra": "libtasn1-0:4.16.0-10.el9_8.aarch64", + "filename": "libtasn1-4.16.0-10.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libtasn1-4.16.0-10.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 80446, + "sha256": "322524934c9b1f0714d2299705dbd41ec93451078e8144babc88c51bd19f6e07", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libtasn1-4.16.0-10.el9_8.src.rpm" + }, + { + "name": "libtool-ltdl", + "epoch": 0, + "version": "2.4.6", + "release": "46.el9", + "architecture": "aarch64", + "nevra": "libtool-ltdl-0:2.4.6-46.el9.aarch64", + "filename": "libtool-ltdl-2.4.6-46.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/l/libtool-ltdl-2.4.6-46.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 37581, + "sha256": "85f38e641398438f7f08526d7003f47e47a14369798464fd67c465134258e964", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libtool-2.4.6-46.el9.src.rpm" + }, + { + "name": "liburing", + "epoch": 0, + "version": "2.12", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "liburing-0:2.12-1.el9.aarch64", + "filename": "liburing-2.12-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/l/liburing-2.12-1.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 43385, + "sha256": "159aa54960256475ce892b50e7e7fa16a9675218986aaf64f40a2292492f5693", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "liburing-2.12-1.el9.src.rpm" + }, + { + "name": "libutempter", + "epoch": 0, + "version": "1.2.1", + "release": "6.el9", + "architecture": "aarch64", + "nevra": "libutempter-0:1.2.1-6.el9.aarch64", + "filename": "libutempter-1.2.1-6.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libutempter-1.2.1-6.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30505, + "sha256": "d352371cbb7d5bd0c53fc699df953c8c1f184b056690b3c4571e57a6634015c5", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libutempter-1.2.1-6.el9.src.rpm" + }, + { + "name": "libuuid", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "libuuid-0:2.37.4-25.el9.aarch64", + "filename": "libuuid-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libuuid-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 32555, + "sha256": "4d7bb4144053a30067a82423fb6e88fd08c7a69bd256eb21b08c0e3f4dbbaee6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "libverto", + "epoch": 0, + "version": "0.3.2", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "libverto-0:0.3.2-3.el9.aarch64", + "filename": "libverto-0.3.2-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libverto-0.3.2-3.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 24651, + "sha256": "80d6e32c111ab9c0b2c607475b6a6691cdf6abaec19fde27043e8710a94a8f0c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libverto-0.3.2-3.el9.src.rpm" + }, + { + "name": "libxcrypt", + "epoch": 0, + "version": "4.4.18", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "libxcrypt-0:4.4.18-3.el9.aarch64", + "filename": "libxcrypt-4.4.18-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libxcrypt-4.4.18-3.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 127655, + "sha256": "f05030123425a5033bcca3f260313cafc199bc7bca57e9fb13c335bd087c35a7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libxcrypt-4.4.18-3.el9.src.rpm" + }, + { + "name": "libxml2", + "epoch": 0, + "version": "2.9.13", + "release": "14.el9_8.4", + "architecture": "aarch64", + "nevra": "libxml2-0:2.9.13-14.el9_8.4.aarch64", + "filename": "libxml2-2.9.13-14.el9_8.4.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libxml2-2.9.13-14.el9_8.4.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 754646, + "sha256": "10417dde519f111c6248fae0eb6fb9889efd3e68c575caced652823d7ef4f169", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "libxml2-2.9.13-14.el9_8.4.src.rpm" + }, + { + "name": "libzstd", + "epoch": 0, + "version": "1.5.5", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "libzstd-0:1.5.5-1.el9.aarch64", + "filename": "libzstd-1.5.5-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libzstd-1.5.5-1.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 283159, + "sha256": "1229ed44dc7a68278682d7697c41d0abd7daedd242d90c6dc58a9aa6e76f9e6f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "zstd-1.5.5-1.el9.src.rpm" + }, + { + "name": "lz4-libs", + "epoch": 0, + "version": "1.9.3", + "release": "5.el9", + "architecture": "aarch64", + "nevra": "lz4-libs-0:1.9.3-5.el9.aarch64", + "filename": "lz4-libs-1.9.3-5.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/lz4-libs-1.9.3-5.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 70696, + "sha256": "e1dbd2c38a65b135427c7c8fe988ea70dc95f7e26c4c8177b7dcb23925020015", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "lz4-1.9.3-5.el9.src.rpm" + }, + { + "name": "mpfr", + "epoch": 0, + "version": "4.1.0", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "mpfr-0:4.1.0-10.el9.aarch64", + "filename": "mpfr-4.1.0-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/m/mpfr-4.1.0-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 249973, + "sha256": "c238f7451d1fcc5431bef2904ba56a0bea51d28337ccb692f6d6a09286043a65", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "mpfr-4.1.0-10.el9.src.rpm" + }, + { + "name": "ncurses", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "aarch64", + "nevra": "ncurses-0:6.2-12.20210508.el9.aarch64", + "filename": "ncurses-6.2-12.20210508.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/n/ncurses-6.2-12.20210508.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 414136, + "sha256": "70b5e65c332d9b68b005fa0b8e7d0b53deaa21c55833fa1bd5fed4985c2f95c0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "ncurses-base", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "noarch", + "nevra": "ncurses-base-0:6.2-12.20210508.el9.noarch", + "filename": "ncurses-base-6.2-12.20210508.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/n/ncurses-base-6.2-12.20210508.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 97840, + "sha256": "d62dfd41f9688efa2cf1ceedb96084c63e297fbdcfd1e72bc6757c730092b60c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "ncurses-libs", + "epoch": 0, + "version": "6.2", + "release": "12.20210508.el9", + "architecture": "aarch64", + "nevra": "ncurses-libs-0:6.2-12.20210508.el9.aarch64", + "filename": "ncurses-libs-6.2-12.20210508.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/n/ncurses-libs-6.2-12.20210508.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 324624, + "sha256": "b5dd452392d2f97bb050c9f5e5376998652c567dcbd8f035d26659b1b551b5c9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "ncurses-6.2-12.20210508.el9.src.rpm" + }, + { + "name": "nss_wrapper", + "epoch": 0, + "version": "1.1.13", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "nss_wrapper-0:1.1.13-1.el9.aarch64", + "filename": "nss_wrapper-1.1.13-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/n/nss_wrapper-1.1.13-1.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17017, + "sha256": "4796e73ff6ecb8cd1683afc5d9dd48a33b124078c61d1bde6160e69ba261305d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "nss_wrapper-1.1.13-1.el9.src.rpm" + }, + { + "name": "nss_wrapper-libs", + "epoch": 0, + "version": "1.1.13", + "release": "1.el9", + "architecture": "aarch64", + "nevra": "nss_wrapper-libs-0:1.1.13-1.el9.aarch64", + "filename": "nss_wrapper-libs-1.1.13-1.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/n/nss_wrapper-libs-1.1.13-1.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 42262, + "sha256": "e6b606e3adb3c3bfc1b1855616a0826a61e64b66e948011dedd77031e265c02e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "nss_wrapper-1.1.13-1.el9.src.rpm" + }, + { + "name": "numactl-libs", + "epoch": 0, + "version": "2.0.19", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "numactl-libs-0:2.0.19-3.el9.aarch64", + "filename": "numactl-libs-2.0.19-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/n/numactl-libs-2.0.19-3.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 30594, + "sha256": "ecbd9d8f86e0c7472d163f5292f10455b15a60a47e48684cc0044b45d7d1dff4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "numactl-2.0.19-3.el9.src.rpm" + }, + { + "name": "openldap", + "epoch": 0, + "version": "2.6.8", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "openldap-0:2.6.8-4.el9.aarch64", + "filename": "openldap-2.6.8-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openldap-2.6.8-4.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 291500, + "sha256": "fd684316480b2f9a9448d550c2509e37016710ca0724ff3d17d91fa0be2bdc4e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openldap-2.6.8-4.el9.src.rpm" + }, + { + "name": "openssl", + "epoch": 1, + "version": "3.5.5", + "release": "6.el9_8", + "architecture": "aarch64", + "nevra": "openssl-1:3.5.5-6.el9_8.aarch64", + "filename": "openssl-3.5.5-6.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-3.5.5-6.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1541002, + "sha256": "9f10be36d0d532c65a3f9a41f7d0cd3190b0b908f60850862cc24cab06cd1101", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-3.5.5-6.el9_8.src.rpm" + }, + { + "name": "openssl-fips-provider", + "epoch": 0, + "version": "3.0.7", + "release": "11.el9_8", + "architecture": "aarch64", + "nevra": "openssl-fips-provider-0:3.0.7-11.el9_8.aarch64", + "filename": "openssl-fips-provider-3.0.7-11.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-fips-provider-3.0.7-11.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 14220, + "sha256": "158193d2f965db318148ec76e9347b530ac1f5379d849012c0a04d3c50cda478", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm" + }, + { + "name": "openssl-fips-provider-so", + "epoch": 0, + "version": "3.0.7", + "release": "11.el9_8", + "architecture": "aarch64", + "nevra": "openssl-fips-provider-so-0:3.0.7-11.el9_8.aarch64", + "filename": "openssl-fips-provider-so-3.0.7-11.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-fips-provider-so-3.0.7-11.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 529340, + "sha256": "22374a51f8a529dcfcf3b3ebbb2095103e0e811a28953535e5a62e26d1233301", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm" + }, + { + "name": "openssl-libs", + "epoch": 1, + "version": "3.5.5", + "release": "6.el9_8", + "architecture": "aarch64", + "nevra": "openssl-libs-1:3.5.5-6.el9_8.aarch64", + "filename": "openssl-libs-3.5.5-6.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-libs-3.5.5-6.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2290581, + "sha256": "9af799c6be853cb42999a1228a2768da20a21895b7dcac111dba3be13a397b67", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "openssl-3.5.5-6.el9_8.src.rpm" + }, + { + "name": "p11-kit", + "epoch": 0, + "version": "0.26.4", + "release": "1.el9_8", + "architecture": "aarch64", + "nevra": "p11-kit-0:0.26.4-1.el9_8.aarch64", + "filename": "p11-kit-0.26.4-1.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/p11-kit-0.26.4-1.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 589112, + "sha256": "b9391ea6618098782c9325ccda3c9ca8bc0f3b035bd4f113a793cea18026c75e", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "p11-kit-0.26.4-1.el9_8.src.rpm" + }, + { + "name": "p11-kit-trust", + "epoch": 0, + "version": "0.26.4", + "release": "1.el9_8", + "architecture": "aarch64", + "nevra": "p11-kit-trust-0:0.26.4-1.el9_8.aarch64", + "filename": "p11-kit-trust-0.26.4-1.el9_8.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/p11-kit-trust-0.26.4-1.el9_8.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 162392, + "sha256": "a57761123cd5836faf3d40251d16124557ffb452443bfa14cf59ac16e6c99970", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "p11-kit-0.26.4-1.el9_8.src.rpm" + }, + { + "name": "pam", + "epoch": 0, + "version": "1.5.1", + "release": "28.el9_8.1", + "architecture": "aarch64", + "nevra": "pam-0:1.5.1-28.el9_8.1.aarch64", + "filename": "pam-1.5.1-28.el9_8.1.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pam-1.5.1-28.el9_8.1.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 642233, + "sha256": "12271815e3a5d35dbc4a8e1e3b52442b0d00b833816ef3a923da427a3bca561a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pam-1.5.1-28.el9_8.1.src.rpm" + }, + { + "name": "pcre", + "epoch": 0, + "version": "8.44", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "pcre-0:8.44-4.el9.aarch64", + "filename": "pcre-8.44-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pcre-8.44-4.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 187289, + "sha256": "099feef7e71b82cf0234e37d824fc81353d51dee55694e05181fa686ab50efae", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre-8.44-4.el9.src.rpm" + }, + { + "name": "pcre2", + "epoch": 0, + "version": "10.40", + "release": "6.el9", + "architecture": "aarch64", + "nevra": "pcre2-0:10.40-6.el9.aarch64", + "filename": "pcre2-10.40-6.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pcre2-10.40-6.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 224938, + "sha256": "29285f81cef68f73b4f8ff81ee8fdf4ceaa007933302119ed1615e4aa1091613", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre2-10.40-6.el9.src.rpm" + }, + { + "name": "pcre2-syntax", + "epoch": 0, + "version": "10.40", + "release": "6.el9", + "architecture": "noarch", + "nevra": "pcre2-syntax-0:10.40-6.el9.noarch", + "filename": "pcre2-syntax-10.40-6.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pcre2-syntax-10.40-6.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 147926, + "sha256": "d386b5e9b3a4b077b2ba143882e605750855dd3354f13c55fa12ed26908cb442", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pcre2-10.40-6.el9.src.rpm" + }, + { + "name": "perl-AutoLoader", + "epoch": 0, + "version": "5.74", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-AutoLoader-0:5.74-481.1.el9_6.noarch", + "filename": "perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-AutoLoader-5.74-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 21344, + "sha256": "b4557d853be8048aaefde5c4083c43fa34375e224731e93e584e4e3d5db46ac3", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-B", + "epoch": 0, + "version": "1.80", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-B-0:1.80-481.1.el9_6.aarch64", + "filename": "perl-B-1.80-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-B-1.80-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 184600, + "sha256": "f7f82b51c586f075eff5f7fb04b96827425974effee364199844dfdc9b3f5a9b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Carp", + "epoch": 0, + "version": "1.50", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Carp-0:1.50-460.el9.noarch", + "filename": "perl-Carp-1.50-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Carp-1.50-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 32039, + "sha256": "c51470a55b1dce42f944bdea06a10469f5a42d55be898a33c2fed3a99843fbb2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Carp-1.50-460.el9.src.rpm" + }, + { + "name": "perl-Class-Struct", + "epoch": 0, + "version": "0.66", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Class-Struct-0:0.66-481.1.el9_6.noarch", + "filename": "perl-Class-Struct-0.66-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Class-Struct-0.66-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22220, + "sha256": "d35ff343bd718fbd8531995a8aedb866c6d37fac6a688fcf9a458017781bf058", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Data-Dumper", + "epoch": 0, + "version": "2.174", + "release": "462.el9", + "architecture": "aarch64", + "nevra": "perl-Data-Dumper-0:2.174-462.el9.aarch64", + "filename": "perl-Data-Dumper-2.174-462.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Data-Dumper-2.174-462.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 58773, + "sha256": "0ac738aff66419ff8853d2e2b8d2fe231b90de129060ecc0390bca9c6c680e0d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Data-Dumper-2.174-462.el9.src.rpm" + }, + { + "name": "perl-Digest", + "epoch": 0, + "version": "1.19", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Digest-0:1.19-4.el9.noarch", + "filename": "perl-Digest-1.19-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Digest-1.19-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 29409, + "sha256": "e0b8633f818467f9e1bf46b9c0012af7bf8a309ac64e903a2a9faf3fae7705f9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Digest-1.19-4.el9.src.rpm" + }, + { + "name": "perl-Digest-MD5", + "epoch": 0, + "version": "2.58", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "perl-Digest-MD5-0:2.58-4.el9.aarch64", + "filename": "perl-Digest-MD5-2.58-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Digest-MD5-2.58-4.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 40515, + "sha256": "6eeb8e68cfbd7cca24d6132be8b947de99ab26cdb79d6021e9e6efeb36b67e0b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Digest-MD5-2.58-4.el9.src.rpm" + }, + { + "name": "perl-Encode", + "epoch": 4, + "version": "3.08", + "release": "462.el9", + "architecture": "aarch64", + "nevra": "perl-Encode-4:3.08-462.el9.aarch64", + "filename": "perl-Encode-3.08-462.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Encode-3.08-462.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 1825541, + "sha256": "72c92a12c67d05f9aa7f5670ccb1b743612d8fa946775feada28e199a31db0a9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Encode-3.08-462.el9.src.rpm" + }, + { + "name": "perl-Errno", + "epoch": 0, + "version": "1.30", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-Errno-0:1.30-481.1.el9_6.aarch64", + "filename": "perl-Errno-1.30-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Errno-1.30-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14826, + "sha256": "be31dbcae3e58ea4094719bf3882aa3c35599a152341cb48d2aec1aba787d877", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Exporter", + "epoch": 0, + "version": "5.74", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Exporter-0:5.74-461.el9.noarch", + "filename": "perl-Exporter-5.74-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Exporter-5.74-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 34509, + "sha256": "888e14ebd70c2b69150873236b0df7c3a29c9edd488fd8488527c179e798b409", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Exporter-5.74-461.el9.src.rpm" + }, + { + "name": "perl-Fcntl", + "epoch": 0, + "version": "1.13", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-Fcntl-0:1.13-481.1.el9_6.aarch64", + "filename": "perl-Fcntl-1.13-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Fcntl-1.13-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 20270, + "sha256": "2dcec56d48812e21c75b6e23a5ee613e7b68aa0d6136e5f9f37bc841592bae97", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-File-Basename", + "epoch": 0, + "version": "2.85", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-File-Basename-0:2.85-481.1.el9_6.noarch", + "filename": "perl-File-Basename-2.85-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-Basename-2.85-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17211, + "sha256": "e39dcc13a24d3b5a7ba11288e63b22a055a8e1061743b8a409858d98ebd794e4", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-File-Path", + "epoch": 0, + "version": "2.18", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-File-Path-0:2.18-4.el9.noarch", + "filename": "perl-File-Path-2.18-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-Path-2.18-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 38466, + "sha256": "d1df5e509c10365eaa329a0b97e38bc2667874240d3942195eb6ce7a88985a41", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-File-Path-2.18-4.el9.src.rpm" + }, + { + "name": "perl-File-Temp", + "epoch": 1, + "version": "0.231.100", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-File-Temp-1:0.231.100-4.el9.noarch", + "filename": "perl-File-Temp-0.231.100-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-Temp-0.231.100-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 64150, + "sha256": "0a81b062391ac6dac3ec28ff1e435001dd798cf1ff19fdb52cfe1e0720d5de03", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-File-Temp-0.231.100-4.el9.src.rpm" + }, + { + "name": "perl-File-stat", + "epoch": 0, + "version": "1.09", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-File-stat-0:1.09-481.1.el9_6.noarch", + "filename": "perl-File-stat-1.09-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-File-stat-1.09-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 17117, + "sha256": "b235134c1961e9b57f86bddc02e874607c17c155d2aa5ad78cc3ed9c8fd9c95b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-FileHandle", + "epoch": 0, + "version": "2.03", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-FileHandle-0:2.03-481.1.el9_6.noarch", + "filename": "perl-FileHandle-2.03-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-FileHandle-2.03-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 15452, + "sha256": "c2139abdb9b3335f592aa2835ef6d6fcde1e89232eb3d3c5a15f7cc1d0829f8d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Getopt-Long", + "epoch": 1, + "version": "2.52", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Getopt-Long-1:2.52-4.el9.noarch", + "filename": "perl-Getopt-Long-2.52-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Getopt-Long-2.52-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 65144, + "sha256": "055fe33d2a7a421c1de8902b86a2f246ef6457774239d04b604f2d0ec6a00a14", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Getopt-Long-2.52-4.el9.src.rpm" + }, + { + "name": "perl-Getopt-Std", + "epoch": 0, + "version": "1.12", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Getopt-Std-0:1.12-481.1.el9_6.noarch", + "filename": "perl-Getopt-Std-1.12-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Getopt-Std-1.12-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 15551, + "sha256": "49bd8381823d680d17c37f3bebfd97dd92bfbf59e8019f15c7606f41dca02a7d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-HTTP-Tiny", + "epoch": 0, + "version": "0.076", + "release": "462.el9", + "architecture": "noarch", + "nevra": "perl-HTTP-Tiny-0:0.076-462.el9.noarch", + "filename": "perl-HTTP-Tiny-0.076-462.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-HTTP-Tiny-0.076-462.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 58720, + "sha256": "696f388a50f5be81596757d68251067449203e1c126ee8c23a7c5a0ad1ac5418", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-HTTP-Tiny-0.076-462.el9.src.rpm" + }, + { + "name": "perl-IO", + "epoch": 0, + "version": "1.43", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-IO-0:1.43-481.1.el9_6.aarch64", + "filename": "perl-IO-1.43-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-IO-1.43-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 90373, + "sha256": "eb00f890b53bb5335be0d35994869e8855ad62668ef5199688ab951ffd8c76b6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-IO-Socket-IP", + "epoch": 0, + "version": "0.41", + "release": "5.el9", + "architecture": "noarch", + "nevra": "perl-IO-Socket-IP-0:0.41-5.el9.noarch", + "filename": "perl-IO-Socket-IP-0.41-5.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-IO-Socket-IP-0.41-5.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 46457, + "sha256": "4c80030ce256198584c4a58171b9dfe3adb4a8d7593110229e40ece76786a32f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-IO-Socket-IP-0.41-5.el9.src.rpm" + }, + { + "name": "perl-IO-Socket-SSL", + "epoch": 0, + "version": "2.073", + "release": "2.el9", + "architecture": "noarch", + "nevra": "perl-IO-Socket-SSL-0:2.073-2.el9.noarch", + "filename": "perl-IO-Socket-SSL-2.073-2.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-IO-Socket-SSL-2.073-2.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 226003, + "sha256": "b52d5b6a5081e3c142b2364b3f1ef58f569b39052df045f24363de9bb4f9cfd2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-IO-Socket-SSL-2.073-2.el9.src.rpm" + }, + { + "name": "perl-IPC-Open3", + "epoch": 0, + "version": "1.21", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-IPC-Open3-0:1.21-481.1.el9_6.noarch", + "filename": "perl-IPC-Open3-1.21-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-IPC-Open3-1.21-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22968, + "sha256": "7ea36dcf28da3fc7250eb041ba19f99c87543c0870f5da67da614f5ca8d18b92", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-MIME-Base64", + "epoch": 0, + "version": "3.16", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "perl-MIME-Base64-0:3.16-4.el9.aarch64", + "filename": "perl-MIME-Base64-3.16-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-MIME-Base64-3.16-4.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 35080, + "sha256": "8fd71ba1ada7ab6b0b83400716671139a7adbf01d9bfed881398497170ccb308", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-MIME-Base64-3.16-4.el9.src.rpm" + }, + { + "name": "perl-Mozilla-CA", + "epoch": 0, + "version": "20200520", + "release": "6.el9", + "architecture": "noarch", + "nevra": "perl-Mozilla-CA-0:20200520-6.el9.noarch", + "filename": "perl-Mozilla-CA-20200520-6.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Mozilla-CA-20200520-6.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14781, + "sha256": "99030bfb6a1a2ac41e0720841abaa8ba58c26e91640f4058cc6133e227e928a7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Mozilla-CA-20200520-6.el9.src.rpm" + }, + { + "name": "perl-Net-SSLeay", + "epoch": 0, + "version": "1.94", + "release": "3.el9", + "architecture": "aarch64", + "nevra": "perl-Net-SSLeay-0:1.94-3.el9.aarch64", + "filename": "perl-Net-SSLeay-1.94-3.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Net-SSLeay-1.94-3.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 424450, + "sha256": "d2781d36ecbfb5fbbb3d73a589dfef6fcaa694facee347d0a66d70b07ebe0ed8", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Net-SSLeay-1.94-3.el9.src.rpm" + }, + { + "name": "perl-POSIX", + "epoch": 0, + "version": "1.94", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-POSIX-0:1.94-481.1.el9_6.aarch64", + "filename": "perl-POSIX-1.94-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-POSIX-1.94-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 98493, + "sha256": "1afecd9468a279bcf9c4e2d7d37f09cc3779f7b869a26ba3d0dcef78f7b9c0af", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-PathTools", + "epoch": 0, + "version": "3.78", + "release": "461.el9", + "architecture": "aarch64", + "nevra": "perl-PathTools-0:3.78-461.el9.aarch64", + "filename": "perl-PathTools-3.78-461.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-PathTools-3.78-461.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 94325, + "sha256": "5cd800158be7a9ddaf8e9c5d193d10992e01a35c4f438ff072852d194e3a5311", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-PathTools-3.78-461.el9.src.rpm" + }, + { + "name": "perl-Pod-Escapes", + "epoch": 1, + "version": "1.07", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Escapes-1:1.07-460.el9.noarch", + "filename": "perl-Pod-Escapes-1.07-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Pod-Escapes-1.07-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 22564, + "sha256": "42fa08cc02a405933395316610a56e2bff58f6f7be16e9a063ec634747199bc0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Escapes-1.07-460.el9.src.rpm" + }, + { + "name": "perl-Pod-Perldoc", + "epoch": 0, + "version": "3.28.01", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Perldoc-0:3.28.01-461.el9.noarch", + "filename": "perl-Pod-Perldoc-3.28.01-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Pod-Perldoc-3.28.01-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 93727, + "sha256": "db3285dbe77ddc822d6bb847f857ea7032786cf7996b26d6c01481903b6d26e0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Perldoc-3.28.01-461.el9.src.rpm" + }, + { + "name": "perl-Pod-Simple", + "epoch": 1, + "version": "3.42", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Simple-1:3.42-4.el9.noarch", + "filename": "perl-Pod-Simple-3.42-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Pod-Simple-3.42-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 234403, + "sha256": "2752454ce47a46227c6b7b98a5d9a25dcf3a992f27109a726744a66cd93c7b9a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Simple-3.42-4.el9.src.rpm" + }, + { + "name": "perl-Pod-Usage", + "epoch": 4, + "version": "2.01", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-Pod-Usage-4:2.01-4.el9.noarch", + "filename": "perl-Pod-Usage-2.01-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Pod-Usage-2.01-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 44477, + "sha256": "c170870a2d1ff32048d13497fa67c382fe5aaf3d8d21bae639356ac28003dba9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Pod-Usage-2.01-4.el9.src.rpm" + }, + { + "name": "perl-Scalar-List-Utils", + "epoch": 4, + "version": "1.56", + "release": "462.el9", + "architecture": "aarch64", + "nevra": "perl-Scalar-List-Utils-4:1.56-462.el9.aarch64", + "filename": "perl-Scalar-List-Utils-1.56-462.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Scalar-List-Utils-1.56-462.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 76001, + "sha256": "5e3592356c1610311f5bf8be4cbc9e35ad04d6b3ba089d70b700d8b70f534635", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Scalar-List-Utils-1.56-462.el9.src.rpm" + }, + { + "name": "perl-SelectSaver", + "epoch": 0, + "version": "1.02", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-SelectSaver-0:1.02-481.1.el9_6.noarch", + "filename": "perl-SelectSaver-1.02-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-SelectSaver-1.02-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 11553, + "sha256": "8ec404df551d6cc4750efa34b9897d2288d07a26d49cd3d3d2315584976932b0", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Socket", + "epoch": 4, + "version": "2.031", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "perl-Socket-4:2.031-4.el9.aarch64", + "filename": "perl-Socket-2.031-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Socket-2.031-4.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 59426, + "sha256": "f69c6cd2c48606efa7477ef73ef2cb03c07aa02d535f03824dbe966f6235cc88", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Socket-2.031-4.el9.src.rpm" + }, + { + "name": "perl-Storable", + "epoch": 1, + "version": "3.21", + "release": "460.el9", + "architecture": "aarch64", + "nevra": "perl-Storable-1:3.21-460.el9.aarch64", + "filename": "perl-Storable-3.21-460.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Storable-3.21-460.el9.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 98115, + "sha256": "61a7bc7d2a2e3b0c42289927a1ecc7b9f672ce3281be58a59b3b2875e4203457", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Storable-3.21-460.el9.src.rpm" + }, + { + "name": "perl-Symbol", + "epoch": 0, + "version": "1.08", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-Symbol-0:1.08-481.1.el9_6.noarch", + "filename": "perl-Symbol-1.08-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Symbol-1.08-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 14061, + "sha256": "aa9942be4c837c024c6a0a376b13f9563e16ee8b66631ad6c5ff35cd0124728d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-Term-ANSIColor", + "epoch": 0, + "version": "5.01", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-Term-ANSIColor-0:5.01-461.el9.noarch", + "filename": "perl-Term-ANSIColor-5.01-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Term-ANSIColor-5.01-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 52228, + "sha256": "996148d460395369394e9d4721e9000c5b2fa34ee800390a4a9d885b6db95b23", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Term-ANSIColor-5.01-461.el9.src.rpm" + }, + { + "name": "perl-Term-Cap", + "epoch": 0, + "version": "1.17", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Term-Cap-0:1.17-460.el9.noarch", + "filename": "perl-Term-Cap-1.17-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Term-Cap-1.17-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25043, + "sha256": "015a6d02b9c84bd353680d4bad61f3c8d297c53c3a43325e08e4ac4b48f97f17", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Term-Cap-1.17-460.el9.src.rpm" + }, + { + "name": "perl-Text-ParseWords", + "epoch": 0, + "version": "3.30", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Text-ParseWords-0:3.30-460.el9.noarch", + "filename": "perl-Text-ParseWords-3.30-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Text-ParseWords-3.30-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 18680, + "sha256": "4d47f3ba0ce454be5d781e968cfe15f01f393e68a47c415f35c0d88358ab4af9", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Text-ParseWords-3.30-460.el9.src.rpm" + }, + { + "name": "perl-Text-Tabs+Wrap", + "epoch": 0, + "version": "2013.0523", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-Text-Tabs+Wrap-0:2013.0523-460.el9.noarch", + "filename": "perl-Text-Tabs+Wrap-2013.0523-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Text-Tabs+Wrap-2013.0523-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25935, + "sha256": "5ad6ef70bbb4ba8d5cfd6ee0b3dda0ddc8cf0103199959499944019a66f7edcd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm" + }, + { + "name": "perl-Time-Local", + "epoch": 2, + "version": "1.300", + "release": "7.el9", + "architecture": "noarch", + "nevra": "perl-Time-Local-2:1.300-7.el9.noarch", + "filename": "perl-Time-Local-1.300-7.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-Time-Local-1.300-7.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 37469, + "sha256": "e8e1e692b6e52cdb69515b2ad44b84ca71917bea5f47908cb9ae89b2bbd145a1", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-Time-Local-1.300-7.el9.src.rpm" + }, + { + "name": "perl-URI", + "epoch": 0, + "version": "5.09", + "release": "3.el9", + "architecture": "noarch", + "nevra": "perl-URI-0:5.09-3.el9.noarch", + "filename": "perl-URI-5.09-3.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-URI-5.09-3.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 128279, + "sha256": "1635b7d818e4f70445f7207f13e058c63c5d1f5aa081cfd2583912ae45f8e1bd", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-URI-5.09-3.el9.src.rpm" + }, + { + "name": "perl-base", + "epoch": 0, + "version": "2.27", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-base-0:2.27-481.1.el9_6.noarch", + "filename": "perl-base-2.27-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-base-2.27-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 16220, + "sha256": "0be44f055107893b011ed0e88f39ff202ba451db8a94351ad4472d350c780d0d", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-constant", + "epoch": 0, + "version": "1.33", + "release": "461.el9", + "architecture": "noarch", + "nevra": "perl-constant-0:1.33-461.el9.noarch", + "filename": "perl-constant-1.33-461.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-constant-1.33-461.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 25865, + "sha256": "8ab94e13cab4e7eee081c7618ea7738b072d8093631d97b8b1f83bff893cf892", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-constant-1.33-461.el9.src.rpm" + }, + { + "name": "perl-if", + "epoch": 0, + "version": "0.60.800", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-if-0:0.60.800-481.1.el9_6.noarch", + "filename": "perl-if-0.60.800-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-if-0.60.800-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 13876, + "sha256": "ae3ce80bee55e1057ed004ec03a0e826b0cdd90ace4c0784ab2f569a2d81d40c", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-interpreter", + "epoch": 4, + "version": "5.32.1", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-interpreter-4:5.32.1-481.1.el9_6.aarch64", + "filename": "perl-interpreter-5.32.1-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-interpreter-5.32.1-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 71956, + "sha256": "8f17e4683b342e5d0e97406a4c464f6ba7a9b9deaf6e39ff36b5b1459daea162", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-libnet", + "epoch": 0, + "version": "3.13", + "release": "4.el9", + "architecture": "noarch", + "nevra": "perl-libnet-0:3.13-4.el9.noarch", + "filename": "perl-libnet-3.13-4.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-libnet-3.13-4.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 137289, + "sha256": "79156f91a2ee21fb96f10e331047c55ff913e36f9a13ff89d0a479f0fc4dcb98", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-libnet-3.13-4.el9.src.rpm" + }, + { + "name": "perl-libs", + "epoch": 4, + "version": "5.32.1", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-libs-4:5.32.1-481.1.el9_6.aarch64", + "filename": "perl-libs-5.32.1-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-libs-5.32.1-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 2255446, + "sha256": "63434fb3f9efb3417bb263c8b9e1590384e7124a094855e82d64655161eaff21", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-mro", + "epoch": 0, + "version": "1.23", + "release": "481.1.el9_6", + "architecture": "aarch64", + "nevra": "perl-mro-0:1.23-481.1.el9_6.aarch64", + "filename": "perl-mro-1.23-481.1.el9_6.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-mro-1.23-481.1.el9_6.aarch64.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 27780, + "sha256": "10e9c630c9628d189ff2d705f280498c83bc407a1fb03b11f4251973b7e46b51", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-overload", + "epoch": 0, + "version": "1.31", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-overload-0:1.31-481.1.el9_6.noarch", + "filename": "perl-overload-1.31-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-overload-1.31-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 46157, + "sha256": "f172df7417780cb61b879effe60ce6b7b4399773c46cb9896a5edf2bfba6dbda", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-overloading", + "epoch": 0, + "version": "0.02", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-overloading-0:0.02-481.1.el9_6.noarch", + "filename": "perl-overloading-0.02-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-overloading-0.02-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 12747, + "sha256": "4aae487e802df60e1e2d778b264592290ad492078877784771299561d45dfd47", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-parent", + "epoch": 1, + "version": "0.238", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-parent-1:0.238-460.el9.noarch", + "filename": "perl-parent-0.238-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-parent-0.238-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 16286, + "sha256": "a9b2ccc25a5ed5cc024935ef573772e203ed363f67dd5acc0d2ad5907498c463", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-parent-0.238-460.el9.src.rpm" + }, + { + "name": "perl-podlators", + "epoch": 1, + "version": "4.14", + "release": "460.el9", + "architecture": "noarch", + "nevra": "perl-podlators-1:4.14-460.el9.noarch", + "filename": "perl-podlators-4.14-460.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-podlators-4.14-460.el9.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 121317, + "sha256": "0401f715522a14b53956bccb60954025ad18a73802f7144ab0160d8504951a98", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-podlators-4.14-460.el9.src.rpm" + }, + { + "name": "perl-subs", + "epoch": 0, + "version": "1.03", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-subs-0:1.03-481.1.el9_6.noarch", + "filename": "perl-subs-1.03-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-subs-1.03-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 11525, + "sha256": "0a7ef4a9a174ab981949d27a4acdc8cec87fd3513e9e607f5869851dc1c74deb", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "perl-vars", + "epoch": 0, + "version": "1.05", + "release": "481.1.el9_6", + "architecture": "noarch", + "nevra": "perl-vars-0:1.05-481.1.el9_6.noarch", + "filename": "perl-vars-1.05-481.1.el9_6.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/p/perl-vars-1.05-481.1.el9_6.noarch.rpm", + "repository": "ubi-9-appstream-rpms", + "size": 12885, + "sha256": "5d3c58094c0158b6193d7f4ba7a4bb7ae06a78738393b31255da8b7aadb10e38", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "perl-5.32.1-481.1.el9_6.src.rpm" + }, + { + "name": "pkgconf", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "pkgconf-0:1.7.3-10.el9.aarch64", + "filename": "pkgconf-1.7.3-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pkgconf-1.7.3-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 45196, + "sha256": "aa38a3951a690d721a815ea8f9b01995a85f35a8540d8075205821011d0385e6", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "pkgconf-m4", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "noarch", + "nevra": "pkgconf-m4-0:1.7.3-10.el9.noarch", + "filename": "pkgconf-m4-1.7.3-10.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pkgconf-m4-1.7.3-10.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 16054, + "sha256": "91bafd6e06099451f60288327b275cfcc651822f6145176a157c6b0fa5131e02", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "pkgconf-pkg-config", + "epoch": 0, + "version": "1.7.3", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "pkgconf-pkg-config-0:1.7.3-10.el9.aarch64", + "filename": "pkgconf-pkg-config-1.7.3-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/p/pkgconf-pkg-config-1.7.3-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 12398, + "sha256": "47f1f744f96a2f3d360bc129837738dcebb1ee5032effc4472a891eea1d6a907", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "pkgconf-1.7.3-10.el9.src.rpm" + }, + { + "name": "postgresql18", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "aarch64", + "nevra": "postgresql18-0:18.6-1PGDG.rhel9.8.aarch64", + "filename": "postgresql18-18.6-1PGDG.rhel9.8.aarch64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-18.6-1PGDG.rhel9.8.aarch64.rpm", + "repository": "pgdg-18", + "size": 2057655, + "sha256": "3ec399a4d57b43cbba03f610adc4a4c6daaea0dc8b4f3d73175b1dedf7e2bddf", + "signing_key_fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "postgresql18-libs", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "aarch64", + "nevra": "postgresql18-libs-0:18.6-1PGDG.rhel9.8.aarch64", + "filename": "postgresql18-libs-18.6-1PGDG.rhel9.8.aarch64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-libs-18.6-1PGDG.rhel9.8.aarch64.rpm", + "repository": "pgdg-18", + "size": 308340, + "sha256": "662bac810d50ece9d32f7ab6960f01e8e1416cc0a0634a4ea7f7ec8ea744146b", + "signing_key_fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "postgresql18-server", + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "aarch64", + "nevra": "postgresql18-server-0:18.6-1PGDG.rhel9.8.aarch64", + "filename": "postgresql18-server-18.6-1PGDG.rhel9.8.aarch64.rpm", + "url": "https://download.postgresql.org/pub/repos/yum/18/redhat/rhel-9-aarch64/postgresql18-server-18.6-1PGDG.rhel9.8.aarch64.rpm", + "repository": "pgdg-18", + "size": 7450321, + "sha256": "761001b6e560041f2f6f0d7abe9e57b30a98a2c039b81682d77969928a366add", + "signing_key_fingerprint": "B031F89FC983E98262906B6E177B343BB9738825", + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm" + }, + { + "name": "readline", + "epoch": 0, + "version": "8.1", + "release": "4.el9", + "architecture": "aarch64", + "nevra": "readline-0:8.1-4.el9.aarch64", + "filename": "readline-8.1-4.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/r/readline-8.1-4.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 219015, + "sha256": "2ae424b368c6747124b51b205b9e11d74aeaff56b3de90e8cbd36012e0d17707", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "readline-8.1-4.el9.src.rpm" + }, + { + "name": "redhat-release", + "epoch": 0, + "version": "9.8", + "release": "1.0.el9", + "architecture": "aarch64", + "nevra": "redhat-release-0:9.8-1.0.el9.aarch64", + "filename": "redhat-release-9.8-1.0.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/r/redhat-release-9.8-1.0.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 61683, + "sha256": "fa7f1d93927c7f8c6f6563a8d221af659074f026e4b12cd74d456b0db1878164", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "redhat-release-9.8-1.0.el9.src.rpm" + }, + { + "name": "sed", + "epoch": 0, + "version": "4.8", + "release": "10.el9", + "architecture": "aarch64", + "nevra": "sed-0:4.8-10.el9.aarch64", + "filename": "sed-4.8-10.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/sed-4.8-10.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 315893, + "sha256": "b73d314a8ef322a690bb69c49cb0dbd9a5ff18d2ba6b2973e18d2c076a52b62a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "sed-4.8-10.el9.src.rpm" + }, + { + "name": "setup", + "epoch": 0, + "version": "2.13.7", + "release": "10.el9", + "architecture": "noarch", + "nevra": "setup-0:2.13.7-10.el9.noarch", + "filename": "setup-2.13.7-10.el9.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/setup-2.13.7-10.el9.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 153791, + "sha256": "0891d395ce067121c28932534237ad1ce231f2bfa987411ad62e73a12d11eb6a", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "setup-2.13.7-10.el9.src.rpm" + }, + { + "name": "shadow-utils", + "epoch": 2, + "version": "4.9", + "release": "16.el9", + "architecture": "aarch64", + "nevra": "shadow-utils-2:4.9-16.el9.aarch64", + "filename": "shadow-utils-4.9-16.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/shadow-utils-4.9-16.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 1244527, + "sha256": "ccc46a8ea5f30d071e075ad53b5d39d191cfca4614090435528f2d2f944f88a2", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "shadow-utils-4.9-16.el9.src.rpm" + }, + { + "name": "systemd", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "aarch64", + "nevra": "systemd-0:252-67.el9_8.4.aarch64", + "filename": "systemd-252-67.el9_8.4.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/systemd-252-67.el9_8.4.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 4156431, + "sha256": "f49001c208ea0ec7776b2353800f133d3383e72bda8486132dc6822a803aef9f", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-libs", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "aarch64", + "nevra": "systemd-libs-0:252-67.el9_8.4.aarch64", + "filename": "systemd-libs-252-67.el9_8.4.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/systemd-libs-252-67.el9_8.4.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 647617, + "sha256": "78f8f784050b920675ce5d37d659213226265dd72de14ec10df291afae59d8b7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-pam", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "aarch64", + "nevra": "systemd-pam-0:252-67.el9_8.4.aarch64", + "filename": "systemd-pam-252-67.el9_8.4.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/systemd-pam-252-67.el9_8.4.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 266579, + "sha256": "e85f1916e5fc35f483282c2de00cb4e1a9a40743e745c00bb66e30e383955d46", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "systemd-rpm-macros", + "epoch": 0, + "version": "252", + "release": "67.el9_8.4", + "architecture": "noarch", + "nevra": "systemd-rpm-macros-0:252-67.el9_8.4.noarch", + "filename": "systemd-rpm-macros-252-67.el9_8.4.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/s/systemd-rpm-macros-252-67.el9_8.4.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 59475, + "sha256": "7d671ec39a7caeb7346be6d5fcb44212545844ced6f4974c4b409fef6a12a891", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "systemd-252-67.el9_8.4.src.rpm" + }, + { + "name": "tzdata", + "epoch": 0, + "version": "2026c", + "release": "1.el9_8", + "architecture": "noarch", + "nevra": "tzdata-0:2026c-1.el9_8.noarch", + "filename": "tzdata-2026c-1.el9_8.noarch.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/t/tzdata-2026c-1.el9_8.noarch.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 933286, + "sha256": "8d6196e02853c0900c3c2e2367665beffb62cb2d0ff5f465ea2d00848a9a35dc", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "tzdata-2026c-1.el9_8.src.rpm" + }, + { + "name": "util-linux", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "util-linux-0:2.37.4-25.el9.aarch64", + "filename": "util-linux-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 2390152, + "sha256": "3681bbe37d46309673f366135787f5713f0ef575e3cd413cd221af2512e3634b", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "util-linux-core", + "epoch": 0, + "version": "2.37.4", + "release": "25.el9", + "architecture": "aarch64", + "nevra": "util-linux-core-0:2.37.4-25.el9.aarch64", + "filename": "util-linux-core-2.37.4-25.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/u/util-linux-core-2.37.4-25.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 472949, + "sha256": "de7ad826dd42b383d93f6dc6b720a26d4cd4815d00c0f093c2e28037a8881424", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "util-linux-2.37.4-25.el9.src.rpm" + }, + { + "name": "xz-libs", + "epoch": 0, + "version": "5.2.5", + "release": "8.el9_0", + "architecture": "aarch64", + "nevra": "xz-libs-0:5.2.5-8.el9_0.aarch64", + "filename": "xz-libs-5.2.5-8.el9_0.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/x/xz-libs-5.2.5-8.el9_0.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 94569, + "sha256": "06931afb372ed4a6893e51558beaa6b0eab7adda0af93456fd99a081a8b80779", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "xz-5.2.5-8.el9_0.src.rpm" + }, + { + "name": "zlib", + "epoch": 0, + "version": "1.2.11", + "release": "40.el9", + "architecture": "aarch64", + "nevra": "zlib-0:1.2.11-40.el9.aarch64", + "filename": "zlib-1.2.11-40.el9.aarch64.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/z/zlib-1.2.11-40.el9.aarch64.rpm", + "repository": "ubi-9-baseos-rpms", + "size": 94454, + "sha256": "2e7f193e67235130c10f5579c2d2ec92e22e4098b6d12fb2855d93b1540c60f7", + "signing_key_fingerprint": "567E347AD0044ADE55BA8A5F199E2F91FD431D51", + "source_rpm": "zlib-1.2.11-40.el9.src.rpm" + } + ], + "source_packages": [ + { + "filename": "acl-2.4.0-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/a/acl-2.4.0-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 609918, + "sha256": "b140deb68f46517b0093e18969d8fb42a17216064fb2ee5783e9316d786430db" + }, + { + "filename": "attr-2.6.0-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/a/attr-2.6.0-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 389805, + "sha256": "9bdd2e605e0ddc9818382bd95644594fa8b8eedfe08048303093db13cde9963c" + }, + { + "filename": "audit-3.1.5-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/a/audit-3.1.5-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1275064, + "sha256": "e0a3e72c863512032e0ba95337db076fa5af9368d9a80529a9624afc8877401c" + }, + { + "filename": "basesystem-11-13.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/b/basesystem-11-13.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 9884, + "sha256": "5a4ed0779fc06f08115d6e06aa95486f1e1e251f8f9ddb6c7e14e811bb2e24ef" + }, + { + "filename": "bash-5.1.8-9.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/b/bash-5.1.8-9.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 10512850, + "sha256": "5d7bbbf2538361be1a11846602862c3a56809b3ea43b69b86bcf407538e9e260" + }, + { + "filename": "bzip2-1.0.8-11.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/b/bzip2-1.0.8-11.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 828199, + "sha256": "ba58283fc4ef85911f20a8e45ffa00497775858102d48f2a32ebf1010a1abefc" + }, + { + "filename": "ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/ca-certificates-2025.2.80_v9.0.305-91.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 711648, + "sha256": "d3193e155ddd297042a944729fe54c1b90c17bdbd1876fc68e4f66d7857f9e81" + }, + { + "filename": "chkconfig-1.24-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/chkconfig-1.24-2.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 214658, + "sha256": "b2618b278f5c8d6dacfae790c8c73b1fc1578b8f64011f325ced5a4a2e3b58bc" + }, + { + "filename": "cmake-3.31.8-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/c/cmake-3.31.8-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 11705300, + "sha256": "8fdb79c80877a829abcf38f374d20e4ce1416646128535ade2cf988f4bbc8eea" + }, + { + "filename": "coreutils-8.32-41.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/coreutils-8.32-41.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 5697510, + "sha256": "5852781d2fbb2c447c4425960f4fe30310870a0e4073363d2254047b785b5a9e" + }, + { + "filename": "cracklib-2.9.6-28.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/cracklib-2.9.6-28.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6416053, + "sha256": "4708420bdde578448be8c06a6b608635743682f6370d7d45d7cae46842529fa0" + }, + { + "filename": "crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/crypto-policies-20260224-1.gitea0f072.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 112905, + "sha256": "775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38" + }, + { + "filename": "cyrus-sasl-2.1.27-22.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 4025677, + "sha256": "f4b3d139bfb74a2d628592c5696a003bc8c4896711386b1bbc3dffdf8a33883e" + }, + { + "filename": "dbus-1.12.20-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/d/dbus-1.12.20-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2143916, + "sha256": "3fe74a2b4fb4485c93e974010d9376e30a63dfcc628bfd6c01837c27b4953912" + }, + { + "filename": "dbus-broker-28-9.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/d/dbus-broker-28-9.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 258866, + "sha256": "9ccbb440edb6826689fd5e0d650de4f08550c3c0f3b2732c54c1e99b0d361824" + }, + { + "filename": "e2fsprogs-1.46.5-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/e/e2fsprogs-1.46.5-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 7416727, + "sha256": "5c613445f928889a52a0a82f4ed866502e82c99b0c983024ab97421391abd061" + }, + { + "filename": "expat-2.5.0-6.el9_8.3.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 8403095, + "sha256": "0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392" + }, + { + "filename": "filesystem-3.16-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 20486, + "sha256": "c795690df30c46e521372e2f649c995a2abc159b76c8ef6cd5da8a713ea17937" + }, + { + "filename": "findutils-4.8.0-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/f/findutils-4.8.0-7.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2010585, + "sha256": "48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f" + }, + { + "filename": "gawk-5.1.0-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3190934, + "sha256": "37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d" + }, + { + "filename": "gcc-11.5.0-14.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 81978017, + "sha256": "19dec462f2880508570ca42a82c2f76fbd95fcad8d3e3ff812e9ca50cdeb2d8f" + }, + { + "filename": "gdbm-1.23-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/gdbm-1.23-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1130147, + "sha256": "ad42264274c2a792220395a4dbe736a1de6100c4e14611707ec1dd447583271f" + }, + { + "filename": "glibc-2.34-275.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/glibc-2.34-275.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 20442764, + "sha256": "bd7a453f66e13da24d073f53070c2d209fcd88ca2aaa24ab3b2f81cae198b46c" + }, + { + "filename": "gmp-6.2.0-13.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/gmp-6.2.0-13.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2503825, + "sha256": "d0d8a795eea9ae555da63fbcfc3575425e86bb7e96d117b9ae2785b4f5e82f7c" + }, + { + "filename": "grep-3.6-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/grep-3.6-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1620891, + "sha256": "81b14432ebe1645b74b57592f1dcde8fab15ec13632f483f72ff2407ed16c33e" + }, + { + "filename": "groff-1.22.4-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/groff-1.22.4-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 4138121, + "sha256": "16d1628338ede3c55a795782f05848112d47816ba073978af6fcd90ecce08f5c" + }, + { + "filename": "gzip-1.12-2.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/g/gzip-1.12-2.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 859023, + "sha256": "f28fcbe8f3de2ec7dcdb51b1f51f03f61d0afa18c9fef10d210f40ff0c71f3a0" + }, + { + "filename": "icu-67.1-10.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/i/icu-67.1-10.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 23181317, + "sha256": "3abe8dc1abc22213826dd6ffb214cdd88705def93dcb234ffc87c792909b0879" + }, + { + "filename": "keyutils-1.6.3-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 150790, + "sha256": "6afa567438acd0d3a6a66bc6a3c68ec2f4ae5ed9c7230c3f0478d2281a092688" + }, + { + "filename": "kmod-28-11.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/k/kmod-28-11.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 579198, + "sha256": "4f6fefbf0d004b23494fe18ccfff2b9151ea887a276c56a6f25ea597a250991c" + }, + { + "filename": "krb5-1.21.1-10.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/k/krb5-1.21.1-10.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 8964976, + "sha256": "b22a66515c98c14a4969a403d5419b9f9bab50015553863de866d3f45fd6d922" + }, + { + "filename": "libcap-2.48-10.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libcap-2.48-10.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 208035, + "sha256": "7f96d98c99f190b840985b3589183a3f1dc444e0932f256491b24d28c5031de3" + }, + { + "filename": "libcap-ng-0.8.2-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libcap-ng-0.8.2-7.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 470599, + "sha256": "48bb098662e2f3e1dbb94e27e4e612bc6794fbb62708e1f1a431cc2480fcdb00" + }, + { + "filename": "libdb-5.3.28-57.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libdb-5.3.28-57.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 35290920, + "sha256": "6a74a3d96bd4657659524050945e2a47e93779addf2de374a13e1baf32b4ab8d" + }, + { + "filename": "libeconf-0.4.1-7.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libeconf-0.4.1-7.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 206886, + "sha256": "425009c96135f39ca7bdb8a6ea948187d052d339dd76235979439fbd169da331" + }, + { + "filename": "libevent-2.1.12-8.el9_4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libevent-2.1.12-8.el9_4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1123179, + "sha256": "8c00dc837b8685fc660cc0bcdfd4f533888facaa8c83655c26d2fb068cb7b135" + }, + { + "filename": "libffi-3.4.2-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libffi-3.4.2-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1367398, + "sha256": "2b384204cc70c8f23d3a86e5cc9f736306a7a91a72e282044e3b23f3fd831647" + }, + { + "filename": "libgcrypt-1.10.0-13.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libgcrypt-1.10.0-13.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3983873, + "sha256": "c2737830c577d7c45aefa3213d770be924617a46e6ab56824edec9b6341af8d4" + }, + { + "filename": "libgpg-error-1.42-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libgpg-error-1.42-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 994101, + "sha256": "9586046fd9622e5e898f92a08821948bf0754a74ab343cc093ca21caae0352a6" + }, + { + "filename": "libpwquality-1.4.4-8.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libpwquality-1.4.4-8.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 447225, + "sha256": "14fbf335e2c6f22b441a9750a69b7c41e197c4dd21adac701fd81f17660ee0b4" + }, + { + "filename": "libseccomp-2.5.2-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libseccomp-2.5.2-2.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 653169, + "sha256": "43dd0fa2cd26306e2017704075e628bbe675c8731b17848df82f3b59337f1be8" + }, + { + "filename": "libselinux-3.6-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libselinux-3.6-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 271153, + "sha256": "a08a84389665ef614eb6d9b06a53128eab89b650c799c0558f3ae04df97c4b13" + }, + { + "filename": "libsemanage-3.6-5.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libsemanage-3.6-5.el9_6.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 223978, + "sha256": "33e4ad8374bdaa1dd4b4a46b2b379d025590d80e5d666801aea4f437a9a6ccd9" + }, + { + "filename": "libsepol-3.6-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libsepol-3.6-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 543960, + "sha256": "2dacf2f1c1f61562ccc5ad082939158745e5a4a572d135d4f8ff00f75e1e94df" + }, + { + "filename": "libsigsegv-2.13-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libsigsegv-2.13-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 473267, + "sha256": "734651070d0113de033da80114b416931c4c0be21ce51f6b1c1641b1185c34f3" + }, + { + "filename": "libtasn1-4.16.0-10.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libtasn1-4.16.0-10.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1899881, + "sha256": "be5c3a993282ecde81ad5d00dd4e7b2c293e97e47d28709aa0ea7292b80ba610" + }, + { + "filename": "libtool-2.4.6-46.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/l/libtool-2.4.6-46.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 1002417, + "sha256": "1130b15333736ad40a18b5924959a8b0c6c151305bc252c0cbd5276432e10002" + }, + { + "filename": "liburing-2.12-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/l/liburing-2.12-1.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 452017, + "sha256": "6bf1c9b5cdd1091325e798c7f99e4a581f8505c35e81a069479ec7d301714e6b" + }, + { + "filename": "libutempter-1.2.1-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libutempter-1.2.1-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 30093, + "sha256": "e48843d2734fefad084a86165860ea9575bdc53f63bb5845d8807ce9ccb4f914" + }, + { + "filename": "libverto-0.3.2-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libverto-0.3.2-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 396005, + "sha256": "a648c6c90c2cfcd6836681bff947499285656e60a5b2243a53b7d6590a8b73ee" + }, + { + "filename": "libxcrypt-4.4.18-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libxcrypt-4.4.18-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 543970, + "sha256": "d18f72eb41ecd0370e2e47f1dc5774be54e9ff3b4dd333578017666c7c488f40" + }, + { + "filename": "libxml2-2.9.13-14.el9_8.4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/libxml2-2.9.13-14.el9_8.4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3310899, + "sha256": "9d6fcd494237d9bd176c7819465cd592fc0e4a5093404e04e3f192411db4639d" + }, + { + "filename": "lz4-1.9.3-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/l/lz4-1.9.3-5.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 333421, + "sha256": "44e9e079f0f30476a0d8d9849ef1cd940fcc37abee11f481d6043b184bd0cf14" + }, + { + "filename": "mpfr-4.1.0-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/m/mpfr-4.1.0-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1560595, + "sha256": "c812e3c35d5bd5c3e33c65cdcf39d434acfd538aaa68ac04e3a5a9cc60556d50" + }, + { + "filename": "ncurses-6.2-12.20210508.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/n/ncurses-6.2-12.20210508.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3586993, + "sha256": "cdb59ed3771a3a4f00e2ffca853f2de4aa887e3d5c3655317f2e2c03f461103f" + }, + { + "filename": "nss_wrapper-1.1.13-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/n/nss_wrapper-1.1.13-1.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 199854, + "sha256": "70665df15ed2534a7216880efc46d4073c61580e6929cfb6e033a9739f487aab" + }, + { + "filename": "numactl-2.0.19-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/n/numactl-2.0.19-3.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 233468, + "sha256": "493b0fe1b7e85894fca9efae91004c7b98b52e8e03e4547086aeaf3102bce6c2" + }, + { + "filename": "openldap-2.6.8-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/o/openldap-2.6.8-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6548889, + "sha256": "0d21c12c55d40d1fc2f006c8ec187b5fcc799b794cfd31ed2d98434189c62800" + }, + { + "filename": "openssl-3.5.5-6.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/o/openssl-3.5.5-6.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 53369050, + "sha256": "b79f08d2d04536fdb6801b6ba7da7174942d174dd2b7969316402c737689d735" + }, + { + "filename": "openssl-fips-provider-3.0.7-11.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/o/openssl-fips-provider-3.0.7-11.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 28686020, + "sha256": "0b14c251cccb4506df185e78ec55cb49e14e7bcd8de19ad3f3246017b2120693" + }, + { + "filename": "p11-kit-0.26.4-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/p/p11-kit-0.26.4-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1121232, + "sha256": "6f06a4f6812fce869528ff17ab002d655a8da18fc745eafa6c02594bb23dfeeb" + }, + { + "filename": "pam-1.5.1-28.el9_8.1.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/p/pam-1.5.1-28.el9_8.1.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1142205, + "sha256": "fe61734fdb226915dff402bcd1ad2002e0fd7a4dad9042af65688804f428b30b" + }, + { + "filename": "pcre-8.44-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/p/pcre-8.44-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1624356, + "sha256": "7edbd87b866a3f6e3df1426d660b902e063193d6186027bf99f6d77626a43817" + }, + { + "filename": "pcre2-10.40-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/p/pcre2-10.40-6.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1789790, + "sha256": "a570f7192be555222aa3704882b9199fb013a84ad4d7dcf40a93d8de2ecf6e0a" + }, + { + "filename": "perl-5.32.1-481.1.el9_6.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-5.32.1-481.1.el9_6.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 12786537, + "sha256": "cef69403d27b100525c0e630fb17d1ef1d598c608241ea07ba0975b559a42858" + }, + { + "filename": "perl-Carp-1.50-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Carp-1.50-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 37030, + "sha256": "67ec8f31b0276573adc231a83abb15d42f31f56c2520f377da39e6dc9904ccf9" + }, + { + "filename": "perl-Data-Dumper-2.174-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Data-Dumper-2.174-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 131573, + "sha256": "554ef703b9510fdfc7fb7439f20e5b5be6bc05f720ad81fc4cf3973111532d7e" + }, + { + "filename": "perl-Digest-1.19-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Digest-1.19-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 22653, + "sha256": "cfac6eec4d3564b4a9a46df943e5e3b11434673dccfe095e2f631978636d61d1" + }, + { + "filename": "perl-Digest-MD5-2.58-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Digest-MD5-2.58-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 60213, + "sha256": "759005f7d3a3ee7a97da1af8f4c4e30a6d8592f1bc5ca95e6e065c6793f8ea17" + }, + { + "filename": "perl-Encode-3.08-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Encode-3.08-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 1915541, + "sha256": "f5a4058ed88a2763aad3a39a13d7cbe68d0d76f8d7a98b634cb7de63f747e407" + }, + { + "filename": "perl-Exporter-5.74-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Exporter-5.74-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 32709, + "sha256": "67cf67c052ac12e234811589fe0a446a8ad79d4ab09da1187b422397d5f41440" + }, + { + "filename": "perl-File-Path-2.18-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-File-Path-2.18-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 43503, + "sha256": "2523a27381e16676442f21d6c90a0ebabeb65eb37d0ef4a2dacc02155bad183b" + }, + { + "filename": "perl-File-Temp-0.231.100-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-File-Temp-0.231.100-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 89500, + "sha256": "540bfbab1936e66314c0eac3a0880cd4a6ad55242055d7492a398868653d2d89" + }, + { + "filename": "perl-Getopt-Long-2.52-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Getopt-Long-2.52-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 55697, + "sha256": "c5260e60a5d3e4a6ba1ac7aad158322bfc7af0e9e85c10a4426860620cefda28" + }, + { + "filename": "perl-HTTP-Tiny-0.076-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-HTTP-Tiny-0.076-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 93389, + "sha256": "fe6eea19db536fbb948f3bbaf2d334bce7c39638342b8c6b79df7b3cc0a3a103" + }, + { + "filename": "perl-IO-Socket-IP-0.41-5.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-IO-Socket-IP-0.41-5.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 58169, + "sha256": "820b50e8bbd44baeb36fb2c4996d88909043fb26333c16a0f4f5335d1bc1d04a" + }, + { + "filename": "perl-IO-Socket-SSL-2.073-2.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-IO-Socket-SSL-2.073-2.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 295384, + "sha256": "f70d650d6e7f244491287e88d0f95637461c3fbd4e6a6124d285520eb0606924" + }, + { + "filename": "perl-MIME-Base64-3.16-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-MIME-Base64-3.16-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 43653, + "sha256": "b48266a93fef844c4b3ee3ff3d61df0cc497558b12e2b7be9e8a87fd3bd3a88b" + }, + { + "filename": "perl-Mozilla-CA-20200520-6.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Mozilla-CA-20200520-6.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 151174, + "sha256": "488e0f8b1f3d167a5eb3c0156045adea8d1dbe668b24c83b988fa42250690b0d" + }, + { + "filename": "perl-Net-SSLeay-1.94-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Net-SSLeay-1.94-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 693509, + "sha256": "c4b96a011129196428c74b1bc6d72a5c4d45514bd877e345dbf1ee9ede8c5769" + }, + { + "filename": "perl-PathTools-3.78-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-PathTools-3.78-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 141038, + "sha256": "3457f843826ffa381deea36e926b9c89e78b024bb0d7877d3eaf0ce9af414d1d" + }, + { + "filename": "perl-Pod-Escapes-1.07-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Pod-Escapes-1.07-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 22192, + "sha256": "278a6249918084e23053e4847fd00c417de61ecf551ae11c6eaca2068b136ded" + }, + { + "filename": "perl-Pod-Perldoc-3.28.01-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Pod-Perldoc-3.28.01-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 225409, + "sha256": "5ee087f47aa3f1f317069a5c5914f78caea706b0c5690baf6245c5fc9579d71a" + }, + { + "filename": "perl-Pod-Simple-3.42-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Pod-Simple-3.42-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 318605, + "sha256": "0519c7d5391807d300f0490e57ef0402a6831f6820045f6faec44c60b47e110c" + }, + { + "filename": "perl-Pod-Usage-2.01-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Pod-Usage-2.01-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 91508, + "sha256": "82e3309aa8a5b9967dd1bdae4c0e3855e91722244bec647cc95499709aec7bc9" + }, + { + "filename": "perl-Scalar-List-Utils-1.56-462.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Scalar-List-Utils-1.56-462.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 187594, + "sha256": "2b9117c65c6939ee02a54d235897441f826ec331eec1db4b674f37e06fc6638a" + }, + { + "filename": "perl-Socket-2.031-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Socket-2.031-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 57721, + "sha256": "cbd4a46e548d84325929c4fc205c20239359f1562729281247265d780fd375ad" + }, + { + "filename": "perl-Storable-3.21-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Storable-3.21-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 225886, + "sha256": "ec9eda9094c07d88067eda454000dfd55465b9dcc3f675599df828044317aa63" + }, + { + "filename": "perl-Term-ANSIColor-5.01-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Term-ANSIColor-5.01-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 69123, + "sha256": "40014939aeafb292b2baea665a8a3b1ee227dac7ecaac540c5fb537a6f8c3824" + }, + { + "filename": "perl-Term-Cap-1.17-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Term-Cap-1.17-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 23367, + "sha256": "52658f861201f1947d07040968098fa9d31433c46bb8b38cd33ca2cd1fdb3b67" + }, + { + "filename": "perl-Text-ParseWords-3.30-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Text-ParseWords-3.30-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 18773, + "sha256": "68425a0a7b9566b14abb56211c43f55146ac20c70a6dc69f983729505c94379c" + }, + { + "filename": "perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Text-Tabs+Wrap-2013.0523-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 30727, + "sha256": "e3728f77c64a1dc3edae34554fdcb1f6c940b54f665c8529b730f4afff6f1543" + }, + { + "filename": "perl-Time-Local-1.300-7.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-Time-Local-1.300-7.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 54755, + "sha256": "f9d3745fb10235d5097536f81976f8234921de7a5c4b5cd599aa2b790f4ad18b" + }, + { + "filename": "perl-URI-5.09-3.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-URI-5.09-3.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 123780, + "sha256": "20fa38e20285da9712b42fdb9a5dffbc72644c4d608db827e2a10e9d8055dce2" + }, + { + "filename": "perl-constant-1.33-461.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-constant-1.33-461.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 32045, + "sha256": "c68aeb1a1dbcf82f3be9b0b23a8fcbaaa9083d46328a76b6646af5412eaeedca" + }, + { + "filename": "perl-libnet-3.13-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-libnet-3.13-4.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 110461, + "sha256": "e473459e582b0cf07d4ecb9c7045547ad3543b24b5796f06ff8b42184d4a0fad" + }, + { + "filename": "perl-parent-0.238-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-parent-0.238-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 23463, + "sha256": "cb61d28f218c1b1f51be254fa0282270b54fb051e4a164e7937411d7023d8c66" + }, + { + "filename": "perl-podlators-4.14-460.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/p/perl-podlators-4.14-460.el9.src.rpm", + "repository": "ubi-9-appstream-source-rpms", + "size": 150048, + "sha256": "71e7c3e0eb8d62e314cf45b89d5be318ddb507399a96018079dd5fffe2b18de9" + }, + { + "filename": "pkgconf-1.7.3-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/p/pkgconf-1.7.3-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 310904, + "sha256": "4d53718592b298ca7c49665b1f4e7bd32dcb42cad15c89345585da9f20d4fcae" + }, + { + "filename": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + "url": "https://dnf-srpms.postgresql.org/srpms/18/redhat/rhel-9-x86_64/postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + "repository": "pgdg-18-source", + "size": 31846597, + "sha256": "73529be04e064ee9f0464adc47853f73d532698bc6fe03e35019aa469e4dcc7b" + }, + { + "filename": "readline-8.1-4.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/r/readline-8.1-4.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 3009702, + "sha256": "bc7a168b7275d1f9bd0f16b47029dd857ddce83fa80c3cb32eac63cb55f591f3" + }, + { + "filename": "redhat-release-9.8-1.0.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/r/redhat-release-9.8-1.0.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 85364, + "sha256": "6c3f4a1287fb76e05e49217a15a33b9c228a56fc06e96376afb37201bfbe32da" + }, + { + "filename": "sed-4.8-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/s/sed-4.8-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1428416, + "sha256": "981073f2c251395b5ae42b7ff929f743260eea9738187fbb207042f11eae7ea7" + }, + { + "filename": "setup-2.13.7-10.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/s/setup-2.13.7-10.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 195940, + "sha256": "3acdbbd63bd77dd8b18210b9d597bd59ddf455ff728067638c54194ac3a8a32b" + }, + { + "filename": "shadow-utils-4.9-16.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/s/shadow-utils-4.9-16.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1713058, + "sha256": "771a5ed07cdb690c75cd428a8113e2ee471270044e6cb8025d92c54e32c180ff" + }, + { + "filename": "systemd-252-67.el9_8.4.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/s/systemd-252-67.el9_8.4.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 45009674, + "sha256": "e44181d1de2a135a5507b956d18a9eb11951a35aaa9c15dbc0f144ed8313f732" + }, + { + "filename": "tzdata-2026c-1.el9_8.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/t/tzdata-2026c-1.el9_8.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 933774, + "sha256": "4cc10832b19807c03a30bd9317fb37dc811d2f13c11b1ed35af8d2efa481622f" + }, + { + "filename": "util-linux-2.37.4-25.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/u/util-linux-2.37.4-25.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 6291867, + "sha256": "6c788387cde9c0fde5481382f3f8416e3ecbcf09c908b409b6c63358b90a399f" + }, + { + "filename": "xz-5.2.5-8.el9_0.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/x/xz-5.2.5-8.el9_0.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 1168293, + "sha256": "bce98f3a307e75a8ac28f909e29b41d64b15461fa9ddf0bf4ef3c2f6de946b46" + }, + { + "filename": "zlib-1.2.11-40.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/z/zlib-1.2.11-40.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 561153, + "sha256": "e47b884c132983fd0cc40c761de72e1a34ada9ee395cfe50997f9fb9257669d8" + }, + { + "filename": "zstd-1.5.5-1.el9.src.rpm", + "url": "https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/z/zstd-1.5.5-1.el9.src.rpm", + "repository": "ubi-9-baseos-source-rpms", + "size": 2378112, + "sha256": "922957570bae59b0a45bd9d96ce804c65c6c3260f50198f40804d95ffb0db65e" + } + ] +} diff --git a/scripts/artifacts.py b/scripts/artifacts.py index 145c5ec..5f1b546 100644 --- a/scripts/artifacts.py +++ b/scripts/artifacts.py @@ -330,7 +330,7 @@ def lock_files(lock: dict, include_sources: bool) -> list[tuple[str, dict]]: def verify_bundle(lock_path: Path, bundle: Path, include_sources: bool) -> None: lock = validate_lock(lock_path) expected = {relative for relative, _ in lock_files(lock, include_sources)} - expected.update({"LOCK-SHA256", "rpm-manifest.tsv"}) + expected.update({"LOCK-SHA256", "key-manifest.tsv", "rpm-manifest.tsv"}) actual = { path.relative_to(bundle).as_posix() for path in bundle.rglob("*") @@ -352,6 +352,15 @@ def verify_bundle(lock_path: Path, bundle: Path, include_sources: bool) -> None: expected_manifest = rpm_manifest(lock) if (bundle / "rpm-manifest.tsv").read_text(encoding="utf-8") != expected_manifest: fail("bundle RPM manifest does not match the selected lock") + if (bundle / "key-manifest.tsv").read_text(encoding="utf-8") != key_manifest(lock): + fail("bundle key manifest does not match the selected lock") + + +def key_manifest(lock: dict) -> str: + rows = [] + for key in lock["signing_keys"]: + rows.append("\t".join([key["filename"], key["fingerprint"], key["sha256"]])) + return "\n".join(rows) + "\n" def rpm_manifest(lock: dict) -> str: @@ -382,6 +391,7 @@ def acquire(lock_path: Path, output: Path, include_sources: bool) -> None: destination.parent.mkdir(parents=True, exist_ok=True) download(item["url"], destination, item.get("size"), item["sha256"]) (temporary / "LOCK-SHA256").write_text(sha256_file(lock_path) + "\n", encoding="ascii") + (temporary / "key-manifest.tsv").write_text(key_manifest(lock), encoding="utf-8", newline="\n") (temporary / "rpm-manifest.tsv").write_text(rpm_manifest(lock), encoding="utf-8", newline="\n") verify_bundle(lock_path, temporary, include_sources) os.replace(temporary, output) diff --git a/scripts/build-offline.sh b/scripts/build-offline.sh new file mode 100644 index 0000000..12eb4dd --- /dev/null +++ b/scripts/build-offline.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +case "$(uname -m)" in + x86_64) architecture=amd64 ;; + aarch64|arm64) architecture=arm64 ;; + *) printf 'unsupported native architecture: %s\n' "$(uname -m)" >&2; exit 1 ;; +esac + +runtime=${CONTAINER_RUNTIME:-podman} +image=${IMAGE:-localhost/postgresql-ubi:test} +lock=artifacts/locks/${architecture}.json +bundle=.artifact-bundle/${architecture} + +command -v "${runtime}" >/dev/null +command -v gpg >/dev/null +test -f "${lock}" +test ! -e "${bundle}" + +python3 scripts/artifacts.py acquire --lock "${lock}" --output "${bundle}" +scripts/verify-key-fingerprints.sh "${bundle}" +lock_sha=$(sha256sum "${lock}" | cut -d' ' -f1) +builder=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["base_images"]["builder"]["reference"])' "${lock}") +runtime_base=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["base_images"]["runtime"]["reference"])' "${lock}") + +"${runtime}" pull "${builder}" +"${runtime}" pull "${runtime_base}" +"${runtime}" tag "${builder}" localhost/postgresql-ubi-builder:locked +"${runtime}" tag "${runtime_base}" localhost/postgresql-ubi-runtime:locked +test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-builder:locked)" = "${architecture}" +test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-runtime:locked)" = "${architecture}" + +if test "${runtime}" = docker; then + pull_flag=false +else + pull_flag=never +fi +"${runtime}" build --file Containerfile --tag "${image}" --network=none \ + --pull="${pull_flag}" --no-cache \ + --build-arg UBI_MINIMAL_IMAGE=localhost/postgresql-ubi-builder:locked \ + --build-arg UBI_MICRO_IMAGE=localhost/postgresql-ubi-runtime:locked \ + --build-arg ARTIFACT_LOCK_SHA256="${lock_sha}" . diff --git a/scripts/verify-key-fingerprints.sh b/scripts/verify-key-fingerprints.sh new file mode 100644 index 0000000..f246f64 --- /dev/null +++ b/scripts/verify-key-fingerprints.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +bundle=${1:?usage: verify-key-fingerprints.sh BUNDLE_DIR} +manifest=${bundle}/key-manifest.tsv + +test -f "${manifest}" +while IFS=$'\t' read -r filename expected_fingerprint expected_sha256; do + key=${bundle}/keys/${filename} + test -f "${key}" + test "$(sha256sum "${key}" | cut -d' ' -f1)" = "${expected_sha256}" + mapfile -t fingerprints < <( + gpg --batch --quiet --with-colons --show-keys "${key}" \ + | awk -F: '$1 == "fpr" { print $10 }' + ) + test "${#fingerprints[@]}" -ge 1 + test "${fingerprints[0]}" = "${expected_fingerprint}" +done <"${manifest}" diff --git a/scripts/verify-rpm-bundle.sh b/scripts/verify-rpm-bundle.sh new file mode 100644 index 0000000..c81378e --- /dev/null +++ b/scripts/verify-rpm-bundle.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +bundle=${1:?usage: verify-rpm-bundle.sh BUNDLE_DIR} +manifest=${bundle}/rpm-manifest.tsv +rpmdb=$(mktemp -d) +trap 'rm -rf "${rpmdb}"' EXIT + +test -f "${manifest}" +rpm --dbpath "${rpmdb}" --initdb +rpm --dbpath "${rpmdb}" --import "${bundle}"/keys/* + +expected_count=0 +while IFS=$'\t' read -r filename name epoch version release architecture source_rpm fingerprint; do + artifact=${bundle}/rpms/${filename} + test -f "${artifact}" + rpm --dbpath "${rpmdb}" --checksig "${artifact}" + actual=$(rpm -qp --qf '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}' "${artifact}") + expected="${name}|${epoch}|${version}|${release}|${architecture}|${source_rpm}" + test "${actual}" = "${expected}" + signature=$(rpm -qp --qf \ + '%{SIGPGP:pgpsig}|%{SIGGPG:pgpsig}|%{RSAHEADER:pgpsig}|%{DSAHEADER:pgpsig}' \ + "${artifact}") + key_id=$(sed -n 's/.*[Kk]ey ID \([0-9A-Fa-f]*\).*/\1/p' <<<"${signature}" | head -n1) + test -n "${key_id}" + [[ ${fingerprint} == *${key_id^^} ]] + expected_count=$((expected_count + 1)) +done <"${manifest}" + +actual_count=$(find "${bundle}/rpms" -maxdepth 1 -type f -name '*.rpm' | wc -l) +test "${actual_count}" -eq "${expected_count}" diff --git a/tests/test_artifacts.py b/tests/test_artifacts.py new file mode 100644 index 0000000..8c31fcc --- /dev/null +++ b/tests/test_artifacts.py @@ -0,0 +1,179 @@ +from __future__ import annotations + +import copy +import hashlib +import json +import shutil +import sys +import tempfile +import unittest +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts")) + +import artifacts # noqa: E402 + + +FINGERPRINT = "A" * 40 +SHA = "0" * 64 + + +def package(name: str) -> dict: + filename = f"{name}-18.6-1PGDG.rhel9.8.x86_64.rpm" + return { + "name": name, + "epoch": 0, + "version": "18.6", + "release": "1PGDG.rhel9.8", + "architecture": "x86_64", + "nevra": f"{name}-0:18.6-1PGDG.rhel9.8.x86_64", + "filename": filename, + "url": f"https://download.postgresql.org/pub/repos/yum/{filename}", + "repository": "pgdg-18", + "size": 1, + "sha256": SHA, + "signing_key_fingerprint": FINGERPRINT, + "source_rpm": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + } + + +def valid_lock() -> dict: + digest = f"sha256:{'1' * 64}" + packages = sorted( + [package("postgresql18"), package("postgresql18-libs"), package("postgresql18-server")], + key=lambda item: item["nevra"], + ) + return { + "schema_version": 1, + "bundle_version": 1, + "architecture": "amd64", + "rpm_architecture": "x86_64", + "generated_at": "2026-09-11T00:00:00Z", + "postgresql_version": "18.6", + "postgresql_rpm_version": "18.6-1PGDG.rhel9.8", + "base_images": { + role: { + "reference": f"registry.access.redhat.com/ubi9/{image}:9.8@{digest}", + "digest": digest, + "platform": "linux/amd64", + } + for role, image in (("builder", "ubi-minimal"), ("runtime", "ubi-micro")) + }, + "signing_keys": [{ + "id": "test-key", + "filename": "RPM-GPG-KEY-test", + "url": "https://security.access.redhat.com/data/test-key.txt", + "sha256": SHA, + "fingerprint": FINGERPRINT, + }], + "packages": packages, + "source_packages": [{ + "filename": "postgresql18-18.6-1PGDG.rhel9.8.src.rpm", + "url": "https://dnf-srpms.postgresql.org/srpms/postgresql18.src.rpm", + "repository": "pgdg-18-source", + "size": 1, + "sha256": SHA, + }], + } + + +class ArtifactLockTests(unittest.TestCase): + def setUp(self) -> None: + self.temporary = tempfile.TemporaryDirectory() + self.root = Path(self.temporary.name) + + def tearDown(self) -> None: + self.temporary.cleanup() + + def write_lock(self, value: dict) -> Path: + path = self.root / "lock.json" + path.write_text(json.dumps(value), encoding="utf-8") + return path + + def assert_rejected(self, value: dict) -> None: + with self.assertRaises(artifacts.LockError): + artifacts.validate_lock(self.write_lock(value)) + + def test_valid_lock_is_accepted(self) -> None: + artifacts.validate_lock(self.write_lock(valid_lock())) + + def test_malformed_and_unexpected_fields_fail_closed(self) -> None: + path = self.root / "bad.json" + path.write_text("{", encoding="utf-8") + with self.assertRaises(artifacts.LockError): + artifacts.validate_lock(path) + value = valid_lock() + value["unexpected"] = True + self.assert_rejected(value) + + def test_wrong_arch_version_nevra_source_and_base_are_rejected(self) -> None: + mutations = [] + value = valid_lock() + value["packages"][0]["architecture"] = "aarch64" + mutations.append(value) + value = valid_lock() + value["packages"][0]["version"] = "18.5" + mutations.append(value) + value = valid_lock() + value["packages"][0]["nevra"] = "wrong" + mutations.append(value) + value = valid_lock() + value["packages"][0]["source_rpm"] = "missing.src.rpm" + mutations.append(value) + value = valid_lock() + value["base_images"]["runtime"]["platform"] = "linux/arm64" + mutations.append(value) + for mutation in mutations: + with self.subTest(mutation=mutation): + self.assert_rejected(mutation) + + def test_duplicate_and_unapproved_signer_or_url_are_rejected(self) -> None: + value = valid_lock() + value["packages"].append(copy.deepcopy(value["packages"][0])) + self.assert_rejected(value) + value = valid_lock() + value["packages"][0]["signing_key_fingerprint"] = "B" * 40 + self.assert_rejected(value) + value = valid_lock() + value["packages"][0]["url"] = "https://example.invalid/package.rpm" + self.assert_rejected(value) + + def test_bundle_rejects_tamper_missing_extra_and_wrong_lock(self) -> None: + value = valid_lock() + key_bytes = b"k" + rpm_bytes = b"r" + value["signing_keys"][0]["sha256"] = hashlib.sha256(key_bytes).hexdigest() + for item in value["packages"]: + item["sha256"] = hashlib.sha256(rpm_bytes).hexdigest() + lock_path = self.write_lock(value) + bundle = self.root / "bundle" + (bundle / "keys").mkdir(parents=True) + (bundle / "rpms").mkdir() + (bundle / "keys" / value["signing_keys"][0]["filename"]).write_bytes(key_bytes) + for item in value["packages"]: + (bundle / "rpms" / item["filename"]).write_bytes(rpm_bytes) + (bundle / "LOCK-SHA256").write_text(artifacts.sha256_file(lock_path) + "\n", encoding="ascii") + (bundle / "key-manifest.tsv").write_text(artifacts.key_manifest(value), encoding="utf-8") + (bundle / "rpm-manifest.tsv").write_text(artifacts.rpm_manifest(value), encoding="utf-8") + artifacts.verify_bundle(lock_path, bundle, False) + + cases = { + "tampered": lambda: (bundle / "rpms" / value["packages"][0]["filename"]).write_bytes(b"x"), + "missing": lambda: (bundle / "rpms" / value["packages"][0]["filename"]).unlink(), + "extra": lambda: (bundle / "extra").write_text("x", encoding="utf-8"), + "wrong-lock": lambda: (bundle / "LOCK-SHA256").write_text(SHA, encoding="ascii"), + } + for name, mutate in cases.items(): + with self.subTest(name=name): + snapshot = self.root / f"bundle-{name}" + shutil.copytree(bundle, snapshot) + original = bundle + bundle = snapshot + mutate() + with self.assertRaises(artifacts.LockError): + artifacts.verify_bundle(lock_path, bundle, False) + bundle = original + + +if __name__ == "__main__": + unittest.main() From c56e3a5111c382010e0e54f4ef41e6d5412550e0 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:45:30 -0500 Subject: [PATCH 12/22] docs: define locked artifact operations --- .github/CODEOWNERS | 2 + .github/workflows/ci.yml | 2 + CHANGELOG.md | 3 ++ Containerfile | 3 ++ README.md | 22 +++++--- THIRD_PARTY_NOTICES.md | 9 +++- compose.yaml | 5 +- docs/ARTIFACT-ACQUISITION.md | 101 +++++++++++++++++++++++++++++++---- docs/CI.md | 11 ++-- docs/MAINTENANCE.md | 1 + docs/PACKAGE-SOURCE.md | 21 +++----- scripts/build-offline.sh | 2 +- 12 files changed, 139 insertions(+), 43 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ee752f8..1ee35bf 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,7 +2,9 @@ /.github/ @joey-huckabee /Containerfile @joey-huckabee +/artifacts/ @joey-huckabee /container/ @joey-huckabee +/scripts/ @joey-huckabee /SECURITY.md @joey-huckabee /docs/ARTIFACT-ACQUISITION.md @joey-huckabee /docs/MAINTENANCE.md @joey-huckabee diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8de21c1..c68981a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -129,6 +129,8 @@ jobs: test ! -e /var/cache/dnf test ! -e /var/cache/yum test -z "$(find / -xdev -type f \( -name "*RPM-GPG-KEY*" -o -name "*.repo" \) -print -quit)" + test -z "$(find / -xdev -type f -perm /6000 -print -quit)" + test -z "$(find / -xdev -type f -perm -0002 -print -quit)" ' - name: Confirm loaded image architecture diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b470cf..1848783 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,3 +34,6 @@ but container releases use the upstream-derived format documented in withdrawal handling, and accountable ownership. - Added the release qualification evidence schema and a public-badge policy that prohibits unsupported security, platform, or certification claims. +- Added schema-defined AMD64 and ARM64 artifact locks for the complete runtime + RPM and source closure, fail-closed acquisition and publisher verification, + a manual lock-update workflow, and network-disabled offline assembly. diff --git a/Containerfile b/Containerfile index 355cc9e..a55b8dd 100644 --- a/Containerfile +++ b/Containerfile @@ -12,6 +12,7 @@ ARG ARTIFACT_LOCK_SHA256 COPY .artifact-bundle/${TARGETARCH}/ /tmp/artifacts/ COPY --chmod=0755 scripts/verify-rpm-bundle.sh /usr/local/bin/verify-rpm-bundle COPY --from=runtime-base / /final/ +SHELL ["/bin/bash", "-o", "pipefail", "-c"] # The bundle is acquired and hash/fingerprint verified before this build. The # build rechecks its selected lock, exact RPM metadata, and signatures without @@ -41,6 +42,8 @@ RUN test -n "${ARTIFACT_LOCK_SHA256}" \ /final/var/cache/yum \ /final/var/log/* \ /final/var/tmp/* \ + && find /final -xdev -type f -perm /6000 -exec chmod a-s {} + \ + && ! find /final -xdev -type f -perm -0002 -print -quit | grep -q . \ && mkdir -p /final/var/lib/pgsql \ && chown -R 26:0 /final/var/lib/pgsql \ && chmod 2775 /final/var/lib/pgsql diff --git a/README.md b/README.md index b48fbd3..d14b767 100644 --- a/README.md +++ b/README.md @@ -36,10 +36,10 @@ The current development image provides: - stateful smoke tests for initialization, authentication, persistence, shutdown, arbitrary UIDs, and incompatible data directories. -The current builder still resolves the locked package version from public -repositories. Network-disabled assembly from a checked artifact lock remains a -first-release gate; see [the roadmap](docs/ROADMAP.md) and -[package-source decision](docs/PACKAGE-SOURCE.md). +Architecture-specific locks now cover the complete binary dependency closure, +publisher keys, source RPMs, and digest-pinned UBI inputs. Artifact acquisition +is separate from a network-disabled, pull-disabled container build; see the +[artifact acquisition contract](docs/ARTIFACT-ACQUISITION.md). ## Approved first-release boundary @@ -63,18 +63,24 @@ the roadmap explicitly records later qualification. See the complete Build and run the restricted-runtime test suite with rootless Podman: ```console -podman build --format docker --file Containerfile \ - --tag localhost/postgresql-ubi9:development . -CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi9:development \ +CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi:development \ + bash scripts/build-offline.sh +CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi:development \ bash tests/smoke.sh ``` +The preparation command requires Python 3, GnuPG, and rootless Podman. It +downloads only the current native architecture's committed artifacts, verifies +their exact bytes and publisher identities, pre-pulls the locked bases, and +then assembles with networking and further image pulls disabled. Remove the +ignored `.artifact-bundle/` directory before intentionally reacquiring it. + Start the Compose development service by supplying its secret from the host environment: ```console export POSTGRES_PASSWORD='replace-with-a-development-secret' -podman compose up --build +podman compose up ``` The service listens only on `127.0.0.1:5432`. Remove the development volume diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 7c31e11..228b0b4 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -5,9 +5,14 @@ documentation only. The image also contains separately licensed software. | Component | Supplier | License and terms | | --- | --- | --- | -| PostgreSQL | PostgreSQL Global Development Group, packaged by PGDG | [PostgreSQL License](https://www.postgresql.org/about/licence/) and PGDG package metadata | -| Red Hat Universal Base Image | Red Hat | [UBI terms](https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI) | +| PostgreSQL | PostgreSQL Global Development Group, packaged by PGDG | [PostgreSQL License](https://www.postgresql.org/about/licence/); exact binary and source RPMs are recorded in each architecture lock | +| Red Hat Universal Base Image and UBI RPM closure | Red Hat | [UBI terms](https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI); exact base digests, binary RPMs, source RPMs, and per-package license files are preserved by the locked build | Release SBOMs must identify the exact installed package inventory. Before a release, review bundled license material, source availability, redistribution terms, and notices for PostgreSQL and every runtime dependency. + +PostgreSQL and Red Hat names and marks belong to their respective owners. This +independent image does not claim their endorsement, certification, or support. +The accountable maintainer owns source-availability and redistribution review +for each lock change; a missing source record or unresolved term blocks release. diff --git a/compose.yaml b/compose.yaml index ac2d353..9d47ee7 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,9 +1,6 @@ services: postgresql: - image: localhost/postgresql-ubi9:development - build: - context: . - dockerfile: Containerfile + image: localhost/postgresql-ubi:development environment: POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password secrets: diff --git a/docs/ARTIFACT-ACQUISITION.md b/docs/ARTIFACT-ACQUISITION.md index 0416ba9..b29bfb0 100644 --- a/docs/ARTIFACT-ACQUISITION.md +++ b/docs/ARTIFACT-ACQUISITION.md @@ -1,8 +1,7 @@ # External artifact acquisition -Status: required for the first release. The development `Containerfile` -currently resolves an exact RPM version during its builder stage and must be -migrated before release. +Status: implemented and enforced in ordinary CI assembly. Release publication +and durable release-evidence retention remain later roadmap work. ## Build contract @@ -64,11 +63,91 @@ required runtime filesystem into UBI Micro. Assembly must prove: Changing any locked package, base digest, acquisition tool, or verification policy invalidates earlier release-candidate evidence. -## Current development limitation - -The current Containerfile checksum-pins the three PostgreSQL 18.6 RPMs and the -PGDG signing key, then verifies the RPM signatures. The builder still resolves -the UBI dependency closure over the network. This supports early runtime -development but is not release-qualified or fully reproducible if UBI metadata -or packages change. No image produced by that path may be announced as -supported. +## Commands and review flow + +`artifacts/lock-inputs.json` is the small, human-reviewed selection. The manual +**Propose artifact lock update** workflow resolves both native closures and +retains candidate locks and inventories; it never commits, merges, or publishes +them. A maintainer compares package and source changes, supplier advisories, +licenses, architecture differences, and base digests before replacing +`artifacts/locks/amd64.json` and `artifacts/locks/arm64.json` through a pull +request. + +Ordinary native assembly uses: + +```console +CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi:development \ + bash scripts/build-offline.sh +``` + +The command requires an absent `.artifact-bundle/` destination; +it will not reuse or overwrite a partially acquired directory. The acquirer +permits HTTPS only, rejects credentials, queries, fragments, and redirects to +unapproved hosts, uses bounded timeouts and retries, checks exact size and +SHA-256 while streaming, and atomically admits a complete bundle. The current +public allowlist is `download.postgresql.org`, `dnf-srpms.postgresql.org`, +`cdn-ubi.redhat.com`, and `security.access.redhat.com`. + +GnuPG verifies each downloaded key's full fingerprint. An isolated RPM database +then verifies every RPM signature and confirms signer, NEVRA, architecture, and +source-RPM metadata against the bundle manifest. The build re-verifies the lock +digest, signatures, and RPM metadata before installing all RPMs in one offline +transaction. CI pre-pulls and architecture-checks the digest-pinned bases, then +uses `--network=none`, disables pulls, and disables build caching. Unit and +integration checks reject malformed locks, wrong versions or architectures, +unapproved sources or keys, duplicates, missing or extra files, modified +manifests, and byte tampering. + +The initial closure review records 161 binary RPMs on AMD64 and 162 on ARM64, +with 111 distinct source RPMs on each. ARM64's only package-name addition is +`libatomic`, an architecture-specific runtime dependency; AMD64 has no unique +package. Locked binary download sizes are 76,382,789 bytes on AMD64 and +74,714,685 bytes on ARM64. Finalization removes every setuid/setgid bit and +fails on any world-writable regular file. CI repeats those assertions while +native smoke, SBOM, and vulnerability jobs inspect the resulting executable +and package content. Future lock updates must explain changes to these counts, +package-name differences, privilege bits, writable files, or executables in the +pull-request review. + +## Trust and recovery procedures + +- **Key rotation:** stop lock updates, obtain the publisher's new fingerprint + through an authoritative channel independent of the package download, add the + exact key URL, hash, and full fingerprint to the reviewed input, and accept it + only after both native candidate closures verify. Remove an old key only when + no locked RPM depends on it. +- **Revocation or compromise:** block builds and releases using the affected + key, preserve evidence, assess every signed package and released digest, + withdraw affected releases when integrity cannot be established, and require + replacement publisher-signed artifacts and full requalification. A checksum + match does not override a revoked signing identity. +- **Mirror substitution:** change both the source allowlist and lock URLs in a + reviewed security change. The mirror must serve byte-identical, + publisher-signed files. Any re-signing requires a separately documented and + approved trust boundary. +- **Bundle transfer:** archive the complete architecture directory without + modification, transfer it over the deployment organization's approved + channel, and run `verify-bundle`, full fingerprint verification, and RPM + verification at the receiving boundary before assembly. Do not transfer + credentials, repository configuration, or caches with it. +- **Rollback:** restore a previously committed lock and its exact bundle only + through a pull request, confirm all bytes and base digests remain available, + rerun current security gates, and issue a new immutable release identity. + Never move a tag or reuse previous qualification evidence. +- **Emergency rebuild:** security urgency shortens review latency but does not + disable signatures, hashes, native builds, vulnerability gates, or immutable + release identity. If trusted inputs or required evidence are unavailable, + delay or withdraw the release and publish mitigation rather than bypassing a + control. + +## Source, redistribution, and ownership + +Every binary lock entry names its source RPM, and every distinct source RPM has +an HTTPS location, repository identifier, byte size, and SHA-256 record. PGDG +PostgreSQL packages remain under the PostgreSQL License; UBI base content and +runtime dependencies remain under Red Hat's UBI terms and their included +per-package licenses. The image and repository names do not imply PostgreSQL or +Red Hat endorsement, certification, or support. `THIRD_PARTY_NOTICES.md` +records the redistribution boundary, and `docs/MAINTENANCE.md` assigns weekly +supplier, source, license, signing-key, and update review to the accountable +maintainer. diff --git a/docs/CI.md b/docs/CI.md index 37140ca..b195959 100644 --- a/docs/CI.md +++ b/docs/CI.md @@ -3,7 +3,10 @@ CI runs repository validation, configuration scanning, native AMD64 and ARM64 image builds, restricted-runtime smoke tests, Trivy and Grype vulnerability gates, and Syft SPDX SBOM generation. The aggregate `image` job fails unless -every native image job succeeds. +every native image job succeeds. Each image job acquires the architecture's +committed lock, verifies the bundle and full key fingerprints, pre-pulls only +the digest-pinned bases, and performs a clean build with network access and +additional pulls disabled. ## Local repository checks @@ -16,9 +19,9 @@ pre-commit run --all-files --show-diff-on-failure ## Local image checks ```console -podman build --format docker --file Containerfile \ - --tag localhost/postgresql-ubi9:development . -CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi9:development \ +CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi:development \ + bash scripts/build-offline.sh +CONTAINER_RUNTIME=podman IMAGE=localhost/postgresql-ubi:development \ bash tests/smoke.sh ``` diff --git a/docs/MAINTENANCE.md b/docs/MAINTENANCE.md index 3fdb00e..77bbbc5 100644 --- a/docs/MAINTENANCE.md +++ b/docs/MAINTENANCE.md @@ -14,6 +14,7 @@ not imply separation of duties that the project does not yet have. | Image and PostgreSQL 18 maintenance | `@joey-huckabee` | Approve input changes, compatibility decisions, and supported-release updates. | | PostgreSQL and PGDG security triage | `@joey-huckabee` | Review PostgreSQL security notices, release notes, PGDG packaging, source RPMs, and fixes. | | UBI security triage | `@joey-huckabee` | Review Red Hat errata, base manifests, runtime RPM changes, and rebuild need. | +| Source and redistribution review | `@joey-huckabee` | Confirm each binary-to-source mapping, source availability, included licenses, UBI redistribution terms, and trademark boundaries on every lock change. | | Artifact and signing-key policy | `@joey-huckabee` | Approve key additions, rotations, revocations, mirrors, and lock changes with fingerprint evidence. | | Vulnerability reports and disclosure | `@joey-huckabee` | Monitor private advisories, acknowledge reports, coordinate suppliers, and publish advisories. | | Release approval and GHCR administration | `@joey-huckabee` | Approve the candidate, protect immutable identity, publish or withdraw releases, and verify public artifacts. | diff --git a/docs/PACKAGE-SOURCE.md b/docs/PACKAGE-SOURCE.md index d8ba2b5..6047150 100644 --- a/docs/PACKAGE-SOURCE.md +++ b/docs/PACKAGE-SOURCE.md @@ -4,8 +4,8 @@ Use the PostgreSQL Global Development Group's official PGDG RPM repository for PostgreSQL 18 while retaining digest-pinned Red Hat UBI 9 Minimal and Micro base -images. Pin the exact RPM epoch, version, release, architecture, dependency -closure, repository package, checksums, and signing identity. +images. Pin the exact RPM epoch, version, release, architecture, complete +dependency closure, checksums, source RPMs, and signing identity. An inspection on 2026-09-11 found that the public UBI 9.8 repositories expose PostgreSQL 13.23 but not the PostgreSQL 18 stream. The PGDG RHEL 9 repository @@ -24,17 +24,12 @@ x86_64: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20 aarch64: B031 F89F C983 E982 6290 6B6E 177B 343B B973 8825 ``` -These are observed development inputs, not a permanent lock or release claim. -The first release requires equivalent availability and native tests on AMD64 -and ARM64 plus an external artifact lock and network-disabled assembly. - -The development build downloads the three architecture-specific PostgreSQL RPMs -directly from the PGDG 18 directory. Each URL and SHA-256 digest is explicit in -the Containerfile. The architecture-specific PGDG signing keys are also -checksum-pinned, their fingerprints are documented above, and every RPM -signature is checked before installation. -This avoids mutable PGDG repository metadata influencing the package selection; -DNF resolves only the remaining dependencies from the UBI repositories. +The reviewed locks in `artifacts/locks/` record these identities plus every UBI +runtime dependency and corresponding source RPM. Only the manual +`update-locks.yml` workflow resolves repository metadata. Ordinary builds +download exact locked files outside the container build, verify hashes, +signatures, fingerprints, metadata, architecture, and source correspondence, +then install the complete local transaction without DNF or repository access. ## Supplier boundary diff --git a/scripts/build-offline.sh b/scripts/build-offline.sh index 12eb4dd..26f0d91 100644 --- a/scripts/build-offline.sh +++ b/scripts/build-offline.sh @@ -18,7 +18,7 @@ test -f "${lock}" test ! -e "${bundle}" python3 scripts/artifacts.py acquire --lock "${lock}" --output "${bundle}" -scripts/verify-key-fingerprints.sh "${bundle}" +bash scripts/verify-key-fingerprints.sh "${bundle}" lock_sha=$(sha256sum "${lock}" | cut -d' ' -f1) builder=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["base_images"]["builder"]["reference"])' "${lock}") runtime_base=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["base_images"]["runtime"]["reference"])' "${lock}") From 998ec6742f58e2e822a1813356b04aa96b4972f8 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:48:13 -0500 Subject: [PATCH 13/22] fix: finalize verified runtime root --- Containerfile | 5 ++-- scripts/artifacts.py | 47 ++++++++++++++++++++++++++++++------ scripts/verify-rpm-bundle.sh | 6 +++-- tests/test_artifacts.py | 3 +++ 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/Containerfile b/Containerfile index a55b8dd..9bc8184 100644 --- a/Containerfile +++ b/Containerfile @@ -24,8 +24,9 @@ RUN test -n "${ARTIFACT_LOCK_SHA256}" \ && rpm --root /runtime --initdb \ && rpm --root /runtime --import /tmp/artifacts/keys/* \ && rpm --root /runtime --install /tmp/artifacts/rpms/*.rpm \ - && rpm --root /runtime --query 'gpg-pubkey*' \ - --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' > /tmp/imported-keys \ + && rpm --root /runtime --query --all \ + --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' \ + | sed -n '/^gpg-pubkey-/p' > /tmp/imported-keys \ && while IFS= read -r key; do \ rpm --root /runtime --erase "${key}"; \ done < /tmp/imported-keys \ diff --git a/scripts/artifacts.py b/scripts/artifacts.py index 5f1b546..623458f 100644 --- a/scripts/artifacts.py +++ b/scripts/artifacts.py @@ -29,6 +29,20 @@ FINGERPRINT_RE = re.compile(r"^[A-F0-9]{40}$") FILENAME_RE = re.compile(r"^[A-Za-z0-9+_.-]+$") ARCHES = {"amd64": "x86_64", "arm64": "aarch64"} +BASE_PREFIXES = { + "builder": "registry.access.redhat.com/ubi9/ubi-minimal:", + "runtime": "registry.access.redhat.com/ubi9/ubi-micro:", +} +UBI_BINARY_REPOSITORIES = { + "ubi-9-baseos-rpms", + "ubi-9-appstream-rpms", + "ubi-9-codeready-builder-rpms", +} +UBI_SOURCE_REPOSITORIES = { + "ubi-9-baseos-source-rpms", + "ubi-9-appstream-source-rpms", + "ubi-9-codeready-builder-source-rpms", +} class LockError(ValueError): @@ -94,6 +108,15 @@ def require_sha256(value: object, label: str) -> str: return value +def validate_base_reference(reference: object, role: str) -> str: + value = require_string(reference, f"base image {role}") + if not value.startswith(BASE_PREFIXES[role]) or "@sha256:" not in value: + fail(f"base image {role} is not an approved digest-pinned UBI image") + if not DIGEST_RE.fullmatch(value.rsplit("@", 1)[1]): + fail(f"base image {role} has an invalid digest") + return value + + def validate_inputs(path: Path) -> dict: data = read_json(path) required = { @@ -110,9 +133,7 @@ def validate_inputs(path: Path) -> dict: if data["schema_version"] != 1 or data["bundle_version"] != 1: fail("only lock schema and bundle version 1 are supported") for role in ("builder", "runtime"): - reference = require_string(data["base_images"].get(role), f"base image {role}") - if "@sha256:" not in reference or not DIGEST_RE.fullmatch(reference.rsplit("@", 1)[1]): - fail(f"base image {role} is not digest pinned") + validate_base_reference(data["base_images"].get(role), role) if set(data["architectures"]) != set(ARCHES): fail("lock inputs must define exactly amd64 and arm64") for architecture, rpm_architecture in ARCHES.items(): @@ -196,7 +217,7 @@ def validate_lock(path: Path) -> dict: require_keys(bases, {"builder", "runtime"}, {"builder", "runtime"}, "base_images") for role, base in bases.items(): require_keys(base, {"reference", "digest", "platform"}, {"reference", "digest", "platform"}, f"base {role}") - reference = require_string(base["reference"], f"base {role} reference") + reference = validate_base_reference(base["reference"], role) digest = require_string(base["digest"], f"base {role} digest") if not DIGEST_RE.fullmatch(digest) or not reference.endswith(f"@{digest}"): fail(f"base {role} reference and digest do not match") @@ -253,7 +274,7 @@ def validate_package(package: object, architecture: str, lock: dict, fingerprint fail(f"package NEVRA is inconsistent: {package['nevra']}") if not FILENAME_RE.fullmatch(package["filename"]) or not package["filename"].endswith(".rpm"): fail(f"unsafe package filename: {package['filename']}") - validate_url(package["url"], f"package {package['nevra']}") + url = validate_url(package["url"], f"package {package['nevra']}") if not isinstance(package["size"], int) or package["size"] < 1: fail(f"package {package['nevra']} has an invalid size") require_sha256(package["sha256"], f"package {package['nevra']}") @@ -266,6 +287,12 @@ def validate_package(package: object, architecture: str, lock: dict, fingerprint or f"{package['version']}-{package['release']}" != lock["postgresql_rpm_version"] ): fail(f"package {package['nevra']} violates the locked PostgreSQL version") + host = urllib.parse.urlsplit(url).hostname + if package["name"].startswith("postgresql18"): + if package["repository"] != "pgdg-18" or host != "download.postgresql.org": + fail(f"package {package['nevra']} has an inconsistent PGDG source") + elif package["repository"] not in UBI_BINARY_REPOSITORIES or host != "cdn-ubi.redhat.com": + fail(f"package {package['nevra']} has an inconsistent UBI source") def validate_source(source: object) -> None: @@ -276,11 +303,17 @@ def validate_source(source: object) -> None: filename = require_string(source["filename"], "source package filename") if not FILENAME_RE.fullmatch(filename) or not filename.endswith(".src.rpm"): fail(f"unsafe source package filename: {filename}") - validate_url(source["url"], f"source package {filename}") - require_string(source["repository"], "source package repository") + url = validate_url(source["url"], f"source package {filename}") + repository = require_string(source["repository"], "source package repository") if not isinstance(source["size"], int) or source["size"] < 1: fail(f"source package {filename} has an invalid size") require_sha256(source["sha256"], f"source package {filename}") + host = urllib.parse.urlsplit(url).hostname + if filename.startswith("postgresql18-"): + if repository != "pgdg-18-source" or host != "dnf-srpms.postgresql.org": + fail(f"source package {filename} has an inconsistent PGDG source") + elif repository not in UBI_SOURCE_REPOSITORIES or host != "cdn-ubi.redhat.com": + fail(f"source package {filename} has an inconsistent UBI source") class ApprovedRedirectHandler(urllib.request.HTTPRedirectHandler): diff --git a/scripts/verify-rpm-bundle.sh b/scripts/verify-rpm-bundle.sh index c81378e..8bce650 100644 --- a/scripts/verify-rpm-bundle.sh +++ b/scripts/verify-rpm-bundle.sh @@ -15,10 +15,12 @@ while IFS=$'\t' read -r filename name epoch version release architecture source_ artifact=${bundle}/rpms/${filename} test -f "${artifact}" rpm --dbpath "${rpmdb}" --checksig "${artifact}" - actual=$(rpm -qp --qf '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}' "${artifact}") + actual=$(rpm --dbpath "${rpmdb}" -qp \ + --qf '%{NAME}|%{EPOCHNUM}|%{VERSION}|%{RELEASE}|%{ARCH}|%{SOURCERPM}' \ + "${artifact}") expected="${name}|${epoch}|${version}|${release}|${architecture}|${source_rpm}" test "${actual}" = "${expected}" - signature=$(rpm -qp --qf \ + signature=$(rpm --dbpath "${rpmdb}" -qp --qf \ '%{SIGPGP:pgpsig}|%{SIGGPG:pgpsig}|%{RSAHEADER:pgpsig}|%{DSAHEADER:pgpsig}' \ "${artifact}") key_id=$(sed -n 's/.*[Kk]ey ID \([0-9A-Fa-f]*\).*/\1/p' <<<"${signature}" | head -n1) diff --git a/tests/test_artifacts.py b/tests/test_artifacts.py index 8c31fcc..b82f75f 100644 --- a/tests/test_artifacts.py +++ b/tests/test_artifacts.py @@ -123,6 +123,9 @@ def test_wrong_arch_version_nevra_source_and_base_are_rejected(self) -> None: value = valid_lock() value["base_images"]["runtime"]["platform"] = "linux/arm64" mutations.append(value) + value = valid_lock() + value["base_images"]["runtime"]["reference"] = f"example.invalid/image@sha256:{'1' * 64}" + mutations.append(value) for mutation in mutations: with self.subTest(mutation=mutation): self.assert_rejected(mutation) From aa4efe4cb5a8e9f17b71da07024a5ecbfe07b630 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:50:54 -0500 Subject: [PATCH 14/22] fix: enforce approved artifact origins --- Containerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Containerfile b/Containerfile index 9bc8184..8bf11ea 100644 --- a/Containerfile +++ b/Containerfile @@ -57,8 +57,6 @@ ARG ARTIFACT_LOCK_SHA256 LABEL org.opencontainers.image.title="PostgreSQL on Red Hat UBI 9" \ org.opencontainers.image.description="A security-oriented, rootless PostgreSQL image built on Red Hat UBI 9 Micro" \ - org.opencontainers.image.source="https://github.com/datopsis/postgresql-ubi" \ - org.opencontainers.image.documentation="https://github.com/datopsis/postgresql-ubi#readme" \ org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.vendor="Datopsis" \ org.opencontainers.image.version="${POSTGRESQL_VERSION}" \ From 5c4cbb621d7f204c8a3eab3ff838f6b622e697c5 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:53:28 -0500 Subject: [PATCH 15/22] test: diagnose final image hygiene --- .github/workflows/ci.yml | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c68981a..4e740ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,18 +119,22 @@ jobs: - name: Prove acquisition material is absent from the final image run: | - test -z "$(docker history --no-trunc --format '{{.CreatedBy}}' "${TEST_IMAGE}" | grep -E 'https?://|RPM-GPG-KEY|/tmp/artifacts' || true)" + if docker history --no-trunc --format '{{.CreatedBy}}' "${TEST_IMAGE}" | grep -E 'https?://|RPM-GPG-KEY|/tmp/artifacts'; then + echo 'forbidden acquisition material found in final image history' >&2 + exit 1 + fi docker run --rm --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' - test ! -e /etc/dnf - test ! -e /etc/pki/entitlement - test ! -e /etc/pki/rpm-gpg - test ! -e /etc/rhsm - test ! -e /etc/yum.repos.d - test ! -e /var/cache/dnf - test ! -e /var/cache/yum - test -z "$(find / -xdev -type f \( -name "*RPM-GPG-KEY*" -o -name "*.repo" \) -print -quit)" - test -z "$(find / -xdev -type f -perm /6000 -print -quit)" - test -z "$(find / -xdev -type f -perm -0002 -print -quit)" + for path in /etc/dnf /etc/pki/entitlement /etc/pki/rpm-gpg /etc/rhsm /etc/yum.repos.d /var/cache/dnf /var/cache/yum; do + if test -e "${path}"; then + echo "forbidden final-image path: ${path}" >&2 + exit 1 + fi + done + if find / -xdev -type f \( -name "*RPM-GPG-KEY*" -o -name "*.repo" -o -perm /6000 -o -perm -0002 \) -print -quit | grep -q .; then + echo "forbidden key, repository, privilege, or writable file found" >&2 + find / -xdev -type f \( -name "*RPM-GPG-KEY*" -o -name "*.repo" -o -perm /6000 -o -perm -0002 \) -print >&2 + exit 1 + fi ' - name: Confirm loaded image architecture @@ -165,6 +169,12 @@ jobs: upload-artifact: false upload-release-assets: false + - name: Prove acquisition material is absent from the SBOM + run: >- + test -z "$(grep -E + 'download[.]postgresql[.]org|dnf-srpms[.]postgresql[.]org|cdn-ubi[.]redhat[.]com|security[.]access[.]redhat[.]com|RPM-GPG-KEY|[.]artifact-bundle|/tmp/artifacts' + "${SBOM_FILE}" || true)" + - name: Scan Syft SBOM with Grype uses: anchore/scan-action@27805bf3b4e84b4a5c980df22ed233c00390a439 # v7.4.2 with: From 18f55acc4b67eaedd63ab52aca4df3317bb0d64e Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 08:55:28 -0500 Subject: [PATCH 16/22] fix: remove runtime repository metadata --- .github/workflows/ci.yml | 2 +- Containerfile | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e740ef..ed32532 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,7 +123,7 @@ jobs: echo 'forbidden acquisition material found in final image history' >&2 exit 1 fi - docker run --rm --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' + docker run --rm --user 0 --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' for path in /etc/dnf /etc/pki/entitlement /etc/pki/rpm-gpg /etc/rhsm /etc/yum.repos.d /var/cache/dnf /var/cache/yum; do if test -e "${path}"; then echo "forbidden final-image path: ${path}" >&2 diff --git a/Containerfile b/Containerfile index 8bf11ea..7b56471 100644 --- a/Containerfile +++ b/Containerfile @@ -41,6 +41,7 @@ RUN test -n "${ARTIFACT_LOCK_SHA256}" \ /final/tmp/* \ /final/var/cache/dnf \ /final/var/cache/yum \ + /final/var/lib/rhsm \ /final/var/log/* \ /final/var/tmp/* \ && find /final -xdev -type f -perm /6000 -exec chmod a-s {} + \ From 0fb9e048a59dc1d8aa1f06be02af5298da67a1d0 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:00:11 -0500 Subject: [PATCH 17/22] test: inspect build provenance hygiene --- .github/workflows/ci.yml | 12 ++++++++++++ .gitignore | 1 + scripts/build-offline.sh | 6 +++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed32532..77f9b74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,6 +98,7 @@ jobs: env: TEST_IMAGE: localhost/postgresql-ubi9:test-${{ matrix.architecture }} SBOM_FILE: postgresql-ubi9-${{ matrix.architecture }}.spdx.json + PROVENANCE_FILE: provenance-${{ matrix.architecture }}.json GRYPE_SARIF: grype-${{ matrix.architecture }}.sarif GRYPE_ALL: grype-all-${{ matrix.architecture }}.json steps: @@ -106,6 +107,9 @@ jobs: with: persist-credentials: false + - name: Set up Buildx + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + - name: Confirm native runner architecture env: EXPECTED_MACHINE: ${{ matrix.machine }} @@ -113,6 +117,8 @@ jobs: - name: Acquire, verify, and build from the locked bundle env: + BUILD_METADATA_FILE: ${{ env.PROVENANCE_FILE }} + BUILDX_METADATA_PROVENANCE: max CONTAINER_RUNTIME: docker IMAGE: ${{ env.TEST_IMAGE }} run: bash scripts/build-offline.sh @@ -123,6 +129,11 @@ jobs: echo 'forbidden acquisition material found in final image history' >&2 exit 1 fi + test -s "${PROVENANCE_FILE}" + if grep -E 'download[.]postgresql[.]org|dnf-srpms[.]postgresql[.]org|cdn-ubi[.]redhat[.]com|security[.]access[.]redhat[.]com|RPM-GPG-KEY|[.]artifact-bundle|/tmp/artifacts' "${PROVENANCE_FILE}"; then + echo 'forbidden acquisition material found in build provenance' >&2 + exit 1 + fi docker run --rm --user 0 --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' for path in /etc/dnf /etc/pki/entitlement /etc/pki/rpm-gpg /etc/rhsm /etc/yum.repos.d /var/cache/dnf /var/cache/yum; do if test -e "${path}"; then @@ -207,6 +218,7 @@ jobs: name: image-security-${{ github.sha }}-${{ matrix.architecture }} path: | ${{ env.SBOM_FILE }} + ${{ env.PROVENANCE_FILE }} ${{ env.GRYPE_SARIF }} ${{ env.GRYPE_ALL }} if-no-files-found: warn diff --git a/.gitignore b/.gitignore index 5c94931..dfbfbb3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.sarif *.spdx.json *.sbom.json +provenance-*.json cosign.bundle # Local tooling diff --git a/scripts/build-offline.sh b/scripts/build-offline.sh index 26f0d91..bf6af51 100644 --- a/scripts/build-offline.sh +++ b/scripts/build-offline.sh @@ -30,12 +30,16 @@ runtime_base=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))[" test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-builder:locked)" = "${architecture}" test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-runtime:locked)" = "${architecture}" +build_command=("${runtime}" build) if test "${runtime}" = docker; then pull_flag=false + if test -n "${BUILD_METADATA_FILE:-}"; then + build_command=(docker buildx build --load --provenance=mode=max --metadata-file "${BUILD_METADATA_FILE}") + fi else pull_flag=never fi -"${runtime}" build --file Containerfile --tag "${image}" --network=none \ +"${build_command[@]}" --file Containerfile --tag "${image}" --network=none \ --pull="${pull_flag}" --no-cache \ --build-arg UBI_MINIMAL_IMAGE=localhost/postgresql-ubi-builder:locked \ --build-arg UBI_MICRO_IMAGE=localhost/postgresql-ubi-runtime:locked \ From fb3e06f2d69fdfe208351def4eb92f13e4efde23 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:02:44 -0500 Subject: [PATCH 18/22] fix: export provenance as OCI evidence --- .github/workflows/ci.yml | 1 + .gitignore | 1 + scripts/build-offline.sh | 16 ++++++++++------ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77f9b74..69400e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,6 +134,7 @@ jobs: echo 'forbidden acquisition material found in build provenance' >&2 exit 1 fi + rm -- "${PROVENANCE_FILE}.oci.tar" docker run --rm --user 0 --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' for path in /etc/dnf /etc/pki/entitlement /etc/pki/rpm-gpg /etc/rhsm /etc/yum.repos.d /var/cache/dnf /var/cache/yum; do if test -e "${path}"; then diff --git a/.gitignore b/.gitignore index dfbfbb3..e3e3147 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.spdx.json *.sbom.json provenance-*.json +*.oci.tar cosign.bundle # Local tooling diff --git a/scripts/build-offline.sh b/scripts/build-offline.sh index bf6af51..c9c0167 100644 --- a/scripts/build-offline.sh +++ b/scripts/build-offline.sh @@ -30,17 +30,21 @@ runtime_base=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))[" test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-builder:locked)" = "${architecture}" test "$("${runtime}" image inspect --format '{{.Architecture}}' localhost/postgresql-ubi-runtime:locked)" = "${architecture}" -build_command=("${runtime}" build) if test "${runtime}" = docker; then pull_flag=false - if test -n "${BUILD_METADATA_FILE:-}"; then - build_command=(docker buildx build --load --provenance=mode=max --metadata-file "${BUILD_METADATA_FILE}") - fi else pull_flag=never fi -"${build_command[@]}" --file Containerfile --tag "${image}" --network=none \ +build_arguments=(--file Containerfile --tag "${image}" --network=none \ --pull="${pull_flag}" --no-cache \ --build-arg UBI_MINIMAL_IMAGE=localhost/postgresql-ubi-builder:locked \ --build-arg UBI_MICRO_IMAGE=localhost/postgresql-ubi-runtime:locked \ - --build-arg ARTIFACT_LOCK_SHA256="${lock_sha}" . + --build-arg ARTIFACT_LOCK_SHA256="${lock_sha}" .) +"${runtime}" build "${build_arguments[@]}" + +if test "${runtime}" = docker && test -n "${BUILD_METADATA_FILE:-}"; then + docker buildx build --provenance=mode=max \ + --metadata-file "${BUILD_METADATA_FILE}" \ + --output "type=oci,dest=${BUILD_METADATA_FILE}.oci.tar" \ + "${build_arguments[@]}" +fi From e76183b174f105e4e19e79ff37afaaf9ae165a47 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:05:00 -0500 Subject: [PATCH 19/22] fix: share locked bases with provenance builder --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69400e7..a20bab8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,6 +109,8 @@ jobs: - name: Set up Buildx uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + with: + driver: docker - name: Confirm native runner architecture env: From 9a787e7c7528cd15ff6488374982697316187063 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:09:02 -0500 Subject: [PATCH 20/22] fix: capture offline build provenance --- .github/workflows/ci.yml | 1 - scripts/build-offline.sh | 9 +++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a20bab8..0801c28 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -136,7 +136,6 @@ jobs: echo 'forbidden acquisition material found in build provenance' >&2 exit 1 fi - rm -- "${PROVENANCE_FILE}.oci.tar" docker run --rm --user 0 --entrypoint /bin/sh "${TEST_IMAGE}" -ec ' for path in /etc/dnf /etc/pki/entitlement /etc/pki/rpm-gpg /etc/rhsm /etc/yum.repos.d /var/cache/dnf /var/cache/yum; do if test -e "${path}"; then diff --git a/scripts/build-offline.sh b/scripts/build-offline.sh index c9c0167..ee9116c 100644 --- a/scripts/build-offline.sh +++ b/scripts/build-offline.sh @@ -40,11 +40,8 @@ build_arguments=(--file Containerfile --tag "${image}" --network=none \ --build-arg UBI_MINIMAL_IMAGE=localhost/postgresql-ubi-builder:locked \ --build-arg UBI_MICRO_IMAGE=localhost/postgresql-ubi-runtime:locked \ --build-arg ARTIFACT_LOCK_SHA256="${lock_sha}" .) -"${runtime}" build "${build_arguments[@]}" - if test "${runtime}" = docker && test -n "${BUILD_METADATA_FILE:-}"; then - docker buildx build --provenance=mode=max \ - --metadata-file "${BUILD_METADATA_FILE}" \ - --output "type=oci,dest=${BUILD_METADATA_FILE}.oci.tar" \ - "${build_arguments[@]}" + build_arguments=(--metadata-file "${BUILD_METADATA_FILE}" "${build_arguments[@]}") fi + +"${runtime}" build "${build_arguments[@]}" From 3114702788c0ac67660a3526a7078fe6457273b0 Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:12:39 -0500 Subject: [PATCH 21/22] fix: minimize retained build metadata --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0801c28..7a051ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,7 @@ jobs: - name: Acquire, verify, and build from the locked bundle env: BUILD_METADATA_FILE: ${{ env.PROVENANCE_FILE }} - BUILDX_METADATA_PROVENANCE: max + BUILDX_METADATA_PROVENANCE: min CONTAINER_RUNTIME: docker IMAGE: ${{ env.TEST_IMAGE }} run: bash scripts/build-offline.sh From c9abf5162463a7af067504936b7e70eb4eceee0f Mon Sep 17 00:00:00 2001 From: joey-huckabee <138994589+joey-huckabee@users.noreply.github.com> Date: Fri, 11 Sep 2026 09:15:25 -0500 Subject: [PATCH 22/22] docs: record package 2 completion --- docs/ROADMAP.md | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 637e398..b7658c6 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -77,7 +77,7 @@ services in the first release. Work proceeds in this dependency order: 1. **Complete:** approve the release/support boundary and evidence schema. -2. Implement the complete artifact lock, verified out-of-build acquisition, +2. **Complete:** implement the complete artifact lock, verified out-of-build acquisition, and network-disabled assembly. 3. Close the database security, storage, lifecycle, TLS, logging, backup, restore, and upgrade test matrix. @@ -153,41 +153,54 @@ current support claim. Implement the complete contract in `docs/ARTIFACT-ACQUISITION.md`. -- [ ] Create schema-validated AMD64 and ARM64 lock manifests containing both UBI +- [x] Create schema-validated AMD64 and ARM64 lock manifests containing both UBI references and manifest digests, every PostgreSQL and UBI RPM NEVRA, byte size, SHA-256, architecture, approved full signing fingerprint, source RPM, artifact-source identifier, and lock schema version. -- [ ] Record and review the entire installed RPM closure rather than only the +- [x] Record and review the entire installed RPM closure rather than only the three top-level PostgreSQL RPMs. Investigate unexpected package, file, setuid/setgid, world-writable, executable, or architecture differences. -- [ ] Implement a dedicated lock-update command and workflow. Resolution is an +- [x] Implement a dedicated lock-update command and workflow. Resolution is an explicit review activity; ordinary pull-request, `main`, and release builds must never recalculate the closure or select `latest`. -- [ ] Acquire only locked artifacts outside the container build. Enforce +- [x] Acquire only locked artifacts outside the container build. Enforce approved hosts and redirects, bounded retries/timeouts, least-privilege credentials when needed, sanitized logs, and cleanup of ephemeral staging. -- [ ] Verify size, SHA-256, RPM signature and approved full fingerprint, NEVRA, +- [x] Verify size, SHA-256, RPM signature and approved full fingerprint, NEVRA, source-RPM correspondence, architecture, base-image platform, and manifest digest before admitting a bundle to assembly. -- [ ] Reject tampered, unsigned, unapproved-key, wrong-version, +- [x] Reject tampered, unsigned, unapproved-key, wrong-version, wrong-architecture, duplicate, missing, and unexpected artifacts, malformed locks, wrong base digests, and source-RPM mismatches. -- [ ] Make local, pull-request, `main`, and candidate assembly consume the same +- [x] Make local, pull-request, `main`, and candidate assembly consume the same verified bundle with networking and image pulling disabled and without repository configuration or dependency resolution. -- [ ] Prove that repository addresses, credentials, signing keys, private CA +- [x] Prove that repository addresses, credentials, signing keys, private CA material, caches, and acquisition logs do not enter image files, layers, history, labels, SBOMs, or provenance. -- [ ] Define signing-key rotation, revocation, mirror substitution, bundle +- [x] Define signing-key rotation, revocation, mirror substitution, bundle transfer, lock rollback, and emergency rebuild procedures. A mirror must preserve publisher-signed bytes unless a separately approved trust model is documented. -- [ ] Record source availability, redistribution terms, trademark boundaries, +- [x] Record source availability, redistribution terms, trademark boundaries, and update ownership for every runtime component. **Exit evidence:** a clean build succeeds from only the reviewed bundle with network and pulls disabled, and every negative bundle test fails closed. +Completed by CI run +[`34608785089`](https://github.com/datopsis/postgresql-ubi/actions/runs/34608785089) +for commit `3114702788c0ac67660a3526a7078fe6457273b0`. Native AMD64 and ARM64 +jobs acquired and verified their committed locks, assembled with an empty build +cache and build networking disabled, passed restricted-runtime smoke tests, +Trivy and Grype gates, generated SPDX SBOMs and build provenance, and proved +acquisition material absent from retained image and assurance artifacts. The +locks contain the complete reviewed closures: 161 binary RPMs and 111 source +RPMs for AMD64, and 162 binary RPMs and 111 source RPMs for ARM64. The five +artifact test groups passed their malformed, tampered, unsigned, +unapproved-key, wrong-version, wrong-architecture, duplicate, missing, +unexpected, wrong-base, and source-mismatch cases fail closed. + ## Package 3: database security and runtime contract ### Initialization, identity, and authentication