Re: https://guix.gnu.org/ is offline

2022-10-19 Thread Brendan Tildesley




On 20/10/22 07:00, jbra...@dismail.de wrote:

October 19, 2022 1:18 AM, "Brendan Tildesley"  wrote:


https://guix.gnu.org doesn't load for me and another person in IRC

curl https://guix.gnu.org
curl: (7) Failed to connect to guix.gnu.org port 443 after 1838 ms: No route to 
host


Thanks for reporting!  I would encourage you to report this kind
of outages on IRC.  You'd probably get a response faster.  :)

I did, I just thought  id notify more people by posting here too.

 looks like https://guix.gnu.org/ is offline
 does guix.gnu.org load for anyone? i get 'ERR_ADDRESS_UNREACHABLE'



Re: https://guix.gnu.org/ is offline

2022-10-19 Thread Tobias Geerinckx-Rice

Brendan Tildesley 写道:
https://guix.gnu.org/ doesn't load for me and another person in 
IRC


Thanks!  You can follow along with debugging at 
.


Kind regards,

T G-R


signature.asc
Description: PGP signature


Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread Zain Jabbar
Aloha All,

Thank you for your input! It's all been very constructive. I will do
my best on that patch.

On Wed, Oct 19, 2022 at 10:56 AM  wrote:
>
> October 19, 2022 4:25 PM, "Zain Jabbar"  wrote:
>
> > Aloha All,
> >
> > Thank you for your insightful messages. Sorry my code did not work as
> > smoothly as I would have liked. I have a =home-environment= definition
> > that hopefully works for you. You can put everything into one
> > configuration as you described. I do that in the following source
> > block. For some reason I liked the idea of separate definitions of
> > each package, so that Guile and Guix Home kind of acts like a
> > =use-package= declaration. Though that was needless abstraction on my
> > end.
>
> I do not know if it is a needless abstraction.  I am just bouncing ideas
> around with you.  :)
>
> >
> > #+BEGIN_SRC scheme
> > (use-modules (srfi srfi-1)
> > (ice-9 pretty-print)
> > (gnu home)
> > (gnu packages)
> > (gnu services)
> > (gnu home services)
> > (gnu services configuration)
> > (guix gexp)
> > (guix transformations))
> >
> > (define file-likes? (list-of file-like?))
> >
> > (define-configuration/no-serialization emacs-configuration
> > (emacs-packages
> > (file-likes (list (specification->package "emacs-next"))) "Files")
> > (early-init
> > (list '()) "Early-Init")
> > (init
> > (list '()) "Init"))
> >
> > (define-public emacs-configuration-service
> > (service-type (name (symbol-append 'emacs-configuration))
> > (extensions
> > (list (service-extension
> > home-profile-service-type
> > (lambda (config) (emacs-configuration-emacs-packages config)))
> > (service-extension
> > home-xdg-configuration-files-service-type
> > (lambda (config)
> > (list
> > `("emacs/init.el" ,(scheme-file "init.el"
> > (emacs-configuration-init config)
> > #:splice? #:t))
> > `("emacs/early-init.el" ,(scheme-file "early-init.el"
> > (emacs-configuration-early-init config)
> > #:splice? #:t)))
> > (default-value (emacs-configuration))
> > (description "Configures Emacs init.el")))
> >
> > (define-public minimal-home-environment
> > (home-environment
> > (services
> > (list
> > (service emacs-configuration-service
> > (emacs-configuration
> > (emacs-packages
> > (list
> > (specification->package "bash")
> > (specification->package "emacs-next")
> > (specification->package "emacs-debbugs")
> > (specification->package "emacs-evil")
> > (specification->package "emacs-paredit")
> > (specification->package "emacs-anzu")))
> > (init '((evil-mode 1)
> > ;; Please add more config here
> > ;; Begining of emacs init configuration after evil-mode 1
> >
> > ;; End emacs init configuration
> > ))
> > (early-init '((setq warning-suppress-log-types '((comp) (comp)))
> > (setq warning-suppress-types '((comp) (comp))) ; A
> > serious stack of pringles here
> >
> > minimal-home-environment
> > #+END_SRC
> >
> > I saved this file to =minimal-working-example.scm= and ran a container using
> > =guix home -N --share=/tmp container ./minimal-working-example.scm=.
> > This should spawn a shell in which you can run =emacs= (as terminal).
> > Furthermore we can also run the info help command and get to the
> > debbugs page.
> >
> > The =init= and =early-init= configuration options take in
> > S-Expressions not files. Under the hood the service uses =scheme-file=
> > which takes in an expression. I am open to suggestions for other file
> > mechanisms, like if, for example, G-Expressions are more natural here.
> > I found that I did not know how to naturally append G-Expressions
> > together and that the S-Expressions can "bleed" into the config using
> > backquotes. So I chose just sticking in a list of expressions for
> > Emacs. Something Andrew Tropin taught me, if you are working in a
> > =*.scm= file and you want to evaluate elisp, use =M-x eval-region= or
> > =M-x edit-indirect-region= (with the usual stipulation that if you do
> > this very often we can bind it to a key).
>
> I would say when you submit your service to guix-devel others will give
> you some options too.  I like the idea of S-expressions though.
>
>
> > If my interpretation of 13.1 Declaring the Home Environment is
> > correct, we should expect an error associated with XDG_RUNTIME_DIR as
> > the necessary variables will be set via the Operating-System
> > declaration. The next error I believe is emacs wanting to make a file
> > where the home container does not have read or write permissions. My
> > =guix home= declaration with the =share= parameter should hopefully
> > help with this error. Oddly enough if we do not specify the
> > installation of =bash=, Emacs says it cannot uncompress the info
> > manuals because there is no =sh=. That is why I included =bash= into
> > the emacs packages list. I do think a lot of these "solutions" will be
> > unncessecary if users were to use =guix home reconfigure= rather than
> > user the container. Though it's nice to debug them there.
>
> Thanks for the explanation!



-- 
Thank you,
Zain Jabbar



Re: https://guix.gnu.org/ is offline

2022-10-19 Thread jbranso
October 19, 2022 1:18 AM, "Brendan Tildesley"  wrote:

> https://guix.gnu.org doesn't load for me and another person in IRC
> 
> curl https://guix.gnu.org
> curl: (7) Failed to connect to guix.gnu.org port 443 after 1838 ms: No route 
> to host


Thanks for reporting!  I would encourage you to report this kind
of outages on IRC.  You'd probably get a response faster.  :)



Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread jbranso
October 19, 2022 4:25 PM, "Zain Jabbar"  wrote:

> Aloha All,
> 
> Thank you for your insightful messages. Sorry my code did not work as
> smoothly as I would have liked. I have a =home-environment= definition
> that hopefully works for you. You can put everything into one
> configuration as you described. I do that in the following source
> block. For some reason I liked the idea of separate definitions of
> each package, so that Guile and Guix Home kind of acts like a
> =use-package= declaration. Though that was needless abstraction on my
> end.

I do not know if it is a needless abstraction.  I am just bouncing ideas
around with you.  :)

> 
> #+BEGIN_SRC scheme
> (use-modules (srfi srfi-1)
> (ice-9 pretty-print)
> (gnu home)
> (gnu packages)
> (gnu services)
> (gnu home services)
> (gnu services configuration)
> (guix gexp)
> (guix transformations))
> 
> (define file-likes? (list-of file-like?))
> 
> (define-configuration/no-serialization emacs-configuration
> (emacs-packages
> (file-likes (list (specification->package "emacs-next"))) "Files")
> (early-init
> (list '()) "Early-Init")
> (init
> (list '()) "Init"))
> 
> (define-public emacs-configuration-service
> (service-type (name (symbol-append 'emacs-configuration))
> (extensions
> (list (service-extension
> home-profile-service-type
> (lambda (config) (emacs-configuration-emacs-packages config)))
> (service-extension
> home-xdg-configuration-files-service-type
> (lambda (config)
> (list
> `("emacs/init.el" ,(scheme-file "init.el"
> (emacs-configuration-init config)
> #:splice? #:t))
> `("emacs/early-init.el" ,(scheme-file "early-init.el"
> (emacs-configuration-early-init config)
> #:splice? #:t)))
> (default-value (emacs-configuration))
> (description "Configures Emacs init.el")))
> 
> (define-public minimal-home-environment
> (home-environment
> (services
> (list
> (service emacs-configuration-service
> (emacs-configuration
> (emacs-packages
> (list
> (specification->package "bash")
> (specification->package "emacs-next")
> (specification->package "emacs-debbugs")
> (specification->package "emacs-evil")
> (specification->package "emacs-paredit")
> (specification->package "emacs-anzu")))
> (init '((evil-mode 1)
> ;; Please add more config here
> ;; Begining of emacs init configuration after evil-mode 1
> 
> ;; End emacs init configuration
> ))
> (early-init '((setq warning-suppress-log-types '((comp) (comp)))
> (setq warning-suppress-types '((comp) (comp))) ; A
> serious stack of pringles here
> 
> minimal-home-environment
> #+END_SRC
> 
> I saved this file to =minimal-working-example.scm= and ran a container using
> =guix home -N --share=/tmp container ./minimal-working-example.scm=.
> This should spawn a shell in which you can run =emacs= (as terminal).
> Furthermore we can also run the info help command and get to the
> debbugs page.
> 
> The =init= and =early-init= configuration options take in
> S-Expressions not files. Under the hood the service uses =scheme-file=
> which takes in an expression. I am open to suggestions for other file
> mechanisms, like if, for example, G-Expressions are more natural here.
> I found that I did not know how to naturally append G-Expressions
> together and that the S-Expressions can "bleed" into the config using
> backquotes. So I chose just sticking in a list of expressions for
> Emacs. Something Andrew Tropin taught me, if you are working in a
> =*.scm= file and you want to evaluate elisp, use =M-x eval-region= or
> =M-x edit-indirect-region= (with the usual stipulation that if you do
> this very often we can bind it to a key).

I would say when you submit your service to guix-devel others will give
you some options too.  I like the idea of S-expressions though.

 
> If my interpretation of 13.1 Declaring the Home Environment is
> correct, we should expect an error associated with XDG_RUNTIME_DIR as
> the necessary variables will be set via the Operating-System
> declaration. The next error I believe is emacs wanting to make a file
> where the home container does not have read or write permissions. My
> =guix home= declaration with the =share= parameter should hopefully
> help with this error. Oddly enough if we do not specify the
> installation of =bash=, Emacs says it cannot uncompress the info
> manuals because there is no =sh=. That is why I included =bash= into
> the emacs packages list. I do think a lot of these "solutions" will be
> unncessecary if users were to use =guix home reconfigure= rather than
> user the container. Though it's nice to debug them there.

Thanks for the explanation!



Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread Zain Jabbar
Aloha All,

Super awesome to hear from you! I'm quite star stuck.

Thank you for showcasing Andrew Tropin's rde project. I believe the
=features= abstraction have potential and make more intuitive sense
for the design of configurable programs. There is a lot for me to
learn from this design choice.

As it stands, =features= are not in Guix proper, are there plans to
merge them? How will they end up relating to the existing home
services feature set?

On Wed, Oct 19, 2022 at 5:36 AM Ludovic Courtès  wrote:
>
> Hi Zain, and welcome!
>
> Zain Jabbar  skribis:
>
> > Running =guix home search emacs= returns nothing. I also could not find an
> > email using =C-u M-x debbugs-gnu= about an Emacs configuration service.
> >
> > This is my first email to this mailing address. Please give me pointers on
> > formatting and further improvements.
> >
> > I have attempted to make an =emacs-home-service-type= so that it is
> > possible to configure Emacs using Guix home. This code is extremely
> > preliminary hence I don't even think it is worth sending as a patch. Also I
> > have never worked on a multi person Git project before and do not know how
> > to solve the keyring error I get when using guix pull. I will outline what
> > my code does and what features I would like to add.
>
> I am all for something like you describe, and the code you sent may be
> good starting point!
>
> The rde project¹ by Andrew Tropin et al. may be a good source of
> inspiration.  The “features” abstraction in particular seems to be
> well-suited for Emacs.  But overall it’s reasonable to start small, with
> a low-level approach to combine and configure Emacs packages.
>
> Thanks,
> Ludo’.
>
> ¹ https://trop.in/rde/manual



-- 
Thank you,
Zain Jabbar



Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread Zain Jabbar
Aloha All,

Thank you for your insightful messages. Sorry my code did not work as
smoothly as I would have liked. I have a =home-environment= definition
that hopefully works for you. You can put everything into one
configuration as you described. I do that in the following source
block. For some reason I liked the idea of separate definitions of
each package, so that Guile and Guix Home kind of acts like a
=use-package= declaration. Though that was needless abstraction on my
end.

#+BEGIN_SRC scheme
(use-modules (srfi srfi-1)
 (ice-9 pretty-print)
 (gnu home)
 (gnu packages)
 (gnu services)
 (gnu home services)
 (gnu services configuration)
 (guix gexp)
 (guix transformations))

(define file-likes? (list-of file-like?))

(define-configuration/no-serialization emacs-configuration
  (emacs-packages
   (file-likes (list (specification->package "emacs-next"))) "Files")
  (early-init
   (list '()) "Early-Init")
  (init
   (list '()) "Init"))

(define-public emacs-configuration-service
  (service-type (name (symbol-append 'emacs-configuration))
(extensions
(list (service-extension
home-profile-service-type
(lambda (config) (emacs-configuration-emacs-packages config)))
   (service-extension
home-xdg-configuration-files-service-type
(lambda (config)
  (list
   `("emacs/init.el" ,(scheme-file "init.el"
  (emacs-configuration-init config)
  #:splice? #:t))
   `("emacs/early-init.el" ,(scheme-file "early-init.el"
  (emacs-configuration-early-init config)
  #:splice? #:t)))
(default-value (emacs-configuration))
(description "Configures Emacs init.el")))

(define-public minimal-home-environment
  (home-environment
   (services
(list
 (service emacs-configuration-service
  (emacs-configuration
   (emacs-packages
(list
(specification->package "bash")
(specification->package "emacs-next")
(specification->package "emacs-debbugs")
(specification->package "emacs-evil")
(specification->package "emacs-paredit")
(specification->package "emacs-anzu")))
   (init '((evil-mode 1)
   ;; Please add more config here
   ;; Begining of emacs init configuration after evil-mode 1

   ;; End emacs init configuration
   ))
   (early-init '((setq warning-suppress-log-types '((comp) (comp)))
 (setq warning-suppress-types '((comp) (comp))) ; A
serious stack of pringles here

minimal-home-environment
#+END_SRC

I saved this file to =minimal-working-example.scm= and ran a container using
=guix home -N --share=/tmp container ./minimal-working-example.scm=.
This should spawn a shell in which you can run =emacs= (as terminal).
Furthermore we can also run the info help command and get to the
debbugs page.

The =init= and =early-init= configuration options take in
S-Expressions not files. Under the hood the service uses =scheme-file=
which takes in an expression. I am open to suggestions for other file
mechanisms, like if, for example, G-Expressions are more natural here.
I found that I did not know how to naturally append G-Expressions
together and that the S-Expressions can "bleed" into the config using
backquotes. So I chose just sticking in a list of expressions for
Emacs. Something Andrew Tropin taught me, if you are working in a
=*.scm= file and you want to evaluate elisp, use =M-x eval-region= or
=M-x edit-indirect-region= (with the usual stipulation that if you do
this very often we can bind it to a key).

If my interpretation of 13.1 Declaring the Home Environment is
correct, we should expect an error associated with XDG_RUNTIME_DIR as
the necessary variables will be set via the Operating-System
declaration. The next error I believe is emacs wanting to make a file
where the home container does not have read or write permissions. My
=guix home= declaration with the =share= parameter should hopefully
help with this error. Oddly enough if we do not specify the
installation of =bash=, Emacs says it cannot uncompress the info
manuals because there is no =sh=. That is why I included =bash= into
the emacs packages list. I do think a lot of these "solutions" will be
unncessecary if users were to use =guix home reconfigure= rather than
user the container. Though it's nice to debug them there.

On Wed, Oct 19, 2022 at 8:19 AM  wrote:
>
> October 18, 2022 3:42 PM, "Zain Jabbar"  wrote:
>
> > Here is a minimal reproducible(-ish needs change in module name)
> > example configuration which installs =emacs-debbugs= (and not much
> > else).
>
> Cool I am CC-ing guix devel.
>
> > #+BEGIN_SRC scheme
> > (define-module (zaijab minimal-working-example)
> > #:use-module (srfi srfi-1)
> > #:use-module (ice-9 pretty-print)
> > #:use-module (gnu home)
> > #:use-module (gnu packages)
> > #:use-module (gnu services)
> > #:use-module (gnu home services)
> > #:use-module (gnu services)
> > #:use-module (gnu services configuration)
> > #:use-module (guix gexp)
> > #:use-module (guix transformations))
> >
> > (define file-likes? (list-of file-like?))
> >
> > 

Re: GNU Mes 0.24.1 released

2022-10-19 Thread Efraim Flashner
On Wed, Oct 19, 2022 at 09:41:20PM +0200, Janneke Nieuwenhuizen wrote:
> Ludovic Courtès writes:
> 
> Hey!
> 
> > Janneke Nieuwenhuizen  skribis:
> >
> > This is exciting news!  Looking forward to having full-source
> > bootstrapped AArch64… and it looks like there’s already activity on a
> > ‘wip-’ branch.
> 
> Yes, it is!  The ARM bootstrap story is still a bit flakey, as
> stage0-posix does not support ARM.  So, ARM would need
> %bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.
> 
> However, aarch64-linux now bootstraps from 526 bytes all the way until
> gcc-core-mesboot 2,95.3.  Very nice!
> 
> We're still stuck at building a full gcc+glibc combo;
> glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
> gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
> glibc-mesboot0
> 
>?: 0 [execle "./gencheck" # "./gencheck"]
> ERROR: In procedure execle: Exec format error
> 
> Not sure what to do here.  We could somehow try to debug/bisect this.
> We could try to use a newer glibc; glibc-2.2.5 happened during the
> OABI/EABI switch and is heavily patched.  Or, we could try to remove
> glibc-2.2.5/gcc-2.95.3 altogether and aim for a direct tcc => gcc-4.6.4.
> We need to go that way anyway for RISCV.

Which hardware are you building on? On my pine64 I'm getting stuck at
tcc-0.9.26-1134-g80114c4d
On commit 519f4c8c9a0b191e9a447116685393c2fed4cd3b

starting phase `build'
  CC tccpp.c
->type--: not a : (typename "BufferedFile")
->type--: not a : (typename "BufferedFile")
  CC tccgen.c
  CC tccelf.c
unexpected size:8
rank--: not a pointer: #< type: signed size: 1 description: #f>
rank--: not a pointer: #< type: signed size: 1 description: #f>
  CC tccrun.c
  CC arm-gen.c
unexpected size:8
  CC arm-link.c
  CC arm-asm.c
  CC tccasm.c
  CC libtcc.c
  CC tcc.c
  CCLD   mes-tcc
mkdir -p 
/gnu/store/d3kcgm0z3yyc7bplaacr7g0j8gk36h5j-tcc-boot0-0.9.26-1134-g80114c4d/lib/tcc
rm -f crt1.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crt1.c .
crt1.c:149: warning: implicit declaration of function 'main'
rm -f crti.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crti.c .
rm -f crtn.o;
cp -f /gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/crtn.c .
rm -f libc.a
cp -f 
/gnu/store/nli76zd955d9xksy01qrfzlizq4c28kd-mes-boot-0.24.1//lib/libc+gnu.c 
libc.c
error: in phase 'build': uncaught exception:
srfi-34 #
phase `build' failed after 21994.9 seconds


-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: How long does it take to run the full rustc bootstrap chain?

2022-10-19 Thread Efraim Flashner
On Sat, Oct 15, 2022 at 09:33:23AM +0200, Félix Baylac Jacqué wrote:
> Hey Guix,
> 
> I'd be curious to know how long it takes to run the full rustc bootstrap
> chain on the Guix build farm. I'm sadly not sure how to approach this
> problem.
> 
> Is there a way to extract this information from Cuirass or the Guix data
> service?

If I were to go about it I would try to get the build log from each
package:
guix build --no-grafts -e '(@@ (gnu packages rust) rust-bootstrap)' \
--log-file

and then I'd add up the build and test phases to get a rough estimate.

For an approximate answer, the build farm runs 4 builds per machine,
with 8 cores per build (all of this is in the guix-maintenance repo I
think). When I build from mrustc to rust-1.60 on my machine with 24
cores it currently takes about 2 hours for rust-bootstrap (1.54) and
then about 30-45 minutes each other version.

I don't remember the bug number offhand, but there's work being done to
speed up the process. The last time I ran though the test build I built
from rust-1.55 to librsvg in 171 minutes.

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: GNU Mes 0.24.1 released

2022-10-19 Thread Janneke Nieuwenhuizen
Ludovic Courtès writes:

Hey!

> Janneke Nieuwenhuizen  skribis:
>
> This is exciting news!  Looking forward to having full-source
> bootstrapped AArch64… and it looks like there’s already activity on a
> ‘wip-’ branch.

Yes, it is!  The ARM bootstrap story is still a bit flakey, as
stage0-posix does not support ARM.  So, ARM would need
%bootstrap-mescc-tools and %bootstrap-mes binary seeds...meh.

However, aarch64-linux now bootstraps from 526 bytes all the way until
gcc-core-mesboot 2,95.3.  Very nice!

We're still stuck at building a full gcc+glibc combo;
glibc-mesboot-2.2.5 builds, but possibly not correctly; as the full
gcc-mesboot0 (2.95.3) build fails at configure time: gcc-core-mesboot0 +
glibc-mesboot0

   ?: 0 [execle "./gencheck" # "./gencheck"]
ERROR: In procedure execle: Exec format error

Not sure what to do here.  We could somehow try to debug/bisect this.
We could try to use a newer glibc; glibc-2.2.5 happened during the
OABI/EABI switch and is heavily patched.  Or, we could try to remove
glibc-2.2.5/gcc-2.95.3 altogether and aim for a direct tcc => gcc-4.6.4.
We need to go that way anyway for RISCV.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen   | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com



Re: crate importer throws

2022-10-19 Thread Efraim Flashner
On Sat, Oct 15, 2022 at 02:58:53PM +0200, Csepp wrote:
> 
> Maxime Devos  writes:
> 
> > Could you check if
> >
> > $ guix shell --pure -- "$(which guix)" import crate the-way
> >
> > (i.e. a pure environment without any packages) works for you?  Maybe
> > somehow there is some other guile-semver in your usual environment
> > that breaks Guix.
> 
> Weirdly enough it works.
> ...oh it also works without importing guile-semver.
> HhmmMM!
> Maybe my channels config makes a difference?

More likely something in your .bashrc

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event

2022-10-19 Thread Efraim Flashner
On Tue, Oct 18, 2022 at 06:19:18PM +0200, Tanguy LE CARROUR wrote:
> Hi Chris,
> 
> Quoting Tanguy LE CARROUR (2022-10-05 16:01:40)
> > Quoting Christopher Baines (2022-09-18 17:55:30)
> > > […]
> > >  - Maybe script making contributions like updating packages
> > >  - Make a similar tool to Debian's how can I help
> > >- Try to avoid suggesting updating packages with lots of dependencies
> > 
> > `guix how-can-i-help` would be amazing! Something that would:
> > - list all the packages in my current profile that can be updated,
> >   sorted by number of dependent packages; and
> 
> Just to let you know that, even if I haven't written `guix
> how-can-i-help` (yet), I've just written a `guix-refresh-all` that tells me:
> 
> ```console
> $ guix-refresh-all
> gnu/packages/freedesktop.scm:2164:13: udiskie would be upgraded from 2.3.3 to 
> 2.4.2
> gnu/packages/wm.scm:1584:13: sway would be upgraded from 1.6.1 to 1.7
> gnu/packages/wireservice.scm:205:13: csvkit would be upgraded from 1.0.5 to 
> 1.0.7
> gnu/packages/mail.scm:610:13: neomutt would be upgraded from 20211029 to 
> 20220429
> gnu/packages/mpd.scm:445:13: cantata would be upgraded from 2.4.2 to 2.5.0
> gnu/packages/mail.scm:1326:13: notmuch would be upgraded from 0.36 to 0.37
> gnu/packages/rust-apps.scm:190:13: bat would be upgraded from 0.20.0 to 0.22.1
> gnu/packages/wm.scm:1704:13: swaybg would be upgraded from 1.0 to 1.1.1
> gnu/packages/terminals.scm:1334:13: alacritty would be upgraded from 0.9.0 to 
> 0.16.0
> gnu/packages/gnupg.scm:830:2: pinentry-gtk2 would be upgraded from 1.2.0 to 
> 1.2.1
> gnu/packages/linux.scm:8793:13: wireplumber would be upgraded from 0.4.11 to 
> 0.4.12
> gnu/packages/libreoffice.scm:1059:13: libreoffice would be upgraded from 
> 7.3.5.2 to 7.4.2.3
> gnu/packages/mpd.scm:112:13: mpd would be upgraded from 0.23.8 to 0.23.10
> gnu/packages/linphone.scm:801:13: linphone-desktop would be upgraded from 
> 4.2.5 to 4.4.10
> gnu/packages/messaging.scm:2171:13: profanity would be upgraded from 0.13.0 
> to 0.13.1
> gnu/packages/gnome.scm:3060:13: libnotify would be upgraded from 0.7.9 to 
> 0.8.1
> gnu/packages/gnupg.scm:287:13: gnupg would be upgraded from 2.2.32 to 2.3.8
> gnu/packages/rust-apps.scm:455:13: fd would be upgraded from 8.1.1 to 8.4.0
> gnu/packages/curl.scm:66:12: curl would be upgraded from 7.79.1 to 7.85.0
> gnu/packages/terminals.scm:929:13: go-github-com-junegunn-fzf would be 
> upgraded from 0.25.0 to 0.34.0
> gnu/packages/xorg.scm:1767:13: setxkbmap would be upgraded from 1.3.2 to 1.3.3
> gnu/packages/file.scm:65:13: file would be upgraded from 5.41 to 5.43
> gnu/packages/ncurses.scm:45:13: ncurses would be upgraded from 6.2.20210619 
> to 6.3
> ```
> 
> So now, I know what I'll do tomorrow! 
> 
> This is no magic scheme, it's just an alias for:
> 
> ```console
> $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 
> | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning"
> ```

I'd like to suggest swapping out the ag options for a grep option:
grep -v -E '(already|failed|no updater|warning|redirection)'
_should_ work, but I haven't tested that myself yet.

> Yeah, I know… ugly! But, it does (part of) the job! 
> 
> Happy hacking!
> 
> -- 
> Tanguy
> 

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread jbranso
October 18, 2022 3:42 PM, "Zain Jabbar"  wrote:

> Here is a minimal reproducible(-ish needs change in module name)
> example configuration which installs =emacs-debbugs= (and not much
> else).

Cool I am CC-ing guix devel.

> #+BEGIN_SRC scheme
> (define-module (zaijab minimal-working-example)
> #:use-module (srfi srfi-1)
> #:use-module (ice-9 pretty-print)
> #:use-module (gnu home)
> #:use-module (gnu packages)
> #:use-module (gnu services)
> #:use-module (gnu home services)
> #:use-module (gnu services)
> #:use-module (gnu services configuration)
> #:use-module (guix gexp)
> #:use-module (guix transformations))
> 
> (define file-likes? (list-of file-like?))
> 
> (define-configuration/no-serialization emacs-configuration
> (emacs-packages
> (file-likes (list (specification->package "emacs-next"))) "Files")
> (early-init
> (list '()) "Early-Init")
> (init
> (list '()) "Init"))
> 
> (define debuggs-configuration
> (emacs-configuration
> (emacs-packages (list (specification->package "emacs-debbugs")
> 
> (define-public total-emacs-configuration
> (fold (lambda (config-1 config-2) (emacs-configuration
> (init (append (emacs-configuration-init config-1)
> (emacs-configuration-init config-2)))
> (early-init (append (emacs-configuration-early-init config-1)
> (emacs-configuration-early-init config-2)))
> (emacs-packages (append (emacs-configuration-emacs-packages config-1)
> (emacs-configuration-emacs-packages config-2)
> (emacs-configuration)
> 
> (filter emacs-configuration?
> (map variable-ref
> (filter variable-bound?
> (hash-map->list (lambda (x y) y) (struct-ref (current-module) 0)))
> 
> (define-public emacs-configuration-service
> (service-type (name (symbol-append 'emacs-configuration))
> (extensions
> (list (service-extension
> home-profile-service-type
> (lambda (config) (emacs-configuration-emacs-packages config)))
> (service-extension
> home-xdg-configuration-files-service-type
> (lambda (config)
> (list
> `("emacs/init.el" ,(scheme-file "init.el"
> (emacs-configuration-init config)
> #:splice? #:t))
> `("emacs/early-init.el" ,(scheme-file "early-init.el"
> (emacs-configuration-early-init config)
> #:splice? #:t)))
> (default-value (emacs-configuration))
> (description "Configures Emacs init.el")))
> 
> (define-public minimal-home-environment
> (home-environment
> (services (list (service emacs-configuration-service
> total-emacs-configuration)
> 
> minimal-home-environment
> #+END_SRC

I wonder why you do the define total-emacs-configuration...is it possible
to define an emacs-configuration something like this?

Forgive the possibly wrong syntax, I don't use guix home

(services
(service emacs-configuration-service
(emacs-configuration
(packages
(list emacs-debbugs
emacs-evil
emacs-paredit
emacs-anzu))
(init (text-file "init-file.el"
"(evil-mode 1)\n
;; other configuration stuff")

> I tested this using =guix home container -N
> minimal-working-example.scm=. Typing =M-x debbugs-gnu= gives a menu of
> bugs. I made sure the debbugs configuration is necessary by commenting
> it out, re-running =guix home container= and seeing that =M-x debb
> [TAB]= pulls up nothing. I think it works. Woo-hoo!

When I tested the home container via terminal foot I get a weird error:

warning: XDG_RUNTIME_DIR doesn't exists, on-first-login script
won't execute anything. You can check if xdg runtime directory exists,
XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
script by running '$HOME/.guix-home/on-first-login'-bash-5.1$ emacs
emacs: Terminal type foot is not defined.
If that is not the actual type of terminal you have,
use the Bourne shell command 'TERM=...; export TERM' (C-shell:
'setenv TERM ...') to specify the correct type. It may be necessary
to do 'unset TERMINFO' (C-shell: 'unsetenv TERMINFO') as well.

That's probably just foot being weird.

In lxterminal, emacs started fine. However, doing a M-x info RET

m Debbugs RET

I get this error in emacs:

"Creating file with prefx: No such file or directory /tmp/jka-com"

Anyway, definitely go ahead and send it to guix-patches!

> Thank you for telling me about the =,build= meta command. It looks
> very useful! I will need to figure out how to use it from =M-x
> geiser-guile=. I have built this code by doing the following:
> - open VTerm
> - guix repl
> - ,use (guix)
> - ,use (MODULE-NAME) ;; in my case this was (zaijab minimal-working-example)
> - ,build minimal-home-environment

Once you get geiser set up and clone the git repo, and compile everything...
inside the guix-src code...whatever file you are currently working on
C-c C-a opens up that file in the repl.  It's super awesome to be able to 
throw in some code evaluate it on the fly.

https://video.hardlimit.com/c/the_gnu_guy/videos

> I will be learning how to use the Git patching system soon. I will add
> more documentation when I submit the patch. I'll be sure to CC you as
> well. Thank you for your assistance.
> 
> On Tue, Oct 18, 2022 at 8:42 AM  

Re: Creating an Emacs Home Configuration Service

2022-10-19 Thread Ludovic Courtès
Hi Zain, and welcome!

Zain Jabbar  skribis:

> Running =guix home search emacs= returns nothing. I also could not find an
> email using =C-u M-x debbugs-gnu= about an Emacs configuration service.
>
> This is my first email to this mailing address. Please give me pointers on
> formatting and further improvements.
>
> I have attempted to make an =emacs-home-service-type= so that it is
> possible to configure Emacs using Guix home. This code is extremely
> preliminary hence I don't even think it is worth sending as a patch. Also I
> have never worked on a multi person Git project before and do not know how
> to solve the keyring error I get when using guix pull. I will outline what
> my code does and what features I would like to add.

I am all for something like you describe, and the code you sent may be
good starting point!

The rde project¹ by Andrew Tropin et al. may be a good source of
inspiration.  The “features” abstraction in particular seems to be
well-suited for Emacs.  But overall it’s reasonable to start small, with
a low-level approach to combine and configure Emacs packages.

Thanks,
Ludo’.

¹ https://trop.in/rde/manual



Re: GNU Mes 0.24.1 released

2022-10-19 Thread Ludovic Courtès
Howdy,

Janneke Nieuwenhuizen  skribis:

> We are happy to announce the release of GNU Mes 0.24.1, representing 23
> commits over five months by four people.
>
> Mes now supports the stage0-posix and M2-Planet Full Source bootstrap on
> Aarch64 for ARM.  Because stage0-posix does not support ARM yet, the Mes
> ARM bootstrap is currently prototyped on Aarch64.

This is exciting news!  Looking forward to having full-source
bootstrapped AArch64… and it looks like there’s already activity on a
‘wip-’ branch. 

Cheers,
Ludo’.



Re: What 'sh' should 'system' use?

2022-10-19 Thread Ludovic Courtès
Hi,

Philip McGrath  skribis:

> This makes sense as far as using 'bash-static' in Glibc. The aspects I'm 
> unsure
> of are:
>
>  1. If I'm packaging software that implements a function like 'system'
> (e.g. Racket, SML/NJ, Chez Scheme, etc.), should I use 'bash-minimal' or
> 'bash-static'?
>
>  2. Do we really need 'bash-minimal' at all? Why not just replace it with
> 'bash-static'?

Rather ‘bash-minimal’ (so it can benefit from grafts), but in practice
it doesn’t matter all that much.

> In particular, AFAICT, 'bash-minimal' currently has a reference to
> 'bash-static' via Glibc:
>
> $ guix size bash-minimal 
> store item   totalself
> /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33  38.3
> 36.6  50.4%
> /gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib  71.7
> 33.4  45.9%
> /gnu/store/720rj90bch716isd8z7lcwrnvz28ap4y-bash-static-5.1.81.7 
> 1.7   2.3%
> /gnu/store/chfwin3a4qp1znnpsjbmydr2jbzk0d6y-bash-minimal-5.1.8  72.7 
> 1.0   1.4%
> total: 72.7 MiB

True; at least it’s a small part of the closure size.

>> > 2) If we want to make 'sh' a weak/dynamic reference, I think we should
>> > strongly consider arranging to make it available at '/bin/sh' when
>> > present. I expect this option would require less patching of other
>> > packages *by far* than any other approach.
>> 
>> This is not a viable option because build containers lack /bin/sh.
>> 
>
> Right, this option would depend on making /bin/sh exist in the build
> environment.

And this won’t happen: it’s important that the contents of build
environments be stable over time.  That is the foundation of
reproducible builds in Guix.

> I'd hoped this might be possible without having to change the daemon, but the
> ways I've tried so far haven't worked. I tried `(mkdir-p "/bin")`, but the
> build user apparently doesn't have sufficient permissions. Then I tried
> creating a nested container using `call-with-container` in which I could
> bind-mound the directory from 'bash-static' at '/bin', but I hit permissions
> errors that way, too. I also thought there might be a way to pass the daemon
> options like 'build-chroot-dirs' to have it set up /bin/sh before it drops
> privileges, but I couldn't figure out how to do that.

For the record, /bin/sh was dropped on purpose early on in Guix (unlike
in Nix) to have a limited and well-defined build environment:

  https://lists.gnu.org/archive/html/bug-guix/2013-01/msg00041.html

> The patching itself isn't so bad, and, as you say, it's limited to at least
> a relatively small number of packages. However, the fact that Glibc retains a
> reference to 'bash-static' affects nearly every package. It doesn't affect 
> them
> very much, to be sure! But I think it does prevent using
> `guix shell --container` to create containers without a shell, and it likewise
> seems difficult to experiment with different shells. Or maybe it's really just
> that it disturbs my sense of aesthetics.

The choice was made for ‘guix shell -C’ to always provide /bin/sh but
purely for convenience (I can’t find the reference); it’s not strictly
necessary.

Now, it’s true that currently ‘guix shell -C’ always uses Bash as
/bin/sh.  Are you saying that it would be nice to be able to use a
different shell?  In ‘guix home container’, we made a different, which
is to honor $SHELL (see ‘user-shell’ in guix/scripts/home.scm).

Thanks,
Ludo’.



Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event

2022-10-19 Thread zimoun
Hi Tanguy,

On Tue, 18 Oct 2022 at 18:19, Tanguy LE CARROUR  wrote:

> ```console
> $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 
> | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning"
> ```
>
> Yeah, I know… ugly! But, it does (part of) the job! 

Well, if you are using a manifest file, you can directly pass it to
’guix refresh‘.  Otherwise,

guix package --export-manifest > /tmp/my-pkgs.scm
guix refresh -m /tmp/my-pkgs.scm 2>&1 | ...

And even, being in a checkout of Guix,

guix refresh -m /tmp/my-pkgs.scm --update

and then give a look at the script etc/committer.scm.


Cheers,
simon





Booth at FOSDEM (Brussels), 4-5 Feb 2023?

2022-10-19 Thread zimoun
Hi,

As the winter, FOSDEM 2023 is coming…

https://fosdem.org/2023


Three questions:

 1. do we run for a booth?
 2. who is in?
 3. who is volunteer to make that happens?

Well, #1 is a good opportunity to expose the beautiful kakemodo [1]. :-) 

If we go for a booth and if we are accepted, it means we need volunteers
at this booth.  A week-end is quick and also long.  More we are and
greater the experience would be. :-) Volunteer for #2 does not mean be
available the full week-end – although that’s also a possibility –
instead, it could mean some rotation of 1-2h at the booth.

About #3, it means checking the FOSDEM website and helping in the
synchronization of the proposal, stickers, etc.

WDYT?  It will still the 10th Years of Guix – day 1 of calendar “year“
is arbitrary. ;-)


1: 


Cheers,
simon



Re: elogind configuration

2022-10-19 Thread Ludovic Courtès
Hi,

Antonio Carlos Padoan Junior  skribis:

> I do not know why but "suspend" stopped working on my computer
> after a recent upgrade (pull & reconfigure).

By that you mean that ‘loginctl suspend’ doesn’t have any effect?

I’ve just tried on my laptop and it works for me with this system
generation:

--8<---cut here---start->8---
$ guix system describe
Generation 204  Oct 10 2022 00:29:29(current)
  file name: /var/guix/profiles/system-204-link
  canonical file name: /gnu/store/yvaj9yi25rm16q9j6jccviaf5i55hk83-system
  label: GNU with Linux-Libre 5.19.14
  bootloader: grub-efi
  root device: label: "root"
  kernel: 
/gnu/store/8s41d36dgb700p3g5jbgl5vy7wi7lbsw-linux-libre-5.19.14/bzImage
  channels:
guix:
  repository URL: https://git.savannah.gnu.org/git/guix.git
  branch: master
  commit: e827d45db92d6e1f9dc68199cd40cb5d67de9d46
  configuration file: 
/gnu/store/p4w6x2q9x9cakslb0n6qcqyydn5y0a8m-configuration.scm
--8<---cut here---end--->8---

> However I'm intrigued because my
> /run/current-system/profile/etc/elogind/logind.conf

As Tobias wrote, it’s a trap.  :-)

The config file that’s actually use can be found like so:

--8<---cut here---start->8---
$ sudo herd status elogind
Status of elogind:
  It is started.
  Running value is 347.
  It is enabled.
  Provides (elogind).
  Requires (dbus-system).
  Conflicts with ().
  Will be respawned.
$ sudo cat /proc/347/environ |xargs -0
ELOGIND_CONF_FILE=/gnu/store/z14j9xi29aci66d2akcflbgxzwm4lg8q-logind.conf
--8<---cut here---end--->8---

I guess we could improve that user interface.

Ludo’.