key-mon crashes on launch

OpenSubmitted by Jesse Gibbons.
Details
4 participants
  • Alexandros Theodotou
  • Jesse Gibbons
  • John Kehayias
  • Tobias Geerinckx-Rice
Owner
unassigned
Severity
normal
J
J
Jesse Gibbons wrote on 3 Aug 2019 00:40
(name . bug-guix mailing list)(address . bug-guix@gnu.org)
0c086cf749e6b5b09ddbcbb2b59d8b0d79d514b5.camel@gmail.com
1. install key-mon
2. run key-mon
it crashes:

(.key-mon-real:5006): Gtk-WARNING **: 16:23:06.088: Unable to locate
theme engine in module_path: "adwaita",

(.key-mon-real:5006): Gtk-WARNING **: 16:23:06.092: Unable to locate
theme engine in module_path: "adwaita",
Traceback (most recent call last):
File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
1.17/bin/.key-mon-real", line 3, in <module>
km.main()
File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 1032, in main
keymon = KeyMon(opts)
File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 130, in
__init__
self.devices = xlib.XEvents()
File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
1.17/lib/python2.7/site-packages/keymon/xlib.py", line 80, in __init__
self.record_display = display.Display()
File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
0.14/lib/python2.7/site-packages/Xlib/display.py", line 85, in __init__
self.display = _BaseDisplay(display)
File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
0.14/lib/python2.7/site-packages/Xlib/display.py", line 67, in __init__
apply(protocol.display.Display.__init__, (self, ) + args, keys)
File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
0.14/lib/python2.7/site-packages/Xlib/protocol/display.py", line 121,
in __init__
raise error.DisplayConnectionError(self.display_name, r.reason)
Xlib.error.DisplayConnectionError: Can't connect to display ":1": No
protocol specified



One possible reason it crashes is the python2-xlib is far outdated. The
package was added in patch db62afa55ad443cc50bcafe64eb3ba239eae9c11
(2015) and has been version 0.14 ever since. The website says it has
been migrated to github, which says the most recent stable release is
0.25. It looks like there is a similar issue (though not identical) htt
ps://github.com/python-xlib/python-xlib/issues/53 which was fixed.

I will see if updating python2-xlib fixes this, and if so I will send a
patch.

Any objections?

--
-Jesse
T
T
Tobias Geerinckx-Rice wrote on 3 Aug 2019 01:21
(address . bug-guix@gnu.org)(address . 36900@debbugs.gnu.org)
87ftmj5f2z.fsf@nckx
Jesse,

Jesse Gibbons 写道:
Toggle quote (6 lines)
> I will see if updating python2-xlib fixes this, and if so I will
> send a
> patch.
>
> Any objections?

On the contrary. That's exactly what we want!

Thanks,

T G-R
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQT12iAyS4c9C3o4dnINsP+IT1VteQUCXUTFZAAKCRANsP+IT1Vt
ebKyAP9hhlmqTfhpGH/IhiquCxQx2rIl/yYUfFBRKbmT02+ohQD/XkEudvljAsN0
Fq4fcdCp6TA4NQ2rzN92QGpIhGA9xQc=
=sciY
-----END PGP SIGNATURE-----

J
J
Jesse Gibbons wrote on 3 Aug 2019 03:54
(address . 36900@debbugs.gnu.org)
4761a59b055ee9adc2f4722d5fccad098a310616.camel@gmail.com
On Fri, 2019-08-02 at 16:40 -0600, Jesse Gibbons wrote:
Toggle quote (58 lines)
> 1. install key-mon
> 2. run key-mon
> it crashes:
>
> (.key-mon-real:5006): Gtk-WARNING **: 16:23:06.088: Unable to locate
> theme engine in module_path: "adwaita",
>
> (.key-mon-real:5006): Gtk-WARNING **: 16:23:06.092: Unable to locate
> theme engine in module_path: "adwaita",
> Traceback (most recent call last):
> File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
> 1.17/bin/.key-mon-real", line 3, in <module>
> km.main()
> File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
> 1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 1032, in
> main
> keymon = KeyMon(opts)
> File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
> 1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 130, in
> __init__
> self.devices = xlib.XEvents()
> File "/gnu/store/jkjmj9l72rmnh642dyprnpwgmz4mn6cx-key-mon-
> 1.17/lib/python2.7/site-packages/keymon/xlib.py", line 80, in
> __init__
> self.record_display = display.Display()
> File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
> 0.14/lib/python2.7/site-packages/Xlib/display.py", line 85, in
> __init__
> self.display = _BaseDisplay(display)
> File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
> 0.14/lib/python2.7/site-packages/Xlib/display.py", line 67, in
> __init__
> apply(protocol.display.Display.__init__, (self, ) + args, keys)
> File "/gnu/store/4xl1xl2fp6c0c9f9pm1xm10x1qgbwp08-python2-xlib-
> 0.14/lib/python2.7/site-packages/Xlib/protocol/display.py", line 121,
> in __init__
> raise error.DisplayConnectionError(self.display_name, r.reason)
> Xlib.error.DisplayConnectionError: Can't connect to display ":1": No
> protocol specified
>
>
>
> One possible reason it crashes is the python2-xlib is far outdated.
> The
> package was added in patch db62afa55ad443cc50bcafe64eb3ba239eae9c11
> (2015) and has been version 0.14 ever since. The website says it has
> been migrated to github, which says the most recent stable release is
> 0.25. It looks like there is a similar issue (though not identical)
> htt
> ps://github.com/python-xlib/python-xlib/issues/53 which was fixed.
>
> I will see if updating python2-xlib fixes this, and if so I will send
> a
> patch.
>
> Any objections?
>

