Hi Tristan,

Tristan <blobb...@ymail.com> writes:

> Hi Guixers,
>
>
> I want to create a service that listens on an MQTT topic for messages 
> (i.e. "pull docker") and runs corresponding commands on the local machine.
> For that to work I need guile-mqtt but I do to not understand how module 
> visibility works in Guix.
> Coming from other languages I would assume that imports would check 
> files next to the starting point and then bubble up a predefined PATH 
> until it finds some module or fails.

Yes, this is exactly how guile works, it checks GUILE_LOAD_PATH.

> However that is not what I am seeing or at least the shell command is 
> not working the way I am expecting to.
> What am I missing?

You're missing guile from the shell. That package needs to be there to
get the search path GUILE_LOAD_PATH. You need both the package that
provides the search path (guile) and a package that activates it
(guile-mqtt).

Rutherther

>
>
> guix shell guile-mqtt -- guile -c "(use-modules (mosquitto client)) 
> (display \"Module loaded successfully\n\")"
>
> Backtrace:
> In ice-9/boot-9.scm:
>    1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
>            12 (apply-smob/0 #<thunk 7f7ab0123300>)
> In ice-9/boot-9.scm:
>      724:2 11 (call-with-prompt ("prompt") #<procedure 7f7ab0130320 …> …)
> In ice-9/eval.scm:
>      619:8 10 (_ #(#(#<directory (guile-user) 7f7ab0126c80>)))
> In ice-9/command-line.scm:
>     185:19  9 (_ #<input: string 7f7ab0120850>)
> In unknown file:
>             8 (eval (use-modules (mosquitto client)) #<directory (gui…>)
> In ice-9/eval.scm:
>     721:20  7 (primitive-eval (use-modules (mosquitto client)))
> In ice-9/psyntax.scm:
>    1229:36  6 (expand-top-sequence (#<syntax:unknown file:1:0 (use-…>) …)
>    1221:19  5 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
>     259:10  4 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
> In ice-9/boot-9.scm:
>    3935:20  3 (process-use-modules _)
>     222:17  2 (map1 (((mosquitto client))))
>    3936:31  1 (_ ((mosquitto client)))
>     3330:6  0 (resolve-interface (mosquitto client) #:select _ #:hide …)
>
> ice-9/boot-9.scm:3330:6: In procedure resolve-interface:
> no code for module (mosquitto client)

Reply via email to