unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* define udev-service-type fails with "did you forget to import.." error
@ 2020-09-27 21:23 Stefan Huchler
  2020-09-29 14:12 ` Ludovic Courtès
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Huchler @ 2020-09-27 21:23 UTC (permalink / raw)
  To: help-guix

When I try to redefine the udev-service like described in:
https://guix.gnu.org/manual/en/html_node/Service-Types-and-Services.html


(define udev-service-type
  (service-type (name 'udev)
                (extensions
                 (list (service-extension shepherd-root-service-type
                                          udev-shepherd-service)))
                (compose concatenate)       ;concatenate the list of rules
                (extend (lambda (config rules)
                          (match config
                            (($ <udev-configuration> udev initial-rules)
                             (udev-configuration
                              (udev eudev)   ;the udev package to use
                              (rules initial-rules))))))))

I get following error:
/etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
hint: Did you forget `(use-modules (gnu services base))'?

Despite having:
(use-modules (gnu services base)...)

Any Idea what I do wrong?


btw I removed the append part of rules
otherwise it's copied from that docu example.



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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-09-27 21:23 define udev-service-type fails with "did you forget to import.." error Stefan Huchler
@ 2020-09-29 14:12 ` Ludovic Courtès
  2020-09-29 16:23   ` Stefan Huchler
  2020-10-04 10:18   ` Stefan Huchler
  0 siblings, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2020-09-29 14:12 UTC (permalink / raw)
  To: Stefan Huchler; +Cc: help-guix

Hi,

Stefan Huchler <stefan.huchler@mail.de> skribis:

> I get following error:
> /etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
> hint: Did you forget `(use-modules (gnu services base))'?

Could you send /etc/config.scm so we can see the context?

Thanks,
Ludo’.


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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-09-29 14:12 ` Ludovic Courtès
@ 2020-09-29 16:23   ` Stefan Huchler
  2020-10-04 10:29     ` Ricardo Wurmus
  2020-10-04 10:18   ` Stefan Huchler
  1 sibling, 1 reply; 10+ messages in thread
From: Stefan Huchler @ 2020-09-29 16:23 UTC (permalink / raw)
  To: help-guix

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

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Stefan Huchler <stefan.huchler@mail.de> skribis:
>
>> I get following error:
>> /etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
>> hint: Did you forget `(use-modules (gnu services base))'?
>
> Could you send /etc/config.scm so we can see the context?
>
> Thanks,
> Ludo’.

Yes of course.


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

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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-09-29 14:12 ` Ludovic Courtès
  2020-09-29 16:23   ` Stefan Huchler
@ 2020-10-04 10:18   ` Stefan Huchler
  1 sibling, 0 replies; 10+ messages in thread
From: Stefan Huchler @ 2020-10-04 10:18 UTC (permalink / raw)
  To: help-guix

Hello Ludo,
did you see my answer?

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Stefan Huchler <stefan.huchler@mail.de> skribis:
>
>> I get following error:
>> /etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
>> hint: Did you forget `(use-modules (gnu services base))'?
>
> Could you send /etc/config.scm so we can see the context?
>
> Thanks,
> Ludo’.



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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-09-29 16:23   ` Stefan Huchler
@ 2020-10-04 10:29     ` Ricardo Wurmus
  2020-10-04 14:18       ` Stefan Huchler
  0 siblings, 1 reply; 10+ messages in thread
From: Ricardo Wurmus @ 2020-10-04 10:29 UTC (permalink / raw)
  To: Stefan Huchler; +Cc: help-guix


Stefan Huchler <stefan.huchler@mail.de> writes:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hi,
>>
>> Stefan Huchler <stefan.huchler@mail.de> skribis:
>>
>>> I get following error:
>>> /etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
>>> hint: Did you forget `(use-modules (gnu services base))'?
>>
>> Could you send /etc/config.scm so we can see the context?
>>
>> Thanks,
>> Ludo’.
>
> Yes of course.

That module does not export udev-shepherd-service AFAICT.

-- 
Ricardo


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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-10-04 10:29     ` Ricardo Wurmus
@ 2020-10-04 14:18       ` Stefan Huchler
  2020-10-04 15:00         ` Tobias Geerinckx-Rice
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Huchler @ 2020-10-04 14:18 UTC (permalink / raw)
  To: help-guix

