bug#55013: Guix-emacs doesn't work

2023-03-25 Thread Ricardo Wurmus


Ryan Prior  writes:

>> this no longer seems to be a problem. Can you please confirm that this
>> issue can be closed now?
>
> I can confirm that the emacs-guix package is still broken.
>
> ## Steps to reproduce
> 1. launch Emacs in a container:
>   $ guix shell -C --no-cwd --expose=/gnu --expose=/var --share=/tmp  -E 
> DISPLAY emacs emacs-guix -- emacs
> 2. run M-x guix-installed-packages
>
> ### Expected result
> A list of installed packages should appear.

FWIW M-x guix-installed-packages (and all the other stuff) works for me
with my Emacs config.  I haven’t tried to reproduce this in a container
yet without my Emacs config, but I’ll try soon.

-- 
Ricardo





bug#55013: Guix-emacs doesn't work

2023-03-25 Thread Ryan Prior via Bug reports for GNU Guix
--- Original Message ---
On Monday, March 20th, 2023 at 7:09 PM, Ricardo Wurmus  
wrote:


> 
> 
> Hi,
> 
> this no longer seems to be a problem. Can you please confirm that this
> issue can be closed now?

I can confirm that the emacs-guix package is still broken.

## Steps to reproduce
1. launch Emacs in a container:
  $ guix shell -C --no-cwd --expose=/gnu --expose=/var --share=/tmp  -E DISPLAY 
emacs emacs-guix -- emacs
2. run M-x guix-installed-packages

### Expected result
A list of installed packages should appear.

### Actual result
In *Messages* buffer:
> guix-geiser-eval: Error in evaluating guile expression: 
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> Unbound variable: %max-returned-list-size

## My Guix version
$ guix --version | grep guix
guix (GNU Guix) 51f8a7aced70b7f79037bd99019dddaea07ced25

## Discussion

