On Mon, Mar 18, 2024 at 03:52:44PM +0100, hubert.lomb...@ik.me via wrote: > Hi Richard ! > > Le 2024-03-16T16:07:29.000+01:00, Richard Sent > <rich...@freakingpenguin.com> a écrit : > > > Hubert, > > > > Your issue is in your operating-system services field. In the backtrace: > > > > --8<---------------cut here---------------start------------->8--- > > In procedure append: Wrong type argument in position 2 (expecting > > empty list) #<<service> type: #<service-type bluetooth ... > > --8<---------------cut here---------------end--------------->8--- > > > > You have several services outside of the (list) call, so you're > > basically running > > > > --8<---------------cut here---------------start------------->8--- > > (append (list (service-1 service-2) service-3 service-4 > > %desktop-services)) > > --8<---------------cut here---------------end--------------->8--- > > > > Append only takes lists as arguments. %desktop-services is a list, but > > bluetooth service and hurd-vm service are not. > > Thank you :) while/after reading your answer, I have tried to change > my config file > > by adding %base-services like it : > > /etc/config.scm > > --8<---------------cut here---------------start------------->8--- > (services > (append (list (service gnome-desktop-service-type) > (service cups-service-type) > (set-xorg-configuration > (xorg-configuration > (keyboard-layout keyboard-layout)))) > ;; Voici la liste des services par défaut à laquelle nous > ;; ajoutons nos propres services. > %desktop-services)) > > (services (cons* (service bluetooth-service-type) > (bluetooth-configuration > (auto-enable? #t))) > (service hurd-vm-service-type > (hurd-vm-configuration > (disk-size (* 10000 (expt 2 20))) ;10G > (memory-size 1024))) ;1024MiB > %base-services)) > --8<---------------cut here---------------end--------------->8---
(Indentation modified to show the actual structure more clearly) The S-exp structure is wrong here. A service declaration is of form ``` (service xxx-service-type (xxx-configuration (field-name value) (another-field another-value))) ``` and the `services` field must be a list of such service declarations. In your configuration snippet the first definition of `services` is valid but the second one is three separate elements (not a list). The first element is a pair (not a list) with elements `(service bluetooth-service-type)` and `(bluetooth-configuration (auto-enable? #t))`, the second element is a single valid service declaration and the third is a list of service declarations. Also, you are defining the `services` field twice which will not give expected results even if it passes the compiler (hopefully it doesn't). You have to combine the lists and set the `services` field to that. I think %base-services is a subset of %desktop-services, so you should not need both in the same `operating-system` declaration. > Instead of putting the Hurd in %base-services (arbitrarily inserted by > myself), maybe I should create a service like %define-my-service, or > use (modify-services. In Guix one doesn't "put services into %base-services" but instead creates a new list of services which contains the services in %base-services and some additional services. - Saku
signature.asc
Description: PGP signature