From mboxrd@z Thu Jan 1 00:00:00 1970 From: rendaw <7e9wc56emjakcm@s.rendaw.me> Subject: Re: Wrong type argument in position 1 (expecting struct): # Date: Thu, 9 May 2019 16:26:29 +0900 Message-ID: <69c346bc-5537-aa57-1e22-2a719ce40721@s.rendaw.me> References: <6eed2c3f4833dccfcf9aaccc39525f0d@disroot.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([209.51.188.92]:34291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hOdRx-0007Nt-R6 for help-guix@gnu.org; Thu, 09 May 2019 03:26:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hOdRv-0007rx-HM for help-guix@gnu.org; Thu, 09 May 2019 03:26:40 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:42717) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hOdRq-0007lG-RC for help-guix@gnu.org; Thu, 09 May 2019 03:26:36 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id BCEF42210C for ; Thu, 9 May 2019 03:26:31 -0400 (EDT) Received: from [192.168.1.35] (y236169.dynamic.ppp.asahi-net.or.jp [118.243.236.169]) by mail.messagingengine.com (Postfix) with ESMTPA id C75131037C for ; Thu, 9 May 2019 03:26:30 -0400 (EDT) In-Reply-To: <6eed2c3f4833dccfcf9aaccc39525f0d@disroot.org> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org 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 _ _ # …) > 829:9 11 (catch _ _ # …) > 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 #< 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 # …) > In gnu/services.scm: > 733:11 0 (adjust-service-list _ (#< type: # …) …) > > gnu/services.scm:733:11: In procedure adjust-service-list: > In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): # > 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): # 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 _ (#< type: # …) …) -- all the things make me think that it's probably looking for a struct of type . 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.