When I was working to create an Emacs Guix package 
(https://github.com/ryanprior/emacs-guix-packaging) to support my own 
workflows, folks were critical of how I run Guix commands in the shell and 
parse the output instead of building on the Emacs Guix package and its Guile 
REPL approach. But in practice, this package has never worked for me, I always 
get REPL errors.

Since then, I have often discussed emacs-guix with other Emacs users in the 
community and thus realized I'm far from the only one who's never once got it 
to work. Today, despite the efforts of multiple engineers, it remains 
reproducibly broken.

My inclination would be to remove entirely the dependency on Geiser and the 
Guix REPL, opting instead to connect to a guix-ui service over a stable HTTP 
API. The API endpoints would be documented and tested as part of the formal 
interface to Guix, and the Emacs package would become a client of that 
interface.

Whether you like my alternative or not, do most Guix maintainers have 
confidence in the current approach and think emacs-guix just needs a bugfix 
here or there, or does anyone else get the impression that it's unsound and 
needs a new approach?

Ryan





bug#62448: Inconsistent guile enviornment from guix shell

2023-03-25 Thread Skyler via Bug reports for GNU Guix
Hello,

The modules available in a guile REPL seem to be inconsistent after running the 
guix shell command, where using the -D flag to create a development environment 
behaves as expected, but leaving out that flag to add the package itself to the 
environment does not. I am experiencing this issue with some random code on my 
machine, but I will use guile-pubstrate defined in guix code 
(https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile-xyz.scm?id=04724e59971b03f86a410285653d24005c62b924#n340)
 as an example for reproduction. Note that guile-pubstrate lists guile-webutils 
as a propagated input.

When I use `guix shell -D guile-pubstrate`, I am able to import the `(webutils 
bytevectors)` module, as I would expect. I am not able to import `(pubstrate 
apclient)`, also as I would expect. Inspecting GUILE_LOAD_PATH shows that a new 
profile path was added which contains the dependencies:

$ guix shell -D guile-pubstrate --checkguix shell: checking the environment 
variables visible from shell 
'/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.7
Copyright (C) 1995-2021 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)> (use-modules (webutils bytevectors))
scheme@(guile-user)> (use-modules (pubstrate apclient))
While compiling expression:
no code for module (pubstrate apclient)
scheme@(guile-user)> ,q
[env]$ echo $GUILE_LOAD_PATH
/gnu/store/pr4vyrz2xsziv25hrdfyim0wy331p4z5-profile/share/guile/site/3.0:/run/current-system/profile/share/guile/site/3.0:/home/skyler/.guix-profile/share/guile/site/3.0
$ ls /gnu/store/pr4vyrz2xsziv25hrdfyim0wy331p4z5-profile/share/guile/site/3.0
8sync      apicheck.scm  config     debugging  fibers      gcrypt    gnutls     
 graph         io       match-bind.scm  md5.scm  rx      search  sjson.scm  
term     text           web
8sync.scm  compat        container  fash.scm   fibers.scm  gdbm.scm  gnutls.scm 
 htmlprag.scm  logging  math            os       scheme  sjson   string     
texinfo  unit-test.scm  webutils

However, when I use guix shell guile-pubstrate, neither (webutils bytevectors) 
nor (pubstrate apclient) are available. I would expect both of them to be, the 
former because it is a propagated input and the latter because it is the 
package that was directly added. If guile was able to locate pubstrate's 
modules, I would expect loading to fail because its runtime dependencies are 
not available. Inspecting GUILE_LOAD_PATH shows that nothing was added to it:

$ guix shell guile-pubstrate --check
guix shell: checking the environment variables visible from shell 
'/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.9
Copyright (C) 1995-2023 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)> (use-modules (webutils bytevectors))
While compiling expression:
no code for module (webutils bytevectors)
scheme@(guile-user)> (use-modules (pubstrate apclient))
While compiling expression:
no code for module (pubstrate apclient)
scheme@(guile-user)> ,q
[env]$ echo $GUILE_LOAD_PATH
/run/current-system/profile/share/guile/site/3.0:/home/skyler/.guix-profile/share/guile/site/3.0


This is not an issue with the guile-pubstrate definition in particular, because 
guix shell guile-webutils also fails to add its modules to my environment:


$ guix shell --check guile-webutilsThe following derivation will be built:
  /gnu/store/ca8gv3yk2khs0h60kc5v682g7gvfqd23-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
guix shell: checking the environment variables visible from shell 
'/gnu/store/d99ykvj3axzzidygsmdmzxah4lvxd6hw-bash-5.1.8/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.
[env]$ guile
GNU Guile 3.0.9
Copyright (C) 1995-2023 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)> (use-modules (webutils bytevectors))
While compiling expression:
no code for module (webutils bytevectors)

My machine is up-to-date as of today:

Generation 32 Mar 25 2023 11:32:38 (current)  guix 04724e5
    repository URL: 

bug#61627: Cannot start a container built with `guix system container --network'.

2023-03-25 Thread Arun Isaac


> I'm inclined to keep it in %network-configuration-files just to be
> safe.

I agree. I don't really understand the implications of removing
/etc/hosts from %network-configuration-files. I would err on the side of
caution and leave it there for now.

@Pierre: Could you make a patch of the fix you suggested earlier
(removing hosts-service-type when the --network flag is provided) and
push it? Thank you!





bug#62442: Latest Guix binary download permission issues

2023-03-25 Thread Lars-Dominik Braun
Hi,

as noted in [1] the latest Guix binary (tar.xz) from CI has the following
directory entry:

drwx-- root/root 0 1970-01-01 01:00 ./

When installing this tarball using guix-install.sh the system will
be bricked instantly, because the `tar -xf` command does not include
--no-overwrite-dir, causing / to become readable only for the root user.

Cheers,
Lars

[1] https://github.com/PromyLOPh/guix-install-action/issues/20