Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nfpm for openSUSE:Factory checked in at 2026-06-22 17:35:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nfpm (Old) and /work/SRC/openSUSE:Factory/.nfpm.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nfpm" Mon Jun 22 17:35:23 2026 rev:22 rq:1360864 version:2.47.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nfpm/nfpm.changes 2026-04-18 21:36:05.848884999 +0200 +++ /work/SRC/openSUSE:Factory/.nfpm.new.1956/nfpm.changes 2026-06-22 17:35:36.034702219 +0200 @@ -1,0 +2,48 @@ +Sun Jun 21 16:27:04 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 2.47.0: + * New Features + - 5c2f7ca: feat: RiscV64 support (#1091) (@ahqsoftwares) + - 64b788a: feat: add Requires(Post) for RPMS (#1085) + (@teddelin) + - dc96073: feat: add fang support for styled CLI output (#1068) + (@caarlos0) + * Security updates + - 060af04: sec(deps): update golang.org/x/crypto (@caarlos0) + - f769631: sec(deps): update golang.org/x/net (@caarlos0) + * Bug fixes + - 3118ec1: fix: tolerate empty overrides packager clause + (#1080) (@dleske) + * Dependency updates + - a2d9ce5: feat(deps): go1.26.4 (@caarlos0) + - 9b16218: fix(deps): bump alpine from 3.23.3 to 3.23.4 (#1075) + (@dependabot[bot]) + - e3102b3: fix(deps): bump alpine from 3.23.3 to 3.23.4 in + /testdata/acceptance (#1076) (@dependabot[bot]) + - 62c555e: fix(deps): bump alpine from 3.23.4 to 3.24.0 (#1098) + (@dependabot[bot]) + - 071ae18: fix(deps): bump alpine from 3.23.4 to 3.24.0 in + /testdata/acceptance (#1099) (@dependabot[bot]) + * Build process updates + - 4c62d34: ci(deps): bump github/codeql-action in the actions + group (#1083) (@dependabot[bot]) + - 38a05de: ci(deps): bump the actions group across 1 directory + with 3 updates (#1096) (@dependabot[bot]) + - 6fe4da4: ci(deps): bump the actions group across 1 directory + with 7 updates (#1095) (@dependabot[bot]) + - cd95f9f: ci(deps): bump the actions group with 2 updates + (#1078) (@dependabot[bot]) + - 8f9cbef: ci(deps): bump the actions group with 3 updates + (#1090) (@dependabot[bot]) + - 9ff0e2f: ci(deps): bump the actions group with 4 updates + (#1086) (@dependabot[bot]) + - 2ce1832: ci(deps): bump the actions group with 5 updates + (#1074) (@dependabot[bot]) + - 1bd2fed: ci: fix docs build test (@caarlos0) + - 4695cdc: ci: fix license check (@caarlos0) + - a40b461: ci: update build (@caarlos0) + * Other work + - d16d75f: docs(deps): update hextra (@caarlos0) + - c6a6a27: docs: update cmd docs (@caarlos0) + +------------------------------------------------------------------- Old: ---- nfpm-2.46.3.obscpio New: ---- nfpm-2.47.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nfpm.spec ++++++ --- /var/tmp/diff_new_pack.MA1TTj/_old 2026-06-22 17:35:37.734762046 +0200 +++ /var/tmp/diff_new_pack.MA1TTj/_new 2026-06-22 17:35:37.734762046 +0200 @@ -17,7 +17,7 @@ Name: nfpm -Version: 2.46.3 +Version: 2.47.0 Release: 0 Summary: Simple deb, rpm, apk and arch linux packager written in Go License: MIT @@ -26,8 +26,8 @@ Source1: vendor.tar.gz BuildRequires: bash-completion BuildRequires: fish +BuildRequires: go1.26 >= 1.26.4 BuildRequires: zsh -BuildRequires: golang(API) >= 1.25 %description nFPM is a simple and 0-dependencies deb, rpm, apk and arch linux packager ++++++ _service ++++++ --- /var/tmp/diff_new_pack.MA1TTj/_old 2026-06-22 17:35:37.770763313 +0200 +++ /var/tmp/diff_new_pack.MA1TTj/_new 2026-06-22 17:35:37.774763453 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/goreleaser/nfpm</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.46.3</param> + <param name="revision">v2.47.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.MA1TTj/_old 2026-06-22 17:35:37.806764580 +0200 +++ /var/tmp/diff_new_pack.MA1TTj/_new 2026-06-22 17:35:37.810764720 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/goreleaser/nfpm</param> - <param name="changesrevision">dbae6d52f782080e1a0203e704603f0a37b19f8f</param></service></servicedata> + <param name="changesrevision">40c7c8f7376400e9464d04a2a099045cf5598f8e</param></service></servicedata> (No newline at EOF) ++++++ nfpm-2.46.3.obscpio -> nfpm-2.47.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/CONTRIBUTING.md new/nfpm-2.47.0/CONTRIBUTING.md --- old/nfpm-2.46.3/CONTRIBUTING.md 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/CONTRIBUTING.md 2026-06-21 01:17:25.000000000 +0200 @@ -9,7 +9,7 @@ Prerequisites: - [Task](https://taskfile.dev/#/installation) -- [Go 1.21+](https://golang.org/doc/install) +- [Go 1.26+](https://golang.org/doc/install) - [Docker](https://www.docker.com/) - `gpg` (probably already installed on your system) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/Dockerfile new/nfpm-2.47.0/Dockerfile --- old/nfpm-2.46.3/Dockerfile 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/Dockerfile 2026-06-21 01:17:25.000000000 +0200 @@ -1,4 +1,4 @@ -FROM alpine:3.23.3@sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659 +FROM alpine:3.24.0@sha256:a2d49ea686c2adfe3c992e47dc3b5e7fa6e6b5055609400dc2acaeb241c829f4 ARG TARGETPLATFORM COPY $TARGETPLATFORM/nfpm*.apk /tmp/ RUN apk add --allow-untrusted /tmp/nfpm_*.apk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/README.md new/nfpm-2.47.0/README.md --- old/nfpm-2.46.3/README.md 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/README.md 2026-06-21 01:17:25.000000000 +0200 @@ -56,20 +56,10 @@ <!-- this list is auto-generated by https://github.com/goreleaser/sponsors --> <div align="center"> <h2>Our Sponsors</h2> - <h3>Diamond</h3> - <a href="https://serpapi.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://github.com/serpapi.png" alt="SerpApi" width="128" height="128"/></a> - <h3>Gold</h3> - <a href="https://opensource.mercedes-benz.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/34240465?s=96&v=4" alt="Mercedes-Benz Group" width="96" height="96"/></a> - <a href="https://nitric.io?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/72055470?s=96&v=4" alt="nitric" width="96" height="96"/></a> - <h3>Silver</h3> - <a href="https://depot.dev?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="https://images.opencollective.com/depot/39125a1/logo.png?height=80" alt="Depot" width="80" height="80"/></a> - <a href="https://www.n-ix.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="https://images.opencollective.com/n-ix-ltd/575a7a5/logo.png?height=80" alt="N-iX Ltd" width="80" height="80"/></a> - <h3>Bronze</h3> - <a href="https://www.conet.de?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/35725664?s=64&v=4" alt="conet cloud" width="64" height="64"/></a> - <a href="https://encore.dev?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/50438175?s=64&v=4" alt="Encore" width="64" height="64"/></a> - <a href="https://www.comet.com/site/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/31487821?s=64&v=4" alt="Comet" width="64" height="64"/></a> - <a href="https://about.gitea.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="https://images.opencollective.com/gitea/bf35c2f/logo.png?height=64" alt="Gitea" width="64" height="64"/></a> - <a href="https://www.interviewpal.com?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/268665632?s=64&v=4" alt="InterviewPal.com" width="64" height="64"/></a> + <p align="center"><strong>Diamond</strong><br> <a href="https://serpapi.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://github.com/serpapi.png" alt="SerpApi" width="128"/></a></p> + <p align="center"><strong>Gold</strong><br> <a href="https://nitric.io?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/72055470?s=96&v=4" alt="nitric" width="96"/></a></p> + <p align="center"><strong>Silver</strong><br> <a href="https://depot.dev?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="https://images.opencollective.com/depot/39125a1/logo.png?height=80" alt="Depot" width="80"/></a> <a href="https://www.n-ix.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="https://images.opencollective.com/n-ix-ltd/575a7a5/logo.png?height=80" alt="N-iX Ltd" width="80"/></a></p> + <p align="center"><strong>Bronze</strong><br> <a href="https://www.conet.de?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/35725664?s=64&v=4" alt="conet cloud" width="64"/></a> <a href="https://encore.dev?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/50438175?s=64&v=4" alt="Encore" width="64"/></a> <a href="https://www.comet.com/site/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=github" target="_blank" rel="noopener sponsored" ><img src="https://avatars.githubusercontent.com/u/31487821?s=64&v=4" alt="Comet" width="64"/></a> <a href="https://about.gitea.com/?utm_source=goreleaser&utm_medium=sponsor&utm_campaign=homepage&utm_content=opencollective" target="_blank" rel="noopener sponsored" ><img src="h ttps://images.opencollective.com/gitea/bf35c2f/logo.png?height=64" alt="Gitea" width="64"/></a></p> <h3>And many more!</h3> <p>See the full list <a href="https://goreleaser.com/sponsors" target="_blank" rel="noopener sponsored">here</a>.</p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/acceptance_test.go new/nfpm-2.47.0/acceptance_test.go --- old/nfpm-2.46.3/acceptance_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/acceptance_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -91,7 +91,8 @@ target := fmt.Sprintf("./testdata/acceptance/%s", oldpkg) require.NoError(t, os.MkdirAll("./testdata/acceptance/tmp", 0o700)) - config, err := nfpm.ParseFileWithEnvMapping(fmt.Sprintf("./testdata/acceptance/%s.v1.yaml", testName), + config, err := nfpm.ParseFileWithEnvMapping( + fmt.Sprintf("./testdata/acceptance/%s.v1.yaml", testName), func(s string) string { switch s { case "BUILD_ARCH": @@ -201,6 +202,7 @@ "release", "directories", "verify", + "postrequires", } for _, name := range testNames { for _, arch := range formatArchs[format] { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/apk/apk.go new/nfpm-2.47.0/apk/apk.go --- old/nfpm-2.46.3/apk/apk.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/apk/apk.go 2026-06-21 01:17:25.000000000 +0200 @@ -74,6 +74,7 @@ "x86_64": "x86_64", "i386": "x86", "i686": "x86", + "riscv64": "riscv64", } func ensureValidArch(info *nfpm.Info) *nfpm.Info { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/apk/apk_test.go new/nfpm-2.47.0/apk/apk_test.go --- old/nfpm-2.46.3/apk/apk_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/apk/apk_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -138,7 +138,7 @@ "etc/fake/fake2.conf": "96c335dc28122b5f09a4cef74b156cd24c23784c", "etc/fake/fake3.conf": "96c335dc28122b5f09a4cef74b156cd24c23784c", } - for _, arch := range []string{"386", "amd64"} { + for _, arch := range []string{"386", "amd64", "riscv64"} { t.Run(arch, func(t *testing.T) { info := exampleInfo() info.Arch = arch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/arch/arch.go new/nfpm-2.47.0/arch/arch.go --- old/nfpm-2.46.3/arch/arch.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/arch/arch.go 2026-06-21 01:17:25.000000000 +0200 @@ -52,6 +52,7 @@ "x86_64": "x86_64", "aarch64": "aarch64", "i386": "i686", + "riscv64": "riscv64", } func ensureValidArch(info *nfpm.Info) *nfpm.Info { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/arch/arch_test.go new/nfpm-2.47.0/arch/arch_test.go --- old/nfpm-2.46.3/arch/arch_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/arch/arch_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -94,7 +94,7 @@ } func TestArch(t *testing.T) { - for _, arch := range []string{"386", "amd64", "arm64"} { + for _, arch := range []string{"386", "amd64", "arm64", "riscv64"} { t.Run(arch, func(t *testing.T) { info := exampleInfo() info.Arch = arch @@ -129,12 +129,13 @@ } func TestArchConventionalFileName(t *testing.T) { - for _, arch := range []string{"386", "amd64", "arm64"} { + for _, arch := range []string{"386", "amd64", "arm64", "riscv64"} { t.Run(arch, func(t *testing.T) { info := exampleInfo() info.Arch = arch name := Default.ConventionalFileName(info) - require.Equal(t, + require.Equal( + t, "foo-test-1.0.0beta_1-1-"+archToArchLinux[arch]+".pkg.tar.zst", name, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/deb/deb.go new/nfpm-2.47.0/deb/deb.go --- old/nfpm-2.46.3/deb/deb.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/deb/deb.go 2026-06-21 01:17:25.000000000 +0200 @@ -54,6 +54,7 @@ "s390": "s390x", "x86_64": "amd64", "aarch64": "arm64", + "riscv64": "riscv64", } func ensureValidArch(info *nfpm.Info) *nfpm.Info { @@ -876,7 +877,8 @@ h := &tar.Header{ Name: content.Name(), ModTime: modtime.Get( - append(preferredModTimes, content.ModTime())...), + append(preferredModTimes, content.ModTime())..., + ), Mode: int64(fm & 0o7777), Uname: content.FileInfo.Owner, Gname: content.FileInfo.Group, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/deb/deb_test.go new/nfpm-2.47.0/deb/deb_test.go --- old/nfpm-2.46.3/deb/deb_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/deb/deb_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -111,7 +111,7 @@ } func TestDeb(t *testing.T) { - for _, arch := range []string{"386", "amd64"} { + for _, arch := range []string{"386", "amd64", "riscv64"} { t.Run(arch, func(t *testing.T) { info := exampleInfo() info.Arch = arch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/files/files.go new/nfpm-2.47.0/files/files.go --- old/nfpm-2.46.3/files/files.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/files/files.go 2026-06-21 01:17:25.000000000 +0200 @@ -553,8 +553,9 @@ presentSource = " with source " + present.Source } - return fmt.Errorf("adding %s at destination %s: "+ - "%s%s is already present at this destination: %w", + return fmt.Errorf( + "adding %s at destination %s: "+ + "%s%s is already present at this destination: %w", newc.Type, newc.Destination, present.Type, presentSource, ErrContentCollision, ) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/go.mod new/nfpm-2.47.0/go.mod --- old/nfpm-2.46.3/go.mod 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/go.mod 2026-06-21 01:17:25.000000000 +0200 @@ -1,23 +1,22 @@ module github.com/goreleaser/nfpm/v2 -go 1.25.0 +go 1.26.4 require ( dario.cat/mergo v1.0.2 github.com/AlekSi/pointer v1.2.0 - github.com/Masterminds/semver/v3 v3.4.0 + github.com/Masterminds/semver/v3 v3.5.0 github.com/ProtonMail/go-crypto v1.4.1 github.com/ProtonMail/gopenpgp/v2 v2.7.1 github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb github.com/caarlos0/go-version v0.2.2 + github.com/charmbracelet/fang v1.0.0 github.com/google/rpmpack v0.7.1 github.com/goreleaser/chglog v0.7.4 github.com/goreleaser/fileglob v1.4.0 - github.com/invopop/jsonschema v0.13.0 - github.com/klauspost/compress v1.18.5 + github.com/invopop/jsonschema v0.14.0 + github.com/klauspost/compress v1.18.6 github.com/klauspost/pgzip v1.2.6 - github.com/muesli/mango-cobra v1.3.0 - github.com/muesli/roff v0.1.0 github.com/sassoftware/go-rpmutils v0.4.0 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 @@ -27,6 +26,7 @@ ) require ( + charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410 // indirect github.com/DataDog/zstd v1.5.5 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/sprig/v3 v3.3.0 // indirect @@ -35,14 +35,24 @@ github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/buger/jsonparser v1.1.2 // indirect github.com/cavaliergopher/cpio v1.0.1 // indirect + github.com/charmbracelet/colorprofile v0.3.3 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20251106190538-99ea45596692 // indirect + github.com/charmbracelet/x/ansi v0.11.0 // indirect + github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect + github.com/charmbracelet/x/termios v0.1.1 // indirect + github.com/charmbracelet/x/windows v0.2.2 // indirect + github.com/clipperhouse/displaywidth v0.4.1 // indirect + github.com/clipperhouse/stringish v0.1.1 // indirect + github.com/clipperhouse/uax29/v2 v2.3.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect - github.com/cyphar/filepath-securejoin v0.4.1 // indirect + github.com/cyphar/filepath-securejoin v0.6.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.8.0 // indirect - github.com/go-git/go-git/v5 v5.18.0 // indirect + github.com/go-git/go-billy/v5 v5.9.0 // indirect + github.com/go-git/go-git/v5 v5.19.1 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/google/uuid v1.6.0 // indirect @@ -50,29 +60,38 @@ github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/mango v0.2.0 // indirect + github.com/muesli/mango-cobra v1.3.0 // indirect github.com/muesli/mango-pflag v0.1.0 // indirect - github.com/pjbgf/sha1cd v0.3.2 // indirect + github.com/muesli/roff v0.1.0 // indirect + github.com/pb33f/ordered-map/v2 v2.3.1 // indirect + github.com/pjbgf/sha1cd v0.6.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/skeema/knownhosts v1.3.1 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect go.mozilla.org/pkcs7 v0.9.0 // indirect - golang.org/x/crypto v0.50.0 // indirect - golang.org/x/net v0.52.0 // indirect - golang.org/x/sys v0.43.0 // indirect - golang.org/x/text v0.36.0 // indirect + go.yaml.in/yaml/v4 v4.0.0-rc.2 // indirect + golang.org/x/crypto v0.52.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/text v0.37.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect software.sslmate.com/src/go-pkcs12 v0.7.1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/go.sum new/nfpm-2.47.0/go.sum --- old/nfpm-2.46.3/go.sum 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/go.sum 2026-06-21 01:17:25.000000000 +0200 @@ -1,3 +1,5 @@ +charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410 h1:D9PbaszZYpB4nj+d6HTWr1onlmlyuGVNfL9gAi8iB3k= +charm.land/lipgloss/v2 v2.0.0-beta.3.0.20251106193318-19329a3e8410/go.mod h1:1qZyvvVCenJO2M1ac2mX0yyiIZJoZmDM4DG4s0udJkU= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w= @@ -6,8 +8,8 @@ github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= -github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE= +github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= @@ -24,6 +26,8 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY= +github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4= @@ -37,13 +41,37 @@ github.com/caarlos0/testfs v0.4.4/go.mod h1:bRN55zgG4XCUVVHZCeU+/Tz1Q6AxEJOEJTliBy+1DMk= github.com/cavaliergopher/cpio v1.0.1 h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM= github.com/cavaliergopher/cpio v1.0.1/go.mod h1:pBdaqQjnvXxdS/6CvNDwIANIFSP0xRKI16PX4xejRQc= +github.com/charmbracelet/colorprofile v0.3.3 h1:DjJzJtLP6/NZ8p7Cgjno0CKGr7wwRJGxWUwh2IyhfAI= +github.com/charmbracelet/colorprofile v0.3.3/go.mod h1:nB1FugsAbzq284eJcjfah2nhdSLppN2NqvfotkfRYP4= +github.com/charmbracelet/fang v1.0.0 h1:jESBY40agJOlLYnnv9jE0mLqDGTxEk0hkOnx7YGyRlQ= +github.com/charmbracelet/fang v1.0.0/go.mod h1:P5/DNb9DddQ0Z0dbc0P3ol4/ix5Po7Ofr2KMBfAqoCo= +github.com/charmbracelet/ultraviolet v0.0.0-20251106190538-99ea45596692 h1:r/3jQZ1LjWW6ybp8HHfhrKrwHIWiJhUuY7wwYIWZulQ= +github.com/charmbracelet/ultraviolet v0.0.0-20251106190538-99ea45596692/go.mod h1:Y8B4DzWeTb0ama8l3+KyopZtkE8fZjwRQ3aEAPEXHE0= +github.com/charmbracelet/x/ansi v0.11.0 h1:uuIVK7GIplwX6UBIz8S2TF8nkr7xRlygSsBRjSJqIvA= +github.com/charmbracelet/x/ansi v0.11.0/go.mod h1:uQt8bOrq/xgXjlGcFMc8U2WYbnxyjrKhnvTQluvfCaE= +github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444 h1:IJDiTgVE56gkAGfq0lBEloWgkXMk4hl/bmuPoicI4R0= +github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444/go.mod h1:T9jr8CzFpjhFVHjNjKwbAD7KwBNyFnj2pntAO7F2zw0= +github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= +github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f/go.mod h1:IfZAMTHB6XkZSeXUqriemErjAWCCzT0LwjKFYCZyw0I= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= +github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY= +github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo= +github.com/charmbracelet/x/windows v0.2.2 h1:IofanmuvaxnKHuV04sC0eBy/smG6kIKrWG2/jYn2GuM= +github.com/charmbracelet/x/windows v0.2.2/go.mod h1:/8XtdKZzedat74NQFn0NGlGL4soHB0YQZrETF96h75k= +github.com/clipperhouse/displaywidth v0.4.1 h1:uVw9V8UDfnggg3K2U84VWY1YLQ/x2aKSCtkRyYozfoU= +github.com/clipperhouse/displaywidth v0.4.1/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4= +github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= -github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE= +github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -57,12 +85,12 @@ github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.8.0 h1:I8hjc3LbBlXTtVuFNJuwYuMiHvQJDq1AT6u4DwDzZG0= -github.com/go-git/go-billy/v5 v5.8.0/go.mod h1:RpvI/rw4Vr5QA+Z60c6d6LXH0rYJo0uD5SqfmrrheCY= +github.com/go-git/go-billy/v5 v5.9.0 h1:jItGXszUDRtR/AlferWPTMN4j38BQ88XnXKbilmmBPA= +github.com/go-git/go-billy/v5 v5.9.0/go.mod h1:jCnQMLj9eUgGU7+ludSTYoZL/GGmii14RxKFj7ROgHw= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= -github.com/go-git/go-git/v5 v5.18.0 h1:O831KI+0PR51hM2kep6T8k+w0/LIAD490gvqMCvL5hM= -github.com/go-git/go-git/v5 v5.18.0/go.mod h1:pW/VmeqkanRFqR6AljLcs7EA7FbZaN5MQqO7oZADXpo= +github.com/go-git/go-git/v5 v5.19.1 h1:nX27AnaU43/K5bKktKwgBmR9lawoYVe1Ckg0rgzzN00= +github.com/go-git/go-git/v5 v5.19.1/go.mod h1:Pb1v0c7/g8aGQJwx9Us09W85yGoyvSwuhEGMH7zjDKQ= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= @@ -83,17 +111,18 @@ github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcIi21E= -github.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= +github.com/invopop/jsonschema v0.14.0 h1:MHQqLhvpNUZfw+hM3AZDYK7jxO8FZoQeQM77g8iyZjg= +github.com/invopop/jsonschema v0.14.0/go.mod h1:ygm6C2EaVNMBDPpaPlnOA2pFAxBnxGjFlMZABxm9n2I= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE= -github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao= +github.com/klauspost/compress v1.18.6/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -103,14 +132,18 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/mango v0.2.0 h1:iNNc0c5VLQ6fsMgAqGQofByNUBH2Q2nEbD6TaI+5yyQ= github.com/muesli/mango v0.2.0/go.mod h1:5XFpbC8jY5UUv89YQciiXNlbi+iJgt29VDC5xbzrLL4= github.com/muesli/mango-cobra v1.3.0 h1:vQy5GvPg3ndOSpduxutqFoINhWk3vD5K2dXo5E8pqec= @@ -121,12 +154,16 @@ github.com/muesli/roff v0.1.0/go.mod h1:pjAHQM9hdUUwm/krAfrLGgJkXJ+YuhtsfZ42kieB2Ig= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= -github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= +github.com/pb33f/ordered-map/v2 v2.3.1 h1:5319HDO0aw4DA4gzi+zv4FXU9UlSs3xGZ40wcP1nBjY= +github.com/pb33f/ordered-map/v2 v2.3.1/go.mod h1:qxFQgd0PkVUtOMCkTapqotNgzRhMPL7VvaHKbd1HnmQ= +github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU= +github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -159,12 +196,12 @@ github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= -github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= gitlab.com/digitalxero/go-conventional-commit v1.0.7 h1:8/dO6WWG+98PMhlZowt/YjuiKhqhGlOCwlIV8SqqGh8= gitlab.com/digitalxero/go-conventional-commit v1.0.7/go.mod h1:05Xc2BFsSyC5tKhK0y+P3bs0AwUtNuTp+mTpbCU/DZ0= @@ -176,14 +213,16 @@ go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +go.yaml.in/yaml/v4 v4.0.0-rc.2 h1:/FrI8D64VSr4HtGIlUtlFMGsm7H7pWTbj6vOLVZcA6s= +go.yaml.in/yaml/v4 v4.0.0-rc.2/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= -golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -192,11 +231,13 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -209,22 +250,22 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= -golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= +golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= +golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= -golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/internal/cmd/man.go new/nfpm-2.47.0/internal/cmd/man.go --- old/nfpm-2.46.3/internal/cmd/man.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/internal/cmd/man.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - - mcobra "github.com/muesli/mango-cobra" - "github.com/muesli/roff" - "github.com/spf13/cobra" -) - -type manCmd struct { - cmd *cobra.Command -} - -func newManCmd() *manCmd { - root := &manCmd{} - cmd := &cobra.Command{ - Use: "man", - Short: "Generates nfpm's command line manpages", - SilenceUsage: true, - DisableFlagsInUseLine: true, - Hidden: true, - Args: cobra.NoArgs, - ValidArgsFunction: cobra.NoFileCompletions, - RunE: func(*cobra.Command, []string) error { - manPage, err := mcobra.NewManPage(1, root.cmd.Root()) - if err != nil { - return err - } - - _, err = fmt.Fprint(os.Stdout, manPage.Build(roff.NewDocument())) - return err - }, - } - - root.cmd = cmd - return root -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/internal/cmd/package.go new/nfpm-2.47.0/internal/cmd/package.go --- old/nfpm-2.46.3/internal/cmd/package.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/internal/cmd/package.go 2026-06-21 01:17:25.000000000 +0200 @@ -43,7 +43,8 @@ cmd.Flags().StringVarP(&root.packager, "packager", "p", "", fmt.Sprintf("which packager implementation to use [%s]", strings.Join(pkgs, "|"))) - _ = cmd.RegisterFlagCompletionFunc("packager", cobra.FixedCompletions(pkgs, + _ = cmd.RegisterFlagCompletionFunc("packager", cobra.FixedCompletions( + pkgs, cobra.ShellCompDirectiveNoFileComp, )) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/internal/cmd/root.go new/nfpm-2.47.0/internal/cmd/root.go --- old/nfpm-2.46.3/internal/cmd/root.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/internal/cmd/root.go 2026-06-21 01:17:25.000000000 +0200 @@ -1,9 +1,11 @@ package cmd import ( - "fmt" + "context" + "os" goversion "github.com/caarlos0/go-version" + "github.com/charmbracelet/fang" _ "github.com/goreleaser/nfpm/v2/apk" // apk packager _ "github.com/goreleaser/nfpm/v2/arch" // archlinux packager _ "github.com/goreleaser/nfpm/v2/deb" // deb packager @@ -25,8 +27,14 @@ func (cmd *rootCmd) Execute(args []string) { cmd.cmd.SetArgs(args) - if err := cmd.cmd.Execute(); err != nil { - fmt.Println(err.Error()) + if err := fang.Execute( + context.Background(), + cmd.cmd, + fang.WithVersion(cmd.cmd.Version), + fang.WithColorSchemeFunc(fang.AnsiColorScheme), + fang.WithNotifySignal(os.Interrupt, os.Kill), + fang.WithoutVersion(), + ); err != nil { cmd.exit(1) } } @@ -40,8 +48,6 @@ Short: "Packages apps on RPM, Deb, APK, Arch Linux, ipk, and MSIX formats based on a YAML configuration file", Long: `nFPM is a simple and 0-dependencies apk, arch, deb, ipk, msix, and rpm packager written in Go.`, Version: version.String(), - SilenceUsage: true, - SilenceErrors: true, Args: cobra.NoArgs, ValidArgsFunction: cobra.NoFileCompletions, } @@ -51,7 +57,6 @@ newInitCmd().cmd, newPackageCmd().cmd, newDocsCmd().cmd, - newManCmd().cmd, newSchemaCmd().cmd, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/ipk/ipk.go new/nfpm-2.47.0/ipk/ipk.go --- old/nfpm-2.46.3/ipk/ipk.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/ipk/ipk.go 2026-06-21 01:17:25.000000000 +0200 @@ -45,6 +45,7 @@ "x86_64": "x86_64", "aarch64": "arm64", "i386": "i386", + "riscv64": "riscv64_generic", } func ensureValidArch(info *nfpm.Info) *nfpm.Info { @@ -126,7 +127,8 @@ // Strip out any custom fields that are disallowed. stripDisallowedFields(info) - contents, err := newTGZ("ipk", + contents, err := newTGZ( + "ipk", func(tw *tar.Writer) error { return createIPK(info, tw) }, @@ -144,7 +146,8 @@ func createIPK(info *nfpm.Info, ipk *tar.Writer) error { var installSize int64 - data, err := newTGZ("data.tar.gz", + data, err := newTGZ( + "data.tar.gz", func(tw *tar.Writer) error { var err error installSize, err = populateDataTar(info, tw) @@ -155,7 +158,8 @@ return err } - control, err := newTGZ("control.tar.gz", + control, err := newTGZ( + "control.tar.gz", func(tw *tar.Writer) error { return populateControlTar(info, tw, installSize) }, @@ -198,7 +202,8 @@ Mode: int64(file.FileInfo.Mode), Uname: file.FileInfo.Owner, Gname: file.FileInfo.Group, - }) + }, + ) case files.TypeSymlink: err = tw.WriteHeader( &tar.Header{ @@ -207,7 +212,8 @@ Format: tar.FormatGNU, ModTime: modtime.Get(info.MTime), Linkname: file.Source, - }) + }, + ) case files.TypeFile, files.TypeTree, files.TypeConfig, files.TypeConfigNoReplace, files.TypeConfigMissingOK: size, err = writeFile(tw, file) default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/ipk/ipk_test.go new/nfpm-2.47.0/ipk/ipk_test.go --- old/nfpm-2.46.3/ipk/ipk_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/ipk/ipk_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -97,7 +97,7 @@ } func TestIPK(t *testing.T) { - for _, arch := range []string{"386", "amd64"} { + for _, arch := range []string{"386", "amd64", "riscv64"} { t.Run(arch, func(t *testing.T) { info := exampleInfo() info.Arch = arch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/nfpm.go new/nfpm-2.47.0/nfpm.go --- old/nfpm-2.46.3/nfpm.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/nfpm.go 2026-06-21 01:17:25.000000000 +0200 @@ -211,12 +211,16 @@ c.Platform = os.Expand(c.Platform, c.envMappingFunc) c.Arch = os.Expand(c.Arch, c.envMappingFunc) for or := range c.Overrides { + if c.Overrides[or] == nil { + continue + } c.Overrides[or].Conflicts = c.expandEnvVarsStringSlice(c.Overrides[or].Conflicts) c.Overrides[or].Depends = c.expandEnvVarsStringSlice(c.Overrides[or].Depends) c.Overrides[or].Replaces = c.expandEnvVarsStringSlice(c.Overrides[or].Replaces) c.Overrides[or].Recommends = c.expandEnvVarsStringSlice(c.Overrides[or].Recommends) c.Overrides[or].Provides = c.expandEnvVarsStringSlice(c.Overrides[or].Provides) c.Overrides[or].Suggests = c.expandEnvVarsStringSlice(c.Overrides[or].Suggests) + c.Overrides[or].RPM.Requires.Post = c.expandEnvVarsStringSlice(c.Overrides[or].RPM.Requires.Post) c.Overrides[or].Contents = c.expandEnvVarsContents(c.Overrides[or].Contents) } c.Conflicts = c.expandEnvVarsStringSlice(c.Conflicts) @@ -225,6 +229,7 @@ c.Recommends = c.expandEnvVarsStringSlice(c.Recommends) c.Provides = c.expandEnvVarsStringSlice(c.Provides) c.Suggests = c.expandEnvVarsStringSlice(c.Suggests) + c.RPM.Requires.Post = c.expandEnvVarsStringSlice(c.RPM.Requires.Post) c.Contents = c.expandEnvVarsContents(c.Contents) // Basic metadata fields @@ -278,9 +283,6 @@ } c.IPK.Predepends = c.expandEnvVarsStringSlice(c.IPK.Predepends) - // RPM specific - c.RPM.Packager = os.Expand(c.RPM.Packager, c.envMappingFunc) - // MSIX specific c.MSIX.Signature.PFXFile = os.Expand(c.MSIX.Signature.PFXFile, c.envMappingFunc) c.MSIX.Publisher = os.Expand(c.MSIX.Publisher, c.envMappingFunc) @@ -389,6 +391,7 @@ Arch string `yaml:"arch,omitempty" json:"arch,omitempty" jsonschema:"title=architecture in rpm nomenclature"` BuildHost string `yaml:"buildhost,omitempty" json:"buildhost,omitempty" jsonschema:"title=host name of the build environment, default=os.Hostname()"` Scripts RPMScripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=rpm-specific scripts"` + Requires RPMRequires `yaml:"requires,omitempty" json:"requires,omitempty" jsonschema:"title=rpm-specific requires"` Group string `yaml:"group,omitempty" json:"group,omitempty" jsonschema:"title=package group,example=Unspecified"` Summary string `yaml:"summary,omitempty" json:"summary,omitempty" jsonschema:"title=package summary"` Compression string `yaml:"compression,omitempty" json:"compression,omitempty" jsonschema:"title=compression algorithm to be used,enum=gzip,enum=lzma,enum=xz,enum=zstd,default=gzip:-1"` @@ -404,6 +407,11 @@ Verify string `yaml:"verify,omitempty" json:"verify,omitempty" jsonschema:"title=verify script"` } +// RPMRequires represents qualified RPM Requires dependencies. +type RPMRequires struct { + Post []string `yaml:"post,omitempty" json:"post,omitempty" jsonschema:"title=post requires directive,example=nfpm"` +} + type PackageSignature struct { // PGP secret key, can be ASCII-armored KeyFile string `yaml:"key_file,omitempty" json:"key_file,omitempty" jsonschema:"title=key file,example=key.gpg"` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/nfpm_test.go new/nfpm-2.47.0/nfpm_test.go --- old/nfpm-2.46.3/nfpm_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/nfpm_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -324,6 +324,8 @@ require.Equal(t, "my/rpm/key/file", config.RPM.Signature.KeyFile) require.Equal(t, "hard/coded/file", config.Deb.Signature.KeyFile) require.Empty(t, config.APK.Signature.KeyFile) + _, err = parseAndValidate("./testdata/overrides-missing.yaml") + require.NoError(t, err) } func TestParseEnhancedFile(t *testing.T) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/rpm/rpm.go new/nfpm-2.47.0/rpm/rpm.go --- old/nfpm-2.46.3/rpm/rpm.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/rpm/rpm.go 2026-06-21 01:17:25.000000000 +0200 @@ -30,6 +30,9 @@ tagChangelogText = 1082 // https://github.com/rpm-software-management/rpm/blob/master/include/rpm/rpmtag.h#L183 tagSourcePackage = 1106 + // RPMSENSE_SCRIPT_POST marks a dependency as Requires(post). + // https://github.com/rpm-software-management/rpm/blob/master/include/rpm/rpmds.h + rpmSenseScriptPost = 1 << 10 // Symbolic link tagLink = 0o120000 @@ -88,6 +91,7 @@ "mipsle": "mipsel", "mips": "mips", "loong64": "loongarch64", + "riscv64": "riscv64", } func setDefaults(info *nfpm.Info) *nfpm.Info { @@ -247,6 +251,9 @@ if depends, err = toRelation(info.Depends); err != nil { return nil, err } + if err = addPostRequires(&depends, info.RPM.Requires.Post); err != nil { + return nil, err + } if recommends, err = toRelation(info.Recommends); err != nil { return nil, err } @@ -327,6 +334,19 @@ return relations, nil } +func addPostRequires(relations *rpmpack.Relations, items []string) error { + for idx := range items { + relation, err := rpmpack.NewRelation(items[idx]) + if err != nil { + return err + } + relation.Sense |= rpmSenseScriptPost + *relations = append(*relations, relation) + } + + return nil +} + func addScriptFiles(info *nfpm.Info, rpm *rpmpack.RPM) error { if info.RPM.Scripts.PreTrans != "" { data, err := os.ReadFile(info.RPM.Scripts.PreTrans) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/rpm/rpm_test.go new/nfpm-2.47.0/rpm/rpm_test.go --- old/nfpm-2.46.3/rpm/rpm_test.go 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/rpm/rpm_test.go 2026-06-21 01:17:25.000000000 +0200 @@ -22,6 +22,12 @@ "github.com/stretchr/testify/require" ) +const ( + tagRequireFlags = 1048 + tagRequireName = 1049 + tagRequireVersion = 1050 +) + func exampleInfo() *nfpm.Info { return setDefaults(nfpm.WithDefaults(&nfpm.Info{ Name: "foo", @@ -154,6 +160,96 @@ require.Equal(t, "Foo does things", description) } +func TestRPMPostRequires(t *testing.T) { + info := exampleInfo() + info.RPM.Requires.Post = []string{"systemd", "coreutils >= 9.0"} + + var buf bytes.Buffer + err := DefaultRPM.Package(info, &buf) + require.NoError(t, err) + + rpm, err := rpmutils.ReadRpm(&buf) + require.NoError(t, err) + + namesRaw, err := rpm.Header.Get(tagRequireName) + require.NoError(t, err) + names, ok := namesRaw.([]string) + require.True(t, ok) + versionsRaw, err := rpm.Header.Get(tagRequireVersion) + require.NoError(t, err) + versions, ok := versionsRaw.([]string) + require.True(t, ok) + flagsRaw, err := rpm.Header.Get(tagRequireFlags) + require.NoError(t, err) + flags, ok := flagsRaw.([]uint32) + require.True(t, ok) + + requireRPMRequire(t, names, versions, flags, "systemd", "", rpmSenseScriptPost) + requireRPMRequire(t, names, versions, flags, "coreutils", "9.0", rpmSenseScriptPost|4|8) +} + +func requireRPMRequire( + t *testing.T, + names, versions []string, + flags []uint32, + name, version string, + flag uint32, +) { + t.Helper() + for idx := range names { + if names[idx] == name && versions[idx] == version && flags[idx] == flag { + return + } + } + require.Failf(t, "RPM require not found", "name=%s version=%s flag=%d", name, version, flag) +} + +func TestRPMRiscv64(t *testing.T) { + f, err := os.CreateTemp(t.TempDir(), "test-riscv.rpm") + require.NoError(t, err) + info := exampleInfo() + info.Arch = "riscv64" + require.NoError(t, DefaultRPM.Package(info, f)) + + file, err := os.OpenFile(f.Name(), os.O_RDONLY, 0o600) //nolint:gosec + require.NoError(t, err) + defer func() { + f.Close() + file.Close() + err = os.Remove(file.Name()) + require.NoError(t, err) + }() + rpm, err := rpmutils.ReadRpm(file) + require.NoError(t, err) + + arch, err := rpm.Header.GetString(rpmutils.ARCH) + require.NoError(t, err) + require.Equal(t, archToRPM["riscv64"], arch) +} + +func TestSRPMRiscv64(t *testing.T) { + f, err := os.CreateTemp(t.TempDir(), "test-riscv.src.rpm") + require.NoError(t, err) + info := exampleInfo() + info.Arch = "riscv64" + require.NoError(t, DefaultSRPM.Package(info, f)) + + file, err := os.OpenFile(f.Name(), os.O_RDONLY, 0o600) //nolint:gosec + require.NoError(t, err) + defer func() { + f.Close() + file.Close() + err = os.Remove(file.Name()) + require.NoError(t, err) + }() + rpm, err := rpmutils.ReadRpm(file) + require.NoError(t, err) + + arch, err := rpm.Header.GetString(rpmutils.ARCH) + require.NoError(t, err) + require.Equal(t, archToRPM["riscv64"], arch) +} + func TestIssue952(t *testing.T) { info := exampleInfo() info.MTime = time.Time{} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/testdata/acceptance/apk.dockerfile new/nfpm-2.47.0/testdata/acceptance/apk.dockerfile --- old/nfpm-2.46.3/testdata/acceptance/apk.dockerfile 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/testdata/acceptance/apk.dockerfile 2026-06-21 01:17:25.000000000 +0200 @@ -1,4 +1,4 @@ -FROM alpine:3.23.3 AS test_base +FROM alpine:3.24.0 AS test_base ARG package RUN echo "${package}" COPY ${package} /tmp/foo.apk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/testdata/acceptance/rpm.dockerfile new/nfpm-2.47.0/testdata/acceptance/rpm.dockerfile --- old/nfpm-2.46.3/testdata/acceptance/rpm.dockerfile 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/testdata/acceptance/rpm.dockerfile 2026-06-21 01:17:25.000000000 +0200 @@ -226,3 +226,9 @@ RUN rpm -V foo RUN rm /tmp/postinstall-proof RUN ! rpm -V foo + +# ---- postrequires test ---- +FROM min AS postrequires +RUN rpm -qp --qf '[%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\n]' /tmp/foo.rpm +RUN rpm -qp --qf '[%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\n]' /tmp/foo.rpm | grep -E '^bash 1024 ?$' +RUN rpm -qp --qf '[%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\n]' /tmp/foo.rpm | grep -E '^coreutils 1036 9\.0$' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/testdata/acceptance/rpm.postrequires.yaml new/nfpm-2.47.0/testdata/acceptance/rpm.postrequires.yaml --- old/nfpm-2.46.3/testdata/acceptance/rpm.postrequires.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/nfpm-2.47.0/testdata/acceptance/rpm.postrequires.yaml 2026-06-21 01:17:25.000000000 +0200 @@ -0,0 +1,20 @@ +name: "foo" +arch: "${BUILD_ARCH}" +platform: "linux" +version: "v1.2.3" +maintainer: "Foo Bar" +release: "4" +description: | + Foo bar + Multiple lines +vendor: "foobar" +homepage: "https://foobar.org" +license: "MIT" +contents: +- src: ./testdata/fake + dst: /usr/bin/fake +rpm: + requires: + post: + - bash + - coreutils >= 9.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/testdata/overrides-missing.yaml new/nfpm-2.47.0/testdata/overrides-missing.yaml --- old/nfpm-2.46.3/testdata/overrides-missing.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/nfpm-2.47.0/testdata/overrides-missing.yaml 2026-06-21 01:17:25.000000000 +0200 @@ -0,0 +1,32 @@ +# Configuration file used to test that missing overrides don't cause a +# segmentation fault. See `overrides.deb` below. +name: "foo" +arch: "amd64" +mtime: 2023-01-02 +version: "v1.2.3" +contents: + - src: ./testdata/whatever.conf + dst: /etc/foo/whatever.conf + type: config + - src: ./testdata/whatever.conf + dst: /deb/path.conf + type: config + packager: deb + - src: ./testdata/whatever.conf + dst: /rpm/path.conf + type: config + packager: rpm + - src: ./testdata/whatever.conf + dst: /apk/path.conf + type: config + packager: apk +rpm: + group: foo +overrides: + deb: + rpm: + depends: + - rpm_depend + apk: + depends: + - apk_depend diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/content/docs/arch-mapping.md new/nfpm-2.47.0/www/content/docs/arch-mapping.md --- old/nfpm-2.46.3/www/content/docs/arch-mapping.md 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/content/docs/arch-mapping.md 2026-06-21 01:17:25.000000000 +0200 @@ -39,6 +39,7 @@ | `mips64le` | `mips64el` | | `ppc64le` | `ppc64el` | | `s390` | `s390x` | +| `riscv64` | `riscv64` | {{< /tab >}} @@ -56,6 +57,7 @@ | `mipsle` | `mipsel` | | `mips64le` | `mips64el` | | `loong64` | `loongarch64` | +| `riscv64` | `riscv64` | {{< /tab >}} @@ -75,6 +77,7 @@ | `ppc64le` | `ppc64le` | | `s390` | `s390x` | | `loong64` | `loongarch64` | +| `riscv64` | `riscv64` | {{< /tab >}} @@ -91,43 +94,45 @@ | `arm5` | `arm` | | `arm6` | `armv6h` | | `arm7` | `armv7h` | +| `riscv64` | `riscv64` | {{< /tab >}} {{< tab >}} -| Input | Value | -| :--------: | :--------: | -| `amd64` | `x86_64` | -| `x86_64` | `x86_64` | -| `386` | `i386` | -| `i386` | `i386` | -| `arm64` | `arm64` | -| `aarch64` | `arm64` | -| `arm5` | `armel` | -| `arm6` | `armhf` | -| `arm7` | `armhf` | -| `mipsle` | `mipsel` | -| `mips64le` | `mips64el` | -| `ppc64le` | `ppc64el` | -| `s390` | `s390x` | +| Input | Value | +| :--------: | :---------------: | +| `amd64` | `x86_64` | +| `x86_64` | `x86_64` | +| `386` | `i386` | +| `i386` | `i386` | +| `arm64` | `arm64` | +| `aarch64` | `arm64` | +| `arm5` | `armel` | +| `arm6` | `armhf` | +| `arm7` | `armhf` | +| `mipsle` | `mipsel` | +| `mips64le` | `mips64el` | +| `ppc64le` | `ppc64el` | +| `s390` | `s390x` | +| `riscv64` | `riscv64_generic` | {{< /tab >}} {{< tab >}} -| Input | Value | -| :--------: | :-------: | -| `amd64` | `x64` | -| `x86_64` | `x64` | -| `386` | `x86` | -| `i386` | `x86` | -| `i686` | `x86` | -| `arm64` | `arm64` | -| `aarch64` | `arm64` | -| `arm` | `arm` | -| `arm7` | `arm` | -| `all` | `neutral` | +| Input | Value | +| :-------: | :-------: | +| `amd64` | `x64` | +| `x86_64` | `x64` | +| `386` | `x86` | +| `i386` | `x86` | +| `i686` | `x86` | +| `arm64` | `arm64` | +| `aarch64` | `arm64` | +| `arm` | `arm` | +| `arm7` | `arm` | +| `all` | `neutral` | {{< /tab >}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/content/docs/configuration.md new/nfpm-2.47.0/www/content/docs/configuration.md --- old/nfpm-2.46.3/www/content/docs/configuration.md 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/content/docs/configuration.md 2026-06-21 01:17:25.000000000 +0200 @@ -17,7 +17,7 @@ # to the platform specific equivalent. In order to manually set the architecture # to a platform specific value, set `{format}.arch`. # Examples: `all`, `amd64`, `386`, `arm5`, `arm6`, `arm7`, `arm64`, `mips`, -# `mipsle`, `mips64le`, `ppc64le`, `s390` +# `mipsle`, `mips64le`, `ppc64le`, `s390`, `riscv64` arch: amd64 # Platform. @@ -340,6 +340,12 @@ # The verify script runs when verifying packages using `rpm -V`. verify: ./scripts/verify.sh + # RPM specific qualified Requires dependencies. + requires: + # Adds `Requires(post): systemd`. + post: + - systemd + # The package group. This option is deprecated by most distros # but required by old distros like CentOS 5 / EL 5 and earlier. group: Unspecified diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/go.mod new/nfpm-2.47.0/www/go.mod --- old/nfpm-2.46.3/www/go.mod 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/go.mod 2026-06-21 01:17:25.000000000 +0200 @@ -2,4 +2,4 @@ go 1.21 -require github.com/imfing/hextra v0.11.1 // indirect +require github.com/imfing/hextra v0.12.3 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/go.sum new/nfpm-2.47.0/www/go.sum --- old/nfpm-2.46.3/www/go.sum 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/go.sum 2026-06-21 01:17:25.000000000 +0200 @@ -1,2 +1,2 @@ -github.com/imfing/hextra v0.11.1 h1:8pTc4ReYbzGTHAnyiebmlT3ijFfIXiGu1r7tM/UGjFI= -github.com/imfing/hextra v0.11.1/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= +github.com/imfing/hextra v0.12.3 h1:DZHY2rUWYteyzjlHi9r4n7Bb5e2Q+6LXe4C1Dqn0ZjM= +github.com/imfing/hextra v0.12.3/go.mod h1:vi+yhpq8YPp/aghvJlNKVnJKcPJ/VyAEcfC1BSV9ARo= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/htmltest.yml new/nfpm-2.47.0/www/htmltest.yml --- old/nfpm-2.46.3/www/htmltest.yml 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/htmltest.yml 2026-06-21 01:17:25.000000000 +0200 @@ -5,7 +5,6 @@ CheckLinks: true CheckImages: true CheckScripts: true -# XXX: change this once https://github.com/wjdp/htmltest/pull/243 is fixed. CheckFavicon: false CheckOpengraph: false CheckMetaRefresh: true @@ -17,6 +16,7 @@ - "https://github.com/goreleaser/nfpm/releases" - "https://becker.software/nfpm.png" - "https://opencollective.com/" + - "https://wiki.alpinelinux.org/" IgnoreAltMissing: true IgnoreInternalEmptyHash: true LogLevel: 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/static/latest new/nfpm-2.47.0/www/static/latest --- old/nfpm-2.46.3/www/static/latest 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/static/latest 2026-06-21 01:17:25.000000000 +0200 @@ -1 +1 @@ -v2.46.1 +v2.46.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfpm-2.46.3/www/static/schema.json new/nfpm-2.47.0/www/static/schema.json --- old/nfpm-2.46.3/www/static/schema.json 2026-04-18 04:48:05.000000000 +0200 +++ new/nfpm-2.47.0/www/static/schema.json 2026-06-21 01:17:25.000000000 +0200 @@ -974,6 +974,10 @@ "$ref": "#/$defs/RPMScripts", "title": "rpm-specific scripts" }, + "requires": { + "$ref": "#/$defs/RPMRequires", + "title": "rpm-specific requires" + }, "group": { "type": "string", "title": "package group", @@ -1013,6 +1017,22 @@ } }, "additionalProperties": false, + "type": "object" + }, + "RPMRequires": { + "properties": { + "post": { + "items": { + "type": "string", + "examples": [ + "nfpm" + ] + }, + "type": "array", + "title": "post requires directive" + } + }, + "additionalProperties": false, "type": "object" }, "RPMScripts": { ++++++ nfpm.obsinfo ++++++ --- /var/tmp/diff_new_pack.MA1TTj/_old 2026-06-22 17:35:38.382784850 +0200 +++ /var/tmp/diff_new_pack.MA1TTj/_new 2026-06-22 17:35:38.390785132 +0200 @@ -1,5 +1,5 @@ name: nfpm -version: 2.46.3 -mtime: 1776480485 -commit: dbae6d52f782080e1a0203e704603f0a37b19f8f +version: 2.47.0 +mtime: 1781997445 +commit: 40c7c8f7376400e9464d04a2a099045cf5598f8e ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/nfpm/vendor.tar.gz /work/SRC/openSUSE:Factory/.nfpm.new.1956/vendor.tar.gz differ: char 13, line 1
