hey all, I’m trying to wrap my package in a docker container to integrate with the rest of my team but I get the following error: Gtk initialization failed for display ":0"
context...:
"/root/.racket/7.7/pkgs/gui-lib/mred/private/wx/gtk/queue.rkt": [running body]
temp35_0
for-loop
run-module-instance!
for-loop
[repeats 1 more time]
run-module-instance!
for-loop
[repeats 1 more time]
run-module-instance!
do-dynamic-require
"/root/.racket/7.7/pkgs/gui-lib/mred/private/wx/platform.rkt": [running body]
temp35_0
for-loop
run-module-instance!
for-loop
...
I’m not sure how to go about debugging this, my package doesn’t require a gui so I’m guessing this requirement is coming from one of the dependent packages but I’m not sure how to hunt that down
If you have X installed in your docker, you can try: https://stackoverflow.com/questions/28392949/running-chromium-inside-docker-gtk-cannot-open-display-0
Presumably there is something I can do in my code to prevent this, no? since I dont really need/want it to try and connect to any display
Presumably. I don’t know where to look though.
roger! I think I found a promising thread to pull on. Will update here if its fruitful. Thanks :slightly_smiling_face:
So here were the steps: 1. Dropped the —auto from raco install and reinstalled my package 2. Identify which library brought with it the gui dependencies 3. check where that package is used in my code. After step (3) the guilty (require ...
was identified.
So who was guilty? :wink:
The guilty require was rosette/lib/value-browser
, but the true blame lays with the idiot who wrote the code. Certainly not me. I assure you when I catch the guilty party they will pay dearly for it :stuck_out_tongue:
The value browser looks pretty nifty! (Hadn’t come across it before).
I think that will break all the current users of A since (require "A.rkt")
will now not get f
Never mind: (require 'a)
(provide f)
took care of that.
Oh interesting. I didn’t know it could cause an error like that. Will add a note to Rosette doc tonight.