mbox series

[bug#48702,v5,0/3] Add patatt and update b4

Message ID 20211218070648.278181-1-kyle@kyleam.com
Headers show
Series Add patatt and update b4 | expand

Message

Kyle Meyer Dec. 18, 2021, 7:06 a.m. UTC
Here's another reroll that

 1) deals with conflicts that have popped up in guix/import/utils.scm

 2) increases the patatt version to account for release that happened since v5
    was sent

 3) updates inputs according to `guix style'

Note that updating b4 to 0.8.0 resolves the b4 build failure reported in
bug#52553 (<87ilvo7h5t.fsf@posteo.org>).

---

This series updates b4 to the latest version.  b4 now uses a separate tool for
patch attestation (added in patch 2), which in turn uses a license that's not
in guix/licenses.scm (added in patch 1).

  [1/3] licenses: Add Expat No Attribution license.
  [2/3] gnu: Add patatt.
  [3/3] gnu: b4: Update to 0.8.0.

 gnu/packages/version-control.scm | 36 +++++++++++++++++++++++---------
 guix/import/utils.scm            |  2 ++
 guix/licenses.scm                | 10 ++++++++-
 3 files changed, 37 insertions(+), 11 deletions(-)

Range-diff against v4:
1:  5ce84815bc ! 1:  7b932e8ea4 licenses: Add Expat No Attribution license.
    @@ Commit message
     
      ## guix/import/utils.scm ##
     @@
    - ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
      ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
      ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
    + ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
     +;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com>
      ;;;
      ;;; This file is part of GNU Guix.
    @@ guix/import/utils.scm: (define (spdx-string->license str)
          ("MIT"                         'license:expat)
     +    ("MIT-0"                       'license:expat-0)
          ("FTL"                         'license:freetype)
    +     ("Freetype"                    'license:freetype)
          ("GFDL-1.1"                    'license:fdl1.1+)
    -     ("GFDL-1.2"                    'license:fdl1.2+)
     
      ## guix/licenses.scm ##
     @@
2:  1cfd954f31 ! 2:  12b48f1bdb gnu: Add patatt.
    @@ Commit message
         * gnu/packages/version-control.scm (patatt): New variable.
     
      ## gnu/packages/version-control.scm ##
    -@@ gnu/packages/version-control.scm: (define-module (gnu packages version-control)
    -   #:use-module (gnu packages python)
    -   #:use-module (gnu packages python-build)
    -   #:use-module (gnu packages python-check)
    -+  #:use-module (gnu packages python-crypto)
    -   #:use-module (gnu packages python-web)
    -   #:use-module (gnu packages python-xyz)
    -   #:use-module (gnu packages readline)
     @@ gnu/packages/version-control.scm: (define-public grokmirror
      based on a manifest file published by servers.")
          (license license:gpl3+)))
    @@ gnu/packages/version-control.scm: (define-public grokmirror
     +(define-public patatt
     +  (package
     +    (name "patatt")
    -+    (version "0.4.8")
    ++    (version "0.4.9")
     +    (source
     +     (origin
     +       (method url-fetch)
     +       (uri (pypi-uri "patatt" version))
     +       (sha256
    -+        (base32 "1jj3c2rc5lzgsk3x2bq1295g7h59y9y8vi9a0gzqh3aqka00zqak"))))
    ++        (base32 "0fpbkmdlnz9s1lakw11jlrzpz4mb6f4dksdiir9g1ppq0g34sy58"))))
     +    (build-system python-build-system)
     +    (arguments '(#:tests? #f))          ; No tests.
     +    (propagated-inputs
    -+     `(("python-pynacl" ,python-pynacl)))
    ++     (list python-pynacl))
     +    (home-page "https://git.kernel.org/pub/scm/utils/patatt/patatt.git")
     +    (synopsis "Tool for cryptographic patch attestation")
     +    (description "This utility provides end-to-end cryptographic attestation
3:  520fbecd62 ! 3:  93595c3c8f gnu: b4: Update to 0.8.0.
    @@ gnu/packages/version-control.scm: (define-public patatt
          (build-system python-build-system)
          (arguments '(#:tests? #f))          ; No tests.
          (inputs
    -      `(("python-dkimpy" ,python-dkimpy)
    -        ("python-dnspython" ,python-dnspython)
    -        ("python-requests" ,python-requests)))
    +      (list python-dkimpy python-dnspython python-requests))
     +    (propagated-inputs
    -+     `(("patatt" ,patatt)))
    ++     (list patatt))
          (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git")
          (synopsis "Tool for working with patches in public-inbox archives")
          (description

base-commit: 3b2b42034c42ccb1dd8845bc03dd3a8053b54aca

Comments

Kyle Meyer Dec. 18, 2021, 8:20 p.m. UTC | #1
Xinglu Chen writes:

> Both packages build fine for me; b4 works as expected;

Thanks for testing.

> I haven’t gotten around to setup patatt yet, but ‘patatt --help’ works
> fine.

I haven't tested the sender's side of things (e.g., running `patatt
sign'), but I've tried out the receiving end:

  * move into a clone of the patatt repo in order to make uses of its
    existing .keys/ subdirectory

  * pull in a message from https://lore.kernel.org for one of these keys

One example:

--8<---------------cut here---------------start------------->8---
$ tree --charset=ascii .keys/openpgp
.keys/openpgp
|-- chromium.org
|   `-- keescook
|       `-- default
`-- linuxfoundation.org
    `-- konstantin
        `-- default

4 directories, 2 files

$ b4 am 20211215232432.2069605-1-keescook@chromium.org
Looking up https://lore.kernel.org/r/20211215232432.2069605-1-keescook%40chromium.org
Grabbing thread from lore.kernel.org/all/20211215232432.2069605-1-keescook%40chromium.org/t.mbox.gz
Analyzing 3 messages in the thread
Checking attestation on all messages, may take a moment...
---
  ✓ [PATCH] iommu: Use correctly sized arguments for bit field
    + Acked-by: Yury Norov <yury.norov@gmail.com> (✓ DKIM/gmail.com)
  ---
  ✓ Signed: openpgp/keescook@chromium.org
  ✓ Signed: DKIM/chromium.org
---
Total patches: 1
---
 Link: https://lore.kernel.org/r/20211215232432.2069605-1-keescook@chromium.org
 Base: not specified
       git am ./20211215_keescook_iommu_use_correctly_sized_arguments_for_bit_field.mbx
--8<---------------cut here---------------end--------------->8---

If the same `b4 am' command is invoked without those keys in place, I
instead see


  ✗ No key: openpgp/keescook@chromium.org
  ✓ Signed: DKIM/chromium.org

So, things seem to be wired up okay.  (The `b4 --debug am' output for
the same command looks okay too.)

> I also took the opportunity to test the ‘guix review’ command that
> I have started to work on.  :-)

Neat, thanks for the sneak peek.