Subject: [PATCH v3 0/4] Add upstream updater for git-fetch origins

From: Maxime Devos <[email-masked]>
Date: Tue, 4 Jan 2022 15:09:33 +0000

The following changes were made since v2:

  * file-hash* has been modified to, by default, only compute nar hash if the
    file is a directory.
  * Most uses of file-hash* have been modified to explicitely set #:recursive?
    #false or #:recursive? #true
  * the compiler <upstream-source> has been modified to support git-fetch
    origins.

    However, it is broken, and I don't know how to resolve the issue.
    (Except perhaps by using latest-repository-commit directly but that
    shouldn't be necessary, since <git-checkout> objects are lowerable?)
  * 'guess-version-transform' has been removed, since it is unused.

Checklist:

 - [x] make check

  There's one test failure: FAIL: tests/guix-pack-relocatable.sh

guix pack: error: profile contains conflicting entries for python-numpy
guix pack: error:   first entry: [email-masked] /gnu/store/9dd0zkkwl45rmsa7b6vjb1747l57aw4y-python-numpy-1.21.3R
guix pack: error:   second entry: [email-masked] /gnu/store/mlccgh05bf8cdinq0ilpvpdmsspq36pv-python-numpy-1.20.3R
guix pack: error:    ... propagated from [email-masked]
guix pack: error:    ... propagated from [email-masked]

guix/build/syscalls.scm:2271:8: In procedure terminal-window-size:
In procedure terminal-window-size: Inappropriate ioctl for device

   (This is from within Emacs.) It seems unrelated to this patch series;

 - [ ] guix build --source minetest-unified-inventory --with-latest=minetest-unified-inventory

      This causes

      Wrong type to apply: #<<git-checkout> url: "https://github.com/minetest-mods/unified_inventory" branch: #f commit: "d6688872c84417d2f61d6f5e607aea39d78920aa" recursive?: #f>

      but I don't know how to resolve this.

 - [x] guix refresh minetest-unified-inventory -t minetest
 - [x] guix refresh -t minetest -u minetest-unified-inventory
       Version, hash and commit seem ok.
 - [x] move "hello" to earlier version, do "guix refresh hello"
      An update '2.9' -> '2.10' is available.
 - [ ] guix refresh -u hello

  gpgv: Signature made Sun Nov 16 12:08:37 2014 UTC
  gpgv:                using RSA key A9553245FDE9B739
  gpgv: Can't check signature: No public key
  Would you like to add this key to keyring '$HOME/.config/guix/upstream/trustedkeys.kbx'?
  yes
  gpg: key A9553245FDE9B739: new key but contains no user ID - skipped
  gpg: Total number processed: 1
  gpg:           w/o user IDs: 1
  gpgv: Signature made Sun Nov 16 12:08:37 2014 UTC
  gpgv:                using RSA key A9553245FDE9B739
  gpgv: Can't check signature: No public key
  guix refresh: warning: signature verification failed for 'mirror://gnu/hello/hello-2.10.tar.gz' (key: A9553245FDE9B739)
  guix refresh: warning: hello: version 2.10 could not be downloaded and authenticated; not updating

  Failure seems unrelated to patch series.

 - [x] "./pre-inst-env guix download mirror://gnu/hello/hello-2.10.tar.gz" and "./pre-inst-env guix hash /gnu/store/STUFF" return the same hash

 - [x] ./pre-inst-env guix hash -r $(./pre-inst-env guix build --source minetest-mesecons)
      returns the hash in the minetest-mesecons package

      Also a warning: ‘--recursive is deprecated, use --serializer' instead,
      but 'guix hash --help' doesn't tell what the argument of '--serializer'
      can be so I think I'll stick with '-r' for now.

Sarah Morgensen (4):
  guix hash: Extract file hashing procedures.
  import: Factorize file hashing.
  refresh: Support non-tarball sources.
  upstream: Support updating and fetching 'git-fetch' origins.

 Makefile.am              |  1 +
 guix/git.scm             | 14 ++++++++-
 guix/hash.scm            | 68 ++++++++++++++++++++++++++++++++++++++++
 guix/import/cran.scm     | 32 ++-----------------
 guix/import/elpa.scm     | 29 +++--------------
 guix/import/git.scm      | 22 +++++++------
 guix/import/go.scm       | 25 ++-------------
 guix/import/minetest.scm | 25 +++++++--------
 guix/scripts/hash.scm    | 22 +++----------
 guix/scripts/refresh.scm | 10 +++---
 guix/upstream.scm        | 68 +++++++++++++++++++++++++++++++++++-----
 tests/minetest.scm       |  7 ++---
 12 files changed, 190 insertions(+), 133 deletions(-)
 create mode 100644 guix/hash.scm

base-commit: 9708681f1a9f221ae6cad64625ba8309b6742653
-- 
2.30.2