GNU bug report logs - #44900
[PATCH] services: unattended-upgrade: Add 'search-paths' field.

Previous Next

Package: guix-patches;

Reported by: Lars-Dominik Braun <ldb <at> leibniz-psychology.org>

Date: Fri, 27 Nov 2020 08:47:01 UTC

Severity: normal

Tags: patch, wontfix

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Lars-Dominik Braun <ldb <at> leibniz-psychology.org>
Cc: 44900 <at> debbugs.gnu.org
Subject: Re: [bug#44900] [PATCH] services: unattended-upgrade: Add
 'search-paths' field.
Date: Sat, 28 Nov 2020 11:33:55 +0100
Hi,

Lars-Dominik Braun <ldb <at> leibniz-psychology.org> skribis:

> I’m using a modular machine configuration, i.e. the scheme file returning the
> operating system definition imports several other custom modules with service
> definitions etc in the same directory. This does not work well with unattended
> upgrades. The attached patch allows adding search paths to the unattended
> upgrade service. I’m not sure this is the best solution though. Maybe the
> preferred way to add these modules is to a custom channel?

Did you see (info "(guix) Unattended Upgrades"):

          There are cases, though, where referring to
          ‘/run/current-system/configuration.scm’ is not enough, for
          instance because that file refers to extra files (SSH public
          keys, extra configuration files, etc.)  via ‘local-file’ and
          similar constructs.  For those cases, we recommend something
          along these lines:

               (unattended-upgrade-configuration
                 (operating-system-file
                   (file-append (local-file "." "config-dir" #:recursive? #t)
                                "/config.scm")))

          The effect here is to import all of the current directory into
          the store, and to refer to ‘config.scm’ within that directory.
          Therefore, uses of ‘local-file’ within ‘config.scm’ will work
          as expected.  *Note G-Expressions::, for information about
          ‘local-file’ and ‘file-append’.

I can see several options:

  1. Use the trick above and add (say):

       (add-to-load-path (dirname (current-filename)))

     in your config file.  Not pretty.

  2. Turn your modules into a channel.  Nice because there’s no need for
     a special case, modules are automatically updated at each upgrade,
     etc., but OTOH requires more paperwork.

  3. What you propose.  Easy to use but a bit low-level and users could
     be tempted to pass local file names instead of using ‘local-file’,
     in which case the process becomes more brittle (depends on things
     outside the store).

> The second patch changes the default channels to #f, i.e. the system default
> (/etc/guix/channels.scm), which feels more natural to me.

I prefer being explicit here and keep ‘unattended-upgrade-configuration’
self-contained (/etc/guix/channels.scm could be modified behind our
back).

WDYT?

Thanks,
Ludo’.




This bug report was last modified 4 years and 150 days ago.

Previous Next


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