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 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 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: python-numpy@1.21.3 /gnu/store/9dd0zkkwl45rmsa7b6vjb1747l57aw4y-python-numpy-1.21.3R guix pack: error: second entry: python-numpy@1.20.3 /gnu/store/mlccgh05bf8cdinq0ilpvpdmsspq36pv-python-numpy-1.20.3R guix pack: error: ... propagated from python-matplotlib@3.4.3 guix pack: error: ... propagated from python-scipy@1.7.3 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: #< 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