Broken lisp-fill-paragraph post Emacs 28 update

2022-07-08 Thread Maxim Cournoyer
Hi,

If you too have been wondering why hitting M-q on package descriptions
doesn't produce the intended effect anymore (the first line of text
protrudes beyond the fill-column value), this may be of interest.

The problem was introduced in commit 9bf367e1848, which aimed to improve
the handling of Elisp docstrings.  To revert to the old version (the one
that shipped with Emacs 27), you can put this in your .emacs:

--8<---cut here---start->8---
(require 'lisp-mode)
(defun lisp-fill-paragraph ( justify)
  (interactive "P")
  (or (fill-comment-paragraph justify)
  (let ((paragraph-start
 (concat paragraph-start
 "\\|\\s-*\\([(;\"]\\|\\s-:\\|`(\\|#'(\\)"))
(paragraph-separate
 (concat paragraph-separate "\\|\\s-*\".*[,\\.]$"))
(fill-column (if (and (integerp emacs-lisp-docstring-fill-column)
  (derived-mode-p 'emacs-lisp-mode))
 emacs-lisp-docstring-fill-column
   fill-column)))
(fill-paragraph justify))
  ;; Never return nil.
  t))
--8<---cut here---end--->8---

For more details, you can refer to the (now closed) upstream bug report
here [0].

[0]  https://issues.guix.gnu.org/56197

Happy hacking!

Maxim



Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Ekaitz Zarraga
Hi,
As some extra info:
`guix shell` by default does what `guix environment --ad-hoc` did.
And `guix shell --development` is what `guix environment` was.

They are equivalent, but the flags might be confusing at the beginning!

Happy hacking!
Ekaitz

[ElenQ Technology](https://elenq.tech)
Ethical Innovation

--- Original Message ---
On Saturday, July 9th, 2022 at 12:16 AM, Zelphir Kaltstahl 
 wrote:

> Hello : )
>
> Thank you both! I did not know that. I previously mistakenly thought 
> "environment = shell", but did not know, that I would have to add `-D` or 
> `--development` to actually make an equivalent call. So `guix shell`, I 
> guess, is more nuanced then, than `guix environment`.
>
> Anyway, that solves it, thank you!
>
> Best regards,
> Zelphir
>
> On 7/9/22 00:07, Ekaitz Zarraga wrote:
>
>> Hi,
>> Isn't `guix environment guix` equivalent to `guix shell -D guix`?
>> I think you are missing a -D there so it's adding a shell with guix and not 
>> with its development dependencies.
>>
>> Hope that helps,
>> Ekaitz
>>
>> [ElenQ Technology](https://elenq.tech)
>> Ethical Innovation
>>
>> --- Original Message ---
>> On Saturday, July 9th, 2022 at 12:02 AM, Zelphir Kaltstahl 
>> [](mailto:zelphirkaltst...@posteo.de) wrote:
>>
>>> On 7/8/22 23:57, Zelphir Kaltstahl wrote:
>>>
 Hello Guix developers!

 I am messing around again with updating a package and according to my own 
 guide from previous adventures, I have to run the following command to 
 generate the `pre-inst-env` script, in the root directory of the guix 
 sources:

 
 guix environment guix -- ./bootstrap
 

 But then I remembered, that actually `guix shell` is the newer thing and 
 changed it to:

 
 guix shell guix -- ./bootstrap
 

 However, this does not work. I get an error:

 
 $ guix shell guix -- ./bootstrap
 + find po/doc -type f -name guix-manual*.po
 + sed -e s,.*/guix-manual\.,,;s,\.po$,,
 + langs=fr
 ru
 es
 pt_BR
 de
 zh_CN
 + [ ! -e doc/guix.fr.texi ]
 + [ ! -e doc/guix.ru.texi ]
 + [ ! -e doc/guix.es.texi ]
 + [ ! -e doc/guix.pt_BR.texi ]
 + [ ! -e doc/guix.de.texi ]
 + [ ! -e doc/guix.zh_CN.texi ]
 + find po/doc -type f -name guix-cookbook*.po
 + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
 + langs=de
 fr
 sk
 ko
 + [ ! -e doc/guix-cookbook.de.texi ]
 + [ ! -e doc/guix-cookbook.fr.texi ]
 + [ ! -e doc/guix-cookbook.sk.texi ]
 + [ ! -e doc/guix-cookbook.ko.texi ]
 + exec autoreconf -vfi
 autoreconf: Entering directory `.'
 autoreconf: running: autopoint --force
 autoreconf: running: aclocal --force -I m4
 autoreconf: configure.ac: tracing
 autoreconf: configure.ac: not using Libtool
 autoreconf: running: /usr/bin/autoconf --force
 configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
   If this token and others are legitimate, please use m4_pattern_allow.
   See the Autoconf documentation.
 configure.ac:99: error: possibly undefined macro: GUILE_PKG
 configure.ac:100: error: possibly undefined macro: GUILE_PROGS
 autoreconf: /usr/bin/autoconf failed with exit status: 1
 

 When I use `guix environment` it works:

 
  guix environment guix -- ./bootstrap
 + find po/doc -type f -name guix-manual*.po
 + sed -e s,.*/guix-manual\.,,;s,\.po$,,
 + langs=fr
 ru
 es
 pt_BR
 de
 zh_CN
 + [ ! -e doc/guix.fr.texi ]
 + [ ! -e doc/guix.ru.texi ]
 + [ ! -e doc/guix.es.texi ]
 + [ ! -e doc/guix.pt_BR.texi ]
 + [ ! -e doc/guix.de.texi ]
 + [ ! -e doc/guix.zh_CN.texi ]
 + find po/doc -type f -name guix-cookbook*.po
 + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
 + langs=de
 fr
 sk
 ko
 + [ ! -e doc/guix-cookbook.de.texi ]
 + [ ! -e doc/guix-cookbook.fr.texi ]
 + [ ! -e doc/guix-cookbook.sk.texi ]
 + [ ! -e doc/guix-cookbook.ko.texi ]
 + exec autoreconf -vfi
 autoreconf: Entering directory `.'
 autoreconf: running: autopoint --force
 autoreconf: running: aclocal --force -I m4
 autoreconf: configure.ac: tracing
 autoreconf: configure.ac: not using Libtool
 autoreconf: running: 
 /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf 
 --force
 autoreconf: running: 
 /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader 
 --force
 autoreconf: running: automake --add-missing --copy --force-missing
 Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
 autoreconf: Leaving directory `.'
 

 I do not know, if this is intentional or not, but I thought that `guix 
 environment` will be phased out or something.

 Here is my installed guix version:

 
 $ guix describe
   guix d7d2340

Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Zelphir Kaltstahl

Hello : )

Thank you both! I did not know that. I previously mistakenly thought 
"environment = shell", but did not know, that I would have to add `-D` or 
`--development` to actually make an equivalent call. So `guix shell`, I guess, 
is more nuanced then, than `guix environment`.


Anyway, that solves it, thank you!

Best regards,
Zelphir

On 7/9/22 00:07, Ekaitz Zarraga wrote:

Hi,
Isn't `guix environment guix` equivalent to `guix shell -D guix`?
I think you are missing a -D there so it's adding a shell with guix and not 
with its development dependencies.


Hope that helps,
Ekaitz

ElenQ Technology 
Ethical Innovation

--- Original Message ---
On Saturday, July 9th, 2022 at 12:02 AM, Zelphir Kaltstahl 
 wrote:



On 7/8/22 23:57, Zelphir Kaltstahl wrote:


Hello Guix developers!

I am messing around again with updating a package and according to my own 
guide from previous adventures, I have to run the following command to 
generate the `pre-inst-env` script, in the root directory of the guix sources:



guix environment guix -- ./bootstrap


But then I remembered, that actually `guix shell` is the newer thing and 
changed it to:



guix shell guix -- ./bootstrap


However, this does not work. I get an error:


$ guix shell guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
   If this token and others are legitimate, please use m4_pattern_allow.
   See the Autoconf documentation.
configure.ac:99: error: possibly undefined macro: GUILE_PKG
configure.ac:100: error: possibly undefined macro: GUILE_PROGS
autoreconf: /usr/bin/autoconf failed with exit status: 1


When I use `guix environment` it works:


  guix environment guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf --force
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
autoreconf: Leaving directory `.'


I do not know, if this is intentional or not, but I thought that `guix 
environment` will be phased out or something.


Here is my installed guix version:


$ guix describe
   guix d7d2340
 repository URL:https://git.savannah.gnu.org/git/guix.git
 branch: master
 commit: d7d23407213247d0173eabd2c769f2b98cef4fe9

$ guix --version
guix (GNU Guix) 0
Copyright (C) 2022 the Guix authors
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


I did `guix pull && guix package -u` just a few minutes ago, so everything 
should be quite up-to-date.


Best regards,
Zelphir

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


Addendum:

I just noticed, that also the next step `guix shell guix -- ./configure 
--localstatedir=/var` does not work, but `guix environment guix -- 
./configure --localstatedir=/var` does work:



$ guix shell guix -- ./configure --localstatedir=/var
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make 

Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Christopher Baines

Zelphir Kaltstahl  writes:

> I am messing around again with updating a package and according to my
> own guide from previous adventures, I have to run the following
> command to generate the `pre-inst-env` script, in the root directory
> of the guix sources:
>
> 
> guix environment guix -- ./bootstrap
> 

→ guix environment --help
Usage: guix environment [OPTION]... PACKAGE... [-- COMMAND...]
Build an environment that includes the dependencies of PACKAGE and execute
COMMAND or an interactive shell in that environment.


So this is giving you an environment including the dependencies of the
guix package, which is I think what you want, since you're trying to run
the ./bootstrap script.

> But then I remembered, that actually `guix shell` is the newer thing and 
> changed it to:
>
> 
> guix shell guix -- ./bootstrap
> 

→ guix shell --help
Usage: guix shell [OPTION] PACKAGES... [-- COMMAND...]
Build an environment that includes PACKAGES and execute COMMAND or an
interactive shell in that environment.


guix shell is a newer command, but new things don't just replace old
things because they're newer. guix shell isn't intended to replace guix
environment, just to make it easier to get an environment that includes
some specific packages (rather than having to pass --ad-hoc to guix
environment).

In this case, you've got an environment containing guix, rather than the
dependencies of guix.


signature.asc
Description: PGP signature


Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Ekaitz Zarraga
Hi,
Isn't `guix environment guix` equivalent to `guix shell -D guix`?
I think you are missing a -D there so it's adding a shell with guix and not 
with its development dependencies.

Hope that helps,
Ekaitz

[ElenQ Technology](https://elenq.tech)
Ethical Innovation

--- Original Message ---
On Saturday, July 9th, 2022 at 12:02 AM, Zelphir Kaltstahl 
 wrote:

> On 7/8/22 23:57, Zelphir Kaltstahl wrote:
>
>> Hello Guix developers!
>>
>> I am messing around again with updating a package and according to my own 
>> guide from previous adventures, I have to run the following command to 
>> generate the `pre-inst-env` script, in the root directory of the guix 
>> sources:
>>
>> 
>> guix environment guix -- ./bootstrap
>> 
>>
>> But then I remembered, that actually `guix shell` is the newer thing and 
>> changed it to:
>>
>> 
>> guix shell guix -- ./bootstrap
>> 
>>
>> However, this does not work. I get an error:
>>
>> 
>> $ guix shell guix -- ./bootstrap
>> + find po/doc -type f -name guix-manual*.po
>> + sed -e s,.*/guix-manual\.,,;s,\.po$,,
>> + langs=fr
>> ru
>> es
>> pt_BR
>> de
>> zh_CN
>> + [ ! -e doc/guix.fr.texi ]
>> + [ ! -e doc/guix.ru.texi ]
>> + [ ! -e doc/guix.es.texi ]
>> + [ ! -e doc/guix.pt_BR.texi ]
>> + [ ! -e doc/guix.de.texi ]
>> + [ ! -e doc/guix.zh_CN.texi ]
>> + find po/doc -type f -name guix-cookbook*.po
>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
>> + langs=de
>> fr
>> sk
>> ko
>> + [ ! -e doc/guix-cookbook.de.texi ]
>> + [ ! -e doc/guix-cookbook.fr.texi ]
>> + [ ! -e doc/guix-cookbook.sk.texi ]
>> + [ ! -e doc/guix-cookbook.ko.texi ]
>> + exec autoreconf -vfi
>> autoreconf: Entering directory `.'
>> autoreconf: running: autopoint --force
>> autoreconf: running: aclocal --force -I m4
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running: /usr/bin/autoconf --force
>> configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
>>   If this token and others are legitimate, please use m4_pattern_allow.
>>   See the Autoconf documentation.
>> configure.ac:99: error: possibly undefined macro: GUILE_PKG
>> configure.ac:100: error: possibly undefined macro: GUILE_PROGS
>> autoreconf: /usr/bin/autoconf failed with exit status: 1
>> 
>>
>> When I use `guix environment` it works:
>>
>> 
>>  guix environment guix -- ./bootstrap
>> + find po/doc -type f -name guix-manual*.po
>> + sed -e s,.*/guix-manual\.,,;s,\.po$,,
>> + langs=fr
>> ru
>> es
>> pt_BR
>> de
>> zh_CN
>> + [ ! -e doc/guix.fr.texi ]
>> + [ ! -e doc/guix.ru.texi ]
>> + [ ! -e doc/guix.es.texi ]
>> + [ ! -e doc/guix.pt_BR.texi ]
>> + [ ! -e doc/guix.de.texi ]
>> + [ ! -e doc/guix.zh_CN.texi ]
>> + find po/doc -type f -name guix-cookbook*.po
>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
>> + langs=de
>> fr
>> sk
>> ko
>> + [ ! -e doc/guix-cookbook.de.texi ]
>> + [ ! -e doc/guix-cookbook.fr.texi ]
>> + [ ! -e doc/guix-cookbook.sk.texi ]
>> + [ ! -e doc/guix-cookbook.ko.texi ]
>> + exec autoreconf -vfi
>> autoreconf: Entering directory `.'
>> autoreconf: running: autopoint --force
>> autoreconf: running: aclocal --force -I m4
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running: 
>> /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf 
>> --force
>> autoreconf: running: 
>> /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader 
>> --force
>> autoreconf: running: automake --add-missing --copy --force-missing
>> Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
>> autoreconf: Leaving directory `.'
>> 
>>
>> I do not know, if this is intentional or not, but I thought that `guix 
>> environment` will be phased out or something.
>>
>> Here is my installed guix version:
>>
>> 
>> $ guix describe
>>   guix d7d2340
>> repository URL:
>> https://git.savannah.gnu.org/git/guix.git
>> branch: master
>> commit: d7d23407213247d0173eabd2c769f2b98cef4fe9
>>
>> $ guix --version
>> guix (GNU Guix) 0
>> Copyright (C) 2022 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> [](http://gnu.org/licenses/gpl.html)
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> 
>>
>> I did `guix pull && guix package -u` just a few minutes ago, so everything 
>> should be quite up-to-date.
>>
>> Best regards,
>> Zelphir
>>
>> --
>> repositories:
>> https://notabug.org/ZelphirKaltstahl
>
> Addendum:
>
> I just noticed, that also the next step `guix shell guix -- ./configure 
> --localstatedir=/var` does not work, but `guix environment guix -- 
> ./configure --localstatedir=/var` does work:
>
> 
> $ guix shell guix -- ./configure --localstatedir=/var
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... 

Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Julien Lepiller
That's because you're not using guix shell properly.

guix shell guix

Creates a shell where guix *itself* is available

guix shell -D guix

Creates a shell where guix *dependencies* are available. That's what you need 
to use.

The manual provides more information on how to build Guix from the sources: 
https://guix.gnu.org/manual/devel/en/html_node/Building-from-Git.html#Building-from-Git

HTH!

On July 9, 2022 12:02:12 AM GMT+02:00, Zelphir Kaltstahl 
 wrote:
>On 7/8/22 23:57, Zelphir Kaltstahl wrote:
>> 
>> Hello Guix developers!
>> 
>> I am messing around again with updating a package and according to my own 
>> guide from previous adventures, I have to run the following command to 
>> generate the `pre-inst-env` script, in the root directory of the guix 
>> sources:
>> 
>> 
>> guix environment guix -- ./bootstrap
>> 
>> 
>> But then I remembered, that actually `guix shell` is the newer thing and 
>> changed it to:
>> 
>> 
>> guix shell guix -- ./bootstrap
>> 
>> 
>> However, this does not work. I get an error:
>> 
>> 
>> $ guix shell guix -- ./bootstrap
>> + find po/doc -type f -name guix-manual*.po
>> + sed -e s,.*/guix-manual\.,,;s,\.po$,,
>> + langs=fr
>> ru
>> es
>> pt_BR
>> de
>> zh_CN
>> + [ ! -e doc/guix.fr.texi ]
>> + [ ! -e doc/guix.ru.texi ]
>> + [ ! -e doc/guix.es.texi ]
>> + [ ! -e doc/guix.pt_BR.texi ]
>> + [ ! -e doc/guix.de.texi ]
>> + [ ! -e doc/guix.zh_CN.texi ]
>> + find po/doc -type f -name guix-cookbook*.po
>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
>> + langs=de
>> fr
>> sk
>> ko
>> + [ ! -e doc/guix-cookbook.de.texi ]
>> + [ ! -e doc/guix-cookbook.fr.texi ]
>> + [ ! -e doc/guix-cookbook.sk.texi ]
>> + [ ! -e doc/guix-cookbook.ko.texi ]
>> + exec autoreconf -vfi
>> autoreconf: Entering directory `.'
>> autoreconf: running: autopoint --force
>> autoreconf: running: aclocal --force -I m4
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running: /usr/bin/autoconf --force
>> configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
>>If this token and others are legitimate, please use m4_pattern_allow.
>>See the Autoconf documentation.
>> configure.ac:99: error: possibly undefined macro: GUILE_PKG
>> configure.ac:100: error: possibly undefined macro: GUILE_PROGS
>> autoreconf: /usr/bin/autoconf failed with exit status: 1
>> 
>> 
>> When I use `guix environment` it works:
>> 
>> 
>>   guix environment guix -- ./bootstrap
>> + find po/doc -type f -name guix-manual*.po
>> + sed -e s,.*/guix-manual\.,,;s,\.po$,,
>> + langs=fr
>> ru
>> es
>> pt_BR
>> de
>> zh_CN
>> + [ ! -e doc/guix.fr.texi ]
>> + [ ! -e doc/guix.ru.texi ]
>> + [ ! -e doc/guix.es.texi ]
>> + [ ! -e doc/guix.pt_BR.texi ]
>> + [ ! -e doc/guix.de.texi ]
>> + [ ! -e doc/guix.zh_CN.texi ]
>> + find po/doc -type f -name guix-cookbook*.po
>> + sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
>> + langs=de
>> fr
>> sk
>> ko
>> + [ ! -e doc/guix-cookbook.de.texi ]
>> + [ ! -e doc/guix-cookbook.fr.texi ]
>> + [ ! -e doc/guix-cookbook.sk.texi ]
>> + [ ! -e doc/guix-cookbook.ko.texi ]
>> + exec autoreconf -vfi
>> autoreconf: Entering directory `.'
>> autoreconf: running: autopoint --force
>> autoreconf: running: aclocal --force -I m4
>> autoreconf: configure.ac: tracing
>> autoreconf: configure.ac: not using Libtool
>> autoreconf: running: 
>> /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf 
>> --force
>> autoreconf: running: 
>> /gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader 
>> --force
>> autoreconf: running: automake --add-missing --copy --force-missing
>> Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
>> autoreconf: Leaving directory `.'
>> 
>> 
>> I do not know, if this is intentional or not, but I thought that `guix 
>> environment` will be phased out or something.
>> 
>> Here is my installed guix version:
>> 
>> 
>> $ guix describe
>>guix d7d2340
>>  repository URL:https://git.savannah.gnu.org/git/guix.git
>>  branch: master
>>  commit: d7d23407213247d0173eabd2c769f2b98cef4fe9
>> 
>> $ guix --version
>> guix (GNU Guix) 0
>> Copyright (C) 2022 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> 
>> 
>> I did `guix pull && guix package -u` just a few minutes ago, so everything 
>> should be quite up-to-date.
>> 
>> Best regards,
>> Zelphir
>> 
>> -- 
>> repositories:https://notabug.org/ZelphirKaltstahl
>
>Addendum:
>
>I just noticed, that also the next step `guix shell guix -- ./configure 
>--localstatedir=/var` does not work, but `guix environment guix -- ./configure 
>--localstatedir=/var` does work:
>
>
>$ guix shell guix -- ./configure --localstatedir=/var
>checking for a BSD-compatible install... /usr/bin/install -c
>checking whether build 

Re: Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Zelphir Kaltstahl

On 7/8/22 23:57, Zelphir Kaltstahl wrote:


Hello Guix developers!

I am messing around again with updating a package and according to my own 
guide from previous adventures, I have to run the following command to 
generate the `pre-inst-env` script, in the root directory of the guix sources:



guix environment guix -- ./bootstrap


But then I remembered, that actually `guix shell` is the newer thing and 
changed it to:



guix shell guix -- ./bootstrap


However, this does not work. I get an error:


$ guix shell guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
   If this token and others are legitimate, please use m4_pattern_allow.
   See the Autoconf documentation.
configure.ac:99: error: possibly undefined macro: GUILE_PKG
configure.ac:100: error: possibly undefined macro: GUILE_PROGS
autoreconf: /usr/bin/autoconf failed with exit status: 1


When I use `guix environment` it works:


  guix environment guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf --force
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
autoreconf: Leaving directory `.'


I do not know, if this is intentional or not, but I thought that `guix 
environment` will be phased out or something.


Here is my installed guix version:


$ guix describe
   guix d7d2340
 repository URL:https://git.savannah.gnu.org/git/guix.git
 branch: master
 commit: d7d23407213247d0173eabd2c769f2b98cef4fe9

$ guix --version
guix (GNU Guix) 0
Copyright (C) 2022 the Guix authors
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


I did `guix pull && guix package -u` just a few minutes ago, so everything 
should be quite up-to-date.


Best regards,
Zelphir

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


Addendum:

I just noticed, that also the next step `guix shell guix -- ./configure 
--localstatedir=/var` does not work, but `guix environment guix -- ./configure 
--localstatedir=/var` does work:



$ guix shell guix -- ./configure --localstatedir=/var
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc 

Bootstrap script only works with guix environment, not with guix shell

2022-07-08 Thread Zelphir Kaltstahl

Hello Guix developers!

I am messing around again with updating a package and according to my own guide 
from previous adventures, I have to run the following command to generate the 
`pre-inst-env` script, in the root directory of the guix sources:



guix environment guix -- ./bootstrap


But then I remembered, that actually `guix shell` is the newer thing and changed 
it to:



guix shell guix -- ./bootstrap


However, this does not work. I get an error:


$ guix shell guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
configure.ac:92: error: possibly undefined macro: GUILE_MODULE_AVAILABLE
  If this token and others are legitimate, please use m4_pattern_allow.
  See the Autoconf documentation.
configure.ac:99: error: possibly undefined macro: GUILE_PKG
configure.ac:100: error: possibly undefined macro: GUILE_PROGS
autoreconf: /usr/bin/autoconf failed with exit status: 1


When I use `guix environment` it works:


 guix environment guix -- ./bootstrap
+ find po/doc -type f -name guix-manual*.po
+ sed -e s,.*/guix-manual\.,,;s,\.po$,,
+ langs=fr
ru
es
pt_BR
de
zh_CN
+ [ ! -e doc/guix.fr.texi ]
+ [ ! -e doc/guix.ru.texi ]
+ [ ! -e doc/guix.es.texi ]
+ [ ! -e doc/guix.pt_BR.texi ]
+ [ ! -e doc/guix.de.texi ]
+ [ ! -e doc/guix.zh_CN.texi ]
+ find po/doc -type f -name guix-cookbook*.po
+ sed -e s,.*/guix-cookbook\.,,;s,\.po$,,
+ langs=de
fr
sk
ko
+ [ ! -e doc/guix-cookbook.de.texi ]
+ [ ! -e doc/guix-cookbook.fr.texi ]
+ [ ! -e doc/guix-cookbook.sk.texi ]
+ [ ! -e doc/guix-cookbook.ko.texi ]
+ exec autoreconf -vfi
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoconf --force
autoreconf: running: 
/gnu/store/km9l89sd4wm9jp358481v2z6qacwl2h9-autoconf-2.69/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
Makefile.am:816: warning: AM_GNU_GETTEXT used but 'po' not in SUBDIRS
autoreconf: Leaving directory `.'


I do not know, if this is intentional or not, but I thought that `guix 
environment` will be phased out or something.


Here is my installed guix version:


$ guix describe
  guix d7d2340
repository URL:https://git.savannah.gnu.org/git/guix.git
branch: master
commit: d7d23407213247d0173eabd2c769f2b98cef4fe9

$ guix --version
guix (GNU Guix) 0
Copyright (C) 2022 the Guix authors
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


I did `guix pull && guix package -u` just a few minutes ago, so everything 
should be quite up-to-date.


Best regards,
Zelphir

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


Re: Error when compiling file using Bigloo Scheme

2022-07-08 Thread Liliana Marie Prikler
Am Freitag, dem 08.07.2022 um 15:42 + schrieb Sam Lee:
> On 2022-07-08 16:25 +0200, zimoun wrote:
> > On jeu., 07 juil. 2022 at 15:56, Sam Lee 
> > wrote:
> > 
> > >     $ bigloo myfile.scm
> > >     /usr/bin/ld: cannot find -lunistring
> > >     collect2: error: ld returned 1 exit status
> > 
> > Indeed, bigloo requires some packages.  This works for me:
> > 
> > --8<---cut here---start->8---
> > $ guix shell -C bigloo libunistring gcc-toolchain libgc pcre \
> >  -- bigloo /tmp/myfile.scm
> > --8<---cut here---end--->8---
> 
> Thank you for providing a workaround.
> 
> When I install Bigloo using Guix, shouldn't all of Bigloo's
> dependencies be installed by Guix?  Why do I need to manually install
> additional packages?  Is there something wrong with Bigloo's package
> definition in Guix?
We don't typically propagate packages, especially not gcc-toolchain. 
You should be able to swap that out for any other toolchain, e.g.
another version of gcc-toolchain or perhaps even clang-toolchain.  I'm
not sure about libunistring, libgc and pcre.  There is a somewhat
similar bug in libgccjit not finding its own object files, which I find
rather silly; search paths definitely need adjusting imho.

Cheers



Re: Error when compiling file using Bigloo Scheme

2022-07-08 Thread Sam Lee
On 2022-07-08 16:25 +0200, zimoun wrote:
> On jeu., 07 juil. 2022 at 15:56, Sam Lee  wrote:
> 
> > $ bigloo myfile.scm
> > /usr/bin/ld: cannot find -lunistring
> > collect2: error: ld returned 1 exit status
> 
> Indeed, bigloo requires some packages.  This works for me:
> 
> --8<---cut here---start->8---
> $ guix shell -C bigloo libunistring gcc-toolchain libgc pcre \
>  -- bigloo /tmp/myfile.scm
> --8<---cut here---end--->8---

Thank you for providing a workaround.

When I install Bigloo using Guix, shouldn't all of Bigloo's dependencies
be installed by Guix? Why do I need to manually install additional
packages? Is there something wrong with Bigloo's package definition in
Guix?



Re: Error when compiling file using Bigloo Scheme

2022-07-08 Thread zimoun
Hi,

On jeu., 07 juil. 2022 at 15:56, Sam Lee  wrote:

> $ bigloo myfile.scm
> /usr/bin/ld: cannot find -lunistring
> collect2: error: ld returned 1 exit status

Indeed, bigloo requires some packages.  This works for me:

--8<---cut here---start->8---
$ guix shell -C bigloo libunistring gcc-toolchain libgc pcre \
 -- bigloo /tmp/myfile.scm
--8<---cut here---end--->8---

where myfile.scm is the same as yours.

> (module mymodule
> (main start))
>
> (define (start argv)
>   (display "Hello!")
>   (newline))

Note that it outputs nothing, right?


Well, “guix shell -C” is for being sure all the packages required by the
bigloo compiler are inside the environment.  For regular usage, you can
just use “guix shell --pure” or without any special option, or even
install all the packages in a profile.


Cheers,
simon



Error when compiling file using Bigloo Scheme

2022-07-08 Thread Sam Lee
I installed Bigloo version 4.3g using Guix, but there is always an error
when trying to compile a Scheme program:

$ bigloo myfile.scm
/usr/bin/ld: cannot find -lunistring
collect2: error: ld returned 1 exit status

Contents of myfile.scm:

(module mymodule
(main start))

(define (start argv)
  (display "Hello!")
  (newline))

Is there something wrong with Bigloo's package definition in Guix?

I tried to "solve" the problem by installing libunistring-dev on my OS
(sudo apt-get install libunistring-dev). But I get a different error:

--8<---cut here---start->8---
$ bigloo myfile.scm
/usr/bin/ld: warning: libpcre.so.1, needed by 
/gnu/store/nnkm3cg8k28c3i2vsclwhkzp3jd6cgxr-bigloo-4.3g/lib/bigloo/4.3g/libbigloo_s-4.3g.so,
 may conflict with libpcre.so.3
/usr/bin/ld: 
/gnu/store/nnkm3cg8k28c3i2vsclwhkzp3jd6cgxr-bigloo-4.3g/lib/bigloo/4.3g/libbigloo_s-4.3g.so:
 undefined reference to `fstat@GLIBC_2.33'
/usr/bin/ld: 
/gnu/store/nnkm3cg8k28c3i2vsclwhkzp3jd6cgxr-bigloo-4.3g/lib/bigloo/4.3g/libbigloo_s-4.3g.so:
 undefined reference to `lstat@GLIBC_2.33'
/usr/bin/ld: 
/gnu/store/nnkm3cg8k28c3i2vsclwhkzp3jd6cgxr-bigloo-4.3g/lib/bigloo/4.3g/libbigloo_s-4.3g.so:
 undefined reference to `stat@GLIBC_2.33'
collect2: error: ld returned 1 exit status
--8<---cut here---end--->8---



Re: Shall updaters fall back to other updaters?

2022-07-08 Thread zimoun
Hi,

On mer., 06 juil. 2022 at 16:16, Ludovic Courtès  wrote:

> Nope!  ‘all-modules’ *is* deterministic because it builds upon
> ‘scheme-files’, which is deterministic and documented as such.

Oh indeed!  My bad, I have overlooked that ’scheme-files’ uses
’scandir*’ instead of Guile scandir; and this scandir* defined in (guix
syscall) sorts the result.


>> Maybe sorting ’%updaters’ would be enough; something like,
>>
>> (define %updaters
>>   ;; The list of publically-known updaters.
>>   (delay (sort (fold-module-public-variables (lambda (obj result)
>
> Whether ‘fold-module-public-variables’ is deterministic depends on
> whether ‘module-map’ is deterministic, which in turn depends on
> ‘hash-map->list’, which is not deterministic AFAICS.
>
> So what we could do is replace uses of ‘module-map’ with a variant that
> sorts variables.
>
> That said, the only case where it can influence updater order is when
> several of them are defined in the same module.

Indeed, and that’s the case, no?  From [1]:

bioconductor cran 
savannah generic-html gnu-ftp sourceforge xorg kernel.org gnu

cran bioconductor
kernel.org sourceforge gnu generic-html gnu-ftp xorg savannah
   
bioconductor cran
sourceforge generic-html gnu-ftp savannah xorg kernel.org gnu

we see that the updaters are file-sorted (removed here) and only they
appear unsorted when defined in the same module (underlined here).


Well, I count 5 calls to ’module-map’.  Do you mean replace all of them
by ’module-map*’ which guarantees a stable order?  Or only ’module-map’
defined in ’fold-module-public-variables’ and
’fold-module-public-variables*’?


1: 



Cheers,
simon



Re: Why do Emacs packages still pull emacs-transient?

2022-07-08 Thread Jorge P . de Morais Neto
Hi Maxim!

Em [2022-07-06 qua 09:35:28-0400], Maxim Cournoyer escreveu:

> I guess it's simply an oversight.  Could you try to removing it from the
> affected packages and see if they still byte compile and run happily?
> If they do, a patch would be welcome.

I have just sent the patch to guix-patc...@gnu.org.  Thank you for
encouraging me.

Cheers

-- 
- Many people hate injustice but few check the facts; this causes more
  injustice.  Ask me about 
- I am Brazilian.  I hope my English is correct and I welcome feedback.
- https://www.defectivebydesign.org
- https://www.gnu.org



Re: repl macro (metacommand?) for guix CLI (sub)commands

2022-07-08 Thread zimoun
Hi,

On mer., 06 juil. 2022 at 14:13, b...@bokr.com wrote:

> [13:23 ~/bs]$ guile --no-auto-compile -c '(display (getenv "PS1"))(newline)'
> [\A \w]\$ 

On my machine, all is as usual and I run Bash:

--8<---cut here---start->8---
$ echo $PS1
\n\w/\n\u@\h$
$ guile --no-auto-compile -c '(display (getenv "PS1"))(newline)'
#f
--8<---cut here---end--->8---

Maybe I miss something.   Thanks for giving a try.


Cheers,
simon








Re: Guix home and operating-system

2022-07-08 Thread Andrew Tropin
On 2022-07-06 11:20, Tissevert wrote:

> Hi Guix,
>
> I'm finally having some time to try and put guix on the older machines at home
> and thought I'd start by generating a live CD to show the rest of the family
> what that would look like without having to make any irreversible changes yet.
>
> Meanwhile, as this is a time to clean and rationalize system declarations to
> ease maintaining the various machines, I thought it would be an appropriate
> time to try and start learning about guix home (I came to guix for the
> reproducibility, I'm not going to spend hours on each machine reproducing the
> same user config !).
>
> To my greatest astonishment, I found no way to make guix home configurations
> interact with operating-system declarations. I expected something along the
> lines of a "configuration" or "home" field in the user-account data type, 
> which
> could contain directly a valid guix home configuration or maybe the path to a
> file containing one. At least, I expected to find a "packages" field to allow
> specifying the packages set for a particular user. This is of course necessary
> when building a read-only live image which won't be able to receive
> modification at a later time. More generally, this raised a question in me: 
> why
> go to such length to have a whole declarative system which you can generate in
> advance on each aspect, and then require to launch (stateful !) command lines
> at a later time to alter the configuration of users.
>
> I was discussing that the other night with @unmatched-paren on IRC and was 
> told
> this could be an interesting idea so what do you think ? Is there a good 
> reason
> why this hasn't been implemented ? Would it be very complicated to run the
> equivalent of a guix home at the end of the system generation ? I'd be
> personally interested to work on such a feature but I have absolutely no idea
> where to start and would be glad to receive some pointers if it was deemed
> useful enough that I should spend my time on it.
>
> Now I can think of several ways to do that differently: I suppose the live CD
> could have a system service performing the call to guix home to setup the
> user's environment during the boot. Also, this would not cover user services
> but regarding file configurations, I can think of a way because I'm prone to
> config vertigo these days: there are so many levels where we can alter the
> config, why always delay it ? Packages often contain a default configuration,
> and upon start the program checks half a dozen places for a custom user 
> config:
> in other words why have a bash profile in my home when I could generate a bash
> package which has directly my dream profile in its "default" version in /etc ?
> I could still use ~/.bash_profile for a temporary tweak. Is that something
> people in guix do frequently ? Why ?
>
> Cheers,
>
> Tissevert
>

Hi Alice!

This topic was discussed a few times already, but still not yet
implemented.  Probably the last one was "Guix system with
home-environment" in help-guix mailing list.

I played around with it, did some changes to Guix Home (maybe some small
patches not yet upstreamed, but they are not critical IIRC), but didn't
finish the implementation and postpone it again, still think it's really
valuable feature.

I don't remember all the details and where I stopped, but the highlevel
idea is following:

- Define a system services, which contains (user . home-environment) pairs.
- Build home environments on system reconfigure.
- Activate home environments on boot.

Here are some WIP half an year old code for guix-home-service-type:


home.scm
Description: Binary data

-- 
Best regards,
Andrew Tropin


signature.asc
Description: PGP signature