bug#54631: Unable to determine system origin when configuration stored in guix channel
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
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
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
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
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
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
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
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