From 13af3aeedfe1c7a69c90dee9f3767fe2f32d553f Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Sun, 17 May 2026 11:07:49 +1000 Subject: [PATCH] feat: dist_tag boolean for distro-aware release strings Adds a per-package dist_tag: true/false metadata flag (default false). When enabled the build tool appends the RPM dist tag to the release at build time so each distro produces a unique version in the Gitea package registry: release: 1 + almalinux/el9 -> PACKAGE_RELEASE=1.el9 release: 1 + fedora/43 -> PACKAGE_RELEASE=1.fc43 This ensures Gitea package existence checks don't confuse packages built for one distro with those built for another (the original bug). Changes: - Add effective_release() and get_rpm_dist_tag() helpers - Revert the broken files-endpoint check from the previous commit; dist disambiguation is now handled purely via the release string - discover_packages and build_single both compute the effective release before constructing PackageInfo - check_package_exists simplified back to a single version-level check - dist_tag added to METADATA_SCHEMA and PackageMetadata dataclass - All 69 metadata.yaml files updated with dist_tag: true - Exclude jellyfin from dist_tags --- rpms/act_runner/metadata.yaml | 32 +++--- rpms/bind_exporter/metadata.yaml | 32 +++--- rpms/boilerplate/metadata.yaml | 1 + rpms/claude-code/metadata.yaml | 13 +-- rpms/cni-plugins/metadata.yaml | 1 + rpms/code-server/metadata.yaml | 2 +- rpms/consul-cni/metadata.yaml | 33 ++++--- rpms/consul/metadata.yaml | 1 + rpms/etcd/metadata.yaml | 1 + rpms/exportarr/metadata.yaml | 1 + rpms/frr_exporter/metadata.yaml | 1 + rpms/g10k/metadata.yaml | 32 +++--- rpms/git-delta/metadata.yaml | 2 +- rpms/hadolint/metadata.yaml | 5 +- rpms/helm/metadata.yaml | 1 + rpms/helmfile/metadata.yaml | 1 + rpms/incus/metadata.yaml | 1 + rpms/jellyfin-ffmpeg-bin/metadata.yaml | 1 + rpms/jellyfin-server/metadata.yaml | 26 ++--- rpms/jellyfin-web/metadata.yaml | 26 ++--- rpms/jsonnet-language-server/metadata.yaml | 17 ++-- rpms/jsonnet-lint/metadata.yaml | 15 +-- rpms/jsonnet/metadata.yaml | 15 +-- rpms/kubecolor/metadata.yaml | 2 +- rpms/kubeconform/metadata.yaml | 1 + rpms/kubectx/metadata.yaml | 2 +- rpms/kustomize/metadata.yaml | 20 ++-- rpms/lazydocker/metadata.yaml | 2 +- rpms/libfoundationdb/metadata.yaml | 32 +++--- rpms/neovim-glibc-2.17/metadata.yaml | 5 +- rpms/neovim/metadata.yaml | 2 +- rpms/nfpm/metadata.yaml | 1 + rpms/node_exporter/metadata.yaml | 1 + rpms/nomad-autoscaler/metadata.yaml | 1 + rpms/nomad/metadata.yaml | 33 ++++--- rpms/nzbget/metadata.yaml | 1 + rpms/nzbget_exporter/metadata.yaml | 32 +++--- .../metadata.yaml | 3 +- .../openbao-plugin-secret-nomad/metadata.yaml | 3 +- rpms/openbao-plugins/metadata.yaml | 1 + rpms/packer/metadata.yaml | 1 + rpms/pgbouncer_exporter/metadata.yaml | 15 +-- rpms/postgres_exporter/metadata.yaml | 1 + rpms/puppet-initial/metadata.yaml | 32 +++--- rpms/puppetdb_exporter/metadata.yaml | 32 +++--- rpms/ruff/metadata.yaml | 1 + rpms/sops/metadata.yaml | 2 +- rpms/stalwart-cli/metadata.yaml | 1 + rpms/stalwart-foundationdb/metadata.yaml | 1 + rpms/stalwart/metadata.yaml | 1 + rpms/starship/metadata.yaml | 1 + rpms/stern/metadata.yaml | 2 +- rpms/tea/metadata.yaml | 2 +- rpms/terraform/metadata.yaml | 1 + rpms/terragrunt/metadata.yaml | 1 + rpms/tflint/metadata.yaml | 1 + rpms/unkin-ca-certificates/metadata.yaml | 48 ++++----- rpms/unkin-undionly-kpxe/metadata.yaml | 32 +++--- rpms/unrar/metadata.yaml | 34 ++++--- rpms/uv/metadata.yaml | 1 + rpms/vals/metadata.yaml | 1 + rpms/vault/metadata.yaml | 1 + rpms/victoria-logs/metadata.yaml | 1 + rpms/vlutils/metadata.yaml | 1 + rpms/vmagent/metadata.yaml | 1 + rpms/vmalert/metadata.yaml | 1 + rpms/vminsert/metadata.yaml | 1 + rpms/vmselect/metadata.yaml | 1 + rpms/vmstorage/metadata.yaml | 1 + rpms/vmutils/metadata.yaml | 1 + rpms/xh/metadata.yaml | 49 +++++----- rpms/yq/metadata.yaml | 5 +- tools/build | 97 ++++++++----------- 73 files changed, 421 insertions(+), 352 deletions(-) diff --git a/rpms/act_runner/metadata.yaml b/rpms/act_runner/metadata.yaml index d44390e..b7568f7 100644 --- a/rpms/act_runner/metadata.yaml +++ b/rpms/act_runner/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 0.2.12 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 0.2.12 -description: A runner for Gitea based on act. +name: act_runner github: unknown/act_runner +description: A runner for Gitea based on act. +arch: amd64 +platform: linux +maintainer: Gitea homepage: https://gitea.com/gitea/act_runner license: MIT -maintainer: Gitea -name: act_runner -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 0.2.12 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 0.2.12 diff --git a/rpms/bind_exporter/metadata.yaml b/rpms/bind_exporter/metadata.yaml index c9c3dff..68e1657 100644 --- a/rpms/bind_exporter/metadata.yaml +++ b/rpms/bind_exporter/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 0.8.0 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 0.8.0 -description: Prometheus exporter for BIND +name: bind_exporter github: prometheus-community/bind_exporter +description: Prometheus exporter for BIND +arch: amd64 +platform: linux +maintainer: Prometheus homepage: https://github.com/prometheus-community/bind_exporter license: Apache-2.0 license -maintainer: Prometheus -name: bind_exporter -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 0.8.0 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 0.8.0 diff --git a/rpms/boilerplate/metadata.yaml b/rpms/boilerplate/metadata.yaml index e9d584d..495b7f6 100644 --- a/rpms/boilerplate/metadata.yaml +++ b/rpms/boilerplate/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: Gruntwork homepage: https://github.com/gruntwork-io/boilerplate license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/claude-code/metadata.yaml b/rpms/claude-code/metadata.yaml index 01a8210..cae271a 100644 --- a/rpms/claude-code/metadata.yaml +++ b/rpms/claude-code/metadata.yaml @@ -1,4 +1,11 @@ +name: claude-code +description: Claude Code - Anthropic's agentic AI coding tool arch: amd64 +platform: linux +maintainer: Anthropic +homepage: https://claude.ai/code +license: Proprietary +dist_tag: true builds: - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest release: 1 @@ -11,9 +18,3 @@ builds: - almalinux/el9 version: 2.1.126 claude_ai: true -description: Claude Code - Anthropic's agentic AI coding tool -homepage: https://claude.ai/code -license: Proprietary -maintainer: Anthropic -name: claude-code -platform: linux diff --git a/rpms/cni-plugins/metadata.yaml b/rpms/cni-plugins/metadata.yaml index 44183d2..fbc598e 100644 --- a/rpms/cni-plugins/metadata.yaml +++ b/rpms/cni-plugins/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: ContainerNetworking homepage: https://github.com/containernetworking/plugins license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/code-server/metadata.yaml b/rpms/code-server/metadata.yaml index 1d50f81..8c1fe86 100644 --- a/rpms/code-server/metadata.yaml +++ b/rpms/code-server/metadata.yaml @@ -1,4 +1,3 @@ ---- name: code-server github: coder/code-server description: VS Code in the browser. @@ -7,6 +6,7 @@ platform: linux maintainer: Coder homepage: https://github.com/coder/code-server license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/consul-cni/metadata.yaml b/rpms/consul-cni/metadata.yaml index c251a58..e837954 100644 --- a/rpms/consul-cni/metadata.yaml +++ b/rpms/consul-cni/metadata.yaml @@ -1,18 +1,21 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 1.7.1 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 1.7.1 -description: Plugin for Consul on Kubernetes to allow configuring traffic redirection rules without escalated container privileges. +name: consul-cni github: unknown/consul-cni +description: Plugin for Consul on Kubernetes to allow configuring traffic redirection + rules without escalated container privileges. +arch: amd64 +platform: linux +maintainer: Hashicorp homepage: https://hashicorp.com license: Mozilla Public License, version 2.0 -maintainer: Hashicorp -name: consul-cni -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 1.7.1 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 1.7.1 diff --git a/rpms/consul/metadata.yaml b/rpms/consul/metadata.yaml index 562fe5c..ff40ddb 100644 --- a/rpms/consul/metadata.yaml +++ b/rpms/consul/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: HashiCorp homepage: https://github.com/hashicorp/consul license: BUSL-1.1 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/etcd/metadata.yaml b/rpms/etcd/metadata.yaml index f97ffa5..27a42c5 100644 --- a/rpms/etcd/metadata.yaml +++ b/rpms/etcd/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: https://etcd.io/ homepage: https://etcd.io/ license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/exportarr/metadata.yaml b/rpms/exportarr/metadata.yaml index aea8e29..8e05e9b 100644 --- a/rpms/exportarr/metadata.yaml +++ b/rpms/exportarr/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: onedr0p homepage: https://github.com/onedr0p/exportarr license: MIT license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/frr_exporter/metadata.yaml b/rpms/frr_exporter/metadata.yaml index 2af5702..b0da178 100644 --- a/rpms/frr_exporter/metadata.yaml +++ b/rpms/frr_exporter/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Prometheus homepage: https://github.com/tynany/frr_exporter license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/g10k/metadata.yaml b/rpms/g10k/metadata.yaml index 99a42e8..1fb9dbe 100644 --- a/rpms/g10k/metadata.yaml +++ b/rpms/g10k/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 0.9.10 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 0.9.10 -description: An r10k fork written in Go, designed to work somwhat similar like puppetlabs/r10k. +name: g10k github: xorpaul/g10k +description: An r10k fork written in Go, designed to work somwhat similar like puppetlabs/r10k. +arch: amd64 +platform: linux +maintainer: xorpaul homepage: https://github.com/xorpaul/g10k license: Apache2.0 -maintainer: xorpaul -name: g10k -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 0.9.10 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 0.9.10 diff --git a/rpms/git-delta/metadata.yaml b/rpms/git-delta/metadata.yaml index 88eb270..898cb28 100644 --- a/rpms/git-delta/metadata.yaml +++ b/rpms/git-delta/metadata.yaml @@ -1,4 +1,3 @@ ---- name: git-delta github: dandavison/delta description: A syntax-highlighting pager for git, diff, grep, and blame output. @@ -7,6 +6,7 @@ platform: linux maintainer: dandavison homepage: https://github.com/dandavison/delta license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/hadolint/metadata.yaml b/rpms/hadolint/metadata.yaml index 3a7a666..04acb5d 100644 --- a/rpms/hadolint/metadata.yaml +++ b/rpms/hadolint/metadata.yaml @@ -1,12 +1,13 @@ ---- name: hadolint github: hadolint/hadolint -description: A smarter Dockerfile linter that helps you build best practice Docker images. +description: A smarter Dockerfile linter that helps you build best practice Docker + images. arch: amd64 platform: linux maintainer: hadolint homepage: https://github.com/hadolint/hadolint license: GPL-3.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/helm/metadata.yaml b/rpms/helm/metadata.yaml index 79600bb..abe5a2e 100644 --- a/rpms/helm/metadata.yaml +++ b/rpms/helm/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Helm Contributors homepage: https://github.com/helm/helm license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/helmfile/metadata.yaml b/rpms/helmfile/metadata.yaml index 9089dc1..81cbbc4 100644 --- a/rpms/helmfile/metadata.yaml +++ b/rpms/helmfile/metadata.yaml @@ -8,6 +8,7 @@ platform: linux maintainer: Helmfile Contributors homepage: https://github.com/helmfile/helmfile license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/incus/metadata.yaml b/rpms/incus/metadata.yaml index aed18cd..03e7fa6 100644 --- a/rpms/incus/metadata.yaml +++ b/rpms/incus/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: unkin homepage: https://linuxcontainers.org/incus/ license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el9 diff --git a/rpms/jellyfin-ffmpeg-bin/metadata.yaml b/rpms/jellyfin-ffmpeg-bin/metadata.yaml index f9fbd96..ebb06f6 100644 --- a/rpms/jellyfin-ffmpeg-bin/metadata.yaml +++ b/rpms/jellyfin-ffmpeg-bin/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: unkin homepage: https://github.com/jellyfin/jellyfin-ffmpeg license: GPL-3.0 +dist_tag: false builds: - repository: - almalinux/el8 diff --git a/rpms/jellyfin-server/metadata.yaml b/rpms/jellyfin-server/metadata.yaml index 873bc52..6ed6891 100644 --- a/rpms/jellyfin-server/metadata.yaml +++ b/rpms/jellyfin-server/metadata.yaml @@ -1,13 +1,15 @@ ---- -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 10.10.7 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 10.10.7 -description: jellyfin-server package -github: unknown/jellyfin-server name: jellyfin-server +github: unknown/jellyfin-server +description: jellyfin-server package +dist_tag: false +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 10.10.7 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 10.10.7 diff --git a/rpms/jellyfin-web/metadata.yaml b/rpms/jellyfin-web/metadata.yaml index ed0743c..8139262 100644 --- a/rpms/jellyfin-web/metadata.yaml +++ b/rpms/jellyfin-web/metadata.yaml @@ -1,13 +1,15 @@ ---- -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 10.10.7 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 10.10.7 -description: jellyfin-web package -github: unknown/jellyfin-web name: jellyfin-web +github: unknown/jellyfin-web +description: jellyfin-web package +dist_tag: false +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 10.10.7 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 10.10.7 diff --git a/rpms/jsonnet-language-server/metadata.yaml b/rpms/jsonnet-language-server/metadata.yaml index 2b2f8e6..eba955f 100644 --- a/rpms/jsonnet-language-server/metadata.yaml +++ b/rpms/jsonnet-language-server/metadata.yaml @@ -1,4 +1,13 @@ +name: jsonnet-language-server +github: grafana/jsonnet-language-server +description: Jsonnet Language Server Protocol implementation for the Jsonnet templating + language. arch: amd64 +platform: linux +maintainer: Grafana Labs +homepage: https://github.com/grafana/jsonnet-language-server +license: Apache-2.0 +dist_tag: true builds: - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest release: 1 @@ -10,11 +19,3 @@ builds: repository: - almalinux/el9 version: 0.17.0 -description: Jsonnet Language Server Protocol implementation for the Jsonnet templating - language. -github: grafana/jsonnet-language-server -homepage: https://github.com/grafana/jsonnet-language-server -license: Apache-2.0 -maintainer: Grafana Labs -name: jsonnet-language-server -platform: linux diff --git a/rpms/jsonnet-lint/metadata.yaml b/rpms/jsonnet-lint/metadata.yaml index fba254c..7310c25 100644 --- a/rpms/jsonnet-lint/metadata.yaml +++ b/rpms/jsonnet-lint/metadata.yaml @@ -1,4 +1,12 @@ +name: jsonnet-lint +github: google/go-jsonnet +description: Linter for Jsonnet arch: amd64 +platform: linux +maintainer: Google +homepage: https://github.com/google/go-jsonnet +license: Apache-2.0 +dist_tag: true builds: - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest release: 1 @@ -10,10 +18,3 @@ builds: repository: - almalinux/el9 version: 0.22.0 -description: Linter for Jsonnet -github: google/go-jsonnet -homepage: https://github.com/google/go-jsonnet -license: Apache-2.0 -maintainer: Google -name: jsonnet-lint -platform: linux diff --git a/rpms/jsonnet/metadata.yaml b/rpms/jsonnet/metadata.yaml index 3167527..1d5f351 100644 --- a/rpms/jsonnet/metadata.yaml +++ b/rpms/jsonnet/metadata.yaml @@ -1,4 +1,12 @@ +name: jsonnet +github: google/go-jsonnet +description: A data templating language arch: amd64 +platform: linux +maintainer: Google +homepage: https://github.com/google/go-jsonnet +license: Apache-2.0 +dist_tag: true builds: - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest release: 1 @@ -10,10 +18,3 @@ builds: repository: - almalinux/el9 version: 0.22.0 -description: A data templating language -github: google/go-jsonnet -homepage: https://github.com/google/go-jsonnet -license: Apache-2.0 -maintainer: Google -name: jsonnet -platform: linux diff --git a/rpms/kubecolor/metadata.yaml b/rpms/kubecolor/metadata.yaml index 053f885..9b209fd 100644 --- a/rpms/kubecolor/metadata.yaml +++ b/rpms/kubecolor/metadata.yaml @@ -1,4 +1,3 @@ ---- name: kubecolor github: kubecolor/kubecolor description: Colorize your kubectl output @@ -7,6 +6,7 @@ platform: linux maintainer: kubecolor homepage: https://github.com/kubecolor/kubecolor license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/kubeconform/metadata.yaml b/rpms/kubeconform/metadata.yaml index b8dd255..6823d59 100644 --- a/rpms/kubeconform/metadata.yaml +++ b/rpms/kubeconform/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Yann Hamon homepage: https://github.com/yannh/kubeconform license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/kubectx/metadata.yaml b/rpms/kubectx/metadata.yaml index 2fa95b6..1eefb25 100644 --- a/rpms/kubectx/metadata.yaml +++ b/rpms/kubectx/metadata.yaml @@ -1,4 +1,3 @@ ---- name: kubectx github: ahmetb/kubectx description: Faster way to switch between clusters and namespaces in kubectl. @@ -7,6 +6,7 @@ platform: linux maintainer: ahmetb homepage: https://github.com/ahmetb/kubectx license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/kustomize/metadata.yaml b/rpms/kustomize/metadata.yaml index adede2d..33a334f 100644 --- a/rpms/kustomize/metadata.yaml +++ b/rpms/kustomize/metadata.yaml @@ -1,4 +1,3 @@ ---- name: kustomize github: kubernetes-sigs/kustomize description: Kubernetes native configuration management @@ -7,13 +6,16 @@ platform: linux maintainer: kubernetes-sigs homepage: https://github.com/kubernetes-sigs/kustomize license: Apache-2.0 +dist_tag: true github_release_pattern: ^kustomize/v.* builds: - - repository: [almalinux/el8] - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - version: 5.8.1 - - repository: [almalinux/el9] - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - version: 5.8.1 +- repository: + - almalinux/el8 + image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + version: 5.8.1 +- repository: + - almalinux/el9 + image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + version: 5.8.1 diff --git a/rpms/lazydocker/metadata.yaml b/rpms/lazydocker/metadata.yaml index 705a2d5..c38c478 100644 --- a/rpms/lazydocker/metadata.yaml +++ b/rpms/lazydocker/metadata.yaml @@ -1,4 +1,3 @@ ---- name: lazydocker github: jesseduffield/lazydocker description: The lazier way to manage everything docker. @@ -7,6 +6,7 @@ platform: linux maintainer: jesseduffield homepage: https://github.com/jesseduffield/lazydocker license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/libfoundationdb/metadata.yaml b/rpms/libfoundationdb/metadata.yaml index 48c5441..fd6fc6a 100644 --- a/rpms/libfoundationdb/metadata.yaml +++ b/rpms/libfoundationdb/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 7.3.71 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 7.3.71 -description: FoundationDB client library - Shared library for FoundationDB applications +name: libfoundationdb github: apple/foundationdb +description: FoundationDB client library - Shared library for FoundationDB applications +arch: amd64 +platform: linux +maintainer: FoundationDB Community homepage: https://github.com/apple/foundationdb license: Apache-2.0 -maintainer: FoundationDB Community -name: libfoundationdb -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 7.3.71 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 7.3.71 diff --git a/rpms/neovim-glibc-2.17/metadata.yaml b/rpms/neovim-glibc-2.17/metadata.yaml index 335e0f5..26e3b6a 100644 --- a/rpms/neovim-glibc-2.17/metadata.yaml +++ b/rpms/neovim-glibc-2.17/metadata.yaml @@ -1,12 +1,13 @@ ---- name: neovim-glibc-2.17 github: neovim/neovim-releases -description: Vim-fork focused on extensibility and usability (glibc 2.17 compatible build). +description: Vim-fork focused on extensibility and usability (glibc 2.17 compatible + build). arch: amd64 platform: linux maintainer: neovim homepage: https://neovim.io license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/neovim/metadata.yaml b/rpms/neovim/metadata.yaml index 85e4669..e478526 100644 --- a/rpms/neovim/metadata.yaml +++ b/rpms/neovim/metadata.yaml @@ -1,4 +1,3 @@ ---- name: neovim github: neovim/neovim description: Vim-fork focused on extensibility and usability. @@ -7,6 +6,7 @@ platform: linux maintainer: neovim homepage: https://neovim.io license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/nfpm/metadata.yaml b/rpms/nfpm/metadata.yaml index 9691ec6..7ec1253 100644 --- a/rpms/nfpm/metadata.yaml +++ b/rpms/nfpm/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: GoReleaser homepage: https://nfpm.goreleaser.com/ license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/node_exporter/metadata.yaml b/rpms/node_exporter/metadata.yaml index 4881ef8..735e0c0 100644 --- a/rpms/node_exporter/metadata.yaml +++ b/rpms/node_exporter/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Prometheus homepage: https://github.com/prometheus/node_exporter license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/nomad-autoscaler/metadata.yaml b/rpms/nomad-autoscaler/metadata.yaml index a9b97c3..8012844 100644 --- a/rpms/nomad-autoscaler/metadata.yaml +++ b/rpms/nomad-autoscaler/metadata.yaml @@ -8,6 +8,7 @@ platform: linux maintainer: Hashicorp homepage: https://github.com/hashicorp/nomad-autoscaler license: Mozilla Public License, version 2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/nomad/metadata.yaml b/rpms/nomad/metadata.yaml index 3561ac4..641c9c9 100644 --- a/rpms/nomad/metadata.yaml +++ b/rpms/nomad/metadata.yaml @@ -1,18 +1,21 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 1.10.1 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 1.10.1 -description: A simple and flexible scheduler and orchestrator to deploy and manage containers and non-containerized applications across on-premises and clouds at scale. +name: nomad github: unknown/nomad +description: A simple and flexible scheduler and orchestrator to deploy and manage + containers and non-containerized applications across on-premises and clouds at scale. +arch: amd64 +platform: linux +maintainer: HashiCorp homepage: https://www.nomadproject.io/ license: BUSL-1.1 -maintainer: HashiCorp -name: nomad -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 1.10.1 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 1.10.1 diff --git a/rpms/nzbget/metadata.yaml b/rpms/nzbget/metadata.yaml index 364c02b..2047ddc 100644 --- a/rpms/nzbget/metadata.yaml +++ b/rpms/nzbget/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: nzbgetcom homepage: https://github.com/nzbgetcom/nzbget license: GPL-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/nzbget_exporter/metadata.yaml b/rpms/nzbget_exporter/metadata.yaml index e91a21c..08b5c0a 100644 --- a/rpms/nzbget_exporter/metadata.yaml +++ b/rpms/nzbget_exporter/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 2025.08.03 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 2025.08.03 -description: Prometheus exporter for NZBGet +name: nzbget_exporter github: frebib/nzbget-exporter +description: Prometheus exporter for NZBGet +arch: amd64 +platform: linux +maintainer: Prometheus homepage: https://github.com/frebib/nzbget-exporter license: MIT -maintainer: Prometheus -name: nzbget_exporter -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 2025.08.03 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 2025.08.03 diff --git a/rpms/openbao-plugin-secret-consul/metadata.yaml b/rpms/openbao-plugin-secret-consul/metadata.yaml index 3c5f632..376a40f 100644 --- a/rpms/openbao-plugin-secret-consul/metadata.yaml +++ b/rpms/openbao-plugin-secret-consul/metadata.yaml @@ -1,12 +1,13 @@ name: openbao-plugin-secret-consul github: openbao/openbao-plugins -github_release_pattern: "^secrets-consul-v.*" description: OpenBao secrets engine plugin for HashiCorp Consul arch: amd64 platform: linux maintainer: OpenBao Community homepage: https://github.com/openbao/openbao-plugins license: MPL-2.0 +dist_tag: true +github_release_pattern: ^secrets-consul-v.* builds: - repository: - almalinux/el8 diff --git a/rpms/openbao-plugin-secret-nomad/metadata.yaml b/rpms/openbao-plugin-secret-nomad/metadata.yaml index a7af86e..ad03b45 100644 --- a/rpms/openbao-plugin-secret-nomad/metadata.yaml +++ b/rpms/openbao-plugin-secret-nomad/metadata.yaml @@ -1,12 +1,13 @@ name: openbao-plugin-secret-nomad github: openbao/openbao-plugins -github_release_pattern: "^secrets-nomad-v.*" description: OpenBao secrets engine plugin for HashiCorp Nomad arch: amd64 platform: linux maintainer: OpenBao Community homepage: https://github.com/openbao/openbao-plugins license: MPL-2.0 +dist_tag: true +github_release_pattern: ^secrets-nomad-v.* builds: - repository: - almalinux/el8 diff --git a/rpms/openbao-plugins/metadata.yaml b/rpms/openbao-plugins/metadata.yaml index 25b1123..25722d2 100644 --- a/rpms/openbao-plugins/metadata.yaml +++ b/rpms/openbao-plugins/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: OpenBao Community homepage: https://github.com/openbao/openbao-plugins license: MPL-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/packer/metadata.yaml b/rpms/packer/metadata.yaml index 4117efe..8ac5488 100644 --- a/rpms/packer/metadata.yaml +++ b/rpms/packer/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: HashiCorp homepage: https://www.packer.io/ license: BUSL-1.1 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/pgbouncer_exporter/metadata.yaml b/rpms/pgbouncer_exporter/metadata.yaml index 51a8a1c..cb0dc81 100644 --- a/rpms/pgbouncer_exporter/metadata.yaml +++ b/rpms/pgbouncer_exporter/metadata.yaml @@ -1,4 +1,12 @@ +name: pgbouncer_exporter +github: prometheus-community/pgbouncer_exporter +description: Prometheus exporter for PgBouncer arch: amd64 +platform: linux +maintainer: Prometheus +homepage: https://github.com/prometheus-community/pgbouncer_exporter +license: Apache-2.0 license +dist_tag: true builds: - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest release: 1 @@ -10,10 +18,3 @@ builds: repository: - almalinux/el9 version: 0.12.0 -description: Prometheus exporter for PgBouncer -github: prometheus-community/pgbouncer_exporter -homepage: https://github.com/prometheus-community/pgbouncer_exporter -license: Apache-2.0 license -maintainer: Prometheus -name: pgbouncer_exporter -platform: linux diff --git a/rpms/postgres_exporter/metadata.yaml b/rpms/postgres_exporter/metadata.yaml index 39ac8de..a192ec6 100644 --- a/rpms/postgres_exporter/metadata.yaml +++ b/rpms/postgres_exporter/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Prometheus homepage: https://github.com/prometheus-community/postgres_exporter license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/puppet-initial/metadata.yaml b/rpms/puppet-initial/metadata.yaml index 46779a5..9a50889 100644 --- a/rpms/puppet-initial/metadata.yaml +++ b/rpms/puppet-initial/metadata.yaml @@ -1,17 +1,19 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 1.0.3 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 1.0.3 -description: A script and service to initialise puppet for the unkin environmnet. -github: unknown/puppet-initial -license: MIT -maintainer: UNKIN name: puppet-initial +github: unknown/puppet-initial +description: A script and service to initialise puppet for the unkin environmnet. +arch: amd64 platform: linux +maintainer: UNKIN +license: MIT +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 1.0.3 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 1.0.3 diff --git a/rpms/puppetdb_exporter/metadata.yaml b/rpms/puppetdb_exporter/metadata.yaml index bd9deec..c0f3c43 100644 --- a/rpms/puppetdb_exporter/metadata.yaml +++ b/rpms/puppetdb_exporter/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 1.1.0 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 1.1.0 -description: Prometheus exporter for PuppetDB +name: puppetdb_exporter github: camptocamp/prometheus-puppetdb-exporter +description: Prometheus exporter for PuppetDB +arch: amd64 +platform: linux +maintainer: Comptocamp homepage: https://github.com/camptocamp/prometheus-puppetdb-exporter license: Apache 2.0 License -maintainer: Comptocamp -name: puppetdb_exporter -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 1.1.0 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 1.1.0 diff --git a/rpms/ruff/metadata.yaml b/rpms/ruff/metadata.yaml index 4a13190..802d19d 100644 --- a/rpms/ruff/metadata.yaml +++ b/rpms/ruff/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Astral.sh homepage: https://docs.astral.sh/ruff/ license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/sops/metadata.yaml b/rpms/sops/metadata.yaml index 8157022..3174ec9 100644 --- a/rpms/sops/metadata.yaml +++ b/rpms/sops/metadata.yaml @@ -1,4 +1,3 @@ ---- name: sops github: getsops/sops description: Simple and flexible tool for managing secrets. @@ -7,6 +6,7 @@ platform: linux maintainer: getsops homepage: https://github.com/getsops/sops license: MPL-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/stalwart-cli/metadata.yaml b/rpms/stalwart-cli/metadata.yaml index 53af641..a014ea2 100644 --- a/rpms/stalwart-cli/metadata.yaml +++ b/rpms/stalwart-cli/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Stalwart Labs homepage: https://stalw.art license: AGPL-3.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/stalwart-foundationdb/metadata.yaml b/rpms/stalwart-foundationdb/metadata.yaml index 605773f..1d1c9aa 100644 --- a/rpms/stalwart-foundationdb/metadata.yaml +++ b/rpms/stalwart-foundationdb/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: Stalwart Labs homepage: https://stalw.art license: AGPL-3.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/stalwart/metadata.yaml b/rpms/stalwart/metadata.yaml index b0ca24f..8c3f0dd 100644 --- a/rpms/stalwart/metadata.yaml +++ b/rpms/stalwart/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Stalwart Labs homepage: https://stalw.art license: AGPL-3.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/starship/metadata.yaml b/rpms/starship/metadata.yaml index aef0bee..c39c94d 100644 --- a/rpms/starship/metadata.yaml +++ b/rpms/starship/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: starship homepage: https://starship.rs license: ISC +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/stern/metadata.yaml b/rpms/stern/metadata.yaml index 1360dbd..2c8b008 100644 --- a/rpms/stern/metadata.yaml +++ b/rpms/stern/metadata.yaml @@ -1,4 +1,3 @@ ---- name: stern github: stern/stern description: Multi pod and container log tailing for Kubernetes. @@ -7,6 +6,7 @@ platform: linux maintainer: stern homepage: https://github.com/stern/stern license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/tea/metadata.yaml b/rpms/tea/metadata.yaml index fe67c86..07c0e27 100644 --- a/rpms/tea/metadata.yaml +++ b/rpms/tea/metadata.yaml @@ -1,4 +1,3 @@ ---- name: tea github: unknown/tea description: The official CLI for Gitea. @@ -7,6 +6,7 @@ platform: linux maintainer: Gitea homepage: https://gitea.com/gitea/tea license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/terraform/metadata.yaml b/rpms/terraform/metadata.yaml index 79199e6..eb42fb4 100644 --- a/rpms/terraform/metadata.yaml +++ b/rpms/terraform/metadata.yaml @@ -9,6 +9,7 @@ platform: linux maintainer: HashiCorp homepage: https://terraform.io/ license: BUSL-1.1 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/terragrunt/metadata.yaml b/rpms/terragrunt/metadata.yaml index 5a76f5b..cc5b1ff 100644 --- a/rpms/terragrunt/metadata.yaml +++ b/rpms/terragrunt/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: Gruntwork homepage: https://github.com/gruntwork-io/terragrunt license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/tflint/metadata.yaml b/rpms/tflint/metadata.yaml index b416e17..01d5c4f 100644 --- a/rpms/tflint/metadata.yaml +++ b/rpms/tflint/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: Terraform Linters homepage: https://github.com/terraform-linters/tflint license: MPL-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/unkin-ca-certificates/metadata.yaml b/rpms/unkin-ca-certificates/metadata.yaml index f933a7b..abfe728 100644 --- a/rpms/unkin-ca-certificates/metadata.yaml +++ b/rpms/unkin-ca-certificates/metadata.yaml @@ -1,27 +1,27 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: - - almalinux/el8 - version: 2025.07.13 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: - - almalinux/el9 - version: 2025.07.13 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: - - fedora/42 - - fedora/43 - - fedora/44 - version: 2025.07.13 -description: ca-certificates for the unkin site +name: unkin-ca-certificates github: unknown/unkin-ca-certificates +description: ca-certificates for the unkin site +arch: amd64 +platform: linux +maintainer: Unkin homepage: https://vault.query.consul:8200 license: Apache-2.0 -maintainer: Unkin -name: unkin-ca-certificates -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 2025.07.13 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 2025.07.13 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - fedora/42 + - fedora/43 + - fedora/44 + version: 2025.07.13 diff --git a/rpms/unkin-undionly-kpxe/metadata.yaml b/rpms/unkin-undionly-kpxe/metadata.yaml index a40b3de..faeeb5a 100644 --- a/rpms/unkin-undionly-kpxe/metadata.yaml +++ b/rpms/unkin-undionly-kpxe/metadata.yaml @@ -1,18 +1,20 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: 20250712.0.2 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: 20250712.0.2 -description: iPXE network bootloader +name: unkin-undionly-kpxe github: ipxe/ipxe +description: iPXE network bootloader +arch: amd64 +platform: linux +maintainer: iPXE homepage: https://github.com/ipxe/ipxe license: GPL-2.0 license -maintainer: iPXE -name: unkin-undionly-kpxe -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 20250712.0.2 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 20250712.0.2 diff --git a/rpms/unrar/metadata.yaml b/rpms/unrar/metadata.yaml index 2b0ee77..161371a 100644 --- a/rpms/unrar/metadata.yaml +++ b/rpms/unrar/metadata.yaml @@ -1,18 +1,22 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: [almalinux/el8] - version: '7.20' - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: [almalinux/el9] - version: '7.20' -description: WinRAR is a powerful archive manager. It can backup your data and reduce the size of email attachments, open and unpack RAR, ZIP and other files downloaded from Internet, create new archives in RAR and ZIP file format. +name: unrar github: unknown/unrar +description: WinRAR is a powerful archive manager. It can backup your data and reduce + the size of email attachments, open and unpack RAR, ZIP and other files downloaded + from Internet, create new archives in RAR and ZIP file format. +arch: amd64 +platform: linux +maintainer: RARLAB homepage: https://www.rarlab.com/ license: Freeware (UNRAR 7.11 freeware Copyright (c) 1993-2025 Alexander Roshal) -maintainer: RARLAB -name: unrar -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: '7.20' +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: '7.20' diff --git a/rpms/uv/metadata.yaml b/rpms/uv/metadata.yaml index ce74d57..1ea0860 100644 --- a/rpms/uv/metadata.yaml +++ b/rpms/uv/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: Astral.sh homepage: https://docs.astral.sh/uv/ license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vals/metadata.yaml b/rpms/vals/metadata.yaml index c53c53b..f5f1baf 100644 --- a/rpms/vals/metadata.yaml +++ b/rpms/vals/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: Helmfile Contributors homepage: https://github.com/helmfile/vals license: Apache-2.0 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vault/metadata.yaml b/rpms/vault/metadata.yaml index 91598f3..c048485 100644 --- a/rpms/vault/metadata.yaml +++ b/rpms/vault/metadata.yaml @@ -9,6 +9,7 @@ platform: linux maintainer: HashiCorp homepage: https://github.com/hashicorp/vault license: BUSL-1.1 +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/victoria-logs/metadata.yaml b/rpms/victoria-logs/metadata.yaml index 1fd6918..4bb3797 100644 --- a/rpms/victoria-logs/metadata.yaml +++ b/rpms/victoria-logs/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaLogs license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vlutils/metadata.yaml b/rpms/vlutils/metadata.yaml index dc32b6f..2108b91 100644 --- a/rpms/vlutils/metadata.yaml +++ b/rpms/vlutils/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaLogs license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vmagent/metadata.yaml b/rpms/vmagent/metadata.yaml index 78ab059..eb3ca59 100644 --- a/rpms/vmagent/metadata.yaml +++ b/rpms/vmagent/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vmalert/metadata.yaml b/rpms/vmalert/metadata.yaml index 795fadd..665e6b6 100644 --- a/rpms/vmalert/metadata.yaml +++ b/rpms/vmalert/metadata.yaml @@ -6,6 +6,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vminsert/metadata.yaml b/rpms/vminsert/metadata.yaml index d093e2f..3d9a7da 100644 --- a/rpms/vminsert/metadata.yaml +++ b/rpms/vminsert/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vmselect/metadata.yaml b/rpms/vmselect/metadata.yaml index fc2c775..461d108 100644 --- a/rpms/vmselect/metadata.yaml +++ b/rpms/vmselect/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vmstorage/metadata.yaml b/rpms/vmstorage/metadata.yaml index 338fe5e..1c3881c 100644 --- a/rpms/vmstorage/metadata.yaml +++ b/rpms/vmstorage/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/vmutils/metadata.yaml b/rpms/vmutils/metadata.yaml index 0b33900..904a514 100644 --- a/rpms/vmutils/metadata.yaml +++ b/rpms/vmutils/metadata.yaml @@ -7,6 +7,7 @@ platform: linux maintainer: VictoriaMetrics homepage: https://github.com/VictoriaMetrics/VictoriaMetrics license: Apache-2.0 license +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/rpms/xh/metadata.yaml b/rpms/xh/metadata.yaml index 34e3696..d06ce1a 100644 --- a/rpms/xh/metadata.yaml +++ b/rpms/xh/metadata.yaml @@ -1,27 +1,28 @@ ---- -arch: amd64 -builds: - - image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest - release: '1' - repository: - - almalinux/el8 - version: 0.25.3 - - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: '1' - repository: - - almalinux/el9 - version: 0.25.3 - - repository: - - fedora/42 - - fedora/43 - - fedora/44 - image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest - release: 1 - version: 0.25.3 -description: A friendly and fast tool for sending HTTP requests (HTTPie reimplementation in Rust) +name: xh github: ducaale/xh +description: A friendly and fast tool for sending HTTP requests (HTTPie reimplementation + in Rust) +arch: amd64 +platform: linux +maintainer: ducaale homepage: https://github.com/ducaale/xh license: MIT -maintainer: ducaale -name: xh -platform: linux +dist_tag: true +builds: +- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest + release: '1' + repository: + - almalinux/el8 + version: 0.25.3 +- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: '1' + repository: + - almalinux/el9 + version: 0.25.3 +- repository: + - fedora/42 + - fedora/43 + - fedora/44 + image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest + release: 1 + version: 0.25.3 diff --git a/rpms/yq/metadata.yaml b/rpms/yq/metadata.yaml index 7d4bf6a..02da9dc 100644 --- a/rpms/yq/metadata.yaml +++ b/rpms/yq/metadata.yaml @@ -1,12 +1,13 @@ ---- name: yq github: mikefarah/yq -description: yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor. +description: yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties + processor. arch: amd64 platform: linux maintainer: mikefarah homepage: https://github.com/mikefarah/yq license: MIT +dist_tag: true builds: - repository: - almalinux/el8 diff --git a/tools/build b/tools/build index 99a9427..f4f4c70 100755 --- a/tools/build +++ b/tools/build @@ -113,6 +113,11 @@ METADATA_SCHEMA = { 'required': False, 'empty': False }, + 'dist_tag': { + 'type': 'boolean', + 'required': False, + 'default': False + }, 'builds': { 'type': 'list', 'required': True, @@ -178,6 +183,7 @@ class PackageMetadata: maintainer: str = "" homepage: str = "" license: str = "" + dist_tag: bool = False builds: List[Build] = None def __post_init__(self): @@ -534,39 +540,48 @@ def normalize_version(version: str) -> str: return ''.join(normalized_parts) -def get_rpm_dist_suffix(distro: str) -> str: +def get_rpm_dist_tag(distro: str) -> str: """ - Map a distro path to the RPM dist tag suffix used in package filenames. + Map a distro path to its RPM dist tag string. Examples: - 'almalinux/el9' -> '.el9' - 'fedora/43' -> '.fc43' + 'almalinux/el9' -> 'el9' + 'fedora/43' -> 'fc43' """ if distro.startswith('almalinux/'): - return '.' + distro.split('/', 1)[1] + return distro.split('/', 1)[1] if distro.startswith('fedora/'): - return '.fc' + distro.split('/', 1)[1] + return 'fc' + distro.split('/', 1)[1] return '' -def check_package_exists(package_name: str, version: str, release: str, distro: str = '') -> bool: +def effective_release(base_release: str, distro: str, use_dist_tag: bool) -> str: + """Return the release string to use for building and registry checks. + + When use_dist_tag is True the dist tag is appended so different distros + produce distinct entries in the package registry (e.g. '1.el9', '1.fc43'). + """ + if not use_dist_tag: + return base_release + tag = get_rpm_dist_tag(distro) + return f"{base_release}.{tag}" if tag else base_release + + +def check_package_exists(package_name: str, version: str, release: str) -> bool: """ Check if a package version exists in the Gitea package registry. - When distro is provided the check is distro-aware: it lists the files - attached to the package version and returns True only when a file whose - name contains the expected RPM dist suffix (e.g. '.el9', '.fc43') is - found. This prevents a package built for almalinux/el9 from being - mistaken for a fedora/43 build (and vice-versa). + Distro disambiguation is handled by the caller via the release string: + when dist_tag is enabled the caller appends the dist tag to release + (e.g. '1.el9', '1.fc43') so each distro maps to a unique version entry. Args: package_name: Name of the package version: Version string - release: Release number - distro: Target distro path (e.g. 'almalinux/el9', 'fedora/43') + release: Effective release (may include dist tag suffix) Returns: - True if package exists for the given distro, False otherwise + True if package exists, False otherwise """ logger = logging.getLogger(__name__) @@ -595,40 +610,9 @@ def check_package_exists(package_name: str, version: str, release: str, distro: if response.status_code == 200: package_info = response.json() - if not package_info.get('id'): - logger.debug(f"Package {package_name}:{full_version} not found") - return False - - # No distro filter – treat any file as a match - if not distro: - logger.debug(f"Package {package_name}:{full_version} exists") - return True - - # Distro-aware check: inspect individual file names for the dist suffix - dist_suffix = get_rpm_dist_suffix(distro) - if not dist_suffix: - logger.debug(f"Package {package_name}:{full_version} exists (no dist suffix for {distro})") - return True - - files_url = f"{base_url}/api/v1/packages/{owner}/{package_type}/{package_name}/{full_version}/files" - logger.debug(f"Checking distro-specific files: {files_url}") - files_response = _gitea_session.get(files_url, timeout=10) - - if files_response.status_code == 200: - files = files_response.json() - for file_info in files: - if dist_suffix in file_info.get('name', ''): - logger.debug(f"Package {package_name}:{full_version} exists for {distro}") - return True - logger.debug(f"Package {package_name}:{full_version} not found for {distro} (no {dist_suffix} file)") - return False - else: - # If files endpoint fails fall back to treating version existence as a match - logger.warning( - f"Could not list files for {package_name}:{full_version}: " - f"{files_response.status_code} – assuming package exists" - ) - return True + exists = bool(package_info.get('id')) + logger.debug(f"Package {package_name}:{full_version} {'exists' if exists else 'not found'}") + return exists elif response.status_code == 404: logger.debug(f"Package {package_name}:{full_version} not found (404)") @@ -1324,6 +1308,7 @@ class Builder: package_name = metadata.get('name', package_dir.name) build_configs = metadata.get('builds', []) + use_dist_tag = metadata.get('dist_tag', False) if not build_configs: self.logger.warning(f"No builds in metadata.yaml for {package_name}") @@ -1342,7 +1327,8 @@ class Builder: if repositories and base_image and version and release: # Use the first repository as the distro identifier build_distro = repositories[0] if repositories else 'unknown' - packages.append(PackageInfo(package_name, version, str(release), package_dir, build_distro, base_image)) + rel = effective_release(str(release), build_distro, use_dist_tag) + packages.append(PackageInfo(package_name, version, rel, package_dir, build_distro, base_image)) else: # Build for specific distro for build_config in build_configs: @@ -1354,7 +1340,8 @@ class Builder: # Check if the target distro matches any repository if distro in repositories and base_image and version and release: - packages.append(PackageInfo(package_name, version, str(release), package_dir, distro, base_image)) + rel = effective_release(str(release), distro, use_dist_tag) + packages.append(PackageInfo(package_name, version, rel, package_dir, distro, base_image)) break else: # If no matching distro found, log a warning @@ -1407,6 +1394,8 @@ class Builder: with open(metadata_file, 'r') as f: metadata = yaml.safe_load(f) + use_dist_tag = metadata.get('dist_tag', False) + # Find base image and validate version/release for the specified distro build_configs = metadata.get('builds', []) base_image = None @@ -1450,7 +1439,8 @@ class Builder: self.logger.error(f"Error reading metadata.yaml for {package}: {e}") return False - package_info = PackageInfo(package, version, release, package_dir, distro, base_image) + rel = effective_release(release, distro, use_dist_tag) + package_info = PackageInfo(package, version, rel, package_dir, distro, base_image) return self._build_package(package_info, dry_run, force, native, buildah) def build_all(self, dry_run: bool = False, force: bool = False, parallel: int = 4, distro: str = 'el/9', native: bool = False, buildah: bool = False) -> bool: @@ -1532,8 +1522,7 @@ class Builder: if check_package_exists( package_info.name, package_info.version, - package_info.release, - package_info.distro + package_info.release ): self.logger.info( f"Skipping {package_info} (already exists in repository)"