bug#54631: Unable to determine system origin when configuration stored in guix channel

2022-03-29 Thread Liliana Marie Prikler
Am Dienstag, dem 29.03.2022 um 22:03 -0400 schrieb Collin J. Doering:
> [...]
> Notice how there is no way to see which configuration was used to
> create the system.
The key here is that you're using a configuration expression rather
than a file.  Were you to write those files to disk in let's say
config-a.scm and config-b.scm respectively and refer to them on the
command line like that, you'd have a configuration file guix could
refer to.

Alternatively, Guix could take the expression specified via -e and
write it to disk.  Note that some configuration files are meaningless
even if written to disk, for example...

> The second issue is that when `-L|--load-path` is used along with
> either a file or expression to specify the operating-system or home-
> configuration, it essentially 'tarnishes' the provenance of the
> system, in that the following deployment is not differentiable from
> the preceding one/s, despite them being different.
> 
> --8<---cut here---start->8---
> sudo -i guix system reconfigure -L my-local-channel-but-with-changes
> -e '(@ (my config system-a) %system)'
> --8<---cut here---end--->8---
> 
> --8<---cut here---start->8---
> ➜ guix system describe    
> Generation 32   Mar 28 2022 23:10:01(current)
>   file name: /var/guix/profiles/system-32-link
>   canonical file name: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-
> system
>   label: GNU with Linux 5.16.16
>   bootloader: grub-efi
>   root device: label: "root"
>   kernel: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-linux-
> 5.16.16/bzImage
>   channels:
>     guix:
>   repository URL: https://git.savannah.gnu.org/git/guix.git
>   branch: master
>   commit: e584a093f943be216fdc93895281fde835836b8d
>     my-config-channel:
>   repository URL: https://not-yet-on-the-internet.com
>   branch: master
>   commit: 918a3bf799038a019c7394cda480ee67db8a0009
> --8<---cut here---end--->8---
LOAD_PATH tweaking should be considered harmful and void your
provenance, at least w.r.t. channels.  There's no sane way for guix to
check whether the load paths you added still exist after
reconfiguration, other than placing the entire directory in the store.

Cheers





bug#54544: Network Issue

2022-03-29 Thread Maxim Cournoyer
Hi Raghav,

Raghav Gururajan  writes:

> Hi Maxim,
>
>>> It seems the last update to linux-libre-lts dates back to commit
>>> 2c7f2b40e2dbee48075147a87c6cd9b611dc5ba9 made on Jan 16 2022.  You could
>>> try reconfiguring with a commit older than that to see if it improves
>>> anything.
>> Sure, I'll try that. Interestingly, switching to linux-libre from 
>> linux-libre-lts, also produce the same issue.
>
> You're right. The issue happens on 5.15.x and 5.16.x, but not on 5.10.x.
>
> So, would this be considered a bug or an incompatibility?

I lost the context; could you please edit the title according to your
last findings (e.g. wifi driver X not compatible with linux-libre 5.15+)
:-).

If the driver is in-tree (maintained by the Linux project itself),
that'd be a bug for sure.  If it's instead out-of-tree (such as ),
perhaps it hasn't caught up yet, or perhaps we should update its
corresponding package.  One such example is
`rtl8812au-aircrack-ng-linux-module', which breaks every now and then
with new kernels.

Hope that helps,

Maxim





bug#54631: Unable to determine system origin when configuration stored in guix channel

2022-03-29 Thread Collin J. Doering
Hi,

I recently converted my guix configuration to be stored in a channel, primarily 
to allow me to reference files in the repository but yet still have a 
self-contained configuration. It also allows me to easily build packages and 
images from my local guix instance.  I also like how the specification of my 
system (or home) is precisely defined by a set of channels, and an expression 
which evaluates to the operating-system (or home-configuration) that I'm 
deploying.

As per the guix manual:

--8<---cut here---start->8---
If you want configuration.scm to be self-contained, we recommend that modules 
or files it refers to be part of a channel.
--8<---cut here---end--->8---

This all being said, I noticed an issue in that I'm unable to determine the 
provenance of a system when my configuration is stored in a guix channel.

Specifically, if I have a guix channel that contains two modules, each of which 
exports a %system variable of type operating-system, I cannot tell which one 
was used to instantiate the system. This is due to two issues. The first is 
because when `-e|--expression` arguments are used, `configuration-file` is set 
to `#f` in the generations provenance file but the expression itself is not 
stored in the provenance file, and is not listed in `guix system describe`, 
`guix system list-generations`, etc.. commands.

--8<---cut here---start->8---
sudo -i guix system reconfigure -e '(@ (my config system-a) %system)'
--8<---cut here---end--->8---

