GNU bug report logs -
#20720
Inconsistency in text fields for 'operating-system'
Previous Next
Reported by: Alex Kost <alezost <at> gmail.com>
Date: Tue, 2 Jun 2015 15:00:07 UTC
Severity: normal
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Alex Kost <alezost <at> gmail.com> skribis:
> Ludovic Courtès (2015-06-03 12:52 +0300) wrote:
[...]
>> An important criterion is whether the file needs to contain references
>> to store items or not. For ‘sudoers’ and ‘issue’, that’s normally not
>> the case, and these are usually small files or computable files, so I
>> think it’s fine to use strings here (more convenient than files.)
>
> Well, I don't agree about ‘sudoers’. It may be a really big file. Mine
> is not so big, but it is 40 lines long (including some useful comments),
> so I have to use some additional guile code to convert the contents of
> the file into string.
Ah, good point. So let’s turn ‘sudoers’ into a file-like object.
>> Using monadic values as for ‘hosts-file’ and #:motd is not nice. These
>> should be changed to use either a string or a file.
>>
>> The best would be to always use a file-like object. I’ve just added
>> ‘plain-file’ for that reason. Now I would change #:motd and
>> ‘hosts-file’ to take a file-like object rather than a monadic value.
>>
>> WDYT?
>
> I beg a pardon, but if I inderstand it correctly (probably not), I don't
> see a difference from the user point of view. Previously it was:
>
> (hosts-file (text-file "hosts" "..."))
>
> and now it would be:
>
> (hosts-file (plain-file "hosts" "..."))
Right. But it could also be:
(hosts-file (local-file "/home/foo/my-hosts-file.txt"))
This form is pleasant when the file can be long or when it has special
syntax and you’d rather use the editor’s syntax highlighting.
> I think I'm not competent as I have a vague understanding of all this
> stuff and of user's needs (except mine ☺). What I would like to have,
> is a possibility to specify my configuration files for various services
> and operating-system fields. I don't want to write text configs in my
> os-config.scm file (as it happens now with ‘hosts-file’).
OK. So that’s definitely in favor of using file-like objects pretty
much everywhere.
> I'm very happy with the current behaviour of ‘syslog-service’,
> ‘lirc-service’ and ‘console-keymap-service’ where I just specify file
> names, e.g.:
>
> (syslog-service #:config-file "/home/me/my-favourite-syslog.conf")
>
> and I like this ↑ way of specifying configurations very much! That's
> what I would like to see in ‘sudoers’ and ‘hosts-file’ fields.
OK. Note that this form (directly using a local file name) works
somewhat by chance and should not be used because it defeats
reproducibility. That is, your OS configuration actually depends on
that file in /home, which may be modified or deleted anytime, thereby
changing the syslogd behavior in unpredicable ways.
The right thing to do is:
(syslog-service #:config-file
(local-file "/home/me/my-favourite-syslog.conf"))
This means that the config file is automatically added to the store and
made part of the closure of the OS config. Now if
"/home/me/my-favourite-syslog.conf" is removed/modified, the OS behavior
remains unchanged.
I’ll prepare a patch for that and report back.
Thank you!
Ludo’.
This bug report was last modified 10 years and 43 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.