Updating python2-xlib does not fix this bug.
--
-Jesse
A
A
Alexandros Theodotou wrote on 3 Jan 2021 22:16
key-mon crashes on launch
(address . 36900@debbugs.gnu.org)
074a23d47522e83f8b05962e915b4779ae0db499.camel@zrythm.org
Just FYI this is still broken.

Thanks,
Alex
T
T
Tobias Geerinckx-Rice wrote on 3 Jan 2021 22:58
(name . Alexandros Theodotou)(address . alex@zrythm.org)
87r1n1heco.fsf@nckx
Alexandros Theodotou 写道:
Toggle quote (2 lines)
> Just FYI this is still broken.

I don't understand how you are reproducing this backtrace:

$ guix environment key-mon --ad-hoc key-mon -- key-mon
Error: Missing xlib, run sudo apt-get install python-xlib
$ sudo apt-get install python-xlib
sudo: apt-get: command not found

It was worth a try.

How are you launching key-mon? Is this because I'm not using X?

Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iIMEARYKACsWIQT12iAyS4c9C3o4dnINsP+IT1VteQUCX/I+Fw0cbWVAdG9iaWFz
LmdyAAoJEA2w/4hPVW15hFYA/ji/GZbEPEDoX/WU5n5jm/y1IOVJD1l7mVBEhRLS
3FfiAQDwPF6qulrB+GFZJP5Lu80Xr58HhjplrUqQA1rfoV6ACg==
=yP5y
-----END PGP SIGNATURE-----

A
A
Alexandros Theodotou wrote on 3 Jan 2021 23:20
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)(address . 36900@debbugs.gnu.org)
b927b21ef99baa989ae05ae47a861e85741b5c4d.camel@zrythm.org
Hi Tobias,

On Sun, 2021-01-03 at 22:58 +0100, Tobias Geerinckx-Rice wrote:
Toggle quote (3 lines)
> guix environment key-mon --ad-hoc key-mon -- key-mon


I tried the command above and this is my output.
```
substitute: updating substitutes from 'https://ci.guix.gnu.org'...
100.0%
1.7 MB will be downloaded
downloading from
...
python2-pygtk-2.24.0-
doc 776KiB
1.4MiB/s 00:01 [##################]
100.0%

The following derivation will be built:
/gnu/store/mxpnh35lkla14p5f8al3s6vl2sh2w0cd-profile.drv

applying 16 grafts for /gnu/store/p35rw37wg8za9ygwv2q24lcg6a855rw4-
python2-pygtk-2.24.0.drv ...
building CA certificate bundle...
building fonts directory...
generating GLib schema cache...
creating GTK+ icon theme cache...
building cache files for GTK+ input methods...
building directory of Info manuals...
building database for manual pages...
building XDG desktop file cache...
building XDG MIME database...
building profile with 60 packages...

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.432: Unable to locate
theme engine in module_path: "adwaita",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.434: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.434: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.434: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.435: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.435: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.435: Unable to locate
theme engine in module_path: "murrine",

(.key-mon-real:15064): Gtk-WARNING **: 22:14:36.435: Unable to locate
theme engine in module_path: "murrine",
Traceback (most recent call last):
File "/gnu/store/fwmb620wk7hadj0iqh8xrxs8a74xhw50-key-mon-
1.17/bin/.key-mon-real", line 3, in <module>
km.main()
File "/gnu/store/fwmb620wk7hadj0iqh8xrxs8a74xhw50-key-mon-
1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 1032, in main
keymon = KeyMon(opts)
File "/gnu/store/fwmb620wk7hadj0iqh8xrxs8a74xhw50-key-mon-
1.17/lib/python2.7/site-packages/keymon/key_mon.py", line 130, in
__init__
self.devices = xlib.XEvents()
File "/gnu/store/fwmb620wk7hadj0iqh8xrxs8a74xhw50-key-mon-
1.17/lib/python2.7/site-packages/keymon/xlib.py", line 80, in __init__
self.record_display = display.Display()
File "/gnu/store/ccnd7dx7c1g64mrdhml7vg8qmf65fd67-python2-xlib-
0.27/lib/python2.7/site-packages/Xlib/display.py", line 89, in __init__
self.display = _BaseDisplay(display)
File "/gnu/store/ccnd7dx7c1g64mrdhml7vg8qmf65fd67-python2-xlib-
0.27/lib/python2.7/site-packages/Xlib/display.py", line 71, in __init__
protocol_display.Display.__init__(self, *args, **keys)
File "/gnu/store/ccnd7dx7c1g64mrdhml7vg8qmf65fd67-python2-xlib-
0.27/lib/python2.7/site-packages/Xlib/protocol/display.py", line 166,
in __init__
raise error.DisplayConnectionError(self.display_name, r.reason)
Xlib.error.DisplayConnectionError: Can't connect to display ":1": No
protocol specified
```

