[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Customizing /etc
From: |
Alex Kost |
Subject: |
Re: Customizing /etc |
Date: |
Tue, 20 Sep 2016 17:14:46 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.95 (gnu/linux) |
Ludovic Courtès (2016-09-19 23:08 +0900) wrote:
> Alex Kost <address@hidden> skribis:
>
>> Ludovic Courtès (2016-09-14 16:58 +0200) wrote:
[...]
>>> However, we failed to build consensus around the approach of this patch,
>>> so we did not apply it. If you have ideas, please email
>>> address@hidden :-)
>>
>> I think I was the one who prevents the consensus. To make it clear, I'm
>> for the suggested solution, but only *after* giving a user a freedom to
>> avoid loading such a heavy command as "guix package --search-paths". On
>> a "usual" GNU/Linux distro a user can edit /etc/profile, but on GuixSD
>> it is not possible currently. That's why I think there should be
>> provided a possibility to override /etc/profile at first.
>
> Indeed, thanks for the reminder!
>
> In fact, we have this through ‘etc-service-type’, except that currently
> /etc/profile is systematically added.
>
> So an idea that comes to mind is to allow ‘etc-service-type’ to be
> extended with procedures that would be able to filter or otherwise
> change the /etc entries (similar to what we do for PAM):
>
> diff --git a/gnu/services.scm b/gnu/services.scm
> index 7e322c5..9397232 100644
> --- a/gnu/services.scm
> +++ b/gnu/services.scm
> @@ -426,9 +426,13 @@ directory."
> (extensions
> (list
> (service-extension activation-service-type
> - (lambda (files)
> - (let ((etc
> - (files->etc-directory files)))
> + (lambda (files+procs)
> + (let* ((proc (apply compose
> + (filter procedure?
> +
> files+procs)))
> + (files (filter pair?
> files+procs))
> + (etc
> + (files->etc-directory (proc
> files))))
> #~(activate-etc #$etc))))
> (service-extension system-service-type etc-entry)))
> (compose concatenate)
>
>
> In your config, you could have something like:
>
> (services (cons (simple-service 'rm-/etc/profile etc-service-type
> (const (lambda (files)
> (assoc-delete "profile" files))))
> %base-services))
>
> WDYT?
I think it would be great! I didn't realize it can be implemented this
way.
> In fact I think we would need to have a more generic mechanism to hook
> into ‘fold-services’, but I’m not sure what it should look like.
Yeah, a more generic way would be better of course, but I think this
mixing of files and procedures is already good enough for now, as it
provides a freedom in customizing a system that we didn't have before.
Besides I will no longer object against the "search-paths" fix for the
bug 20255 :-)
--
Alex
- User-profile search paths should include system-profile directories, Carlos Sánchez de La Lama, 2016/09/14
- Re: User-profile search paths should include system-profile directories, Ludovic Courtès, 2016/09/14
- Re: User-profile search paths should include system-profile directories, Carlos Sánchez de La Lama, 2016/09/20
- Re: User-profile search paths should include system-profile directories, Alex Kost, 2016/09/20
- Re: User-profile search paths should include system-profile directories, Carlos Sánchez de La Lama, 2016/09/20
- Re: User-profile search paths should include system-profile directories, Ludovic Courtès, 2016/09/21
- Re: User-profile search paths should include system-profile directories, Carlos Sánchez de La Lama, 2016/09/22
- Re: User-profile search paths should include system-profile directories, Ludovic Courtès, 2016/09/23
- Re: User-profile search paths should include system-profile directories, Carlos Sánchez de La Lama, 2016/09/26
- Re: User-profile search paths should include system-profile directories, Ludovic Courtès, 2016/09/30