From: Xinglu Chen <public@yoctocell.xyz>
To: 49006@debbugs.gnu.org
Subject: bug#49006: MELPA importer uses the wrong source when called from CLI
Date: Mon, 06 Sep 2021 13:08:49 +0200 [thread overview]
Message-ID: <87fsui2c72.fsf@yoctocell.xyz> (raw)
In-Reply-To: <87czsp8wic.fsf@yoctocell.xyz>
[-- Attachment #1: Type: text/plain, Size: 6004 bytes --]
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 '<elpa-package>'."
(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?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]
next prev parent reply other threads:[~2021-09-06 11:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-13 16:20 bug#49006: MELPA importer uses the wrong source when called from CLI Xinglu Chen
2021-06-13 18:11 ` Xinglu Chen
2021-09-06 11:08 ` Xinglu Chen [this message]
2021-11-06 22:21 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fsui2c72.fsf@yoctocell.xyz \
--to=public@yoctocell.xyz \
--cc=49006@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.