unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
@ 2019-05-09  5:55 znavko
  2019-05-09  7:26 ` rendaw
  2019-05-09  9:13 ` znavko
  0 siblings, 2 replies; 3+ messages in thread
From: znavko @ 2019-05-09  5:55 UTC (permalink / raw)
  To: help-guix

[-- Attachment #1: Type: text/plain, Size: 1846 bytes --]

Hello! I try to reconfigure system with Gnome, sddm and wayland.
I also use sddm-configuration to define use wayland for greeter, but get the error for my misconfiguration:

# cat config.scm
...
 (services (cons*
 ;(service xfce-desktop-service-type)
 (service gnome-desktop-service-type)
 (service dhcp-client-service-type)
 (service sddm-service
 (sddm-configuration
 (display-server "wayland")))
...
)

# guix system reconfigure config.scm
Backtrace:
 14 (primitive-load "/root/.config/guix/current/bin/guix")
In guix/ui.scm:
 1734:12 13 (run-guix-command _ . _)
In ice-9/boot-9.scm:
 829:9 12 (catch _ _ #<procedure 7ff6047408f8 at guix/ui.scm:701…> …)
 829:9 11 (catch _ _ #<procedure 7ff604740910 at guix/ui.scm:824…> …)
In guix/scripts/system.scm:
 1301:8 10 (_)
In guix/status.scm:
 768:4 9 (call-with-status-report _ _)
In guix/scripts/system.scm:
 1159:4 8 (process-action _ _ _)
In guix/store.scm:
 623:10 7 (call-with-store _)
 1794:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
In guix/scripts/system.scm:
 1175:13 5 (_ _)
 882:18 4 (perform-action reconfigure #<<operating-system> kerne…> …)
In gnu/system.scm:
 851:19 3 (operating-system-derivation _)
In gnu/services.scm:
 743:6 2 (instantiate-missing-services _)
In guix/combinators.scm:
 45:26 1 (fold2 #<procedure adjust-service-list (svc result ins…> …)
In gnu/services.scm:
 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …)

gnu/services.scm:733:11: In procedure adjust-service-list:
In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
Please, let me know how to understand such errors. Here, I saw the same structure https://www.gnu.org/software/guix/manual/en/guix.html#index-sddm_002dservice

[-- Attachment #2: config-znavko-gnome.scm --]
[-- Type: application/octet-stream, Size: 2618 bytes --]

;-*- mode: Scheme; -*-
;;this is znavko's cute config

(use-modules (gnu) (gnu system nss)
	     (gnu system locale) ;;for locale-definition
	     (gnu services desktop)
	     (srfi srfi-1)	       ;;for remove function
	     (gnu services networking) ;;for remove ntp
	     (gnu services avahi)      ;;for remove avahi
	     (gnu services xorg)
	     (gnu packages admin) ;;for wpa_supplicant
	     (gnu services sddm) ;;for wayland gnome
	     )

(use-service-modules desktop)
(use-package-modules certs gnome)

(operating-system (host-name "antelope") (timezone "Europe/Moscow") (locale "en_US.utf8")
		  (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "/dev/sda")))
		  (file-systems (cons (file-system (device "/dev/sda1") (mount-point "/") (type "ext4")) %base-file-systems))
		  (swap-devices '("/dev/sda2"))

		  (users (cons* (user-account (name "bob") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/bob"))
				(user-account (name "mom") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/mom"))
				%base-user-accounts))

		  ;; This is where we specify system-wide packages.
		  (packages (cons* nss-certs ;for HTTPS access
				   gvfs	     ;for user mounts
				   wpa-supplicant
				   %base-packages))

		  (services (cons* 
			     ;(service xfce-desktop-service-type)
			     (service gnome-desktop-service-type)
			     (service dhcp-client-service-type)
			     (service sddm-service
				      (sddm-configuration
				       (display-server "wayland")))

			     (modify-services      
			      (remove (lambda (service)
					(member (service-kind service)
						(list ntp-service-type avahi-service-type 
						      bluetooth-service network-manager-service-type
						      gdm-service-type)))
				      %desktop-services) ;end of remove lambda services

			      (wpa-supplicant-service-type config =>
							   (wpa-supplicant-configuration
							    (interface "wlp2s0")
							    (config-file "/etc/wpa_supplicant/wpa_supplicant.conf")))

			      (elogind-service-type
			       c => (elogind-configuration (handle-lid-switch 'ignore)))
			      )	;;end of modify-services
			     ))	;;end of services

		  ;; Allow resolution of '.local' host names with mDNS.
		  (name-service-switch %mdns-host-lookup-nss)

		  ;;blacklist ugly sound speaker, blacklist ideapad_laptop for prevent soft blocking wlan
		  (kernel-arguments '("modprobe.blacklist=pcspkr,snd_pcsp,bluetooth,ideapad_laptop"))

		  ) ;;end of operating-system

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
  2019-05-09  5:55 Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)> znavko
@ 2019-05-09  7:26 ` rendaw
  2019-05-09  9:13 ` znavko
  1 sibling, 0 replies; 3+ messages in thread
From: rendaw @ 2019-05-09  7:26 UTC (permalink / raw)
  To: help-guix

On 5/9/19 2:55 PM, znavko@disroot.org wrote:
> Hello! I try to reconfigure system with Gnome, sddm and wayland.
> I also use sddm-configuration to define use wayland for greeter, but get the error for my misconfiguration:
>
> # cat config.scm
> ...
>  (services (cons*
>  ;(service xfce-desktop-service-type)
>  (service gnome-desktop-service-type)
>  (service dhcp-client-service-type)
>  (service sddm-service
>  (sddm-configuration
>  (display-server "wayland")))
> ...
> )
>
> # guix system reconfigure config.scm
> Backtrace:
>  14 (primitive-load "/root/.config/guix/current/bin/guix")
> In guix/ui.scm:
>  1734:12 13 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>  829:9 12 (catch _ _ #<procedure 7ff6047408f8 at guix/ui.scm:701…> …)
>  829:9 11 (catch _ _ #<procedure 7ff604740910 at guix/ui.scm:824…> …)
> In guix/scripts/system.scm:
>  1301:8 10 (_)
> In guix/status.scm:
>  768:4 9 (call-with-status-report _ _)
> In guix/scripts/system.scm:
>  1159:4 8 (process-action _ _ _)
> In guix/store.scm:
>  623:10 7 (call-with-store _)
>  1794:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
> In guix/scripts/system.scm:
>  1175:13 5 (_ _)
>  882:18 4 (perform-action reconfigure #<<operating-system> kerne…> …)
> In gnu/system.scm:
>  851:19 3 (operating-system-derivation _)
> In gnu/services.scm:
>  743:6 2 (instantiate-missing-services _)
> In guix/combinators.scm:
>  45:26 1 (fold2 #<procedure adjust-service-list (svc result ins…> …)
> In gnu/services.scm:
>  733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …)
>
> gnu/services.scm:733:11: In procedure adjust-service-list:
> In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
> Please, let me know how to understand such errors. Here, I saw the same structure https://www.gnu.org/software/guix/manual/en/guix.html#index-sddm_002dservice

(sddm-service ...) returns a service instance so you don't need to wrap
it in (service ...).  I think the key point to notice is it's
`sddm-service` and not `sddm-service-type` - service types go in
`(service ...)` as the second parameter but `service-*` functions
replace the `(service ...)` call entirely.

I'm not sure if there's more information you can get from the backtrace,
but where it says:

position 1 (expecting struct): #<procedure sddm-service (#:optional config)>

it's saying it wanted a struct but got `sddm-service` which is a
`procedure` (function). And the last line of the trace has:

 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …)

-- all the <service> things make me think that it's probably looking for
a struct of type <service>.

If you change it from `(service sddm-service)` to `(sddm-service
(sddm-configuration))` it should work (although you might want to
specify some values in sdm-configuration.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
  2019-05-09  5:55 Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)> znavko
  2019-05-09  7:26 ` rendaw
@ 2019-05-09  9:13 ` znavko
  1 sibling, 0 replies; 3+ messages in thread
From: znavko @ 2019-05-09  9:13 UTC (permalink / raw)
  To: rendaw, help-guix

I've got working config for gnome+wayland. here it is https://gitgud.io/znavko/guix-configs

May 9, 2019 7:26 AM, "rendaw" <7e9wc56emjakcm@s.rendaw.me> wrote:

> On 5/9/19 2:55 PM, znavko@disroot.org wrote:
> 
>> Hello! I try to reconfigure system with Gnome, sddm and wayland.
>> I also use sddm-configuration to define use wayland for greeter, but get the error for my
>> misconfiguration:
>> 
>> # cat config.scm
>> ...
>> (services (cons*
>> ;(service xfce-desktop-service-type)
>> (service gnome-desktop-service-type)
>> (service dhcp-client-service-type)
>> (service sddm-service
>> (sddm-configuration
>> (display-server "wayland")))
>> ...
>> )
>> 
>> # guix system reconfigure config.scm
>> Backtrace:
>> 14 (primitive-load "/root/.config/guix/current/bin/guix")
>> In guix/ui.scm:
>> 1734:12 13 (run-guix-command _ . _)
>> In ice-9/boot-9.scm:
>> 829:9 12 (catch _ _ #<procedure 7ff6047408f8 at guix/ui.scm:701…> …)
>> 829:9 11 (catch _ _ #<procedure 7ff604740910 at guix/ui.scm:824…> …)
>> In guix/scripts/system.scm:
>> 1301:8 10 (_)
>> In guix/status.scm:
>> 768:4 9 (call-with-status-report _ _)
>> In guix/scripts/system.scm:
>> 1159:4 8 (process-action _ _ _)
>> In guix/store.scm:
>> 623:10 7 (call-with-store _)
>> 1794:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
>> In guix/scripts/system.scm:
>> 1175:13 5 (_ _)
>> 882:18 4 (perform-action reconfigure #<<operating-system> kerne…> …)
>> In gnu/system.scm:
>> 851:19 3 (operating-system-derivation _)
>> In gnu/services.scm:
>> 743:6 2 (instantiate-missing-services _)
>> In guix/combinators.scm:
>> 45:26 1 (fold2 #<procedure adjust-service-list (svc result ins…> …)
>> In gnu/services.scm:
>> 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …)
>> 
>> gnu/services.scm:733:11: In procedure adjust-service-list:
>> In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #<procedure
>> sddm-service (#:optional config)>
>> Please, let me know how to understand such errors. Here, I saw the same structure
>> https://www.gnu.org/software/guix/manual/en/guix.html#index-sddm_002dservice
> 
> (sddm-service ...) returns a service instance so you don't need to wrap
> it in (service ...).  I think the key point to notice is it's
> `sddm-service` and not `sddm-service-type` - service types go in
> `(service ...)` as the second parameter but `service-*` functions
> replace the `(service ...)` call entirely.
> 
> I'm not sure if there's more information you can get from the backtrace,
> but where it says:
> 
> position 1 (expecting struct): #<procedure sddm-service (#:optional config)>
> 
> it's saying it wanted a struct but got `sddm-service` which is a
> `procedure` (function). And the last line of the trace has:
> 
> 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …)
> 
> -- all the <service> things make me think that it's probably looking for
> a struct of type <service>.
> 
> If you change it from `(service sddm-service)` to `(sddm-service
> (sddm-configuration))` it should work (although you might want to
> specify some values in sdm-configuration.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-05-09  9:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-09  5:55 Wrong type argument in position 1 (expecting struct): #<procedure sddm-service (#:optional config)> znavko
2019-05-09  7:26 ` rendaw
2019-05-09  9:13 ` znavko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).