On Sun, Jun 13 2021, Xinglu Chen wrote: > Okay, so new findings: > > When the (guix import elpa) module has been compiled, the generated > package definition uses ‘url-fetch’ to fetch the source. > > --8<---------------cut here---------------start------------->8--- > ~/src/guix [env]$ ./pre-inst-env guix import elpa -a melpa magit > > Starting download of /tmp/guix-file.US750W > From https://melpa.org/packages/magit-20210609.2000.tar... > …609.2000.tar 1.7MiB 365KiB/s 00:05 [##################] 100.0% > (package > (name "emacs-magit") > (version "20210609.2000") > (source > (origin > (method url-fetch) > (uri (string-append > "https://melpa.org/packages/magit-" > version > ".tar")) > (sha256 > (base32 > "0pplizxy20i3i9zqm5kfjz4la93gpz8wwh1ybwdwngv5ks7vhdsr")))) > (build-system emacs-build-system) > (propagated-inputs > `(("emacs-dash" ,emacs-dash) > ("emacs-git-commit" ,emacs-git-commit) > ("emacs-magit-section" ,emacs-magit-section) > ("emacs-transient" ,emacs-transient) > ("emacs-with-editor" ,emacs-with-editor))) > (home-page "https://github.com/magit/magit") > (synopsis "A Git porcelain inside Emacs.") > (description > "Magit is a text-based Git user interface that puts an unmatched focus > on streamlining workflows. Commands are invoked using short mnemonic > key sequences that take the cursor’s position in the highly actionable > interface into account to provide context-sensitive behavior. > > With Magit you can do nearly everything that you can do when using Git > on the command-line, but at greater speed and while taking advantage > of advanced features that previously seemed too daunting to use on a > daily basis. Many users will find that by using Magit they can become > more effective Git user. > ") > (license #f)) > --8<---------------cut here---------------end--------------->8--- > > However, if the (guix import elpa) module hasn’t been compiled, say I > just add a dummy comment to it, then the generated package definition > uses ‘git-fetch’ instead of ‘url-fetch’. Notice the messages emitted by > Guile. > > --8<---------------cut here---------------start------------->8--- > ~/src/guix [env]$ ./pre-inst-env guix import elpa -a melpa magit > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled /home/yoctocell/src/guix/guix/import/elpa.go > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled /home/yoctocell/.config/guix/current/lib/guile/3.0/site-ccache/guix/import/elpa.go > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled /home/yoctocell/.guix-home/profile/lib/guile/3.0/site-ccache/guix/import/elpa.go > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled /home/yoctocell/.config/guix/current/lib/guile/3.0/site-ccache/guix/import/elpa.go > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled guix/import/elpa.go > ;;; note: source file /home/yoctocell/src/guix/guix/import/elpa.scm > ;;; newer than compiled /home/yoctocell/.cache/guile/ccache/3.0-LE-8-4.5/home/yoctocell/src/guix/guix/import/elpa.scm.go > (package > (name "emacs-magit") > (version "20210609.2000") > (source > (origin > (method git-fetch) > (uri (git-reference > (url "https://github.com/magit/magit.git") > (commit > "71f57c5582448be81b02ba53750dd2ea39ed0eaf"))) > (sha256 > (base32 > "16ip50a46nk6xxj8qkpf6rmp28zjc1bhyjj9bfgibim8ywj87dlq")))) > (build-system emacs-build-system) > (propagated-inputs > `(("emacs-dash" ,emacs-dash) > ("emacs-git-commit" ,emacs-git-commit) > ("emacs-magit-section" ,emacs-magit-section) > ("emacs-transient" ,emacs-transient) > ("emacs-with-editor" ,emacs-with-editor))) > (arguments > '(#:include > '("^lisp/magit$" > "^lisp/magit[^/]+.el$" > "^lisp/git-rebase.el$" > "^Documentation/magit.texi$" > "^Documentation/AUTHORS.md$" > "^LICENSE$") > #:exclude > '("^lisp/magit-libgit.el$" > "^lisp/magit-section.el$"))) > (home-page "https://github.com/magit/magit") > (synopsis "A Git porcelain inside Emacs.") > (description > "Magit is a text-based Git user interface that puts an unmatched focus > on streamlining workflows. Commands are invoked using short mnemonic > key sequences that take the cursor’s position in the highly actionable > interface into account to provide context-sensitive behavior. > > With Magit you can do nearly everything that you can do when using Git > on the command-line, but at greater speed and while taking advantage > of advanced features that previously seemed too daunting to use on a > daily basis. Many users will find that by using Magit they can become > more effective Git user. > ") > (license #f)) > --8<---------------cut here---------------end--------------->8--- > > Maybe there is some problem with Guile itself? I came up with a hack to fix the issue, see the diff below diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index c0dc5acf51..0d07b4b35e 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -335,7 +335,8 @@ the package named PACKAGE-NAME." type ''." (define melpa-recipe - (if (eq? repo 'melpa) + ;; XXX: Otherwise (eq? repo 'melpa) always seems to return #f. + (if (force (delay (eq? repo 'melpa))) (package-name->melpa-recipe (elpa-package-name pkg)) #f)) I am not sure if this is a good workaround, though. Any thoughts?