I get the same error when i launch it as `key-mon` from the console,
after I installed the package.

I tried with `--pure` now and I get your error:
```
No protocol specified
/gnu/store/mzwxwalqni35m1m37xb5qvd0mv1g3sp9-python2-pygtk-
2.24.0/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57:
GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
Error: Missing xlib, run sudo apt-get install python-xlib
```

Toggle quote (3 lines)
> $ sudo apt-get install python-xlib
> sudo: apt-get: command not found

Lol.

Thanks,
Alex
A
A
Alexandros Theodotou wrote on 9 Jan 2021 15:49
(address . 36900@debbugs.gnu.org)
66d58b6c56ee5595b052e0736a0e0ffb0fdd8488.camel@zrythm.org
Some things discovered on IRC:

"works for me with [patch below] and by running: $ ./pre-inst-env guix
environment --ad-hoc key-mon gdk-pixbuf+svg --pure -- $(which bash) -c
'DISPLAY=:0 key-mon'"

"figuring out where to propagate gdk-pixbuf+svg remains to be found"

```patch
Toggle diff (22 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 23e43b7e75..c418a9c7e0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8046,8 +8046,9 @@ falling into the Python interpreter.")
     (native-inputs
      `(("python-mock" ,python-mock)
        ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-six" ,python-six)
        ("xorg-server" ,xorg-server)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
     (home-page "https://github.com/python-xlib/python-xlib")
     (synopsis "Python X11 client library")
     (description
```

FYI, the python-screenkey patch also has a similar issue, this could be
it.

Thanks,
Alex
J
J
John Kehayias wrote on 14 Aug 2021 22:34
Re: key-mon crashes on launch
(name . 36900@debbugs.gnu.org)(address . 36900@debbugs.gnu.org)
sF3NKFLUVbmYhJ6DqLdF0BqHuwcjDnnoXPVBJ6mTXkEOtGQoq3NHVoXcg_NZsWeJYGpXICXp-kjrAwlp_Pgf8iRrk8CFUTb9jCfOxJo9rBQ=@protonmail.com
Are there any updates on this, did anyone get it to work? I just tried with the same issue on opening display for me too.

I'm seeing the same thing in trying to package autokey, but with the error displayed in a graphical window on the X server (and yet it says it doesn't know the protocol). This also uses python-xlib, gtk, etc.

Thanks,
John
J
J
John Kehayias wrote on 14 Aug 2021 22:40
(name . 36900@debbugs.gnu.org)(address . 36900@debbugs.gnu.org)
gb0tdk_sl0n7S8_4CwuCy7E6wuEZgyNUtRFCq3SO9Xn5T8-cwUW82jj41pHHjHydlrr479ONgKoMWtusZ_pal5URLDz_JIYfhKTXk-pIe2Q=@protonmail.com
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Saturday, August 14th, 2021 at 4:34 PM, John Kehayias wrote:

Toggle quote (5 lines)
> Are there any updates on this, did anyone get it to work? I just tried with the same issue on opening display for me too.
>
> I'm seeing the same thing in trying to package autokey, but with the error displayed in a graphical window on the X server (and yet it says it doesn't know the protocol). This also uses python-xlib, gtk, etc.
>

Of course immediatly after I found a workaround, for key-mon and my case: allow all to connect to X with `xhost +`. Certainly not the ideal thing to do as it disables authentication with X, but show the problem.

Does anyone know the proper way to deal with this for these python packages?
?