Coder Social home page Coder Social logo

alezost / guix.el Goto Github PK

View Code? Open in Web Editor NEW
137.0 10.0 16.0 3.97 MB

Emacs interface for GNU Guix package manager

Home Page: https://emacs-guix.gitlab.io/website/

License: GNU General Public License v3.0

Emacs Lisp 78.92% Scheme 18.59% Makefile 1.49% Shell 0.01% M4 0.99%
emacs guix

guix.el's People

Contributors

alezost avatar janneke avatar jsoo1 avatar nagy avatar nckx avatar tarsius avatar wigust avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guix.el's Issues

Need help about C-c . b

When I C-c .b, the problem is showed like below:

scheme@(guile-user)> (begin
      (guix-warning-port (current-warning-port))
      (current-build-output-port (current-error-port)))
$2 = #<output: file 9da3f18>
scheme@(guile-user)> ,run-in-store (build-package emacs-exwm-x #:use-substitutes? #t #:dry-run? #f)
While executing meta-command:
ERROR: Throw to key `srfi-34' with args `(#<condition &message [message: "gcc-arm-bug-71399.patch: patch not found"] 9b3acb0>)'.
scheme@(guile-user)> 

Any suggestion? The below is my guix config

(require 'guix)
(require 'geiser-guile)

(global-guix-prettify-mode)

(setq geiser-debug-jump-to-debug-p nil)

(setq guix-directory "~/project/guix")

(with-eval-after-load 'geiser-guile
  (add-to-list 'geiser-guile-load-path "~/.config/guix/latest/")
  ;; (add-to-list 'geiser-guile-load-path "~/project/guix/")
  )

(add-hook 'scheme-mode-hook 'guix-devel-mode)

guix-system-from-file fails

When I use guix-system-from-file on my system config it fails, I used (setq debug-on-error t) to get the backtrace below:

Debugger entered--Lisp error: (wrong-type-argument markerp nil)
  marker-position(nil)
  geiser-repl--narrow-to-prompt()
  geiser-repl--wrap-unfontify-region-function(1 419)
  font-lock-unfontify-region(1 419)
  font-lock-default-unfontify-buffer()
  font-lock-unfontify-buffer()
  font-lock-mode-internal(nil)
  font-lock-default-function(nil)
  font-lock-mode(-1)
  font-lock-change-mode()
  kill-all-local-variables()
  comint-mode()
  geiser-repl-mode()
  guix-start-repl(#<buffer *Guix Internal REPL*> "/tmp/emacs-guix-WyITVu/repl-socket")
  guix-start-repl-maybe(internal)
  guix-start-process-maybe()
  guix-get-repl-buffer(internal)
  guix-eval-read("(system-sexps 'from-file '(\"/home/wednesday/.guix-packages/wed/system/pc.scm\") '(file number-of-packages number-of-services kernel bootloader firmware initrd-modules))")
  guix-system-get-entries(from-file ("/home/wednesday/.guix-packages/wed/system/pc.scm") (file number-of-packages number-of-services kernel bootloader firmware initrd-modules))
  guix-system-info-get-entries(from-file "/home/wednesday/.guix-packages/wed/system/pc.scm")
  apply(guix-system-info-get-entries (from-file "/home/wednesday/.guix-packages/wed/system/pc.scm"))
  bui-get-entries(guix-system info (from-file "/home/wednesday/.guix-packages/wed/system/pc.scm"))
  bui-get-display-entries(guix-system info (from-file "/home/wednesday/.guix-packages/wed/system/pc.scm"))
  guix-system-get-display(from-file "/home/wednesday/.guix-packages/wed/system/pc.scm")
  guix-system-from-file("/home/wednesday/.guix-packages/wed/system/pc.scm")
  funcall-interactively(guix-system-from-file "/home/wednesday/.guix-packages/wed/system/pc.scm")
  call-interactively(guix-system-from-file)
  magit-invoke-popup-action(121)
  funcall-interactively(magit-invoke-popup-action 121)
  call-interactively(magit-invoke-popup-action nil nil)
  command-execute(magit-invoke-popup-action)

By looking at it, this could end in a problem with guiser but since it stems from guix I brought the issue here.

Can't run guix commands

I'm running emacs27.1 from guix upstream on ArchLinux.

Right now, I can't run guix commands using the emacs interface. When I try to search for a package(guix package-search. I get: Starting GUIX REPL... then: No prompt found. How do I work around this? I have guix and guile:

➜  ~ guix --version
guix (GNU Guix) 99a9aa8f55cfa4117c268acadd81817b6d90e94e
Copyright (C) 2020 the Guix authors

➜  ~  guile --version
guile (GNU Guile) 3.0.4

Does this package work for people on foreign distros?

failed to load modules.

Running guix-all-packages or guix-number-of-packages (maybe other commands as well) produces the following warning in "Guix REPL", and the displayed total number of packages 1341, which is significantly less than actual number of packages.

  • Guix version :
    guix (GNU Guix) 05fb1e0017030f1c0cbc7e9a1adeccca57ef1d9d
  • Emacs version: 26.1
  • guix.el version: 20180914 from maple melpa.

Thanks :)

GNU Guile 2.2.4
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type ,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type ,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,m (emacs-guix)
scheme@(emacs-guix)> warning: failed to load '(gnu packages accessibility)':
warning: failed to load '(gnu packages ada)':
warning: failed to load '(gnu packages android)':
warning: failed to load '(gnu packages animation)':
warning: failed to load '(gnu packages avr)':
warning: failed to load '(gnu packages axoloti)':
warning: failed to load '(gnu packages benchmark)':
warning: failed to load '(gnu packages bioconductor)':
warning: failed to load '(gnu packages bittorrent)':
warning: failed to load '(gnu packages bootloaders)':
warning: failed to load '(gnu packages chemistry)':
warning: failed to load '(gnu packages chez)':
warning: failed to load '(gnu packages ci)':
warning: failed to load '(gnu packages commencement)':
warning: failed to load '(gnu packages compton)':
warning: failed to load '(gnu packages connman)':
warning: failed to load '(gnu packages debian)':
warning: failed to load '(gnu packages debug)':
warning: failed to load '(gnu packages digest)':
warning: failed to load '(gnu packages display-managers)':
warning: failed to load '(gnu packages education)':
warning: failed to load '(gnu packages elixir)':
warning: failed to load '(gnu packages emulators)':
warning: failed to load '(gnu packages engineering)':
warning: failed to load '(gnu packages file-systems)':
warning: failed to load '(gnu packages finance)':
warning: failed to load '(gnu packages firmware)':
warning: failed to load '(gnu packages games)':
warning: failed to load '(gnu packages gps)':
warning: failed to load '(gnu packages guile-wm)':
warning: failed to load '(gnu packages hardware)':
warning: failed to load '(gnu packages idris)':
warning: failed to load '(gnu packages image-viewers)':
warning: failed to load '(gnu packages julia)':
warning: failed to load '(gnu packages kodi)':
warning: failed to load '(gnu packages license)':
warning: failed to load '(gnu packages lirc)':
warning: failed to load '(gnu packages lxde)':
warning: failed to load '(gnu packages make-bootstrap)':
warning: failed to load '(gnu packages mate)':
warning: failed to load '(gnu packages maven)':
warning: failed to load '(gnu packages microcom)':
warning: failed to load '(gnu packages monitoring)':
warning: failed to load '(gnu packages ntp)':
warning: failed to load '(gnu packages opencl)':
warning: failed to load '(gnu packages printers)':
warning: failed to load '(gnu packages pumpio)':
warning: failed to load '(gnu packages robotics)':
warning: failed to load '(gnu packages rust)':
warning: failed to load '(gnu packages scheme)':
warning: failed to load '(gnu packages security-token)':
warning: failed to load '(gnu packages stb)':
warning: failed to load '(gnu packages sync)':
warning: failed to load '(gnu packages syncthing)':
warning: failed to load '(gnu packages syndication)':
warning: failed to load '(gnu packages telephony)':
warning: failed to load '(gnu packages terraform)':
warning: failed to load '(gnu packages tmux)':
warning: failed to load '(gnu packages tor)':
warning: failed to load '(gnu packages toys)':
warning: failed to load '(gnu packages unrtf)':
warning: failed to load '(gnu packages vulkan)':
warning: failed to load '(gnu packages zile)':

Using guix pull complains about lack of bootstrap binaries.

When running guix pull via M-x guix, P, r, I get a *Guix Repl* with the following output:

GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,m (emacs-guix)
scheme@(emacs-guix)> (guix-command "pull")
$4 = #t
scheme@(emacs-guix)> 
It's been nice interacting with you!
Press C-c C-z to bring me back.
GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,m (emacs-guix)
scheme@(emacs-guix)> 

I am using

  • GNU Emacs 25.2.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.15) of 2017-08-14
  • guix.el 0.3.3
  • guile 2.2.2
    I am currently running binary guix on Ubuntu 17.04.

Some debugging on the created guix repl gives me the following:

scheme@(emacs-guix)> (guix-command-output "pull")
$4 = ""
$5 = "guix pull: error: could not find bootstrap binary 'guile-2.0.9.tar.xz' for system 'x86_64-linux'\n"

Invoking guix pull from any shell does seem to have the desired effect, and does not mention the bootstrap binary problem.

Error when running in a foreign distro

Hi, I am running Guix in two laptops, one is a full GuixOS and in the second one guix runs in a foreign distro (pop os!).

I don't have any problem running emacs-guix in the GuixOS laptop, but I am getting the following error in the foreign distro:

Debugger entered--Lisp error: (error "Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:\nUnbound variable: package/output-sexps\n\nEntering a new prompt.  Type `,bt' for a backtrace or `,q' to cont...")
  signal(error ("Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:\nUnbound variable: package/output-sexps\n\nEntering a new prompt.  Type `,bt' for a backtrace or `,q' to cont..."))
  error("Error in evaluating guile expression: %s" "ice-9/boot-9.scm:1685:16: In procedure raise-exception:\nUnbound variable: package/output-sexps\n\nEntering a new prompt.  Type `,bt' for a backtrace or ...")
  guix-geiser-eval("(package/output-sexps \"/var/guix/profiles/per-user..." #<buffer *Guix Internal REPL*>)
  guix-geiser-eval-read("(package/output-sexps \"/var/guix/profiles/per-user..." #<buffer *Guix Internal REPL*>)
  guix-eval-read("(package/output-sexps \"/var/guix/profiles/per-user...")
  guix-output-list-get-entries("/var/guix/profiles/per-user/nanounanue/guix-profil..." all)
  apply(guix-output-list-get-entries ("/var/guix/profiles/per-user/nanounanue/guix-profil..." all))
  bui-get-entries(guix-output list ("/var/guix/profiles/per-user/nanounanue/guix-profil..." all))
  guix-package-get-display("/var/guix/profiles/per-user/nanounanue/guix-profil..." all)
  guix-all-packages("/var/guix/profiles/per-user/nanounanue/guix-profil...")
  funcall-interactively(guix-all-packages "/var/guix/profiles/per-user/nanounanue/guix-profil...")
  call-interactively(guix-all-packages)
  magit-invoke-popup-action(97)
  funcall-interactively(magit-invoke-popup-action 97)
  call-interactively(magit-invoke-popup-action nil nil)
  command-execute(magit-invoke-popup-action)

This error happened when trying to list the packages.

Two buffers are opened, besides de *Backtrace*: *Guix REPL* y *Guix Internal REPL*.

The first one shows the following:


Enter `,help' for help.
scheme@(guile-user)> ,m (emacs-guix)
While executing meta-command:
no code for module (gcrypt hash)
scheme@(guile-user)> 

The second one just this:


Enter `,help' for help.
scheme@(guile-user)> ,m (emacs-guix)
scheme@(emacs-guix)> 

NOTE: In the GUIX reddit someone post a similar problem: https://www.reddit.com/r/GUIX/comments/ouv0p5/problem_with_emacsguix_on_foreign_distro/?utm_source=share&utm_medium=web2x&context=3

emacs-guix does not truly install

Using a GUI system, the command guix package -i emacs-guix

installs nothing but a single .el file, and the only command it provides is (guix-emacs-autoload-packages) . The documentation isn't helping me.

C-c C-z (switch-to-geiser) does not work

From a Scheme buffer in Guix mode:

  • M-x guix-switch-to-repl
    ; Point is not in the Guix REPL.
  • M-x switch-to-geiser
    ; Does nothing.

Is there a way to go back to the calling buffer?

org-mode Scheme source code block collides with guix-devel-code-block-edit

Hello Alex,

Before a new emacs-guix release, I want to discus a org-mode Scheme source code block:

#+BEGIN_SRC scheme

#+END_SRC

C-c ' inside this source code block will invoke a new buffer and window. After finishing typing a code, I assume to close it with C-c ', but instead I get a message user-error: The point should be inside ’description’ or ’synopsis’.

So, guix-devel-code-block-edit collide with a default well known by users org-mode behavior. Could we bind guix-devel-code-block-edit to another key?

Unable to compile locally

Hi, I tried to compile and install locally guix.el to play a bit with the code but I was unable to do it.

Those are the steps I did:

guix environment -l guix.scm
./autogen.sh
./configure --prefix=$PWD/install
make

Make fails when compiling the .el files. The problem seems to be in the build-aux/build-env.el file. This file seems to load the autoload definitions inside the guix enviroment using the function guix-emacs-autoload-packages passing it the environment directory.

The problem I have is that my guix installation defines that function not taking any argument, so that code fails.

I don't really know if I'm missing something or just that little script is broken but I managed to workaround it removing the argument, setting the EMACSLOADPATH env variable to point the environment and adding -q (why do it needs to load my init files?).

Am I missing something on how to build it locally using guix?

Thanks.

About %load-path

My question is: the first two path come from where? they are always in the begin of list

Enter `,help' for help.
scheme@(guile-user)> %load-path
$2 = ("/home/feng/.config/guix/latest" "/home/feng/.emacs.d/elpa/geiser-20170704.1044/scheme/guile/" "~/.config/guix/latest" "/home/feng/.emacs.d/elpa/geiser-20170704.1044/scheme/guile" "/run/current-system/profile/share/guile/site/2.2" "/gnu/store/jkhydh37k4dcrw3mhcv2hlcipalmpblf-guile-2.2.2/share/guile/2.2" "/gnu/store/jkhydh37k4dcrw3mhcv2hlcipalmpblf-guile-2.2.2/share/guile/site/2.2" "/gnu/store/jkhydh37k4dcrw3mhcv2hlcipalmpblf-guile-2.2.2/share/guile/site" "/gnu/store/jkhydh37k4dcrw3mhcv2hlcipalmpblf-guile-2.2.2/share/guile")
scheme@(guile-user)> 

This is my config:

(use-package guix
  :ensure nil
  :config
  (setq guix-directory "~/project/guix")
  (setq geiser-debug-jump-to-debug-p nil)
  (add-hook 'after-init-hook 'global-guix-prettify-mode)
  (add-hook 'scheme-mode-hook 'guix-devel-mode)
  (with-eval-after-load 'geiser-guile
    ;; NOTE: "~/.config/guix/latest/" is invaild,
    ;; use "~/.config/guix/latest" instead.
    (add-to-list 'geiser-guile-load-path
                 (concat (file-name-directory (locate-library "geiser.el"))
                         "scheme/guile"))
    (add-to-list 'geiser-guile-load-path "~/.config/guix/latest")))

Evil bindings for guix.el released!

Just to let you know: I've just added support for guix.el to Evil Collection.

Comments are welcome!

@alezost: It was a good opportunity to explore the various features of guix.el a bit more in depth: I'm amazed by how rich and polished the user experience is. You've done a fantastic job here!

"unbound variable" errors

First, thank you for the package! When it's all working it's a joy to use. Unfortunately, right now I am encountering an error.

If I execute M-x guix-package-by-name immediately after starting a fresh Emacs instance, I get the following error (as copied from *Messages*):

guix-geiser-eval: Error in evaluating guile expression: While executing meta-command:
error: %max-returned-list-size: unbound variable

Attempting to run the same command again in the same Emacs instance gives me a slightly different error:

guix-geiser-eval: Error in evaluating guile expression: While executing meta-command:
error: package-names*: unbound variable

This is with emacs 27.2 and emacs-guix 0.5.2-4.8ce6d21 installed via Guix on Guix System. Nothing in my Emacs config should be relevant except the use-package declarations to load the packages:

(use-package geiser-guile)

(use-package guix)

guix-edit does not always honour GUIX_PACKAGE_PATH

It seems that guix-edit and related locations functionality are not able to understand external guix package definitions. Whereas the actual packages names are loaded properly in the selection list after issuing guix-edit (due to that happening in the guix repl, I presume?), the link to e.g. gnu/packages/third-party.scm is resolved to ~/.guix-profile/latest/gnu/packages/third-party.scm, while it is actually in $GUIX_PACKAGE_PATH/gnu/packages/third-party.scm.

Consequently, I cannot currently use guix.el to easily edit my out-of-tree package defintions.

I am using a git checkout of the guix tree in ~/.guix-profile/latest, in case that might influence things.

Doesn't seem to work with Guile 3.0

I end up with a lot of errors of the form:

;;; WARNING: loading compiled file /home/slade/.config/guix/current/lib/guile/3.0/site-ccache/guix/ui.go failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode kind

Implement the Emacs interface for the GNU Shepherd

Hello,

What do you think about implementing the Emacs interface for the GNU Shepherd?

Feautures:

  • Start, stop, reload, restart, status service.
  • Load new and redefine existing services.
  • List services.

Thanks,
Oleg.

Broken since the .config/guix/latest -> .config/guix/current change?

I've noticed since the last few weeks that guix.el fails to do many things:

  • It seems that it sees the package definition from .config/guix/latest (which is now outdated).
  • All transactions fail (installation, removal).
scheme@(emacs-guix)> (process-package-actions "/var/guix/profiles/per-user/ambrevar/guix-profile" #:install '((58691776 "out")) #:upgrade '() #:remove '() #:use-substitutes? #t #:dry-run? #f)
The process begins ...
The following package will be installed:
   ncdu	1.13	/gnu/store/ir2izsd72axl0xxdl4aapr9bz0vssm31-ncdu-1.13

substitute: updating substitutes from 'http://mirror.hydra.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/92pz45s40vgyk5kn7h8f40q0gx47avl8-profile.drv
   /gnu/store/w6lnbyr3a4ghpfdn06rdvaq4qivb31dm-xdg-mime-database.drv
   /gnu/store/lhzg3cpnlc2zbdylxi7g0hf2l6xsg9xn-gtk-icon-themes.drv
   /gnu/store/fi1x56vgl3pdjxmfvbr7mncfalal98yz-ca-certificate-bundle.drv
   /gnu/store/an61h203f1cxa76rxd1d2vcpdj5pcglq-glib-schemas.drv
   /gnu/store/8agfwvylacn4ylgwd82qh1gvfvdcr9z8-xdg-desktop-database.drv
   /gnu/store/7m2hkyri6z86pmrhvsn5f423vpicx89z-info-dir.drv
   /gnu/store/57k1zz4jwscbkr02gxsbdv3cwij4grwr-gtk-im-modules.drv
   /gnu/store/438djmkajir6ikfal453c47bby6791d9-fonts-dir.drv
   /gnu/store/3chn2amck5455dkw9jdl7c01sx7kp2p9-ghc-package-cache.drv
   /gnu/store/ix790527fc5n43zrvbyxxxv65fmhb60r-manual-database.drv
Backtrace:
          10 (primitive-load "/gnu/store/dlqqng4xbamabl8b0j5jacxqd4m?")
In ice-9/eval.scm:
   721:20  9 (primitive-eval (begin (use-modules (guix build #) ?) #))
In ice-9/psyntax.scm:
  1235:36  8 (expand-top-sequence ((begin (use-modules (# # ?) ?) ?)) ?)
  1182:24  7 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
  1182:24  6 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
   285:10  5 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) ?)
In ice-9/boot-9.scm:
  3365:20  4 (process-use-modules _)
   222:17  3 (map1 (((guix build utils)) ((guix build union)) ((?)) ?))
  3366:31  2 (_ ((guix build utils)))
   2791:6  1 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ ?)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("no code for modu?" ?) ?)

ERROR: In procedure scm-error:
no code for module (guix build utils)

Error on startup: Unbound variable: %max-returned-list-size

The first time I run a guix command, I get the following error:

helm-M-x: Error in evaluating guile expression: <unnamed port>:17:23: In procedure module-lookup: Unbound variable: %max-returned-list-size

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.

Running the command again works though.

`guix package --list-profiles`?

Dear,

If I read well, the profiles are provided by this piece of code (defcustom) and then listed by this piece of code (defun).

Now there is an CLI to list all the user's profile: guix package --list-profiles.

I am not sure to have my mind clear enough: using this new Guix plumbing, is it better to update the variable guix-profile or the function?

Thank you in advance.
All the best

Breaks tab completion in shell-mode buffers

When I type a command other than guix in my shell, I can complete fine. If I type:

l0p!ieure:~$ ls ~/Pro

...and then press TAB, it expands to:

l0p!ieure~$ ls ~/Projects/

If I do the same thing, but with any command beginning with guix, such as:

l0p!ieure~$ guix home reconfigure ~/Pro

...then tab completion doesn't work, and I get this error in my *Messages* buffer:

guix-geiser-eval: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
/home/ieure/.config/guix/current/share/guile/site/3.0/guix/scripts/deploy.scm:176:7: Unknown # object: "#~"

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(emacs-guix) [5]> 

This is the stack trace up to that error:

Debugger entered--Lisp error: (error "Error in evaluating guile expression: ice-9/boot-9...")
  error("Error in evaluating guile expression: %s" "ice-9/boot-9.scm:1685:16: In procedure raise-excep...")
  guix-geiser-eval("(help-string )" #<buffer *Guix Internal REPL*>)
  guix-geiser-eval-read("(help-string )" #<buffer *Guix Internal REPL*>)
  guix-eval-read("(help-string )")
  guix-help-string(nil)
  guix-pcomplete-search-in-help("^   \\([[:word:]]\\(?:[[:word:]]\\|-\\)+\\)" 1)
  apply(guix-pcomplete-search-in-help "^   \\([[:word:]]\\(?:[[:word:]]\\|-\\)+\\)" 1 nil)
  #f(compiled-function (&rest commands) #<bytecode 0xa94b9d9a9533046>)()
  apply(#f(compiled-function (&rest commands) #<bytecode 0xa94b9d9a9533046>) nil)
  guix-pcomplete-commands()
  pcomplete/guix()
  pcomplete-completions()
  pcomplete-completions-at-point()
  comint-completion-at-point()
  completion--capf-wrapper(comint-completion-at-point all)
  completion-at-point()
  funcall-interactively(completion-at-point)
  command-execute(completion-at-point)

This happens for any command which begins with guix; if guix is in any position other than the start of the command, it works fine, so commands like ls guix are unaffected.

The immediate issue is that guix-help-string is called with a nil argument, which it can't handle and has no guard for. The potential larger issue is that this is being called when the thing needs to be completed isn't a guix command, but a file path.

Changing guix-help-string to return an empty string when commands is nil prevents the error, but completion of guix subcommands doesn't work, and I'm not convinced this is a proper fix.

I'm using guix.el on GuixSD, installed via Guix. My emacs-guix package version is 0.5.2-7.455272c. Here's the output of guix describe:

  guix 61f2d84
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 61f2d84e75c340c2ba528d392f522c51b8843f34
  katco-upstream-staging 80bfd9f
    repository URL: https://github.com/kat-co/guix-channels.git
    branch: upstream-staging
    commit: 80bfd9f61502dcc2df9da21d7804480732157e97
  atomized 7cdeec5
    repository URL: https://codeberg.org/ieure/atomized-guix.git
    branch: main
    commit: 7cdeec5154ab140d8463f38113b25bd4a334a080
  nonguix 0f7c8e3
    repository URL: https://gitlab.com/nonguix/nonguix
    branch: master
    commit: 0f7c8e3e2b72c19d8a60b2a7e94a9ca8783d4754

latex-mode takes a precedence on .drv files in auto-mode-alist

Hello,

Our derivation mode has a conflict probably with auctex in auto-mode-alist. The latex-mode from auctex takes a precedence. Is it our or auctex problem?

natsu@magnolia ~/src/emacs-guix$ find -L ~/.guix-profile/share/emacs | xargs grep drv 2>/dev/null
Binary file /home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-config.elc matches
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex.el:(add-to-list 'auto-mode-alist '("\\.drv\\'" . latex-mode))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/style/shortvrb.el:;; the style list is empty.  In its master file, preview.drv, it
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/auctex-autoloads.el:(add-to-list 'auto-mode-alist '("\\.drv\\'" . latex-mode))
Binary file /home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex.elc matches
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/preview.dtx:%<installer>    \file{preview.drv}{\from{preview.dtx}{driver}}
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/preview.dtx:% TeX-master: "preview.drv"
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/.gitignore:*.drv
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:all: $(TEXMFGEN) preview.drv preview-mk.ins preview.dvi preview.pdf
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:$(TEXMFGEN) preview.drv: preview.dtx preview-mk.ins
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:preview.dvi: preview.drv preview.dtx preview.sty
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(LATEX) '\nonstopmode \input preview.drv'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(LATEX) '\nonstopmode \input preview.drv'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(LATEX) '\nonstopmode \input preview.drv'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:preview.pdf: preview.drv preview.dtx preview.sty
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	$(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}'
/home/natsu/.guix-profile/share/emacs/site-lisp/guix.d/auctex-11.91.0/latex/Makefile.in:	rm -f *~ *.aux *.dvi *.drv *.log
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.el:;; derivation files (*.drv).
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.el:(defface guix-derivation-drv-file-name
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.el:  "Face for '*.drv' store file names."
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.el:  '(("\\.drv\\'" . guix-derivation-drv-file-name)
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.el:(add-to-list 'auto-mode-alist '("\\.drv\\'" . guix-derivation-mode))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-log.el:             (cons (rx "/guix/drvs/" (= 2 alnum) "/" (= 30 alnum)
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-log.el:                       "-" (+ (any alnum "-+.")) ".drv" string-end)
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-autoloads.el:(add-to-list 'auto-mode-alist (cons (rx "/guix/drvs/" (= 2 alnum) "/" (= 30 alnum) "-" (+ (any alnum "-+.")) ".drv" string-end) 'guix-build-log-mode))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-autoloads.el:(add-to-list 'auto-mode-alist '("\\.drv\\'" . guix-derivation-mode))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-config.el:      (expand-file-name "images" "/tmp/guix-build-emacs-guix-0.3.3-e9e9e02.drv-0/source")))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-config.el:      (expand-file-name "scheme" "/tmp/guix-build-emacs-guix-0.3.3-e9e9e02.drv-0/source")))
/home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-config.el:      (expand-file-name "scheme" "/tmp/guix-build-emacs-guix-0.3.3-e9e9e02.drv-0/source")))
Binary file /home/natsu/.guix-profile/share/emacs/site-lisp/guix-build-log.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/site-lisp/guix-derivation.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/site-lisp/geiser-install.elc matches
/home/natsu/.guix-profile/share/emacs/site-lisp/geiser-autoloads.el:(setq geiser-scheme-dir "/gnu/store/9kfky3gnvrcpa0kmnmwalv8drvh36i3q-geiser-0.9/share/geiser")
/home/natsu/.guix-profile/share/emacs/site-lisp/geiser-install.el:(setq geiser-scheme-dir "/gnu/store/9kfky3gnvrcpa0kmnmwalv8drvh36i3q-geiser-0.9/share/geiser")
Binary file /home/natsu/.guix-profile/share/emacs/25.3/lisp/bindings.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/25.3/lisp/leim/quail/ZIRANMA.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/25.3/lisp/dos-w32.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/25.3/lisp/international/latexenc.elc matches
Binary file /home/natsu/.guix-profile/share/emacs/25.3/lisp/international/mule-conf.elc matches```

Oleg.

`find-newest-available-packages` disappeared

Hello,

I removed find-newest-available-packages from (gnu packages) in Guix commit e2a903c807ccacec5925f197ce26f626060e1953 (Jan. 2019) because it was not used internally. Only recently did I realize that Emacs-Guix uses it.

Would it be an option for you to re-introduce it in packages.scm in Emacs-Guix proper? WDYT?

Apologies for the breakage!

Guix support in Helm System Packages?

I'm the current maintainer of Helm System Packages, a Helm-powered package manager which supports pacman, portage, dpkg (all Debian-based distributions) and xbps (Void Linux). It also runs over the network via TRAMP!

I was thinking of adding support for Guix but since there is an obvious overlap with guix.el I thought it would be worth discussing the features first.

guix-all-available-packages already provides most of the features of Helm System Packages. Combine it with helm-occur and you get a similar browsing experience.
The main missing feature provided by Helm System Packages is the ability to mark the results of a search.

Thus I would suggest the following: helm-system-packages for Guix would simply switch to the *Guix Packages:... buffer and run a Helm-occur-like session where the action is to mark the packages. The downside is that it would not work over the network.

Otherwise I could just go ahead and re-implement an independent cache of the list of packages.

Thoughts?

ws-butler and selectrum break package search

Steps

  1. Turn on ws-butler-global-mode and selectrum-mode.
  2. Call guix-package-by-name and select any package.

Here, I select the "go" package. Result:

if: Error in evaluating guile expression: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure string-index-right: Wrong type argument in position 1 (expecting string): #("go" 0 2 (ws-butler-chg chg))
   
Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(emacs-guix) [1]> 

I'm not sure what's happening but at a guess, ws-butler is active in the selectrum minibuffer and propertizes the string candidate we send to Guile.

This is a workaround that perhaps should be upstreamed to ws-butler:

(add-to-list 'ws-butler-global-exempt-modes #'minibuffer-inactive-mode)

If I'm right that it's text properties, perhaps guix.el could de-propertize any strings before sending them to external programs.

Shows packages from previous pull on foreign distro

As I mentioned in this thread on help-guix, using the recommended workaround for foreign distros as indicated in #28 and #29 didn't really work for me. At first it seems that package lists work, however on close inspection I noticed that emacs-guix shows package descriptions from the previous pull.

For example, after pulling with guix pull and updating packages with guix package -u, running guix package -s guix yields version 1.0.1-15.0984481 (which matches ~/.guix-profile/bin/guix --version and the description shown by guix edit guix). However, if I then run a new Emacs and open guix-installed-packages, guix is marked as being "from the future":

guix 1.0.1-15.0984481

This package is from the future, i.e. this (installed) package
is newer than the available package recipe for guix.

And when I follow the "guix" link to open that recipe, it is for guix 1.0.1-14.c2f9ea2 (i.e. that in the previous pull). In fact, opening guix in guix-all-packages shows the description of guix 1.0.1-14.c2f9ea2 straight away.

I don't know if this is something that would go away by using guix repl internally, but I'm happy to do whatever testing is needed.

Thanks a lot for the very nice package!

wrong search with regexp

Dear,

Giving a look to the guix search command, see [1] and [2], I notice that M-x guix p r drawing tools outputs only these 2 packages texlive-latex-eepic and tuxpaint.

  • The good news is that the issue reported in guix search is not in M-x guix p r. :-)

  • The bad news is that---for example---the package r-cli is not listed and it should be because the description field has the both terms drawing and tools.

Do I miss something?

Thank you in advance.
And thank you for this nice interface.

All he best,
simon

[1] https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00263.html
[2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36763

Deleting system generations

At the moment it seems that it's not possible to delete system generations without starting Emacs as root.

Would it be possible to lift this limitation for example using TRAMP?

Besides, is it possible to delete a system generation from the commandline?

Issues with "size" command

When the package is not installed guix.el should warn the user appropriately. Instead it returns:

  • no result in text mode,
  • "no file ... found" in image mode.

When the package is installed, image mode fails with:

guix-geiser-eval: Error in evaluating guile expression: guix/scripts/size.scm:202:4: In procedure profile->page-map:
error: make-page-map: unbound variable

guix-geiser-eval - Unknown meta command: geiser-eval

Hello,

Issue

I use guix package manager on a Fedora 33. Emacs is installed from the fedora repo and guix.el from elpa/melpa.

Whenever I run a command that interact with geiser, I face the following error:

guix-geiser-eval: Error in evaluating guile expression: Unknown meta command: geiser-eval
$7 = #f
$8 = "GNU Guix"
While compiling expression:
ERROR: Syntax error:
unknown location: unexpected syntax in form ()
scheme@(emacs-guix) [6]> 

The text following the first line changes following which action I want to perform.

I can launch the geiser REPL with run-geiser, without problems.

Softwares version

Emacs: GNU Emacs 27.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0) of 2020-08-21
Guix.el: 20201222.907 (commit bb2a053)
Geiser: 20210215.555 (e97ad73f97efc5c52a3f4ab2fc92db9be53efa2b)
Guile: GNU Guile 3.0.5 (~/.guix-profile/bin/guile)

Guix REPL is not found

I get Starting Guix REPL... in minibuffer, then after some while geiser-repl--wait-for-prompt: No prompt found!
The Guix REPL gets opened in a buffer, but it seems like guix.el cannot find it.

I use guix as package manager on manjaro linux, did your PATH setup and have guix guile and emacs-guix installed through the guix package manager.

Can't view packages for Guix on Debian

I'm running a Guix-managed installation of Emacs 26.1 on my Debian computer. I'm having trouble doing most things with your Guix frontend, though. Here's what happens upon trying to view my Guix packages:

(setq debug-on-error t)

(require 'geiser)
(require 'guix)
Debugger entered--Lisp error: (error "Error in evaluating guile expression: <unnamed port>:17:23: In procedure module-lookup: Unbound variable: %max-returned-list-size\n\nEntering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.\nscheme@(emacs-guix) [1]> ")
  signal(error ("Error in evaluating guile expression: <unnamed port>:17:23: In procedure module-lookup: Unbound variable: %max-returned-list-size\n\nEntering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.\nscheme@(emacs-guix) [1]> "))
  error("Error in evaluating guile expression: %s" "<unnamed port>:17:23: In procedure module-lookup: Unbound variable: %max-returned-list-size\n\nEntering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.\nscheme@(emacs-guix) [1]> ")
  guix-geiser-eval("(begin (set! %max-returned-list-size 10)(set! %temporary-directory \"/tmp/emacs-guix-Ivsyqk\"))" #<buffer *Guix Internal REPL*>)
  guix-eval("(begin (set! %max-returned-list-size 10)(set! %temporary-directory \"/tmp/emacs-guix-Ivsyqk\"))")
  guix-repl-configure-guile-side()
  run-hooks(guix-repl-after-start-hook)
  guix-start-repl-maybe(nil "Starting Guix REPL ..." nil)
  guix-start-process-maybe()
  guix-get-repl-buffer(internal)
  guix-eval-read("(help-string )")
  guix-help-string(nil)
  guix-command-parse-arguments(nil)
  guix-command-all-arguments(nil)
  guix-command-arguments(nil)
  guix-command-generate-popup(guix-popup nil)
  guix(nil)
  funcall-interactively(guix nil)
  call-interactively(guix record nil)
  command-execute(guix record)
  execute-extended-command(nil "guix" "guix")
  funcall-interactively(execute-extended-command nil "guix" "guix")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

M-x guix doesn't seem to be working for me with the above minimal config using guix-installed versions of these packages. I'd appreciate any help. I'm using Geiser v 0.10 and Guile 2.2.4. Thanks for your time.

"Guix REPL ... No prompt found!" ( -> Emacs package unusable ? )

Package seems to get installed by

$ guix package -i emacs-guix

, yet when one goes M-x 'guix-installed-packages..." i get

Starting Guix REPL ... No prompt found!

(let me add that a Guile REPL prompt is opened in another parallel buffer, though )

... thus, leaving the package unusable.

Thanks, thanks, thanks

guix-popup has failed after installing magit from melpa.org

Hi @alezost,

I'm using guix-1.1.0 with emacs-guix is installed from guix package

And after I install magit from melpa.org, the guix-popup doesn't work anymore. I believe it relative with magit-popup, because all functions guix still works well.

with toggle-debug-on-error I have:

Debugger entered--Lisp error: (wrong-type-argument sequencep all)
  cl-intersection((all magit) all)
  byte-code("\301\302!\210\301\303!\210\301\304!\210\301\305!\210\301\306\307\310#\203/\0\311\312\313\300!\205!\0\010\"\203/\0\314\315!\203/\0\315\316!\210\317\320\307\321\322\323\324\325&\007\210\317\326\307\327\324\320%\210\330\331\332\333\334DD\335\336\337\324\320\340\341&\011\210\330\342\332\333\343DD\344\324\320\340\345&\007\210\330\346\332\333\347DD\350\324\320\340\351&\007\210\330\352\332\333\353DD\354\336\355\324\320\340\351&\011\210\330\356\332\333\357DD\360\324\320\340\361&\007\210\362\363\364\365\324\326%\210\362\366\367\370\324\326%\210\362\371\372\373\324\326%\210\362\374\375\376\324\326%\210\362\377\201@\0\201A\0\324\326%\207" [async-bytecomp-allowed-packages require button cl-lib dash format-spec async-bytecomp nil t cl-intersection (all magit) boundp fboundp async-bytecomp-package-mode 1 custom-declare-group magit-popup "Infix arguments with a popup as feedback." :link (info-link "(magit-popup)") :group bindings magit-popup-faces "Faces used by Magit-Popup." custom-declare-variable magit-popup-display-buffer-action funcall function #f(compiled-function () #<bytecode 0xfe8139>) "The action used to display a popup buffer.\n\nPopup buffers are displayed using `display-buffer' with the value\nof this option as ACTION argument.  You can also set this to nil\nand instead add an entry to `display-buffer-alist'." :package-version (magit-popup . "2.4.0") :type sexp magit-popup-manpage-package #f(compiled-function () #<bytecode 0xfe8151>) "The package used to display manpages.\nOne of `man' or `woman'." (choice (const man) (const woman)) magit-popup-show-help-echo #f(compiled-function () #<bytecode 0xfe8161>) "Show usage information in the echo area." boolean magit-popup-show-common-commands #f(compiled-function () #<bytecode 0xfe8171>) "Whether to initially show section with commands common to all popups.\nThis section can also be toggled temporarily using \\<magit-popup-mode-map>\\[magit-popup-toggle-show-common-commands]." (magit-popup . "2.9.0") magit-popup-use-prefix-argument #f(compiled-function () #<bytecode 0xfe8181>) "Control how prefix arguments affect infix argument popups.\n\nThis option controls the effect that the use of a prefix argument\nbefore entering a popup has.\n\n`default'  With a prefix argument directly invoke the popup's\n           default action (an Emacs command), instead of bringing\n           up the popup.\n\n`popup'    With a prefix argument bring up the popup, otherwise\n           directly invoke the popup's default action.\n\n`nil'      Ignore prefix arguments." (choice (const :tag "Call default action instead of showing popup" default) (const :tag "Show popup instead of calling default action" popup) (const :tag "Ignore prefix argument" nil)) ...] 10)
  require(magit-popup)
  byte-code("\300\301!\210\300\302!\210\303\304\305\306\307\310%\207" [require magit-popup guix-profiles custom-declare-group guix-popup nil "Popup interface for Emacs-Guix commands." :group guix] 6)
  autoload-do-load((autoload "guix-popup" nil t nil) guix)
  command-execute(guix record)
  counsel-M-x-action("guix")
  ivy-call()
  ivy-read("M-x " ("toggle-debug-on-error" "package-delete" "guix-system-generations" "guix-all-services" "guix-all-packages" "cd" "magit" "5x5" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "calc" "diff" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "mail" "mpuz" "ping" "pong" "smex" "talk" "term" "undo" "yank" "zone" "align" "chmod" "debug" "diary" "dired" "ediff" ...) :predicate #f(compiled-function (x) #<bytecode 0xe315ed>) :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

I discovered if I remove rm .emacs.d/elpa/async-20200809.501/ -rf (a dependency of magit), guix-popup works well again.

Some infomations:

emacs-guix 0.5.2                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                               
Outputs:                                                                                                                                                                                       
  out                                                                                                                                                                                          
    Store directory:                                                                                                                                                                           
      /gnu/store/j8x9rgxyhiaixk0w4h5d5kx719l31392-emacs-guix-0.5.2  Store item                                                                                                                 
    Dependencies:                                                                                                                                                                              
      /gnu/store/sil5d94sxsqm2bay2l1qflgg8zlsk3q6-emacs-geiser-0.11.2  Store item                                                                                                              
      /gnu/store/c64fi1b6qy4apvc8nza3palfii13fb5i-guile-gcrypt-0.2.1  Store item                                                                                                               
      /gnu/store/zcf2b4fvv0lak1lxmvncy1bliq8s8mby-emacs-dash-2.17.0  Store item                                                                                                                
      /gnu/store/vjajf14zn5cn2q0rpjpnfi9sfylz9pvk-emacs-bui-1.2.1  Store item                                                                                                                  
      /gnu/store/wnhfg5jh9kg718ax6dh4y0yh2h18r0xv-emacs-edit-indirect-0.1.5  Store item                                                                                                        
      /gnu/store/4p7n6xij0ql5asqdyym5icnkp8r6k5sg-emacs-magit-popup-2.12.5  Store item 
magit is an installed package.                                                                                                                                                                 
                                                                                                                                                                                               
     Status: Installed in ‘magit-20201119.1947/’ (unsigned). [Delete]                                                                                                                          
    Version: 20201119.1947                                                                                                                                                                     
     Commit: 04e641ac8579b0c2feda738e77e8a7c9bb6945da                                                                                                                                          
    Summary: A Git porcelain inside Emacs.                                                                                                                                                     
   Requires: emacs-25.1, async-20200113, dash-20200524, git-commit-20200516,                                                                                                                   
               transient-20200601, with-editor-20200522                     

Thanks

guix install -i emacs emacs-guix, still unable to run M-x guix commands

I've installed emacs and emacs-guix yet nothing happens when I type M-x guix inside emacs. Am I missing something obvious? Let me know what additional information I can provide, as I'm an emacs noob.

$ guix package -I | grep emacs
emacs	27.1	out	/gnu/store/7mvfn7d96q61lmya9j6hw77zn0z45d2q-emacs-27.1
emacs-guix	0.5.2-3.a694fdb	out	/gnu/store/p7n9i8gjz29w68dmywz8n50fdmwpb47n-emacs-guix-0.5.2-3.a694fdb

a checked out guix

Say I have a foder with a checked ot guix master branch in it

Manually, I use to cd into that folder, then call

.pre-ins-env guix ... blah blah
.pre-ins-env guile ... blah blah

I'd like the manual to give an example of how to configure the guix-guile-program variable in order to have Emacs-Guix using the guix/guile from within that folder as I do manually

Thanks

Installing guix doesn't install it's dependency geiser-guile

It looks like this package doesn't specify geiser-guile as it's dependency. Whenever I try to execute the command guix-packages-by-name, Emacs says eval-buffer: Cannot open load file: No such file or directory, geiser-guile. I've solved the problem by installing geiser-guile myself, but it should be automatically install when someone installs guix.

Only Small Subset of Pacakges Appear on GuixSD

With an up-to-date GuixSD, I do not see all (10,000+) packages, but rather only a small subset (~790). I seem to recall it showing all packages the first time I ran it.

Using guix-installed emacs on Debian GNU/Linux buster, I see all 10,000+ pacakges.

Unable to use guix

I have a fresh guix install on top of ArchLinux.

Then when I run

    guix install emacs
	guix install emacs-guix
	emacs -nw -q
	M-x guix-all

I get

Screenshot_20210203_214432

What am I doing wrong ? Thanks !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.