Hello o/ Further investigations to insert
the hurd-vm in /etc/config.scm In my attempt at config.scm, inspired both by my own file and from examples found on the Internet, I've tried to use (define %my-gnome as well and (modify-services %desktop-services, knowing that I'm missing at least 1 module related to the package list. I've tried several, but I can't figure out which one (or which...) $ sudo guix system reconfigure /etc/config.scm --8<---------------cut here---------------start------------->8--- ce-9/eval.scm:223:20: In procedure proc: erreur : packages : variable non liée conseil : Auriez-vous oublié un `use-modules' ? --8<---------------cut here---------------end--------------->8--- As I only use Guix System, I'm aware that I'd better build myself a a virtual machine to test this kind of configuration. Secondly, I'm also aware that even if my (use-modules) field was satisfied, there might still be other problems... Here's the failing test, what do you think? /etc/config.scm --8<---------------cut here---------------start------------->8--- (use-modules (gnu) (gnu services) (gnu services base) (gnu packages gnome) (gnu packages) (gnu packages base) (gnu system nss) (guix utils) (gnu services cups) (gnu packages certs)) ;;Maybe some modules not relevant here ?... (use-service-modules desktop networking ssh xorg cups virtualization sound) (use-package-modules bootloaders certs cups gnome xorg linux vim scanner screen ssh wm audio) (operating-system (locale "fr_FR.utf8") (timezone "Europe/Paris") (keyboard-layout (keyboard-layout "fr")) (host-name "gnu") (users (cons* (user-account (name "hubert") (comment "Hubert") (group "users") (home-directory "/home/hubert") (supplementary-groups '("wheel" "netdev" "audio" "video" "kvm" "lp" "cdrom" "scanner"))) %base-user-accounts)) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout keyboard-layout))) (swap-devices (list (swap-space (target (uuid "527ab16b-d20c-4269-bc6f-8910ef3f8c5e"))))) (file-systems (cons* (file-system (mount-point "/boot/efi") (device (uuid "1C82-1420" 'fat32)) (type "vfat")) (file-system (mount-point "/") (device (uuid "e4fb3e05-b455-40db-bc59-4d4d011e1e01" 'ext4)) (type "ext4")) %base-file-systems))) (packages (append (list nss-certs ;for HTTPS access vim ;some tools expect it to be there gvfs ;for user mounts openssh cups foomatic-filters hplip sane-backends ijs ghostscript) %base-packages)) (define %my-gnome (package (inherit gnome) (name "my-gnome") (propagated-inputs (modify-inputs (package-propagated-inputs gnome) (delete "epiphany") (delete "evolution") (delete "gnome-weather") (delete "simple-scan") (delete "gnome-maps") (delete "gnome-boxes") (delete "gnome-console") (delete "gnome-contacts") (append gnome-terminal)))) %my-gnome) ;; default settings (services (append (list (service hurd-vm-service-type (hurd-vm-configuration (disk-size (* 5000 (expt 2 20))) (memory-size 1024))) (service gnome-desktop-service-type (gnome-configuration (gnome my-gnome))) (service bluetooth-service-type (bluetooth-configuration (auto-enable? #t))) (cups-configuration (web-interface? #t) (extensions (list cups-filters hplip))) (set-xorg-configuration (xorg-configuration ;set keyboard-layout for Xorg (keyboard-layout keyboard-layout))) (modify-services %desktop-services (service cups-service-type (cups-configuration (web-interface? #t) (extensions (list cups-filters hplip))))) %default-settings))) --8<---------------cut here---------------end--------------->8--- Thank you in advance if you can point me to a way :) Best regards Hubert Le 2024-03-20T10:55:45.000+01:00, "hubert.lomb...@ik.me" via <help-guix@gnu.org> a écrit : > Hi, Saku! > > Le 2024-03-19T08:37:47.000+01:00, Saku Laesvuori <s...@laesvuori.fi> a > > écrit : > >> 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) > > Nice :) > >> 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))) > > Ok > >> ``` >> >> 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. > > Ah... I can see indeed. > >> 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. > > Again, I understand better now. In this case, the reconfiguration > > hasn't even begun. > >> I think %base-services is a subset of %desktop-services, so you >> should >> >> not need both in the same `operating-system` declaration. > > Got it. > >>> 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. > > This is what I tried to understand to implement yesterday by > studying: > > (define %my-services > > (modify-services %xxxx-services > > (.......... > > > > But I admit that it's still a bit fuzzy for me... > > A good thing is that by studying all of this a little bit yesterday, > I > > was able to make it work Bluetooth :) > > --8<---------------cut here---------------start------------->8--- > > (use-modules (gnu) (gnu services base)) > > (use-service-modules cups desktop networking ssh xorg audio sound > dbus > > virtualization) > > (operating-system > > (locale "fr_FR.utf8") > > (timezone "Europe/Paris") > > (keyboard-layout (keyboard-layout "fr")) > > (host-name "gnu") > > (users (cons* (user-account > > (name "hubert") > > (comment "Hubert") > > (group "users") > > (home-directory "/home/hubert") > > (supplementary-groups '("wheel" > > "netdev" "audio" "video" "kvm" "lp"))) > > %base-user-accounts)) > > (packages (append (list (specification->package "nss-certs")) > > %base-packages)) > > (services > > (append (list (service gnome-desktop-service-type) > > (service bluetooth-service-type > > (bluetooth-configuration > > (auto-enable? #t))) > > (service cups-service-type) > > (set-xorg-configuration > > (xorg-configuration > > (keyboard-layout keyboard-layout)))) > > %desktop-services)) > > ........ > > --8<---------------cut here---------------end--------------->8--- > > I think I'll be able to insert (service hurd-vm-service-type in a > > definition of services : > > (define %my-services > > (modify-services %xxxx-services > > (.......... > > > > I'm still studying... Thank you Saku for your reply o/ > > Hubert Envoyé depuis Infomaniak [https://www.infomaniak.com], email gratuit et respectueux de la vie privée