--8<---cut here---start->8---
➜ guix system describe
Generation 30   Mar 28 2022 22:50:55(current)
  file name: /var/guix/profiles/system-30-link
  canonical file name: /gnu/store/886xwflic0dnf86d460yf7n5wg3jng7w-system
  label: GNU with Linux 5.16.16
  bootloader: grub-efi
  root device: label: "root"
  kernel: /gnu/store/44hi9qg3mrp6c6cb1rqwx47xhg1663d9-linux-5.16.16/bzImage
  channels:
guix:
  repository URL: https://git.savannah.gnu.org/git/guix.git
  branch: master
  commit: e584a093f943be216fdc93895281fde835836b8d
my-config-channel:
  repository URL: https://not-yet-on-the-internet.com
  branch: master
  commit: 918a3bf799038a019c7394cda480ee67db8a0009
--8<---cut here---end--->8---

Change the system to 'system-b':

--8<---cut here---start->8---
sudo -i guix system reconfigure -e '(@ (my config system-b) %system)'
--8<---cut here---end--->8---

--8<---cut here---start->8---
➜ guix system describe
Generation 31   Mar 28 2022 23:10:01(current)
  file name: /var/guix/profiles/system-31-link
  canonical file name: /gnu/store/jpkxxyh6zi3gh8pbml3r9l1iccibw5mk-system
  label: GNU with Linux 5.16.16
  bootloader: grub-efi
  root device: label: "root"
  kernel: /gnu/store/jpkxxyh6zi3gh8pbml3r9l1iccibw5mk-linux-5.16.16/bzImage
  channels:
guix:
  repository URL: https://git.savannah.gnu.org/git/guix.git
  branch: master
  commit: e584a093f943be216fdc93895281fde835836b8d
my-config-channel:
  repository URL: https://not-yet-on-the-internet.com
  branch: master
  commit: 918a3bf799038a019c7394cda480ee67db8a0009
--8<---cut here---end--->8---

Notice how there is no way to see which configuration was used to create the 
system.


The second issue is that when `-L|--load-path` is used along with either a file 
or expression to specify the operating-system or home-configuration, it 
essentially 'tarnishes' the provenance of the system, in that the following 
deployment is not differentiable from the preceding one/s, despite them being 
different.

--8<---cut here---start->8---
sudo -i guix system reconfigure -L my-local-channel-but-with-changes -e '(@ (my 
config system-a) %system)'
--8<---cut here---end--->8---

--8<---cut here---start->8---
➜ guix system describe
Generation 32   Mar 28 2022 23:10:01(current)
  file name: /var/guix/profiles/system-32-link
  canonical file name: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-system
  label: GNU with Linux 5.16.16
  bootloader: grub-efi
  root device: label: "root"
  kernel: /gnu/store/s1f82wy0mj1zv3jvrzzc86h86zrdv336-linux-5.16.16/bzImage
  channels:
guix:
  repository URL: https://git.savannah.gnu.org/git/guix.git
  branch: master
  commit: e584a093f943be216fdc93895281fde835836b8d
my-config-channel:
  repository URL: https://not-yet-on-the-internet.com
  branch: master
  commit: 918a3bf799038a019c7394cda480ee67db8a0009
--8<---cut here---end--->8---

Thank you for reading

-- 
Collin 

bug#54626: gcc-4.7 and gcc-4.8 compilation failure in x64

2022-03-29 Thread Ekaitz Zarraga
Hi,

I'm digging on old compiler versions for bootstrapping purposes and I realized 
that gcc 4.7 and 4.8 packages don't compile on x64.

We have been able to reproduce the failure of gcc 4.7 but we didn't test the 
4.8 error that far.

In gcc-4.7 the error is the following:

./md-unwind-support.h:60:47: error: dereferencing pointer to incomplete type

I guess there's something missing there but I'm out of ideas to dig on this 
further.

Anyone?





bug#54607: ncurses attrset colour pair ignored in favour of bkgd

2022-03-29 Thread Liliana Marie Prikler
Am Montag, dem 28.03.2022 um 15:00 +0300 schrieb Roman Riabenko:
> gcc test.c -lncurses
This is not a sufficient invocation to get ncurses working correctly.

$ ncursesw6-config --cflags
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -
I/gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-
6.2.20210619/include

$ ncursesw6-config --libs  
-L/gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-6.2.20210619/lib
-Wl,-rpath=/gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-
6.2.20210619/lib -lncursesw

$ pkg-config --cflags ncurses
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -
I/gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-
6.2.20210619/include

