guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Missing dependency for emacs-magit


From: Zelphir Kaltstahl
Subject: Re: Missing dependency for emacs-magit
Date: Tue, 22 Feb 2022 09:34:20 +0000

Hello!

On 2/19/22 08:30, Liliana Marie Prikler wrote:
Hi,

Am Samstag, dem 19.02.2022 um 02:34 +0000 schrieb Zelphir Kaltstahl:
So I deleted and built the emacs profile again using `guix package --
manifest="${GUIX_EXTRA_PROFILES}"/emacs-profile-manifest.scm --
profile=""/emacs-profile`.

However, no luck. Still magit cannot be loaded. Still saying that:

~~~~
Unable to activate package ‘magit’.
Required package ‘git-commit-3.3.0’ is unavailable
~~~~

Not sure what else I can try.
Best regards,
Zelphir
I think there might be something fundamentally wrong here.  On a pretty
recent git checkout (using pre-inst-env) I can `guix shell -C emacs
emacs-magit -E TERM -- emacs' and inside the spawned emacs (require
'magit) works without any issues.

Cheers

I have now tried again with `guix environment` instead of using profiles. I faced the same issue as with the profile. As soon as emacs-magit is installed via guix, I get the error in the `*Messages*` buffer. Then I read about `guix shell` and learned, that it is to replace `guix environment`. Didn't know that. Guess I should change my usage. So that is what I did next. Changed the `guix environment` command in my script to `guix shell`.

It should be reproducible using the following steps, unless guix itself has an issue and creates non-reproducible environments:

`channels.scm` file at `~/.guix-extra-profiles/emacs-env/channels.scm`:

~~~~
(list (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (branch "master")
        (commit
          "b731d34ed796ad3ca1cfba6e08369ffd6dcb57bf")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
              "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
~~~~

`manifest.scm` file at `~/.guix-extra-profiles/emacs-env/manifest.scm`:

~~~~
(specifications->manifest
 '("emacs"
   "emacs-auto-complete"
   "emacs-company"
   "emacs-dockerfile-mode"
   "emacs-editorconfig"
   "emacs-erlang"
   "emacs-exec-path-from-shell"
   "emacs-flycheck"
   "emacs-geiser"
   "emacs-geiser-guile"
   "emacs-geiser-racket"
   "emacs-goto-chg"
   "emacs-jinja2-mode"
   "emacs-json-mode"
   "emacs-magit"
   "emacs-markdown-mode"
   "emacs-moe-theme-el"
   "emacs-monokai-theme"
   "emacs-multiple-cursors"
   "emacs-neotree"
   "emacs-ob-async"
   "emacs-org"
   "emacs-ox-gfm"
   "emacs-pkg-info"
   "emacs-project"
   ;; "emacs-python-environment"
   "emacs-racket-mode"
   "emacs-sml-mode"
   "emacs-toml-mode"
   ;; "emacs-typescript-mode"
   "emacs-undo-tree"
   "emacs-web-mode"
   "emacs-yaml-mode"
   "emacs-yasnippet"
   "guile"
   "guile-colorized"
   "guile-fslib"
   "guile-json"
   "guile-readline"
   "racket"))
~~~~

`env.sh` script to run Emacs at `~/.guix-extra-profiles/emacs-env/env.sh`:

~~~~
#!/usr/bin/env bash

set -Eeuxo pipefail

DIR="~/.guix-extra-profiles/emacs-env/"

guix time-machine \
     --channels="${DIR}/channels.scm" -- \
     shell \
     --cores=4 \
     --manifest="${DIR}/manifest.scm" -- \
     emacs
~~~~

With those in place run:

~~~~
bash ~/.guix-extra-profiles/emacs-env/env.sh
~~~~

However, I have now found out, that the `-C` flag is `--container`, which I am not using! So I tried to use `--container` with the `guix shell` command and, what a surprise, the error in Emacs disappeared!

Now of course the question is, how does `--container` affect the `emacs-magit` package? What is Emacs reading, that affects Magit and even prevents it from loading the dependency `git-commit`?

If I find out more, I'll let you know.

Best regards and thanks for the patience,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl

reply via email to

[Prev in Thread] Current Thread [Next in Thread]