And which does, and why does guix cli interface claim it would do that,
with it's hint? A bug?

Ricardo Wurmus <rekado@elephly.net> writes:

> Stefan Huchler <stefan.huchler@mail.de> writes:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Hi,
>>>
>>> Stefan Huchler <stefan.huchler@mail.de> skribis:
>>>
>>>> I get following error:
>>>> /etc/config.scm:128:0: error: udev-shepherd-service: unbound variable
>>>> hint: Did you forget `(use-modules (gnu services base))'?
>>>
>>> Could you send /etc/config.scm so we can see the context?
>>>
>>> Thanks,
>>> Ludo’.
>>
>> Yes of course.
>
> That module does not export udev-shepherd-service AFAICT.



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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-10-04 14:18       ` Stefan Huchler
@ 2020-10-04 15:00         ` Tobias Geerinckx-Rice
  2020-10-04 20:06           ` Stefan Huchler
  2020-10-04 20:25           ` Stefan Huchler
  0 siblings, 2 replies; 10+ messages in thread
From: Tobias Geerinckx-Rice @ 2020-10-04 15:00 UTC (permalink / raw)
  To: Stefan Huchler; +Cc: help-guix

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

Stefan,

Stefan Huchler 写道:
> When I try to redefine the udev-service like described in [0]
[...]
> I get following error: /etc/config.scm: [...]

That's not what [0] describes, is it?  It illustrates some service 
concepts, using real code as example.

It doesn't imply that the example code can or should be added to a 
system configuration.

>> That module does not export udev-shepherd-service AFAICT.
> And which does,

Nobody: (gnu services base) defines udev-shepherd-service but does 
not export it.  It's not intended to be API, nor do I think it 
needs to be.

You might be able to use (@@ (gnu services base) 
udev-shepherd-service), which forces the module to give up its 
secrets.  It's not good style, and it won't always work but often 
does.

> and why does guix cli interface claim it would do that,
> with it's hint?

Because it's naive.  See <http://issues.guix.gnu.org/43498> and - 
please! - beat me to a fix ;-)

Kind regards,

T G-R

[0]: 
https://guix.gnu.org/manual/en/html_node/Service-Types-and-Services.html

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-10-04 15:00         ` Tobias Geerinckx-Rice
@ 2020-10-04 20:06           ` Stefan Huchler
  2020-10-04 20:25           ` Stefan Huchler
  1 sibling, 0 replies; 10+ messages in thread
From: Stefan Huchler @ 2020-10-04 20:06 UTC (permalink / raw)
  To: help-guix

Tobias Geerinckx-Rice <me@tobias.gr> writes:

> That's not what [0] describes, is it?  It illustrates some service
> concepts, using real code as example.

First maybe that is because of text messages and you don't see a face
but your messages sounds a bit passive agressive, but independent from
that I am happy to get a answer, so thanks.

> It doesn't imply that the example code can or should be added to a
> system configuration.

I thought that meaned to be example code to extend such code, but I
english is not my first language and I might read not everything
extremely carefully.

> Nobody: (gnu services base) defines udev-shepherd-service but does not
> export it.  It's not intended to be API, nor do I think it needs to
> be.

Yes and no, I reported 3 weeks ago:

http://issues.guix.gnu.org/issue/43390

So if there would be a direct way to access the hwdb capability of udev
service I would be happy to not use this hack, but for now I priotise
something running over something done the right way, I am good at elisp
but not so good with guile or with understanding the guix architecture,
I try to get a laptop in a usable shape so that I can maybe start being
more productive use the emacs module and well over time learn. I don't
want to become a guix / scheme expert just to get my keyboard working on
my laptop which is my second installation after my netbook on which I
will not code much for guix.

