On Mon, Mar 18, 2024 at 03:52:44PM +0100, hubert.lombard@ik.me via wrote: > Hi Richard ! > > Le 2024-03-16T16:07:29.000+01:00, Richard Sent > 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) #< type: # > --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