$ pkg-config --libs ncurses  
-Wl,-rpath=/gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-
6.2.20210619/lib -lncursesw

Cheers





bug#54544: Network Issue

2022-03-29 Thread Raghav Gururajan via Bug reports for GNU Guix

Hi Maxim,


It seems the last update to linux-libre-lts dates back to commit
2c7f2b40e2dbee48075147a87c6cd9b611dc5ba9 made on Jan 16 2022.  You could
try reconfiguring with a commit older than that to see if it improves
anything.


Sure, I'll try that. Interestingly, switching to linux-libre from 
linux-libre-lts, also produce the same issue.


You're right. The issue happens on 5.15.x and 5.16.x, but not on 5.10.x.

So, would this be considered a bug or an incompatibility?

Regards,
RG.


OpenPGP_signature
Description: OpenPGP digital signature


bug#52808: Guix home should not assume that all targets are dot files

2022-03-29 Thread Andrew Tropin
On 2022-03-20 22:00, Ludovic Courtès wrote:

> I wrote:
>
>> I finally got around to committing it as
>> 6da2a5a5655668f42ec5b26f875ddbc498e132b6.  Thank you!
>
> I hit “close” too quickly: we still need the patch that changes
> ‘home-files-service-type’ and/or symlink-manager.scm to not prepend a
> dot, so reopening!  :-)
>
> Ludo’.

Those patches introduce a breaking change, but the surface and number of
people affected should be small if everyone migrated to
xdg-configuration-files.  It removes the special handling of dot files
in symlink-manager and doesn't add a leading dot automatically.

Please, merge them on April 8.

From 1b556cda9716eba31a8a6dd9d3c263988de26ccf Mon Sep 17 00:00:00 2001
From: Andrew Tropin 
Date: Tue, 29 Mar 2022 11:28:30 +0300
Subject: [PATCH 1/2] home: symlink-manager: Remove appending of leading dot.