I am totally open to better solutions but if I have to write 10 messages
in 3 weeks I take what I can get, to get the system working.

> You might be able to use (@@ (gnu services base)
> udev-shepherd-service), which forces the module to give up its
> secrets.  It's not good style, and it won't always work but often
> does.

I will test that and report back, thanks for the info.

> Because it's naive.  See <http://issues.guix.gnu.org/43498> and - 
> please! - beat me to a fix ;-)

Maybe I will, just currently more into some elisp/emacs projects.

Regards

Stefan Huchler



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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-10-04 15:00         ` Tobias Geerinckx-Rice
  2020-10-04 20:06           ` Stefan Huchler
@ 2020-10-04 20:25           ` Stefan Huchler
  2020-10-04 20:55             ` Tobias Geerinckx-Rice
  1 sibling, 1 reply; 10+ messages in thread
From: Stefan Huchler @ 2020-10-04 20:25 UTC (permalink / raw)
  To: help-guix

Tobias Geerinckx-Rice <me@tobias.gr> writes:

> You might be able to use (@@ (gnu services base)
> udev-shepherd-service), which forces the module to give up its
> secrets.  It's not good style, and it won't always work but often
> does.

A the double @ was a typo? tried it inside of (use-modules) with 1 or 2
@ the error I get is when I set it in the file:

  source expression failed to match any pattern



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

* Re: define udev-service-type fails with "did you forget to import.." error
  2020-10-04 20:25           ` Stefan Huchler
@ 2020-10-04 20:55             ` Tobias Geerinckx-Rice
  0 siblings, 0 replies; 10+ messages in thread
From: Tobias Geerinckx-Rice @ 2020-10-04 20:55 UTC (permalink / raw)
  To: Stefan Huchler; +Cc: help-guix

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

Stefan,

Stefan Huchler 写道:
> A the double @ was a typo?

No, it's a documented feature in the Guile manual:

   “You can also directly refer to bindings in a module by using 
   the ‘@’
   syntax.  For example, instead of using the ‘use-modules’ 
   statement from
   above and writing ‘unixy:pipe-open’ to refer to the ‘pipe-open’ 
   from the
   ‘(ice-9 popen)’, you could also write ‘(@ (ice-9 popen) 
   open-pipe)’.
   Thus an alternative to the complete ‘use-modules’ statement 
   would be

     (define unixy:pipe-open (@ (ice-9 popen) open-pipe))
     (define unixy:close-pipe (@ (ice-9 popen) close-pipe))

   There is also ‘@@’, which can be used like ‘@’, but does not 
   check
   whether the variable that is being accessed is actually 
   exported.  Thus,
   ‘@@’ can be thought of as the impolite version of ‘@’ and 
   should only be
   used as a last resort or for debugging, for example.

   Note that just as with a ‘use-modules’ statement, any module 
   that has
   not yet been loaded will be loaded when referenced by a ‘@’ or 
   ‘@@’
   form.” -- (guile)Using Guile Modules

I think I'm done here though.

Good luck,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

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

end of thread, other threads:[~2020-10-04 20:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-27 21:23 define udev-service-type fails with "did you forget to import.." error Stefan Huchler
2020-09-29 14:12 ` Ludovic Courtès
2020-09-29 16:23   ` Stefan Huchler
2020-10-04 10:29     ` Ricardo Wurmus
2020-10-04 14:18       ` Stefan Huchler
2020-10-04 15:00         ` Tobias Geerinckx-Rice
2020-10-04 20:06           ` Stefan Huchler
2020-10-04 20:25           ` Stefan Huchler
2020-10-04 20:55             ` Tobias Geerinckx-Rice
2020-10-04 10:18   ` Stefan Huchler

unofficial mirror of help-guix@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-user/0 guix-user/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-user guix-user/ https://yhetil.org/guix-user \
		help-guix@gnu.org
	public-inbox-index guix-user

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.user
	nntp://news.gmane.io/gmane.comp.gnu.guix.user


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git