Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nfpm for openSUSE:Factory checked in 
at 2024-08-17 12:41:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nfpm (Old)
 and      /work/SRC/openSUSE:Factory/.nfpm.new.2698 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nfpm"

Sat Aug 17 12:41:52 2024 rev:3 rq:1194370 version:2.39.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/nfpm/nfpm.changes        2024-07-10 
16:57:50.701946653 +0200
+++ /work/SRC/openSUSE:Factory/.nfpm.new.2698/nfpm.changes      2024-08-17 
12:42:09.965811361 +0200
@@ -1,0 +2,20 @@
+Fri Aug 16 18:11:13 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 2.39.0:
+  * build: fix packagers shell on darwin
+  * feat: env var substitution in description (#848)
+  * build: update flake.nix
+  * chore(deps): bump anchore/sbom-action from 0.17.0 to 0.17.1
+    (#846)
+  * chore(deps): bump sigstore/cosign-installer from 3.5.0 to 3.6.0
+    (#845)
+  * chore(deps): bump benc-uk/workflow-dispatch from 1.2.3 to 1.2.4
+    (#844)
+  * chore(deps): bump anchore/sbom-action from 0.16.1 to 0.17.0
+    (#843)
+  * chore(deps): bump anchore/sbom-action from 0.16.0 to 0.16.1
+    (#842)
+  * fix(deb): dpkg-sig format (#841)
+  * docs: update cmd docs
+
+-------------------------------------------------------------------

Old:
----
  nfpm-2.38.0.obscpio

New:
----
  nfpm-2.39.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nfpm.spec ++++++
--- /var/tmp/diff_new_pack.dW9Y8V/_old  2024-08-17 12:42:10.533834981 +0200
+++ /var/tmp/diff_new_pack.dW9Y8V/_new  2024-08-17 12:42:10.533834981 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           nfpm
-Version:        2.38.0
+Version:        2.39.0
 Release:        0
 Summary:        Simple deb, rpm, apk and arch linux packager written in Go
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.dW9Y8V/_old  2024-08-17 12:42:10.577836810 +0200
+++ /var/tmp/diff_new_pack.dW9Y8V/_new  2024-08-17 12:42:10.585837143 +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.38.0</param>
+    <param name="revision">v2.39.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.dW9Y8V/_old  2024-08-17 12:42:10.609838141 +0200
+++ /var/tmp/diff_new_pack.dW9Y8V/_new  2024-08-17 12:42:10.613838307 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/goreleaser/nfpm</param>
-              <param 
name="changesrevision">d33a9233bb7acf04621b78114114476196d79779</param></service></servicedata>
+              <param 
name="changesrevision">abdde689ee5b84b2b0ac5ae58495b723a719d06a</param></service></servicedata>
 (No newline at EOF)
 

++++++ nfpm-2.38.0.obscpio -> nfpm-2.39.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/.github/workflows/release.yml 
new/nfpm-2.39.0/.github/workflows/release.yml
--- old/nfpm-2.38.0/.github/workflows/release.yml       2024-07-05 
20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/.github/workflows/release.yml       2024-08-15 
03:45:12.000000000 +0200
@@ -15,7 +15,7 @@
     runs-on: ubuntu-latest
     needs: goreleaser
     steps:
-      - uses: benc-uk/workflow-dispatch@v1.2.3
+      - uses: benc-uk/workflow-dispatch@v1.2.4
         with:
           ref: main
           token: ${{ secrets.GH_PAT }}
@@ -34,8 +34,8 @@
       - uses: arduino/setup-task@v2
         with:
           repo-token: ${{ secrets.GITHUB_TOKEN }}
-      - uses: sigstore/cosign-installer@v3.5.0
-      - uses: anchore/sbom-action/download-syft@v0.16.0
+      - uses: sigstore/cosign-installer@v3.6.0
+      - uses: anchore/sbom-action/download-syft@v0.17.1
       - uses: docker/setup-qemu-action@v3
       - uses: docker/setup-buildx-action@v3
       - uses: cachix/install-nix-action@V27
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/deb/deb.go new/nfpm-2.39.0/deb/deb.go
--- old/nfpm-2.38.0/deb/deb.go  2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/deb/deb.go  2024-08-15 03:45:12.000000000 +0200
@@ -8,6 +8,7 @@
        "compress/gzip"
        "crypto/md5" // nolint:gas
        "crypto/sha1"
+       "encoding/hex"
        "errors"
        "fmt"
        "io"
@@ -230,7 +231,9 @@
 Date: {{ .Date }}
 Role: {{ .Role }}
 Files:
-{{range .Files}}{{ .Md5Sum }} {{ .Sha1Sum }} {{ .Size }} {{ .Name }}{{end}}
+{{range .Files -}}
+{{"\t"}}{{ hex .Md5Sum }} {{ hex .Sha1Sum }} {{ .Size }} {{ .Name }}
+{{end -}}
 `
 
 type dpkgSigData struct {
@@ -241,17 +244,18 @@
        Info   *nfpm.Info
 }
 type dpkgSigFileLine struct {
-       Md5Sum  [16]byte
-       Sha1Sum [20]byte
+       Md5Sum  []byte
+       Sha1Sum []byte
        Size    int
        Name    string
 }
 
 func newDpkgSigFileLine(name string, fileContent []byte) dpkgSigFileLine {
+       md5Sum, sha1Sum := md5.Sum(fileContent), sha1.Sum(fileContent)
        return dpkgSigFileLine{
                Name:    name,
-               Md5Sum:  md5.Sum(fileContent),
-               Sha1Sum: sha1.Sum(fileContent),
+               Md5Sum:  md5Sum[:],
+               Sha1Sum: sha1Sum[:],
                Size:    len(fileContent),
        }
 }
@@ -267,7 +271,9 @@
                        newDpkgSigFileLine("data.tar.gz", dataTarball),
                },
        }
-       temp, _ := template.New("dpkg-sig").Parse(dpkgSigTemplate)
+       temp, _ := template.New("dpkg-sig").Funcs(template.FuncMap{
+               "hex": hex.EncodeToString,
+       }).Parse(dpkgSigTemplate)
        buf := &bytes.Buffer{}
        err := temp.Execute(buf, data)
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/deb/deb_test.go 
new/nfpm-2.39.0/deb/deb_test.go
--- old/nfpm-2.38.0/deb/deb_test.go     2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/deb/deb_test.go     2024-08-15 03:45:12.000000000 +0200
@@ -5,6 +5,7 @@
        "bytes"
        "compress/gzip"
        "crypto/md5" // nolint: gosec
+       "crypto/sha1"
        "encoding/hex"
        "errors"
        "flag"
@@ -13,6 +14,7 @@
        "os"
        "path"
        "path/filepath"
+       "slices"
        "strconv"
        "strings"
        "testing"
@@ -1001,8 +1003,10 @@
 
        signature := extractFileFromAr(t, deb.Bytes(), "_gpgbuilder")
 
-       err = sign.PGPReadMessage(signature, 
"../internal/sign/testdata/pubkey.asc")
+       msg, err := sign.PGPReadMessage(signature, 
"../internal/sign/testdata/pubkey.asc")
        require.NoError(t, err)
+
+       require.NoError(t, verifyDpkgSigFileHashes(extractAllFilesFromAr(t, 
deb.Bytes()), string(msg)))
 }
 
 func TestDpkgSigSignatureError(t *testing.T) {
@@ -1032,8 +1036,10 @@
 
        signature := extractFileFromAr(t, deb.Bytes(), "_gpgbuilder")
 
-       err = sign.PGPReadMessage(signature, 
"../internal/sign/testdata/pubkey.asc")
+       msg, err := sign.PGPReadMessage(signature, 
"../internal/sign/testdata/pubkey.asc")
        require.NoError(t, err)
+
+       require.NoError(t, verifyDpkgSigFileHashes(extractAllFilesFromAr(t, 
deb.Bytes()), string(msg)))
 }
 
 func TestDisableGlobbing(t *testing.T) {
@@ -1400,6 +1406,26 @@
        return nil
 }
 
+func extractAllFilesFromAr(tb testing.TB, arFile []byte) map[string][]byte {
+       tb.Helper()
+
+       tr := ar.NewReader(bytes.NewReader(arFile))
+       files := make(map[string][]byte)
+       for {
+               hdr, err := tr.Next()
+               if errors.Is(err, io.EOF) {
+                       break // End of archive
+               }
+               require.NoError(tb, err)
+
+               fileContents, err := io.ReadAll(tr)
+               require.NoError(tb, err)
+
+               files[hdr.Name] = fileContents
+       }
+       return files
+}
+
 func TestEmptyButRequiredDebFields(t *testing.T) {
        item := nfpm.WithDefaults(&nfpm.Info{
                Name:    "foo",
@@ -1506,3 +1532,45 @@
 
        return nil
 }
+
+func verifyDpkgSigFileHashes(arFiles map[string][]byte, msg string) error {
+       _, hashes, ok := strings.Cut(msg, "Files:")
+       if !ok {
+               return errors.New("expected Files section in dpkg-sig message")
+       }
+       lines := strings.Split(hashes, "\n")
+       for i := range lines {
+               lines[i] = strings.TrimSpace(lines[i])
+               if lines[i] == "" {
+                       continue
+               }
+               var md5Hex, sha1Hex, size, name string
+               if n, err := fmt.Sscanln(lines[i], &md5Hex, &sha1Hex, &size, 
&name); err != nil {
+                       return err
+               } else if n != 4 {
+                       return fmt.Errorf("expected 4 elements in line %q, but 
got %d", lines[i], n)
+               }
+
+               md5Sum, err := hex.DecodeString(md5Hex)
+               if err != nil {
+                       return err
+               }
+               sha1Sum, err := hex.DecodeString(sha1Hex)
+               if err != nil {
+                       return err
+               }
+
+               content, ok := arFiles[name]
+               if !ok {
+                       return fmt.Errorf("dpkg-sig message contains hash of 
file %q, but the package does not contain the file", name)
+               }
+               actualMD5Sum, actualSHA1Sum := md5.Sum(content), 
sha1.Sum(content)
+               if !slices.Equal(actualMD5Sum[:], md5Sum) {
+                       return fmt.Errorf("file %q has invalid MD5 sum", name)
+               }
+               if !slices.Equal(actualSHA1Sum[:], sha1Sum) {
+                       return fmt.Errorf("file %q has invalid SHA1 sum", name)
+               }
+       }
+       return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/flake.lock new/nfpm-2.39.0/flake.lock
--- old/nfpm-2.38.0/flake.lock  2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/flake.lock  2024-08-15 03:45:12.000000000 +0200
@@ -20,11 +20,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1711703276,
-        "narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
+        "lastModified": 1723362943,
+        "narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
+        "rev": "a58bc8ad779655e790115244571758e8de055e3d",
         "type": "github"
       },
       "original": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/flake.nix new/nfpm-2.39.0/flake.nix
--- old/nfpm-2.38.0/flake.nix   2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/flake.nix   2024-08-15 03:45:12.000000000 +0200
@@ -15,26 +15,30 @@
           src = ./.;
           ldflags = [ "-s" "-w" "-X main.version=dev" "-X main.builtBy=flake" 
];
           doCheck = false;
-          vendorHash = "sha256-g57tLk2+WWcdG0COqkQD7eLYG0TdC0RnlhLF6Qt4woY=";
+          vendorHash = "";
         };
 
         devShells.default = pkgs.mkShell {
+          shellHook = "go mod tidy";
+        };
+
+        # nix develop .#dev
+        devShells.dev = pkgs.mkShell {
           packages = with pkgs; [
-            go
             go-task
             gofumpt
-            nix-prefetch
           ];
-          shellHook = "go mod tidy";
         };
 
         # nix develop .#packagers
         devShells.packagers = pkgs.mkShell {
           packages = with pkgs; [
-            apk-tools
             dpkg
+          ] ++ (lib.optionals pkgs.stdenv.isLinux [
+            apk-tools
             rpm
-          ];
+          ]);
+
         };
 
         # nix develop .#docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/internal/sign/pgp.go 
new/nfpm-2.39.0/internal/sign/pgp.go
--- old/nfpm-2.38.0/internal/sign/pgp.go        2024-07-05 20:26:41.000000000 
+0200
+++ new/nfpm-2.39.0/internal/sign/pgp.go        2024-08-15 03:45:12.000000000 
+0200
@@ -143,10 +143,10 @@
        return err
 }
 
-func PGPReadMessage(message []byte, armoredPubKeyFile string) error {
+func PGPReadMessage(message []byte, armoredPubKeyFile string) (plaintext 
[]byte, err error) {
        keyFileContent, err := os.ReadFile(armoredPubKeyFile)
        if err != nil {
-               return fmt.Errorf("reading armored public key file: %w", err)
+               return nil, fmt.Errorf("reading armored public key file: %w", 
err)
        }
 
        var keyring openpgp.EntityList
@@ -154,19 +154,19 @@
        if isASCII(keyFileContent) {
                keyring, err = 
openpgp.ReadArmoredKeyRing(bytes.NewReader(keyFileContent))
                if err != nil {
-                       return fmt.Errorf("decoding armored public key file: 
%w", err)
+                       return nil, fmt.Errorf("decoding armored public key 
file: %w", err)
                }
        } else {
                keyring, err = 
openpgp.ReadKeyRing(bytes.NewReader(keyFileContent))
                if err != nil {
-                       return fmt.Errorf("decoding public key file: %w", err)
+                       return nil, fmt.Errorf("decoding public key file: %w", 
err)
                }
        }
 
        block, _ := clearsign.Decode(message)
        _, err = block.VerifySignature(keyring, nil)
 
-       return err
+       return block.Plaintext, err
 }
 
 func parseKeyID(hexKeyID *string) (uint64, error) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/nfpm.go new/nfpm-2.39.0/nfpm.go
--- old/nfpm-2.38.0/nfpm.go     2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/nfpm.go     2024-08-15 03:45:12.000000000 +0200
@@ -231,6 +231,7 @@
        c.Info.Homepage = os.Expand(c.Info.Homepage, c.envMappingFunc)
        c.Info.Maintainer = os.Expand(c.Info.Maintainer, c.envMappingFunc)
        c.Info.Vendor = os.Expand(c.Info.Vendor, c.envMappingFunc)
+       c.Info.Description = os.Expand(c.Info.Description, c.envMappingFunc)
 
        // Package signing related fields
        c.Info.Deb.Signature.KeyFile = os.Expand(c.Deb.Signature.KeyFile, 
c.envMappingFunc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/nfpm_test.go new/nfpm-2.39.0/nfpm_test.go
--- old/nfpm-2.38.0/nfpm_test.go        2024-07-05 20:26:41.000000000 +0200
+++ new/nfpm-2.39.0/nfpm_test.go        2024-08-15 03:45:12.000000000 +0200
@@ -313,11 +313,13 @@
        t.Setenv("RPM_KEY_FILE", "my/rpm/key/file")
        t.Setenv("TEST_RELEASE_ENV_VAR", "1234")
        t.Setenv("TEST_PRERELEASE_ENV_VAR", "beta1")
+       t.Setenv("TEST_DESCRIPTION_ENV_VAR", "description")
        config, err := parseAndValidate("./testdata/env-fields.yaml")
        require.NoError(t, err)
        require.Equal(t, fmt.Sprintf("v%s", os.Getenv("GOROOT")), 
config.Version)
        require.Equal(t, "1234", config.Release)
        require.Equal(t, "beta1", config.Prerelease)
+       require.Equal(t, "My description", config.Description)
        require.Equal(t, "my/rpm/key/file", config.RPM.Signature.KeyFile)
        require.Equal(t, "hard/coded/file", config.Deb.Signature.KeyFile)
        require.Equal(t, "", config.APK.Signature.KeyFile)
@@ -381,6 +383,7 @@
                maintainerEmail = "n...@example.com"
                homepage        = "https://nfpm.goreleaser.com";
                vcsBrowser      = "https://github.com/goreleaser/nfpm";
+               description     = "barfoo"
        )
 
        t.Run("platform", func(t *testing.T) {
@@ -440,6 +443,13 @@
                require.Equal(t, homepage, info.Homepage)
        })
 
+       t.Run("description", func(t *testing.T) {
+               t.Setenv("DESCRIPTION", description)
+               info, err := nfpm.Parse(strings.NewReader("name: 
foo\ndescription: $DESCRIPTION"))
+               require.NoError(t, err)
+               require.Equal(t, description, info.Description)
+       })
+
        t.Run("global passphrase", func(t *testing.T) {
                t.Setenv("NFPM_PASSPHRASE", globalPass)
                info, err := nfpm.Parse(strings.NewReader("name: foo"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/testdata/env-fields.yaml 
new/nfpm-2.39.0/testdata/env-fields.yaml
--- old/nfpm-2.38.0/testdata/env-fields.yaml    2024-07-05 20:26:41.000000000 
+0200
+++ new/nfpm-2.39.0/testdata/env-fields.yaml    2024-08-15 03:45:12.000000000 
+0200
@@ -4,6 +4,7 @@
 version: "v$GOROOT"
 release: ${TEST_RELEASE_ENV_VAR}
 prerelease: ${TEST_PRERELEASE_ENV_VAR}
+description: My ${TEST_DESCRIPTION_ENV_VAR}
 contents:
 - src: ./testdata/whatever.conf
   dst: /etc/foo/regular.conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/www/docs/configuration.md 
new/nfpm-2.39.0/www/docs/configuration.md
--- old/nfpm-2.38.0/www/docs/configuration.md   2024-07-05 20:26:41.000000000 
+0200
+++ new/nfpm-2.39.0/www/docs/configuration.md   2024-08-15 03:45:12.000000000 
+0200
@@ -83,6 +83,7 @@
 maintainer: Carlos Alexandro Becker <r...@carlosbecker.com>
 
 # Description.
+# This will expand any env var you set in the field, e.g. description: 
${DESCRIPTION}
 # Defaults to `no description given`.
 # Most packagers call for a one-line synopsis of the package. Some (like deb)
 # also call for a multi-line description starting on the second line.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nfpm-2.38.0/www/docs/static/latest 
new/nfpm-2.39.0/www/docs/static/latest
--- old/nfpm-2.38.0/www/docs/static/latest      2024-07-05 20:26:41.000000000 
+0200
+++ new/nfpm-2.39.0/www/docs/static/latest      2024-08-15 03:45:12.000000000 
+0200
@@ -1 +1 @@
-v2.37.1
+v2.38.0

++++++ nfpm.obsinfo ++++++
--- /var/tmp/diff_new_pack.dW9Y8V/_old  2024-08-17 12:42:10.937851781 +0200
+++ /var/tmp/diff_new_pack.dW9Y8V/_new  2024-08-17 12:42:10.941851947 +0200
@@ -1,5 +1,5 @@
 name: nfpm
-version: 2.38.0
-mtime: 1720204001
-commit: d33a9233bb7acf04621b78114114476196d79779
+version: 2.39.0
+mtime: 1723686312
+commit: abdde689ee5b84b2b0ac5ae58495b723a719d06a
 

++++++ vendor.tar.gz ++++++

Reply via email to