GNU bug report logs - #71217
[PATCH] gnu: home: dotfiles: Files not excluded when they

Previous Next

Package: guix-patches;

Reported by: Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com>

Date: Mon, 27 May 2024 02:14:01 UTC

Severity: normal

To reply to this bug, email your comments to 71217 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#71217; Package guix. (Mon, 27 May 2024 02:14:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 27 May 2024 02:14:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: gnu: home: dotfiles: Files not excluded when they should
Date: Sun, 26 May 2024 22:13:26 -0400
[Message part 1 (text/plain, inline)]
Hello,

While attempting to setup home-dotfiles-service, I noticed that some files
were being symlinked even though they were in the variable
`%home-dotfiles-excluded', such as all the files of the .git directory.

This patch seems to fix the problem :

diff --git a/gnu/home/services/dotfiles.scm b/gnu/home/services/dotfiles.scm
index 823bdb03fb..38f7ff83d0 100644
--- a/gnu/home/services/dotfiles.scm
+++ b/gnu/home/services/dotfiles.scm
@@ -45,7 +45,7 @@ (define-module (gnu home services dotfiles)
 (define %home-dotfiles-excluded
   '(".*~"
     ".*\\.swp"
-    "\\.git"
+    "\\.git/.*"
     "\\.gitignore"))

 (define %home-dotfiles-layouts
@@ -138,8 +138,7 @@ (define* (directory-contents directory #:key (packages
#f))
     (define (filter-files directory)
       (find-files directory
                   (lambda (file stat)
-                    (not (regexp-exec exclusion-rx
-                                      (basename file))))))
+                    (not (regexp-exec exclusion-rx file)))))
     (if (and stow? packages (maybe-value-set? packages))
         (append-map filter-files
                     (map (lambda (pkg)
[Message part 2 (text/html, inline)]

Changed bug title to '[PATCH] gnu: home: dotfiles: Files not excluded when they' from 'gnu: home: dotfiles: Files not excluded when they should' Request was from Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 28 May 2024 00:23:02 GMT) Full text and rfc822 format available.

bug reassigned from package 'guix' to 'guix-patches'. Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 30 Jun 2024 16:01:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#71217; Package guix-patches. (Wed, 20 Nov 2024 22:37:01 GMT) Full text and rfc822 format available.

Message #12 received at 71217 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com>
Cc: 71217 <at> debbugs.gnu.org, Giacomo Leidi <goodoldpaul <at> autistici.org>
Subject: Re: bug#71217: gnu: home: dotfiles: Files not excluded when they
 should
Date: Wed, 20 Nov 2024 23:33:52 +0100
Hi,

(Cc: Giacomo, who authored this service.)

Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com> skribis:

> While attempting to setup home-dotfiles-service, I noticed that some files
> were being symlinked even though they were in the variable
> `%home-dotfiles-excluded', such as all the files of the .git directory.

Oh.

> This patch seems to fix the problem :
>
> diff --git a/gnu/home/services/dotfiles.scm b/gnu/home/services/dotfiles.scm
> index 823bdb03fb..38f7ff83d0 100644
> --- a/gnu/home/services/dotfiles.scm
> +++ b/gnu/home/services/dotfiles.scm
> @@ -45,7 +45,7 @@ (define-module (gnu home services dotfiles)
>  (define %home-dotfiles-excluded
>    '(".*~"
>      ".*\\.swp"
> -    "\\.git"
> +    "\\.git/.*"
>      "\\.gitignore"))
>
>  (define %home-dotfiles-layouts
> @@ -138,8 +138,7 @@ (define* (directory-contents directory #:key (packages
> #f))
>      (define (filter-files directory)
>        (find-files directory
>                    (lambda (file stat)
> -                    (not (regexp-exec exclusion-rx
> -                                      (basename file))))))
> +                    (not (regexp-exec exclusion-rx file)))))

That would change the semantics of ‘exclusion-rx’ though.

Maybe instead we should change from ‘file-files’ to ‘file-system-fold’
and not enter directories that match one of the exclusion patterns?

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#71217; Package guix-patches. (Sat, 30 Nov 2024 22:10:01 GMT) Full text and rfc822 format available.

Message #15 received at 71217 <at> debbugs.gnu.org (full text, mbox):

From: paul <goodoldpaul <at> autistici.org>
To: Ludovic Courtès <ludo <at> gnu.org>,
 Nicolas Odermatt-Lemay <nodermattlemay <at> gmail.com>
Cc: 71217 <at> debbugs.gnu.org
Subject: Re: bug#71217: gnu: home: dotfiles: Files not excluded when they
 should
Date: Sat, 30 Nov 2024 23:09:23 +0100
Hi Ludo’ and Nicolas,

I think this service has some rough edges besides this bug, I made a 
proposal to smooth them out with a new configuration record which 
deprecates home-dotfiles-configuration, better separates the state 
needed only for stow layouts and fixes this bug at [0].

Please let me know your thoughts about it, thank you!

cheers

giacomo

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





This bug report was last modified 198 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.