* gnu/home/services.scm (xdg-configuration-files-directory): Add leading dot.
* gnu/home/services.scm (xdg-configuration-files-service-type): Change name.
* gnu/home/services/shells.scm (add-shell-profile-file,
zsh-get-configuration-files, add-zsh-dot-configuration,
add-zsh-xdg-configuration, add-bash-configuration): Add leading dots.
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Remove
leading dot.
---
 gnu/home/services.scm |  8 
 gnu/home/services/shells.scm  | 20 ++--
 gnu/home/services/symlink-manager.scm |  2 +-
 gnu/home/services/xdg.scm |  2 +-
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/gnu/home/services.scm b/gnu/home/services.scm
index 2f441eb968..17acfcdb09 100644
--- a/gnu/home/services.scm
+++ b/gnu/home/services.scm
@@ -285,10 +285,10 @@ (define home-files-service-type
 (description "Files that will be put in
 @file{~~/.guix-home/files}, and further processed during activation.")))
 
-(define xdg-configuration-files-directory "config")
+(define xdg-configuration-files-directory ".config")
 
 (define (xdg-configuration-files files)
-  "Add config/ prefix to each file-path in FILES."
+  "Add .config/ prefix to each file-path in FILES."
   (map (match-lambda
  ((file-path . rest)
   (cons (string-append xdg-configuration-files-directory "/" file-path)
@@ -296,7 +296,7 @@ (define (xdg-configuration-files files)
  files))
 
 (define home-xdg-configuration-files-service-type
-  (service-type (name 'home-files)
+  (service-type (name 'home-xdg-configuration)
 (extensions
  (list (service-extension home-files-service-type
   xdg-configuration-files)))
@@ -304,7 +304,7 @@ (define home-xdg-configuration-files-service-type
 (extend append)
 (default-value '())
 (description "Files that will be put in
-@file{~~/.guix-home/files/config}, and further processed during activation.")))
+@file{~~/.guix-home/files/.config}, and further processed during activation.")))
 
 (define %initialize-gettext
   #~(begin
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index 086fe7d8c4..8389968c96 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -77,7 +77,7 @@ (define-configuration home-shell-profile-configuration
 really know what you do."))
 
 (define (add-shell-profile-file config)
-  `(("profile"
+  `((".profile"
  ,(mixed-text-file
"shell-profile"
"\
@@ -211,16 +211,16 @@ (define (zsh-file-by-field config field)
 (zsh-serialize-field config field)
 
 (define (zsh-get-configuration-files config)
-  `(("zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
+  `((".zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
 ,@(if (and (zsh-field-not-empty? config 'zshenv)
(zsh-field-not-empty? config 'environment-variables))
-  `(("zshenv" ,(zsh-file-by-field config 'zshenv))) '())
+  `((".zshenv" ,(zsh-file-by-field config 'zshenv))) '())
 ,@(if (zsh-field-not-empty? config 'zshrc)
-  `(("zshrc" ,(zsh-file-by-field config 'zshrc))) '())
+  `((".zshrc" ,(zsh-file-by-field config 'zshrc))) '())
 ,@(if (zsh-field-not-empty? config 'zlogin)
-  `(("zlogin" ,(zsh-file-by-field config 'zlogin))) '())
+  `((".zlogin" ,(zsh-file-by-field config 'zlogin))) '())
 ,@(if (zsh-field-not-empty? config 'zlogout)
-  `(("zlogout" ,(zsh-file-by-field config 'zlogout))) '(
+  `((".zlogout" ,(zsh-file-by-field config 'zlogout))) '(
 
 (define (add-zsh-dot-configuration config)
   (define zshenv-auxiliary-file
@@ -230,14 +230,14 @@ (define zshenv-auxiliary-file
  "[[ -f $ZDOTDIR/.zshenv ]] && source $ZDOTDIR/.zshenv\n"))
 
   (if (home-zsh-configuration-xdg-flavor? config)
-  `(("zshenv" ,zshenv-auxiliary-file))
+  `((".zshenv" ,zshenv-auxiliary-file))
   (zsh-get-configuration-files config)))
 
 (define 

bug#52808: Guix home should not assume that all targets are dot files

2022-03-29 Thread Andrew Tropin
On 2022-03-20 22:00, Ludovic Courtès wrote:

> I wrote:
>
>> I finally got around to committing it as
>> 6da2a5a5655668f42ec5b26f875ddbc498e132b6.  Thank you!
>
> I hit “close” too quickly: we still need the patch that changes
> ‘home-files-service-type’ and/or symlink-manager.scm to not prepend a
> dot, so reopening!  :-)
>
> Ludo’.

A few more minor fixes:

From 629466d23308e135c4a46951e5ea568677c5ec00 Mon Sep 17 00:00:00 2001
From: Andrew Tropin 
Date: Tue, 29 Mar 2022 11:15:56 +0300
Subject: [PATCH 1/2] home: shells: Rename zsh related functions.

* gnu/home/services/shells.scm (home-zsh-service-type): Make zsh related
private functions more consistently named.
---
 gnu/home/services/shells.scm | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index fb728893e3..086fe7d8c4 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -222,7 +222,7 @@ (define (zsh-get-configuration-files config)
 ,@(if (zsh-field-not-empty? config 'zlogout)
   `(("zlogout" ,(zsh-file-by-field config 'zlogout))) '(
 
-(define (zsh-home-files config)
+(define (add-zsh-dot-configuration config)
   (define zshenv-auxiliary-file
 (mixed-text-file
  "zshenv-auxiliary"
@@ -233,7 +233,7 @@ (define zshenv-auxiliary-file
   `(("zshenv" ,zshenv-auxiliary-file))
   (zsh-get-configuration-files config)))
 
-(define (zsh-xdg-configuration-files config)
+(define (add-zsh-xdg-configuration config)
   (if (home-zsh-configuration-xdg-flavor? config)
   (map
(lambda (lst)
@@ -298,10 +298,10 @@ (define home-zsh-service-type
 (extensions
  (list (service-extension
 home-files-service-type
-zsh-home-files)
+add-zsh-dot-configuration)
(service-extension
 home-xdg-configuration-files-service-type
-zsh-xdg-configuration-files)
+add-zsh-xdg-configuration)
(service-extension
 home-profile-service-type
 add-zsh-packages)))
-- 
2.34.0

From a71346b059691a982a7dc0c7f4fd708b49566500 Mon Sep 17 00:00:00 2001
From: Andrew Tropin 
Date: Tue, 29 Mar 2022 11:56:48 +0300
Subject: [PATCH 2/2] home: symlink-manager: Handle non-existing directory
 during cleanup.

* gnu/home/services/symlink-manager.scm (update-symlinks-script): Handle
non-existing directory during cleanup.
---
 gnu/home/services/symlink-manager.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/home/services/symlink-manager.scm b/gnu/home/services/symlink-manager.scm
index 3b851229f3..80ca73fed8 100644
--- a/gnu/home/services/symlink-manager.scm
+++ b/gnu/home/services/symlink-manager.scm
@@ -142,6 +142,7 @@ (define (strip file)
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
directory))
+ ((= ENOENT errno) #t)
  ((= ENOTDIR errno) #t)
  (else
   (apply throw args)
-- 
2.34.0



-- 
Best regards,
Andrew Tropin


signature.asc
Description: PGP signature