[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#47336] Disarchive as a fallback for downloads
From: |
Timothy Sample |
Subject: |
[bug#47336] Disarchive as a fallback for downloads |
Date: |
Wed, 28 Apr 2021 03:01:55 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
reopen 47336
thanks
Hi again,
Timothy Sample <samplet@ngyro.com> writes:
> I just pushed this series [...]
And broke “guix pull”!! (I somehow fooled myself into thinking that I
had already tested with “guix pull --url=...” locally.) I reverted the
offending commit.
It turns out that adding a reference from “(guix build download)” to
“(guix swh)” breaks “compute-guix-derivation” in
“build-aux/build-self.scm”. This is because “(guix swh)” references
“(json)”, which is not available in the “compute-guix-derivation”
environment. I tried mimicking the “fake-git” trick, but it didn’t work
(I guess it needs the “define-json-mapping” macro at compile time).
Everything works if I remove the #:autoload for “(guix swh)” and put
;; If we import (guix swh) directly, we introduce a compile-time
;; dependency on Guile-JSON. This breaks the "build-self" code, which
;; needs to build this module without Guile-JSON. Hence, we track
;; down the following procedure at runtime.
(define swh-download-directory
(module-ref (resolve-module '(guix swh)) 'swh-download-directory))
inside of “disarchive-fetch/any” (just before it’s needed). Does this
approach look okay?
-- Tim