[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Nested modify-services
From: |
Fredrik Salomonsson |
Subject: |
Nested modify-services |
Date: |
Sun, 04 Jun 2023 19:53:21 +0000 |
Hi Guix,
Yesterday I encountered an issue when I updated my desktop machine:
sudo -i guix pull && sudo -i guix system reconfigure
~/projects/plt/plt/system/machines/surt.scm
--8<----------------------------------------------------------------------------
…
guix system: warning: exception caught while executing 'eval' on service 'root':
error: remove: unbound variable
guix system: warning: some services could not be upgraded
hint: To allow changes to all the system services to take effect, you will need
to reboot.
---------------------------------------------------------------------------->8--
But I didn't get that with my laptop. Both share a lot of the same
system configuration as I've created my own channel[0], where I have both
configs inherting from a common config. I traced the issue to how I was
setting up the extra services on my desktop machine[1]:
--8<----------------------------------------------------------------------------
(define plt-surt-os
(operating-system
(inherit %plt-base-operating-system)
(host-name "surt")
;; …
(services
(cons*
;; …
(service console-font-service-type
(map (lambda (tty)
(cons tty (file-append font-terminus
"/share/consolefonts/ter-132n")))
'("tty1" "tty2" "tty3" "tty4" "tty5" "tty6")))
(modify-services
%plt-base-services
(delete console-font-service-type))))))
---------------------------------------------------------------------------->8--
Where my %plt-base-services[2] is defined as:
--8<----------------------------------------------------------------------------
(define %plt-base-services
(cons*
(service plt-home-rottlog-service-type)
(service plt-automount-service-type)
;; …
(modify-services
%desktop-services
(delete gdm-service-type)
(network-manager-service-type
config => (network-manager-configuration
(inherit config)
(dns "dnsmasq")
(vpn-plugins (list network-manager-openconnect))))
;; …
)))
---------------------------------------------------------------------------->8--
If I remove the modify-services call on my desktop machine, or move it
to %plt-base-services. The error goes away. I noticed that
there was a recent change in modify-services[3] that is most likely
behind my issue.
Is nesting modify-services supported, I.e call modify-services on a list
that already been modified by modify-services? If not, what would be
the best way of sharing services between configurations and allow for
custom tweaks per machine.
Thanks!
[0] https://git.sr.ht/~plattfot/plt
[1]
https://git.sr.ht/~plattfot/plt/tree/2abf21f5/item/plt/system/machines/surt.scm
[2] https://git.sr.ht/~plattfot/plt/tree/2abf21f5/item/plt/system/machines.scm
[3]
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=dbbc7e946131ba257728f1d05b96c4339b7ee88b
--
s/Fred[re]+i[ck]+/Fredrik/g
- Nested modify-services,
Fredrik Salomonsson <=