diff --git a/.github/workflows/release-discover-branches.yaml b/.github/workflows/release-discover-branches.yaml index eb5753d5c..b731545f6 100644 --- a/.github/workflows/release-discover-branches.yaml +++ b/.github/workflows/release-discover-branches.yaml @@ -74,6 +74,13 @@ jobs: localhost/rpm-lockfile-prototype:latest \ --outfile=${container_dir}/pkg/dockerfilegen/ubi8.rpms.lock.yaml \ ${container_dir}/pkg/dockerfilegen/ubi8.rpms.in.yaml || exit $? + + podman run --privileged \ + --rm \ + -v ${PWD}:${container_dir} \ + localhost/rpm-lockfile-prototype:latest \ + --outfile=${container_dir}/pkg/dockerfilegen/ubi9.rpms.lock.yaml \ + ${container_dir}/pkg/dockerfilegen/ubi9.rpms.in.yaml || exit $? - name: Create Discovery Pull Request if: (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref_name == 'main' diff --git a/.github/workflows/release-generate-ci-template.yaml b/.github/workflows/release-generate-ci-template.yaml index 15d0be1ac..a83de9300 100644 --- a/.github/workflows/release-generate-ci-template.yaml +++ b/.github/workflows/release-generate-ci-template.yaml @@ -24,6 +24,13 @@ jobs: name: generate-ci runs-on: ubuntu-latest steps: + - name: Freeup disk space + run: | + sudo rm -rf "/usr/local/share/boost" || true + sudo rm -rf /usr/share/dotnet || true + sudo rm -rf /usr/local/lib/android || true + sudo rm -rf /opt/ghc || true + sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true - name: Checkout openshift-knative/hack uses: actions/checkout@v4 with: diff --git a/.github/workflows/release-generate-ci.yaml b/.github/workflows/release-generate-ci.yaml index 3401493af..1f9caf2ba 100644 --- a/.github/workflows/release-generate-ci.yaml +++ b/.github/workflows/release-generate-ci.yaml @@ -124,6 +124,13 @@ jobs: ref: main repository: openshift-knative/serving token: ${{ secrets.SERVERLESS_QE_ROBOT }} + - name: Freeup disk space + run: | + sudo rm -rf "/usr/local/share/boost" || true + sudo rm -rf /usr/share/dotnet || true + sudo rm -rf /usr/local/lib/android || true + sudo rm -rf /opt/ghc || true + sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true - name: Checkout openshift-knative/hack uses: actions/checkout@v4 with: diff --git a/config/serverless-operator.yaml b/config/serverless-operator.yaml index 59baddd32..11cb75bc2 100644 --- a/config/serverless-operator.yaml +++ b/config/serverless-operator.yaml @@ -100,17 +100,17 @@ config: - .*rosa.* imageOverrides: - name: GO_BUILDER - pullSpec: brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_8_golang_1.23 + pullSpec: brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.23 - name: GO_RUNTIME - pullSpec: registry.access.redhat.com/ubi8/ubi-minimal + pullSpec: registry.access.redhat.com/ubi9/ubi-minimal - name: JAVA_BUILDER - pullSpec: registry.access.redhat.com/ubi8/openjdk-21 + pullSpec: registry.access.redhat.com/ubi9/openjdk-21 - name: JAVA_RUNTIME - pullSpec: registry.access.redhat.com/ubi8/openjdk-21-runtime + pullSpec: registry.access.redhat.com/ubi9/openjdk-21-runtime - name: NODE_BUILDER - pullSpec: registry.access.redhat.com/ubi8/nodejs-20 + pullSpec: registry.access.redhat.com/ubi9/nodejs-20 - name: NODE_RUNTIME - pullSpec: registry.access.redhat.com/ubi8/nodejs-20 + pullSpec: registry.access.redhat.com/ubi9/nodejs-20 openShiftVersions: - candidateRelease: true onDemand: true diff --git a/pkg/dockerfilegen/dockerfile-templates/rhel-9/BuildImage.dockerfile.tmpl b/pkg/dockerfilegen/dockerfile-templates/rhel-9/BuildImage.dockerfile.tmpl new file mode 100644 index 000000000..f382dcbde --- /dev/null +++ b/pkg/dockerfilegen/dockerfile-templates/rhel-9/BuildImage.dockerfile.tmpl @@ -0,0 +1,26 @@ +# DO NOT EDIT! Generated Dockerfile. + +FROM registry.ci.openshift.org/ocp/4.19:cli-artifacts as tools + +# Dockerfile to bootstrap build and test in openshift-ci +FROM {{.builder}} as builder + +ARG TARGETARCH + +COPY --from=tools /usr/share/openshift/linux_$TARGETARCH/oc.rhel9 /usr/bin/oc + +RUN ln -s /usr/bin/oc /usr/bin/kubectl + +RUN dnf install -y httpd-tools + +RUN wget https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && \ + chmod 700 ./get-helm-3 + +RUN ./get-helm-3 --version v3.11.3 --no-sudo && helm version + +RUN GOFLAGS='' go install github.com/mikefarah/yq/v3@latest +RUN GOFLAGS='' go install -tags="exclude_graphdriver_btrfs containers_image_openpgp" github.com/containers/skopeo/cmd/skopeo@v1.17.0 + +# go install creates $GOPATH/.cache with root permissions, we delete it here +# to avoid permission issues with the runtime users +RUN rm -rf $GOPATH/.cache diff --git a/pkg/dockerfilegen/dockerfile-templates/rhel-9/Default.dockerfile.tmpl b/pkg/dockerfilegen/dockerfile-templates/rhel-9/Default.dockerfile.tmpl new file mode 100644 index 000000000..13e156e8e --- /dev/null +++ b/pkg/dockerfilegen/dockerfile-templates/rhel-9/Default.dockerfile.tmpl @@ -0,0 +1,39 @@ +# DO NOT EDIT! Generated Dockerfile for {{.main}}. +ARG GO_BUILDER={{.builder}} +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal + +FROM $GO_BUILDER as builder + +WORKDIR /workspace +COPY . . +{{ range $c := .build_env_vars}} +ENV {{ $c }} +{{- end }} + +RUN go build -tags strictfipsruntime -o /usr/bin/main ./{{.main}} + +FROM $GO_RUNTIME + +ARG VERSION={{.version}} + +{{- range $c := .additional_instructions }} +{{ $c }} +{{- end }} + +COPY --from=builder /usr/bin/main {{.app_file}} +COPY LICENSE /licenses/ + +USER 65532 + +LABEL \ + com.redhat.component="openshift-serverless-1-{{.project_dashcase}}{{.component_dashcase}}-rhel9-container" \ + name="openshift-serverless-1/{{.project_dashcase}}{{.component_dashcase}}-rhel8" \ + version=$VERSION \ + summary="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + maintainer="serverless-support@redhat.com" \ + description="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + io.k8s.display-name="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + io.k8s.description="Red Hat OpenShift Serverless {{.project}}{{.component}}" \ + io.openshift.tags="{{.component_dashcase}}" + +ENTRYPOINT ["{{.app_file}}"] diff --git a/pkg/dockerfilegen/dockerfile-templates/rhel-9/FuncUtil.dockerfile.tmpl b/pkg/dockerfilegen/dockerfile-templates/rhel-9/FuncUtil.dockerfile.tmpl new file mode 100644 index 000000000..07e173973 --- /dev/null +++ b/pkg/dockerfilegen/dockerfile-templates/rhel-9/FuncUtil.dockerfile.tmpl @@ -0,0 +1,46 @@ +# DO NOT EDIT! Generated Dockerfile for {{.main}}. +ARG GO_BUILDER={{.builder}} +ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal + +FROM $GO_BUILDER as builder + +WORKDIR /workspace +COPY . . + +ENV CGO_ENABLED=1 +ENV GOEXPERIMENT=strictfipsruntime +ENV GOFLAGS='' + +RUN go build -tags strictfipsruntime,exclude_graphdriver_btrfs -o /usr/bin/main ./{{.main}} + +FROM $GO_RUNTIME + +ARG VERSION={{.version}} + +RUN dnf install socat tar +{{- range $c := .additional_instructions }} +{{ $c }} +{{- end }} + +COPY --from=builder /usr/bin/main {{.app_file}} +COPY LICENSE /licenses/ + +RUN ln -s {{.app_file}} /usr/local/bin/deploy && \ + ln -s {{.app_file}} /usr/local/bin/scaffold && \ + ln -s {{.app_file}} /usr/local/bin/s2i && \ + ln -s {{.app_file}} /usr/local/bin/s2i-generate + +USER 65532 + +LABEL \ + com.redhat.component="openshift-serverless-1-{{.project_dashcase}}{{.component_dashcase}}-rhel9-container" \ + name="openshift-serverless-1/{{.project_dashcase}}{{.component_dashcase}}-rhel8" \ + version=$VERSION \ + summary="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + maintainer="serverless-support@redhat.com" \ + description="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + io.k8s.display-name="Red Hat OpenShift Serverless 1 {{.project}}{{.component}}" \ + io.k8s.description="Red Hat OpenShift Serverless {{.project}}{{.component}}" \ + io.openshift.tags="{{.component_dashcase}}" + +ENTRYPOINT ["/usr/bin/bash"] diff --git a/pkg/dockerfilegen/dockerfile-templates/rhel-9/MustGather.dockerfile.tmpl b/pkg/dockerfilegen/dockerfile-templates/rhel-9/MustGather.dockerfile.tmpl new file mode 100644 index 000000000..044a1b0d1 --- /dev/null +++ b/pkg/dockerfilegen/dockerfile-templates/rhel-9/MustGather.dockerfile.tmpl @@ -0,0 +1,35 @@ +# DO NOT EDIT! Generated Dockerfile for {{.main}}. +ARG CLI_ARTIFACTS={{ .oc_cli_artifacts }} +ARG RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal +FROM $CLI_ARTIFACTS AS cli-artifacts + +FROM $RUNTIME + +ARG TARGETARCH + +COPY --from=cli-artifacts /usr/share/openshift/linux_$TARGETARCH/{{ .oc_binary_name }} /usr/bin/oc + +# Copy all collection scripts to /usr/bin +COPY must-gather/bin/* /usr/bin/ +COPY LICENSE /licenses/ + +RUN microdnf install -y rsync tar + +ENV LOGS_DIR="/must-gather" +RUN mkdir -p $LOGS_DIR && \ + chown -R 65532:65532 $LOGS_DIR + +USER 65532 + +LABEL \ + com.redhat.component="openshift-serverless-1-{{.project_dashcase}}rhel9-container" \ + name="openshift-serverless-1/svls-{{.project_dashcase}}rhel8" \ + version={{.version}} \ + summary="Red Hat OpenShift Serverless 1 {{.project}}" \ + maintainer="serverless-support@redhat.com" \ + description="Red Hat OpenShift Serverless 1 {{.project}}" \ + io.k8s.display-name="Red Hat OpenShift Serverless 1 {{.project}}" \ + io.k8s.description="Red Hat OpenShift Serverless {{.project}}" \ + io.openshift.tags="{{.main}}" + +ENTRYPOINT /usr/bin/gather diff --git a/pkg/dockerfilegen/dockerfile-templates/rhel-9/SourceImage.dockerfile.tmpl b/pkg/dockerfilegen/dockerfile-templates/rhel-9/SourceImage.dockerfile.tmpl new file mode 100644 index 000000000..0bc58d0cd --- /dev/null +++ b/pkg/dockerfilegen/dockerfile-templates/rhel-9/SourceImage.dockerfile.tmpl @@ -0,0 +1,7 @@ +# DO NOT EDIT! Generated Dockerfile. + +FROM src + +RUN chmod +x vendor/k8s.io/code-generator/generate-groups.sh || true +RUN chmod +x vendor/knative.dev/pkg/hack/generate-knative.sh || true +RUN chmod +x vendor/k8s.io/code-generator/generate-internal-groups.sh || true diff --git a/pkg/dockerfilegen/generator.go b/pkg/dockerfilegen/generator.go index f21758f30..9496c7545 100644 --- a/pkg/dockerfilegen/generator.go +++ b/pkg/dockerfilegen/generator.go @@ -40,6 +40,9 @@ const ( ocClientArtifactsBaseImage = "registry.ci.openshift.org/ocp/%s:cli-artifacts" // See https://github.com/containerbuildsystem/cachi2/blob/3c562a5410ddd5f1043e7613b240bb5811682f7f/cachi2/core/package_managers/rpm/main.py#L29 cachi2DefaultRPMsLockFilePath = "rpms.lock.yaml" + + RHEL8 = "rhel-8" + RHEL9 = "rhel-9" ) var ( @@ -152,9 +155,40 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error goVersion = strings.Join(strings.Split(goVersion, ".")[0:2], ".") } + metadata, err := project.ReadMetadataFile(params.ProjectFilePath) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + return fmt.Errorf("%w: Failed to read project metadata file: %w", + ErrBadConf, errors.WithStack(err)) + } + log.Println("File not found:", params.ProjectFilePath, "(Using defaults)") + metadata = project.DefaultMetadata() + } + + rhelVersion := RHEL9 + if metadata.Project.Tag != "" { + // tag before knative-v1.17 + minorVersion, err := strconv.Atoi(strings.Replace(metadata.Project.Tag, "knative-v1.", "", 1)) + if err != nil { + if minorVersion < 17 { + rhelVersion = RHEL8 + } + } + } else { + // version before 1.37+ + if metadata.Project.Version != "" { + semVer := semver.New(metadata.Project.Version) + if semVer != nil { + if semVer.Minor < 37 { + rhelVersion = RHEL8 + } + } + } + } + builderImage := params.DockerfileImageBuilderFmt if builderImage == "" { - builderImage = builderImageForGoVersion(goVersion) + builderImage = builderImageForGoVersion(goVersion, rhelVersion) } else { // Builder image might be provided without formatting '%s' string as plain value if strings.Count(params.DockerfileImageBuilderFmt, "%s") == 1 { @@ -164,16 +198,6 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error goPackageToImageMapping := map[string]string{} - metadata, err := project.ReadMetadataFile(params.ProjectFilePath) - if err != nil { - if !errors.Is(err, os.ErrNotExist) { - return fmt.Errorf("%w: Failed to read project metadata file: %w", - ErrBadConf, errors.WithStack(err)) - } - log.Println("File not found:", params.ProjectFilePath, "(Using defaults)") - metadata = project.DefaultMetadata() - } - d := map[string]interface{}{ "builder": builderImage, } @@ -248,20 +272,32 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error var dockerfileTemplate embed.FS var rpmsLockTemplate *embed.FS if params.RpmsLockFileEnabled { - rpmsLockTemplate = &RPMsLockTemplateUbi8 + if rhelVersion == RHEL8 { + rpmsLockTemplate = &RPMsLockTemplateUbi8 + } else { + rpmsLockTemplate = &RPMsLockTemplateUbi9 + } } switch params.TemplateName { case DefaultDockerfileTemplateName: dockerfileTemplate = DockerfileDefaultTemplate case FuncUtilDockerfileTemplateName: dockerfileTemplate = DockerfileFuncUtilTemplate - rpmsLockTemplate = &RPMsLockTemplateUbi8 + if rhelVersion == RHEL8 { + rpmsLockTemplate = &RPMsLockTemplateUbi8 + } else { + rpmsLockTemplate = &RPMsLockTemplateUbi9 + } default: return fmt.Errorf("%w: Unknown template name: %s", ErrBadConf, params.TemplateName) } - t, err := template.ParseFS(dockerfileTemplate, "dockerfile-templates/*.tmpl") + templateFiles := "dockerfile-templates/*.tmpl" + if rhelVersion == "rhel-9" { + templateFiles = "dockerfile-templates/rhel-9/*.tmpl" + } + t, err := template.ParseFS(dockerfileTemplate, templateFiles) if err != nil { return fmt.Errorf("%w: Parsing failed: %w", ErrBadTemplate, errors.WithStack(err)) @@ -573,19 +609,22 @@ func writeRPMLockFile(rpmsLockTemplate fs.FS, rootDir string) error { return nil } -func builderImageForGoVersion(goVersion string) string { - builderImageFmt := "registry.ci.openshift.org/openshift/release:rhel-8-release-golang-%s-openshift-%s" +func builderImageForGoVersion(goVersion, rhelVersion string) string { + if rhelVersion == "" { + rhelVersion = "rhel-8" + } + builderImageFmt := "registry.ci.openshift.org/openshift/release:%s-release-golang-%s-openshift-%s" switch goVersion { case "1.21": - return fmt.Sprintf(builderImageFmt, goVersion, "4.16") + return fmt.Sprintf(builderImageFmt, rhelVersion, goVersion, "4.16") case "1.22": - return fmt.Sprintf(builderImageFmt, goVersion, "4.17") + return fmt.Sprintf(builderImageFmt, rhelVersion, goVersion, "4.17") case "1.23": - return fmt.Sprintf(builderImageFmt, goVersion, "4.19") + return fmt.Sprintf(builderImageFmt, rhelVersion, goVersion, "4.19") case "1.24": fallthrough default: - return fmt.Sprintf(builderImageFmt, goVersion, "4.20") + return fmt.Sprintf(builderImageFmt, rhelVersion, goVersion, "4.20") } } diff --git a/pkg/dockerfilegen/templates.go b/pkg/dockerfilegen/templates.go index 8193b1423..acbd6e353 100644 --- a/pkg/dockerfilegen/templates.go +++ b/pkg/dockerfilegen/templates.go @@ -19,3 +19,6 @@ var DockerfileMustGatherTemplate embed.FS //go:embed ubi8.rpms.lock.yaml var RPMsLockTemplateUbi8 embed.FS + +//go:embed ubi9.rpms.lock.yaml +var RPMsLockTemplateUbi9 embed.FS diff --git a/pkg/dockerfilegen/ubi9.Containerfile b/pkg/dockerfilegen/ubi9.Containerfile new file mode 100644 index 000000000..287890f27 --- /dev/null +++ b/pkg/dockerfilegen/ubi9.Containerfile @@ -0,0 +1 @@ +FROM registry.access.redhat.com/ubi9/ubi-minimal diff --git a/pkg/dockerfilegen/ubi9.rpms.in.yaml b/pkg/dockerfilegen/ubi9.rpms.in.yaml new file mode 100644 index 000000000..1c3232a50 --- /dev/null +++ b/pkg/dockerfilegen/ubi9.rpms.in.yaml @@ -0,0 +1,30 @@ +contentOrigin: + # Define at least one source of packages, but you can have as many as you want. + repofiles: + # Either local path or url pointing to .repo file + - 'https://raw.githubusercontent.com/konflux-ci/bazel-builder/refs/heads/bazel8-ubi9/ubi9.repo' +packages: + # list of rpm names to resolve + - socat + - tar + - rsync + +reinstallPackages: + - tzdata + +upgradePackages: + - tzdata + +arches: + # The list of architectures can be set in the config file. Any `--arch` option set + # on the command line will override this list. + - x86_64 + - aarch64 + - s390x + - ppc64le + +context: + # Alternative to setting command line options. Usually you will only want + # to include one of these options, with the exception of `flatpak` that + # can be combined with `image` and `containerfile` + containerfile: ubi9.Containerfile diff --git a/pkg/dockerfilegen/ubi9.rpms.lock.yaml b/pkg/dockerfilegen/ubi9.rpms.lock.yaml new file mode 100644 index 000000000..b2468399a --- /dev/null +++ b/pkg/dockerfilegen/ubi9.rpms.lock.yaml @@ -0,0 +1,228 @@ +--- +lockfileVersion: 1 +lockfileVendor: redhat +arches: +- arch: aarch64 + packages: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/os/Packages/s/socat-1.7.4.1-6.el9_6.1.aarch64.rpm + repoid: ubi-9-for-aarch64-appstream-rpms + size: 307871 + checksum: sha256:9f0e56543ef34d3e71895daa16b1b46412d98809ea41046d44c9e1be80fe7966 + name: socat + evr: 1.7.4.1-6.el9_6.1 + sourcerpm: socat-1.7.4.1-6.el9_6.1.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/r/rsync-3.2.5-3.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 416293 + checksum: sha256:99235a7555f6454898ebbcdcf927ebed68e3a60599c9226b9d1d60578d292878 + name: rsync + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/t/tar-1.34-7.el9.aarch64.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 900197 + checksum: sha256:44552dea889d350403c3074a33d7cb274b3f57553e47db998745df13f931b458 + name: tar + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/t/tzdata-2025b-1.el9.noarch.rpm + repoid: ubi-9-for-aarch64-baseos-rpms + size: 862160 + checksum: sha256:0687e5a1115ba679137404c8d37a45141a31968ffd01677455530d24c126a0d2 + name: tzdata + evr: 2025b-1.el9 + sourcerpm: tzdata-2025b-1.el9.src.rpm + source: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-6.el9_6.1.src.rpm + repoid: ubi-9-for-aarch64-appstream-source-rpms + size: 664341 + checksum: sha256:cc4dafb6691824cae1db6f8c99baba2e9af74fdab06334f14558272cb3e92832 + name: socat + evr: 1.7.4.1-6.el9_6.1 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 + name: rsync + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 + name: tar + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el9.src.rpm + repoid: ubi-9-for-aarch64-baseos-source-rpms + size: 904607 + checksum: sha256:a2668d1f6b053545a5824a428755484895d72475a9d3833cbfbec9e08660aba2 + name: tzdata + evr: 2025b-1.el9 + module_metadata: [] +- arch: ppc64le + packages: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/os/Packages/s/socat-1.7.4.1-6.el9_6.1.ppc64le.rpm + repoid: ubi-9-for-ppc64le-appstream-rpms + size: 320029 + checksum: sha256:93b2c5e9fb6987a6658763469ecce247fef2bed03a2b973249cf8134dda8a3c0 + name: socat + evr: 1.7.4.1-6.el9_6.1 + sourcerpm: socat-1.7.4.1-6.el9_6.1.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/r/rsync-3.2.5-3.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 449938 + checksum: sha256:1fd8762ad73a60556c9808a5bf2a9d964965adec91c026ef27058266dc75e1f0 + name: rsync + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/t/tar-1.34-7.el9.ppc64le.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 937724 + checksum: sha256:f2cc206dfacc9981fad6cf33600ad28bcd1c573f16d8c18523dc9df52ca90660 + name: tar + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/t/tzdata-2025b-1.el9.noarch.rpm + repoid: ubi-9-for-ppc64le-baseos-rpms + size: 862160 + checksum: sha256:0687e5a1115ba679137404c8d37a45141a31968ffd01677455530d24c126a0d2 + name: tzdata + evr: 2025b-1.el9 + sourcerpm: tzdata-2025b-1.el9.src.rpm + source: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-6.el9_6.1.src.rpm + repoid: ubi-9-for-ppc64le-appstream-source-rpms + size: 664341 + checksum: sha256:cc4dafb6691824cae1db6f8c99baba2e9af74fdab06334f14558272cb3e92832 + name: socat + evr: 1.7.4.1-6.el9_6.1 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 + name: rsync + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 + name: tar + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el9.src.rpm + repoid: ubi-9-for-ppc64le-baseos-source-rpms + size: 904607 + checksum: sha256:a2668d1f6b053545a5824a428755484895d72475a9d3833cbfbec9e08660aba2 + name: tzdata + evr: 2025b-1.el9 + module_metadata: [] +- arch: s390x + packages: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/os/Packages/s/socat-1.7.4.1-6.el9_6.1.s390x.rpm + repoid: ubi-9-for-s390x-appstream-rpms + size: 304533 + checksum: sha256:a253a1f53e95847ee879cda007ad471eeb4d4a6f01b526f5b819bcbf339cd12a + name: socat + evr: 1.7.4.1-6.el9_6.1 + sourcerpm: socat-1.7.4.1-6.el9_6.1.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/r/rsync-3.2.5-3.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 418877 + checksum: sha256:2d1a87e86fb23bc665b7c7ce8775c73d500ef6e152f15c78493b95638dfb7925 + name: rsync + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/t/tar-1.34-7.el9.s390x.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 902370 + checksum: sha256:fa8758bac6a56830de66ad1ab623c87768065bcc6f8242faa42ac4198260d456 + name: tar + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/t/tzdata-2025b-1.el9.noarch.rpm + repoid: ubi-9-for-s390x-baseos-rpms + size: 862160 + checksum: sha256:0687e5a1115ba679137404c8d37a45141a31968ffd01677455530d24c126a0d2 + name: tzdata + evr: 2025b-1.el9 + sourcerpm: tzdata-2025b-1.el9.src.rpm + source: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-6.el9_6.1.src.rpm + repoid: ubi-9-for-s390x-appstream-source-rpms + size: 664341 + checksum: sha256:cc4dafb6691824cae1db6f8c99baba2e9af74fdab06334f14558272cb3e92832 + name: socat + evr: 1.7.4.1-6.el9_6.1 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 + name: rsync + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 + name: tar + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el9.src.rpm + repoid: ubi-9-for-s390x-baseos-source-rpms + size: 904607 + checksum: sha256:a2668d1f6b053545a5824a428755484895d72475a9d3833cbfbec9e08660aba2 + name: tzdata + evr: 2025b-1.el9 + module_metadata: [] +- arch: x86_64 + packages: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/os/Packages/s/socat-1.7.4.1-6.el9_6.1.x86_64.rpm + repoid: ubi-9-for-x86_64-appstream-rpms + size: 310772 + checksum: sha256:9ac9ded656ee3afbdbf3ac00f5f678101b3461df626998a7bd92f10546345396 + name: socat + evr: 1.7.4.1-6.el9_6.1 + sourcerpm: socat-1.7.4.1-6.el9_6.1.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/r/rsync-3.2.5-3.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 421930 + checksum: sha256:b1d90c38b613f2d66dfe0c7c3d067a3ce429f7b2ec5224e560f326fc2fd8d1e5 + name: rsync + evr: 3.2.5-3.el9 + sourcerpm: rsync-3.2.5-3.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/t/tar-1.34-7.el9.x86_64.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 910235 + checksum: sha256:17f2e592a2c04c050b690afeb9042e02521a0b5ee3288dad837463f4acf542c3 + name: tar + evr: 2:1.34-7.el9 + sourcerpm: tar-1.34-7.el9.src.rpm + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/t/tzdata-2025b-1.el9.noarch.rpm + repoid: ubi-9-for-x86_64-baseos-rpms + size: 862160 + checksum: sha256:0687e5a1115ba679137404c8d37a45141a31968ffd01677455530d24c126a0d2 + name: tzdata + evr: 2025b-1.el9 + sourcerpm: tzdata-2025b-1.el9.src.rpm + source: + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/appstream/source/SRPMS/Packages/s/socat-1.7.4.1-6.el9_6.1.src.rpm + repoid: ubi-9-for-x86_64-appstream-source-rpms + size: 664341 + checksum: sha256:cc4dafb6691824cae1db6f8c99baba2e9af74fdab06334f14558272cb3e92832 + name: socat + evr: 1.7.4.1-6.el9_6.1 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/r/rsync-3.2.5-3.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 1306931 + checksum: sha256:a1fd44e58d1fb5b52b72586c5ef2e12c040428f771cde1d1350b36d3b9155db0 + name: rsync + evr: 3.2.5-3.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/t/tar-1.34-7.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 2261512 + checksum: sha256:d002c400d29e7305fe8a982ab6b9f49ee7a8780e4574b86fc0c5b3d5510ecb22 + name: tar + evr: 2:1.34-7.el9 + - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/source/SRPMS/Packages/t/tzdata-2025b-1.el9.src.rpm + repoid: ubi-9-for-x86_64-baseos-source-rpms + size: 904607 + checksum: sha256:a2668d1f6b053545a5824a428755484895d72475a9d3833cbfbec9e08660aba2 + name: tzdata + evr: 2025b-1.el9 + module_metadata: []