-
Notifications
You must be signed in to change notification settings - Fork 379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Usage of xpra on windows #117
Comments
Many issues are specific to xpra.
I am not sure yet.
xpra uses python2. Rather install the debian package
Use
Use
Use
x11docker does the following:
xpra server is not available on Windows. So this setup won't work. Same goes for HTML5. I can also image a setup with a dedicated xpra server container that serves as "display" for other containers. Basically you would need to share the same |
I searched for some options there, but I didn't find the proper sections. Thanks a lot for pointing me to them. Start/exit options are specially useful.
I found that this is reported in lots of logs and no one worries about it, so it is probably not relevant.
I just installed it for python2. It doesn't complain anymore.
I used I used the options you suggested plus xpra start --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no This is the log now: 2019-01-31 22:34:20,667 cannot access python uinput module:
2019-01-31 22:34:20,667 No module named uinput
X.Org X Server 1.20.3
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.9.0-8-amd64 x86_64 Debian
Current Operating System: Linux 64c1899ac7f6 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/kernel console=ttyS0 page_poison=1 vsyscall=emulate panic=1 root=/dev/sr0 text
Build Date: 25 October 2018 06:15:23PM
xorg-server 2:1.20.3-1 (https://www.debian.org/support)
Current version of pixman: 0.36.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/XDG_RUNTIME_DIR/xpra/Xorg.S2392.log", Time: Thu Jan 31 22:34:21 2019
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2019-01-31 22:34:25,593 Warning: failed to create socket directory '/run/user/0/xpra'
2019-01-31 22:34:25,593 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-01-31 22:34:25,593 Warning: cannot create socket '/run/user/0/xpra/64c1899ac7f6-0':
2019-01-31 22:34:25,593 [Errno 2] No such file or directory
2019-01-31 22:34:25,593 /run/user does not exist
2019-01-31 22:34:25,594 created unix domain socket: /run/xpra/64c1899ac7f6-0
/bin/sh: 1: dbus-launch: not found
dbus-launch failed to start using command 'dbus-launch --close-stderr':
exit code is 127
2019-01-31 22:34:26,556 Warning: menu forwarding is disabled:
2019-01-31 22:34:26,556 cannot load dbus helper: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnorma
lly without any error message
2019-01-31 22:34:26,587 pointer device emulation using XTest
2019-01-31 22:34:27,143 OpenGL is supported on this display
WARNING: no 'numpy' module, HyBi protocol will be slower
2019-01-31 22:34:27,191 serving html content from: /usr/share/xpra/www
2019-01-31 22:34:27,203 dbus server error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/xpra/server/dbus/dbus_common.py", line 12, in dbus_exception_wrap
v = fn()
File "/usr/lib/python2.7/dist-packages/xpra/x11/server.py", line 1302, in make_dbus_server
return X11_DBUS_Server(self, os.environ.get("DISPLAY", "").lstrip(":"))
File "/usr/lib/python2.7/dist-packages/xpra/server/dbus/dbus_server.py", line 38, in __init__
bus = init_session_bus()
File "/usr/lib/python2.7/dist-packages/xpra/dbus/common.py", line 22, in init_session_bus
_session_bus = dbus.SessionBus(private=private)
File "/usr/lib/python2.7/dist-packages/dbus/_dbus.py", line 211, in __new__
mainloop=mainloop)
File "/usr/lib/python2.7/dist-packages/dbus/_dbus.py", line 100, in __new__
bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 122, in __new__
bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message
2019-01-31 22:34:27,203 Error setting up server dbus instance:
2019-01-31 22:34:27,203 org.freedesktop.DBus.Error.Spawn.ExecFailed
2019-01-31 22:34:27,204 /usr/bin/dbus-launch terminated abnormally without any error message
2019-01-31 22:34:27,300 xpra X11 version 2.4.3-r21350M 64-bit
2019-01-31 22:34:27,300 uid=0 (root), gid=0 (root)
2019-01-31 22:34:27,301 running with pid 2396 on Linux debian buster/sid
2019-01-31 22:34:27,301 connected to X11 display :0 with 24 bit colors
2019-01-31 22:34:27,418 xpra is ready.
2019-01-31 22:34:27,979 started command 'gtkwave' with pid 2440
2019-01-31 22:34:27,980 7.8GB of system memory
GTKWave Analyzer v3.3.99 (w)1999-2019 BSI
GTKWAVE | Use the -h, --help command line flags to display help. Most of the erros are gone (I updated the first comment accordingly). However, some of the dbus errors remain, and this new one is shown now: Anyway, the system works great!
This is great, and it helps me understand the scheme. I thought that all the applications would need to be started with xpra. It is cool to see how it can be transparent to the user if initialized properly.
I believe that
Since the host of Xvfb or Xdummy is now going to be a container, can I execute x11docker inside it (i.e. without docker client available)? Or do I need to do it manually?
By looking at the description of this flag:
Does this mean that I should skip explicitly creating the X server in the previous step? Or is it still preferred to use x11docker to create it, instead of letting xpra do it? Related to this, I don't see the difference between
It is not possible to connect an xpra client to an existing X server without an intermediate xpra server, is it?
This is the step I am more unsure about. I used to provide the X socket and
That's what I'm going to try.
Unless I misunderstood it, this should not be a problem because |
Working proof of concept: FROM debian:buster
RUN apt update -y \
&& apt install -y python-pip \
&& pip install websockify netifaces \
&& apt install -y xpra docker build -t x11docker/xpra .
...
XPRA_DISPLAY=:0
XPRA_PORT=8080
XPRA_CONTAINER="$(docker run --rm -d -v //tmp/.X11-unix://tmp/.X11-unix -p "$XPRA_PORT:$XPRA_PORT" x11docker/xpra bash -c "\
xpra start "$XPRA_DISPLAY" --bind-tcp=0.0.0.0:$XPRA_PORT --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no")"
# Open an xpra client on windows and connect to root@localhost:8080
# Now, any GUI app can be shown by providing the X socket and setting `DISPLAY`:
docker run --rm -v //tmp/.X11-unix://tmp/.X11-unix -- ghdl/ext:gtk-ide bash -c "\
export DISPLAY="$XPRA_DISPLAY" && gtkwave"
# It can be closed (the container will be removed), but the xpra server will keep running. Also, many apps can be opened at the same time, either in the same or in different container.
# In order to kill the container with the xpra server (note that all the apps will be closed):
docker rm -f "$XPRA_CONTAINER" Now I need to make it more secure by integrating it with x11docker, because ATM any process with access to |
Install
x11docker won't help you much in container. Though, it can set up an X server for you, but to reduce complexitiy, I recommend to do it yourself. Xpra wiki provides examples for
Look at
It is not possible.
x11docker creates a cookie provided in
Use |
I am concerned about security. x11docker sets the user, limits some capabilities, it generates
Found it:
Thanks!
Is the cookie just a file that must be shared/copied?
Thanks again! |
I thought you want to run x11docker inside the container. There it only can set up Xvfb, but nothing more.
Yes.
Assess yourself if that is an issue, i.e. whether the X server and its clients need protection. Cygwin provides Xvfb: https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fxorg-server-extra%2Fxorg-server-extra-1.18.4-1&grep=xvfb |
I thought that I did need to run x11docker where the X server is created, which is inside the container. But, if I can use x11docker to run the container without needing to execute it inside, that's even better.
But that will start a instance of vcxsrv, which is what I want to avoid in this use case. I want to have three options:
So, I'd like to rewrite the example above to: # Set user
# Check if some X server is already running. Otherwise, check is vcxsrv/xwin are installed (suggest it). Otherwise, select a display number.
# Share X socket with container.
# Run the container in the background, so that the shell can be used
# Collect in Xenv the parameters needed to start sibling containers: DISPLAY and XAUTHORY
# Print parameters required to connect from a client: user and port
read Xenv < <(x11docker -t --daemon [--port 127.0.0.1:8080] x11docker/xpra) &
# Allow to start containers which use the xpra server
# Share X socket, DISPLAY, XAUTHORITY...
env $Xenv x11docker ghdl/ext:gtk-ide bash -c "gtkwave" Does it make sense to you?
If the TCP port of the xpra server is open, they don't. But they should otherwise, isn't it?
Thanks. |
I tried with alpine as the base image: FROM python:2-alpine
RUN apk update \
&& apk add dbus-x11 lz4-dev lzo-dev pulseaudio-utils gcc musl-dev linux-headers \
&& pip install lz4 python-lzo websockify netifaces \
&& apk add xpra
# https://bugs.alpinelinux.org/issues/8741
RUN sed -i.bak 's#\(config \).*buildozer.*xorg\.conf#\1/etc/xpra/xorg.conf#g' /etc/xpra/conf.d/55_server_x11.conf \
&& rm /etc/xpra/conf.d/55_server_x11.conf.bak It is half the size of the one based on buster (460MB vs 1GB). The xpra server works, and applications started in the same container can be used with a client on the host. However, other containers cannot use the X server. I think this is because some default settings (see EDIT I added # Debian
xvfb = /usr/lib/xorg/Xorg -noreset -novtswitch -nolisten tcp +extension GLX +extension RANDR +extension RENDER -auth $XAUTHORITY -logfile ${XPRA_LOG_DIR}/Xorg.${DISPLAY}.log -configdir ${XDG_RUNTIME_DIR}/xpra/xorg.conf.d/$PID -config /etc/xpra/xorg.conf # Alpine
xvfb = xpra_Xdummy -noreset -novtswitch -nolisten tcp +extension GLX +extension RANDR +extension RENDER -ac -auth $XAUTHORITY -logfile ${XPRA_LOG_DIR}/Xorg.${DISPLAY}.log -configdir ${XDG_RUNTIME_DIR}/xpra/xorg.conf.d/$PID -config /etc/xpra/xorg.conf Note that EDIT A better workaround is to use DISPLAY=:0 xhost +local: |
If you don't want to have a dbus server, try:
Harmless, only used for virtualizing specialized input devices:
Since you are using MSYS2, you may be interested in installing xpra as an MSYS2 package rather than an EXE installer, this should be available upstream soon - download the PKGBUILD for now:
The difference is huge. If you have an X11 server available, use
Also in FAQ.
I would be very interested in hearing the results.
Always try to avoid doing things this way. |
@totaam, first off, thanks and congratulations. I had not realized that you are a maintainer/developer of xpra. That's such a great tool.
Frankly, I don't really know if I want it or not. I'd rather support it, in case it makes sense. I see that it can be useful for multiple applications running in the same container. But the use case here is xpra in a container and multiple applications in one or many different containers. Therefore, dbus might only make sense if I can actually share it. Hope @mviereck can provide some thoughts. Anyway, on the alpine based image, where I added cannot load dbus helper: No module named dbus
...
Error setting up server dbus instance:
No module named dbus I tried
I'm not sure about it being the best alternative for my use case. I want to avoid installing dependencies on the host (besides docker and a shell). Hence, the portable client provided (which is 200MB) is a quite good solution. It is twice the size of vcxsrv, but it is ok, considering xpra does encoding/decoding. I had a look at the MSYS2 package and it relies on gtk3, which requires 355MB to be installed. The python2 variant requires However, I see that it might be useful in different contexts to have xpra available through MSYS2. E.g., to launch an xpra server on the windows host (without docker). So, if you want the package to be tested, I can give it a try.
I thought that
That's good news. On alpine, the error about
I'll give it a try.
That was just an example, but I do need to start the applications without
Only Is it possible to print those parameters that xpra sets, so that the environment in the app containers can be generated properly and it behaves as close to what xpra expects as possible? |
It seems that xpra accepts # ./x11docker -i --user=root -- -p "8080:8080" -- x11docker/xpra sh
x11docker note: Failed to check for sshd. ps -p not supported.
x11docker note: Using X server option --vcxsrv
x11docker note: Per default x11docker stores its cache files on drive C:.
docker setup may not allow to share files from drive C:.
If startup fails with an 'access denied' error,
please either allow access to drive C: or specify a custom folder for cache
storage with option '--cachebasedir D:/some/cache/folder'.
Same issue can occur with option '--home'.
Use option '--homebasedir D:/some/home/folder' in that case.
x11docker note: Windows firewall settings can forbid application access
to the X server. If no application window appears, but no obvious error
is shown, please check your firewall settings. Compare issue #108 on github.
x11docker WARNING: Found custom DOCKER_RUN_OPTIONS.
x11docker will add them to 'docker run' command
without a check for validity or security. Found options:
'-p' '8080:8080'
x11docker WARNING: Option --user=root: Adding some capabilities to allow
some root privileges in container that x11docker would drop otherwise.
x11docker note: Did not find container init system 'tini'.
This is a bug in your distributions docker package.
Normally, docker provides init system tini as '/usr/bin/docker-init'.
x11docker uses tini for clean process handling and fast container shutdown.
To provide tini yourself, please download tini-static:
https://github.com/krallin/tini/releases/download/v0.18.0/tini-static
Store it in one of:
/home/eine/.local/share/x11docker/
/usr/local/share/x11docker/
~ # echo $DISPLAY
10.0.75.1:100
~ # ls -la /tmp/.X11-unix/
total 8
drwxrwxrwt 2 root 0 4096 Feb 1 07:31 .
drwxrwxrwt 1 root 0 4096 Feb 1 07:31 ..
lrwxrwxrwx 1 root 0 5 Feb 1 07:31 X100 -> /X100
~ # xpra start $DISPLAY --use-display --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no
Warning: running as root
error running (['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such fi
le or directory
** (process:83): WARNING **: 07:33:19.917: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'
** (process:83): WARNING **: 07:33:19.917: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'
** (process:83): WARNING **: 07:33:19.918: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
2019-02-01 07:33:19,978 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-01 07:33:19,978 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-01 07:33:19,978 Warning: cannot create socket '/run/user/0/xpra/50daeaa16548-10.0.75.1:100':
2019-02-01 07:33:19,978 [Errno 2] No such file or directory
2019-02-01 07:33:19,978 /run/user does not exist
2019-02-01 07:33:19,979 created unix domain socket: /root/.xpra/50daeaa16548-10.0.75.1:100
2019-02-01 07:33:19,979 created unix domain socket: /run/xpra/50daeaa16548-10.0.75.1:100
2019-02-01 07:33:19,986 X11 extension Composite not available
2019-02-01 07:33:19,986 Xpra 'start' subcommand runs as a compositing manager
2019-02-01 07:33:19,986 it cannot use a display which lacks the XComposite extension!
2019-02-01 07:33:19,987 closing tcp socket 0.0.0.0:8080
2019-02-01 07:33:19,987 removing socket /root/.xpra/50daeaa16548-10.0.75.1:100
2019-02-01 07:33:19,987 removing socket /run/xpra/50daeaa16548-10.0.75.1:100 |
Nowadays, many desktop applications expect a dbus server to be available.
For this one, you need
For the record, you can probably trim it down to less than 100MB by removing features you may not need: printing, audio, nvenc + numpy, opengl, etc
FYI: the mswindows EXE you downloaded is made using those same MSYS2 packages, we just trim it down and remove all the bits we don't actually need.
For more debug logging, try:
Gotcha.
You can execute |
Will look further into it, then.
Indeed. The package is named
Do you mean by building the binaries myself or by removing dlls and executables from the portable tarball?
Is there any reference about how do you trim it down? It would be very interesting to have a 100MB client package which does not need all those deps. It is ok if those are just build dependencies, tho.
Thanks.
~ # apk update && apk add xpra musl-dev gcc dbus-x11 py2-netifaces && pip install websockify
...
~ # sed -i.bak 's#\(config \).*buildozer.*xorg\.conf#\1/etc/xpra/xorg.conf#g' /etc/xpra/conf.d/55_server_x11.conf && rm /etc/xpra/conf.d/55_server_x11.conf.bak ~ # xpra start :0 --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no
Warning: running as root
WARNING: low display number: 0
You are attempting to run the xpra server against a low X11 display number: ':0'.
This is generally not what you want.
You should probably use a higher display number just to avoid any confusion (and also this warning message).
2019-02-01 08:39:03,625 cannot access python uinput module:
2019-02-01 08:39:03,625 No module named uinput
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux ab7891869bd7 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/kernel console=ttyS0 page_poison=1 vsyscall=emulate panic=1 root=/dev/sr0 text
Build Date: 29 October 2018 06:33:45PM
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/XDG_RUNTIME_DIR/xpra/Xorg.:0.log", Time: Fri Feb 1 08:39:03 2019
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
** (process:104): WARNING **: 08:39:06.413: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'
** (process:104): WARNING **: 08:39:06.413: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'
** (process:104): WARNING **: 08:39:06.413: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
2019-02-01 08:39:06,452 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-01 08:39:06,453 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-01 08:39:06,453 Warning: cannot create socket '/run/user/0/xpra/ab7891869bd7-0':
2019-02-01 08:39:06,453 [Errno 2] No such file or directory
2019-02-01 08:39:06,454 /run/user does not exist
2019-02-01 08:39:06,454 created unix domain socket: /root/.xpra/ab7891869bd7-0
2019-02-01 08:39:06,455 created unix domain socket: /run/xpra/ab7891869bd7-0
process 115: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such fi
le or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not compiled with backtrace support so unable to print a backtrace
dbus-launch failed to start using command 'dbus-launch --close-stderr':
exit code is -6
2019-02-01 08:39:08,231 Warning: menu forwarding is disabled:
2019-02-01 08:39:08,231 cannot load dbus helper: No module named dbus
2019-02-01 08:39:08,245 Warning: zlib is the only compressor enabled
2019-02-01 08:39:08,245 install and enable lzo or lz4 support for better performance
2019-02-01 08:39:08,367 pointer device emulation using XTest
2019-02-01 08:39:08,746 html server unavailable, cannot find websockify module
2019-02-01 08:39:08,747 Error setting up server dbus instance:
2019-02-01 08:39:08,747 No module named dbus
2019-02-01 08:39:08,751 pulseaudio not started: 'pulseaudio' command not found
Warning: running as root
Warning: failed to import GStreamer 1.x:
No module named gi
2019-02-01 08:39:09,050 Error: failed to query sound subsystem:
2019-02-01 08:39:09,051 query did not return any data
2019-02-01 08:39:09,055 xpra X11 version 2.2.6-r18970 64-bit
2019-02-01 08:39:09,056 uid=0, gid=0
2019-02-01 08:39:09,056 running with pid 104 on Linux
2019-02-01 08:39:09,056 connected to X11 display :0 with 24 bit colors
2019-02-01 08:39:09,168 xpra is ready.
2019-02-01 08:39:09,169 7.8GB of system memory ~ # apk add py-dbus
(1/2) Installing dbus-glib (0.108-r1)
(2/2) Installing py-dbus (1.2.0-r2) ~ # xpra start :0 --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no
Warning: running as root
WARNING: low display number: 0
You are attempting to run the xpra server against a low X11 display number: ':0'.
This is generally not what you want.
You should probably use a higher display number just to avoid any confusion (and also this warning message).
2019-02-01 08:42:21,049 cannot access python uinput module:
2019-02-01 08:42:21,049 No module named uinput
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux ab7891869bd7 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/kernel console=ttyS0 page_poison=1 vsyscall=emulate panic=1 root=/dev/sr0 text
Build Date: 29 October 2018 06:33:45PM
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/XDG_RUNTIME_DIR/xpra/Xorg.:0.log", Time: Fri Feb 1 08:42:21 2019
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
** (process:138): WARNING **: 08:42:23.796: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'
** (process:138): WARNING **: 08:42:23.796: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'
** (process:138): WARNING **: 08:42:23.796: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
2019-02-01 08:42:23,832 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-01 08:42:23,832 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-01 08:42:23,833 Warning: cannot create socket '/run/user/0/xpra/ab7891869bd7-0':
2019-02-01 08:42:23,833 [Errno 2] No such file or directory
2019-02-01 08:42:23,833 /run/user does not exist
2019-02-01 08:42:23,835 created unix domain socket: /root/.xpra/ab7891869bd7-0
2019-02-01 08:42:23,835 created unix domain socket: /run/xpra/ab7891869bd7-0
process 149: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such fi
le or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not compiled with backtrace support so unable to print a backtrace
dbus-launch failed to start using command 'dbus-launch --close-stderr':
exit code is -6
process 138: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such fi
le or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not compiled with backtrace support so unable to print a backtrace
Aborted ~ # dbus-uuidgen > /var/lib/dbus/machine-id ~ # xpra start :0 --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no
Warning: running as root
WARNING: low display number: 0
You are attempting to run the xpra server against a low X11 display number: ':0'.
This is generally not what you want.
You should probably use a higher display number just to avoid any confusion (and also this warning message).
2019-02-01 09:05:21,279 cannot access python uinput module:
2019-02-01 09:05:21,280 No module named uinput
X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.14.39-0-vanilla x86_64 Alpine Linux
Current Operating System: Linux 41e532dba25d 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/boot/kernel console=ttyS0 page_poison=1 vsyscall=emulate panic=1 root=/dev/sr0 text
Build Date: 29 October 2018 06:33:45PM
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/tmp/XDG_RUNTIME_DIR/xpra/Xorg.:0.log", Time: Fri Feb 1 09:05:21 2019
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
** (process:1028): WARNING **: 09:05:23.830: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'
** (process:1028): WARNING **: 09:05:23.830: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'
** (process:1028): WARNING **: 09:05:23.831: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
2019-02-01 09:05:23,870 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-01 09:05:23,870 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-01 09:05:23,872 Warning: cannot create socket '/run/user/0/xpra/41e532dba25d-0':
2019-02-01 09:05:23,872 [Errno 2] No such file or directory
2019-02-01 09:05:23,873 /run/user does not exist
2019-02-01 09:05:23,875 created unix domain socket: /root/.xpra/41e532dba25d-0
2019-02-01 09:05:23,875 created unix domain socket: /run/xpra/41e532dba25d-0
2019-02-01 09:05:25,688 Warning: zlib is the only compressor enabled
2019-02-01 09:05:25,688 install and enable lzo or lz4 support for better performance
2019-02-01 09:05:25,797 pointer device emulation using XTest
2019-02-01 09:05:26,178 html server unavailable, cannot find websockify module
2019-02-01 09:05:26,182 pulseaudio not started: 'pulseaudio' command not found
Warning: running as root
Warning: failed to import GStreamer 1.x:
No module named gi
2019-02-01 09:05:26,483 Error: failed to query sound subsystem:
2019-02-01 09:05:26,483 query did not return any data
2019-02-01 09:05:26,487 xpra X11 version 2.2.6-r18970 64-bit
2019-02-01 09:05:26,487 uid=0, gid=0
2019-02-01 09:05:26,487 running with pid 1028 on Linux
2019-02-01 09:05:26,487 connected to X11 display :0 with 24 bit colors
2019-02-01 09:05:26,604 7.8GB of system memory
2019-02-01 09:05:26,605 xpra is ready. |
Either would work. Building yourself might be easier.
There is a bit of information scattered in various tickets.
Hmm. I've seen this before. I consider this to be a distro mis-packaging issue.
Performance will be absolutely dreadful unless you also use
That's odd, but:
Since you're running an outdated / unsupported version, that's possible. |
Sorry, I did mean the zipfile, not tarball. I have not used the installer.
Thanks.
Well, since alpine is not really designed for desktop apps, dbus might not be the most loved package...
It happens the same as with websockify. The packages are installed. You can see in https://github.com/alpinelinux/aports/blob/master/community/xpra/APKBUILD#L12 that both
That's because the base image is still based on Meanwhile, I'll update the package. |
They might just be too old:
|
@totaam, I think you might have skipped this comment: #117 (comment)
With this dockerfile: FROM python:2-alpine
# Use alpine version 3.9 instead of 3.8
RUN sed -i.bak 's#3\.8#3\.9#g' /etc/apk/repositories \
&& rm /etc/apk/repositories.bak
RUN apk update \
&& apk add xpra musl-dev py-dbus gcc dbus-x11 py2-netifaces pulseaudio pulseaudio-utils \
&& pip install websockify \
&& dbus-uuidgen --ensure
# https://bugs.alpinelinux.org/issues/8741
RUN sed -i.bak 's#\(config \).*buildozer.*xorg\.conf#\1/etc/xpra/xorg.conf#g' /etc/xpra/conf.d/55_server_x11.conf \
&& rm /etc/xpra/conf.d/55_server_x11.conf.bak these are the versions:
and this is the output: ~ # xpra start :0 --bind-tcp=0.0.0.0:8080 --dbus-proxy=no --webcam=no --mdns=no --notifications=no --daemon=no
...
2019-02-01 12:28:48,555 Error: cannot enable SSH socket upgrades:
2019-02-01 12:28:48,555 No module named paramiko
2019-02-01 12:28:48,556 cannot access python uinput module:
2019-02-01 12:28:48,556 No module named uinput
...
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2019-02-01 12:28:51,528 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-01 12:28:51,528 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-01 12:28:51,529 Warning: cannot create socket '/run/user/0/xpra/b510efa3b625-0':
2019-02-01 12:28:51,529 [Errno 2] No such file or directory
2019-02-01 12:28:51,529 /run/user does not exist
2019-02-01 12:28:51,530 created unix domain socket: /run/xpra/b510efa3b625-0
2019-02-01 12:28:53,463 pointer device emulation using XTest
2019-02-01 12:28:53,807 Warning: OpenGL support check failed:
2019-02-01 12:28:53,807 OpenGL is not supported
2019-02-01 12:28:53,855 html server unavailable, cannot find websockify module
2019-02-01 12:28:54,119 pulseaudio server started with pid 105
2019-02-01 12:28:54,119 private server socket path:
2019-02-01 12:28:54,119 '/tmp/XDG_RUNTIME_DIR/xpra/pulse-0/pulse/native'
W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
E: [pulseaudio] core-util.c: Failed to connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such fil
e or directory
W: [pulseaudio] authkey.c: Failed to open cookie file '/root/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/root/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file '/root/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/root/.pulse-cookie': No such file or directory
E: [pulseaudio] ltdl-bind-now.c: Failed to open module module-x11-publish.so: Error loading shared library module-x11-publish.so: No s
uch file or directory
E: [pulseaudio] module.c: Failed to open module "module-x11-publish".
Warning: running as root
Warning: failed to import GStreamer 1.x:
No module named gi
2019-02-01 12:28:54,450 Error: failed to query sound subsystem:
2019-02-01 12:28:54,450 query did not return any data
2019-02-01 12:28:54,546 xpra X11 version 2.4.2-r21077 64-bit
2019-02-01 12:28:54,546 uid=0, gid=0
2019-02-01 12:28:54,546 running with pid 85 on Linux
2019-02-01 12:28:54,546 connected to X11 display :0 with 24 bit colors
2019-02-01 12:28:54,666 7.8GB of system memory
2019-02-01 12:28:54,667 xpra is ready. So, the problem with lz4 is gone. However, it still cannot find websockify. Also, now it complains about OpeGL, which it did not before. The errors about pulseaudio were not shown earlier because it was not installed. Anyway, those are not relevant ATM. If I run 2019-02-01 12:44:14,053 init_html_proxy(..) options: tcp_proxy=, html='auto'
2019-02-01 12:44:14,053 init_html_proxy(..) html=None
2019-02-01 12:44:14,057 WEBSOCKIFY_NUMPY=False
2019-02-01 12:44:14,058 importing WebSocketConnection
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/xpra/server/server_core.py", line 450, in init_html_proxy
from xpra.server.websocket import WebSocketConnection
File "/usr/lib/python2.7/site-packages/xpra/server/websocket.py", line 28, in <module>
from websockify.websocket import WebSocketRequestHandler #@Reimport
ImportError: No module named websockify.websocket
2019-02-01 12:44:14,063 html server unavailable, cannot find websockify module
2019-02-01 12:44:14,063 found html5 client in '/usr/share/xpra/www' About the fix after installing
However, for some reason |
@totaam Thank you for looking at this! Re: DBus:
You can add
VcXsrv is accessable only over IP but not with a unix socket. So Edit: |
That should have worked:
That's because it probably didn't check before and now it does.
This is unusual, but it should work. In fact, I'm pretty sure that it used to work. |
Re: xpra using VcXsrv Maybe the format IP:DISPLAY is not the issue.
This
The missing (or not recognized?) Composite extension is probably the reason why xpra fails.
With
x11docker could also add For the record: All VcXsrv options |
Some of the issues were actually my fault. I did not I now installed everything with I built the image again, including x11docker -it \
--user=root \
--cap-default \
--openrc \
-- \
-p 8080:8080 \
-- \
x11docker/xpra xpra \
start \
:0 \
--bind-tcp=0.0.0.0:8080 \
--webcam=no \
--mdns=no \
--notifications=no \
--dbus-proxy=no \
--dbus-launch=no \
--pulseaudio=no \
--daemon=no
I think I won't in the end, because in my use case apps will be executed in different containers. However, I think it can be useful in other contexts where applications are installed on top of x11docker/xpra.
Even if dbus is not used in the end, does having the init system inside the container provide any benefit to x11docker?
I will. Thanks.
It did check it. However, I was using debian, not alpine: #117 (comment) I fixed it now by installing
The test command does work, indeed. See below: ~ # xpra start :0 --bind-tcp=0.0.0.0:8080 --webcam=no --mdns=no --notifications=no --dbus-proxy=no --dbus-launch=no --pulseaudio=no --daemon=no
...
2019-02-02 10:56:06,469 Error: cannot enable SSH socket upgrades:
2019-02-02 10:56:06,469 No module named paramiko
...
(++) Using config file: "/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2019-02-02 10:56:09,199 created unix domain socket: /run/xpra/0d41f56470c2-0
2019-02-02 10:56:09,255 pointer device emulation using XTest
2019-02-02 10:56:09,572 OpenGL is supported on this display
2019-02-02 10:56:09,621 html server unavailable, cannot find websockify module
Warning: running as root
Warning: failed to import GStreamer 1.x:
No module named gi
2019-02-02 10:56:09,931 Error: failed to query sound subsystem:
2019-02-02 10:56:09,931 query did not return any data
2019-02-02 10:56:10,020 xpra X11 version 2.4.2-r21077 64-bit
2019-02-02 10:56:10,021 uid=0, gid=0
2019-02-02 10:56:10,021 running with pid 80 on Linux
2019-02-02 10:56:10,021 connected to X11 display :0 with 24 bit colors
2019-02-02 10:56:10,132 xpra is ready.
...
~ # python -c "from websockify.websocket import \
> WebSocketRequestHandler;print(WebSocketRequestHandler)"
websockify.websocket.WebSocketRequestHandler Nevertheless, I don't know if it is worth spending effort on this issue, since it is going to be dropped. You said it will be done in the next release (2.5). I see that last releases have been published every 4-5 months, so I expect that it won't be out until Q2. Is there any schedule? I see december in https://xpra.org/trac/roadmap, but I believe that it is wrong. Moreover, websockify depends on numy. Although I install
I get the same result: # ./x11docker -i --vcxsrv --gpu --user=root --cap-default -- -p "8080:8080" -- x11docker/xpra sh
...
# xpra start $DISPLAY --use-display --bind-tcp=0.0.0.0:8080 --webcam=no --mdns=no --notifications=no --dbus-proxy=no --dbus-launch=no --pulseaudio=no --daemon=no
Warning: running as root
2019-02-02 12:22:16,014 Error: cannot enable SSH socket upgrades:
2019-02-02 12:22:16,014 No module named paramiko
error running (['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such fi
le or directory
2019-02-02 12:22:16,107 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-02 12:22:16,107 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-02 12:22:16,108 Warning: cannot create socket '/run/user/0/xpra/1855ae177797-10.0.75.1:100':
2019-02-02 12:22:16,108 [Errno 2] No such file or directory
2019-02-02 12:22:16,108 /run/user does not exist
2019-02-02 12:22:16,109 created unix domain socket: /run/xpra/1855ae177797-10.0.75.1:100
2019-02-02 12:22:16,114 X11 extension Composite not available
2019-02-02 12:22:16,115 Xpra 'start' subcommand runs as a compositing manager
2019-02-02 12:22:16,115 it cannot use a display which lacks the XComposite extension! I tried after
I tried adding it to line x11docker#L2977:
EDIT I checked the log of the vcxsrv:
These were also shown:
It seems that the problem with Composite might be a case-sensitiveness issue. After changing 2977 to: ~ # xpra start $DISPLAY --use-display --bind-tcp=0.0.0.0:8080 --webcam=no --mdns=no --notifications=no --dbus-proxy=no --dbus-launch=n
o --pulseaudio=no --daemon=no
Warning: running as root
2019-02-02 13:00:34,760 Error: cannot enable SSH socket upgrades:
2019-02-02 13:00:34,760 No module named paramiko
error running (['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such fi
le or directory
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MA
GIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 k
eyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-
MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 key2019-02-02 13:00:37,827 Error: failed to connect to display 10.0.75.1:100
2019-02-02 13:00:37,827 could not connect to X server on display '10.0.75.1:100' after 3 seconds
Error in sys.exitfunc: EDIT 2 I tried to run ~ # xterm
Invalid MIT-MAGIC-COOKIE-1 keyWarning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s So, I closed the container (x11docker closed the instance of vcxsrv), and I started it again: # x11docker -i --vcxsrv --gpu --user=root --cap-default -- -p "8080:8080" -- x11docker/xpra sh
...
~ # xpra start $DISPLAY --use-display --bind-tcp=0.0.0.0:8080 --webcam=no --mdns=no --notifications=no --dbus-proxy=no --dbus-launch=n
o --pulseaudio=no --daemon=no
Warning: running as root
2019-02-02 13:14:24,929 Error: cannot enable SSH socket upgrades:
2019-02-02 13:14:24,929 No module named paramiko
error running (['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such fi
le or directory
2019-02-02 13:14:25,023 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-02 13:14:25,023 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-02 13:14:25,024 Warning: cannot create socket '/run/user/0/xpra/a29709bec3bc-10.0.75.1:100':
2019-02-02 13:14:25,024 [Errno 2] No such file or directory
2019-02-02 13:14:25,024 /run/user does not exist
2019-02-02 13:14:25,024 created unix domain socket: /run/xpra/a29709bec3bc-10.0.75.1:100
2019-02-02 13:14:25,033 Warning: no XShm support on display 10.0.75.1:100
2019-02-02 13:14:25,081 pointer device emulation using XTest
2019-02-02 13:14:25,082 Warning: XTest extension is missing
2019-02-02 13:14:25,082 Error: keyboard and mouse disabled |
As being said in the wiki:
Without zombie reaping the container can crash at some point, after hours or after month. As default x11docker uses
Yes, sorry, I should have said it. In recent X versions the name changed from
That is odd because the cookie works otherwise. Try disabling cookie authentication with |
@mviereck, the problem with the cookie was exceptional I think. See second edit above. I think that I might be missing some packages, such as
Agree. |
It looks like xpra server succeeds now to take over VcXsrv. Could you try to run something and connect with xpra client? It might succeed with xpra client but could show damaged content in VcXsrv windows. xpra can preserve the content in VcXsrv windows:
|
No really sure about it. When Moreover, I can see that some processes are running in the background, but I cannot stop xpra:
It does not work. Vcxsrv is taking 30% of the CPU. And the icon in the task bar does not respond to the right-click (which provides a contextual menu shown the number of clients, allowing to open the log, etc.). When I exit, the container is properly closed (I can see it with I also tried to start the container, start xterm to check that vcxsrv is working as expected, and run
I restarted the container and tried xpra with |
ok, at this point I have no idea. Maybe VcXsrv is just not compatible to xpra. Maybe it cannot handle |
All xpra needs is an X11 server with the composite and damage extensions. |
~ # xpra start $DISPLAY --use-display --bind-tcp=0.0.0.0:8080 --webcam=no --mdns=no --notifications=no --dbus-proxy=no --dbus-launch=n
o --pulseaudio=no -d all
Warning: running as root
2019-02-02 18:01:45,368 get_enabled_encoders(['rencode', 'bencode', 'yaml']) enabled=['rencode', 'bencode']
~ # Entering daemon mode; any further errors will be reported to:
/tmp/XDG_RUNTIME_DIR/xpra/10.0.75.1:100.log
cat /tmp/XDG_RUNTIME_DIR/xpra/10.0.75.1:100.log
2019-02-02 18:01:45,373 import paramiko
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/xpra/scripts/server.py", line 467, in create_sockets
import paramiko
ImportError: No module named paramiko
2019-02-02 18:01:45,375 Error: cannot enable SSH socket upgrades:
2019-02-02 18:01:45,375 No module named paramiko
2019-02-02 18:01:45,375 setting up SSL sockets:
2019-02-02 18:01:45,375 setting up SSH sockets:
2019-02-02 18:01:45,375 setting up https / wss (secure websockets):
2019-02-02 18:01:45,375 setting up TCP sockets: ('0.0.0.0', 8080)
2019-02-02 18:01:45,376 <socket._socketobject object at 0x7fa494650980>.bind(('0.0.0.0', 8080))
2019-02-02 18:01:45,376 tcp: 0.0.0.0:8080 : <module 'socket' from '/usr/lib/python2.7/socket.pyc'>
2019-02-02 18:01:45,376 setting up UDP sockets:
2019-02-02 18:01:45,376 setting up http / ws (websockets):
2019-02-02 18:01:45,376 setting up rfb sockets:
2019-02-02 18:01:45,376 setting up vsock sockets:
2019-02-02 18:01:45,376 env={'PYTHONIOENCODING': 'UTF-8', 'MWNO_RIT': 'true', 'XDG_CURRENT_DESKTOP': 'Xpra', 'XDG_SESSION_TYPE': 'x11'
, 'QT_IM_MODULE': 'xim', 'USER': 'root', 'HOME': '/root', 'LIBGL_ALWAYS_INDIRECT': '1', 'PATH': '/usr/local/bin:/usr/local/sbin:/usr/l
ocal/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'MWWM': 'allwm', 'DISPLAY': '10.0.75.1:100', 'LANG': 'C.UTF-8', 'TERM': 'xterm', 'SHELL': '/b
in/sh', 'container': 'docker', 'XAUTHORITY': '/x11docker/Xclientcookie', 'SHLVL': '2', 'PYTHON_PIP_VERSION': '19.0.1', 'XPRA_XSHM': '0
', 'MWNOCAPTURE': 'true', 'XMODIFIERS': '@im=none', 'XPRA_LOG_DIR': '/tmp/XDG_RUNTIME_DIR/xpra', 'IMSETTINGS_MODULE': 'none', 'GPG_KEY
': 'C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF', 'XDG_RUNTIME_DIR': '/tmp/XDG_RUNTIME_DIR', 'DISABLE_IMSETTINGS': '1', 'NO_AT_BRIDGE': '
1', 'QT_X11_NO_NATIVE_MENUBAR': '1', 'TZ': 'UTC-01', 'PYTHON_VERSION': '2.7.15', 'GTK_IM_MODULE': 'xim', 'UBUNTU_MENUPROXY': '', 'OLDP
WD': '/tmp', 'HOSTNAME': '50baea70a402', 'PWD': '/root', 'CKCON_X11_DISPLAY': '10.0.75.1:100'}
2019-02-02 18:01:45,378 looking for '_XPRA_UINPUT_ID' on display '10.0.75.1:100' with XAUTHORITY='/x11docker/Xclientcookie'
error running (['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'],),{'stderr': -1, 'stdout': -1}: [Errno 2] No such fi
le or directory
2019-02-02 18:01:45,380 Popen(['xprop', '-display', '10.0.75.1:100', '-root', '_XPRA_UINPUT_ID'])=(-1, '', '')
2019-02-02 18:01:45,467 setup_local_sockets: bind=['auto']
2019-02-02 18:01:45,467 sockpaths(10.0.75.1:100)=['/run/user/0/xpra/50baea70a402-10.0.75.1:100', '/run/xpra/50baea70a402-10.0.75.1:100
'] (uid=0, gid=0)
2019-02-02 18:01:45,467 state(/run/user/0/xpra/50baea70a402-10.0.75.1:100)=DEAD
2019-02-02 18:01:45,468 creating sockdir=/run/user/0/xpra, kwargs={}
2019-02-02 18:01:45,468 Warning: failed to create socket directory '/run/user/0/xpra'
2019-02-02 18:01:45,468 [Errno 2] No such file or directory: '/run/user/0/xpra'
2019-02-02 18:01:45,468 state(/run/xpra/50baea70a402-10.0.75.1:100)=DEAD
2019-02-02 18:01:45,468 creating sockdir=/run/xpra, kwargs={'mode': 509}
2019-02-02 18:01:45,468 sockets in unknown state: []
2019-02-02 18:01:45,468 state(/run/user/0/xpra/50baea70a402-10.0.75.1:100)=DEAD
2019-02-02 18:01:45,468 state(/run/xpra/50baea70a402-10.0.75.1:100)=DEAD
2019-02-02 18:01:45,468 socket creation error
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/xpra/server/socket_util.py", line 377, in setup_local_sockets
sock, cleanup_socket = create_unix_domain_socket(sockpath, sperms)
File "/usr/lib/python2.7/site-packages/xpra/server/socket_util.py", line 41, in create_unix_domain_socket
listener.bind(sockpath)
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: [Errno 2] No such file or directory
2019-02-02 18:01:45,470 Warning: cannot create socket '/run/user/0/xpra/50baea70a402-10.0.75.1:100':
2019-02-02 18:01:45,470 [Errno 2] No such file or directory
2019-02-02 18:01:45,471 /run/user does not exist
2019-02-02 18:01:45,471 created unix domain socket: /run/xpra/50baea70a402-10.0.75.1:100
2019-02-02 18:01:45,471 setting up local sockets: [(('unix-domain', <socket._socketobject object at 0x7fa4930b5050>, '/run/xpra/50baea
70a402-10.0.75.1:100'), <function cleanup_socket at 0x7fa4931c18c0>)]
2019-02-02 18:01:45,471 unix-domain /run/xpra/50baea70a402-10.0.75.1:100 : <socket._socketobject object at 0x7fa4930b5050>
2019-02-02 18:01:45,475 Missing property _XPRA_DBUS_PID (u32)
2019-02-02 18:01:45,475 Missing property DBUS_SESSION_BUS_ADDRESS (latin1)
2019-02-02 18:01:45,476 Missing property DBUS_SESSION_BUS_PID (u32)
2019-02-02 18:01:45,477 Missing property DBUS_SESSION_BUS_WINDOW_ID (u32)
2019-02-02 18:01:45,477 retrieved existing dbus attributes
2019-02-02 18:01:45,477 dbus attributes: pid=None, env={}
2019-02-02 18:01:45,477 env={'PYTHONIOENCODING': 'UTF-8', 'MWNO_RIT': 'true', 'XPRA_XDG_OPEN_SERVER_SOCKET': '/run/xpra/50baea70a402-1
0.0.75.1:100', 'XDG_CURRENT_DESKTOP': 'Xpra', 'XDG_SESSION_TYPE': 'x11', 'QT_IM_MODULE': 'xim', 'USER': 'root', 'HOME': '/root', 'LIBG
L_ALWAYS_INDIRECT': '1', 'PATH': '/usr/lib/xpra:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'MWWM':
'allwm', 'DISPLAY': '10.0.75.1:100', 'LANG': 'C.UTF-8', 'TERM': 'xterm', 'SHELL': '/bin/sh', 'container': 'docker', 'XAUTHORITY': '/x1
1docker/Xclientcookie', 'SHLVL': '2', 'PYTHON_PIP_VERSION': '19.0.1', 'XPRA_XSHM': '0', 'MWNOCAPTURE': 'true', 'XMODIFIERS': '@im=none
', 'XPRA_LOG_DIR': '/tmp/XDG_RUNTIME_DIR/xpra', 'IMSETTINGS_MODULE': 'none', 'GPG_KEY': 'C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF', 'X
DG_RUNTIME_DIR': '/tmp/XDG_RUNTIME_DIR', 'DISABLE_IMSETTINGS': '1', 'NO_AT_BRIDGE': '1', 'QT_X11_NO_NATIVE_MENUBAR': '1', 'TZ': 'UTC-0
1', 'PYTHON_VERSION': '2.7.15', 'GTK_IM_MODULE': 'xim', 'UBUNTU_MENUPROXY': '', 'OLDPWD': '/tmp', 'HOSTNAME': '50baea70a402', 'PWD': '
/root', 'CKCON_X11_DISPLAY': '10.0.75.1:100'}
2019-02-02 18:01:45,477 X11 extension Composite event_base=0
2019-02-02 18:01:45,478 found X11 extension Composite with version 0.2
2019-02-02 18:01:45,480 XShmQueryExtension()=False
2019-02-02 18:01:45,480 Warning: no XShm support on display 10.0.75.1:100
2019-02-02 18:01:45,480 X11 extension DAMAGE event_base=90
2019-02-02 18:01:45,480 found X11 extension DAMAGE with version 1.0
2019-02-02 18:01:45,480 X11 extension Composite event_base=0
2019-02-02 18:01:45,480 found X11 extension Composite with version 0.2
2019-02-02 18:01:45,481 pointer grab constants: {0: 'NotifyNormal', 1: 'NotifyGrab', 2: 'NotifyUngrab', 3: 'NotifyWhileGrabbed'}
2019-02-02 18:01:45,481 detail constants: {0: 'NotifyAncestor', 1: 'NotifyVirtual', 2: 'NotifyInferior', 3: 'NotifyNonlinear', 4: 'Not
ifyNonlinearVirtual', 5: 'NotifyPointer', 6: 'NotifyPointerRoot', 7: 'NotifyDetailNone'}
2019-02-02 18:01:45,509 ewmh selection owner for WM_S0: 0
2019-02-02 18:01:45,509 compositing window manager _NEW_WM_CM_S0: 0
2019-02-02 18:01:45,510 _NET_SUPPORTING_WM_CHECK for screen 0: None (root=0x36c)
2019-02-02 18:01:45,510 X11 extension XShape event_base=64
2019-02-02 18:01:45,510 found X11 extension XShape with version 1.1
2019-02-02 18:01:45,511 displayHasXShape()=True
2019-02-02 18:01:45,511 XShape=True
2019-02-02 18:01:45,513 XRRQueryExtension()=1
2019-02-02 18:01:45,513 found XRandR extension
2019-02-02 18:01:45,513 found XRandR extension version 1.6
2019-02-02 18:01:45,513 found 1 config sizes
2019-02-02 18:01:45,516 successfully loaded socket C library from libc.so.6
2019-02-02 18:01:45,523 ServerBaseClass(<class 'xpra.server.server_core.ServerCore'>, <class 'xpra.server.mixins.server_base_controlco
mmands.ServerBaseControlCommands'>, <class 'xpra.server.mixins.clipboard_server.ClipboardServer'>, <class 'xpra.server.mixins.audio_se
rver.AudioServer'>, <class 'xpra.server.mixins.fileprint_server.FilePrintServer'>, <class 'xpra.server.mixins.mmap_server.MMAP_Server'
>, <class 'xpra.server.mixins.input_server.InputServer'>, <class 'xpra.server.mixins.child_command_server.ChildCommandServer'>, <class
'xpra.server.mixins.encoding_server.EncodingServer'>, <class 'xpra.server.mixins.logging_server.LoggingServer'>, <class 'xpra.server.
mixins.networkstate_server.NetworkStateServer'>, <class 'xpra.server.mixins.display_manager.DisplayManager'>, <class 'xpra.server.mixi
ns.window_server.WindowServer'>)
2019-02-02 18:01:45,524 GTKServerBase.__init__()
2019-02-02 18:01:45,524 ServerCore.__init__()
2019-02-02 18:01:45,525 server uuid is bdd2d1978cd0425e84b69e051695923a
2019-02-02 18:01:45,525 file transfer: init_attributes('yes', 10, 'yes', 'no', 'yes', None, True)
2019-02-02 18:01:45,525 file transfer attributes={'open-files-ask': False, 'open-url': True, 'file-ask-timeout': 3600, 'open-files': F
alse, 'file-size-limit': 10, 'file-transfer': True, 'file-chunks': 65536, 'file-transfer-ask': False, 'printing-ask': False, 'open-url
-ask': False, 'printing': True}
2019-02-02 18:01:45,526 ServerBase.__init__()
2019-02-02 18:01:45,526 server uuid is bdd2d1978cd0425e84b69e051695923a
2019-02-02 18:01:45,527 initializing packet handlers
2019-02-02 18:01:45,527 init_virtual_devices({}) got pointer=None, touchpad=None
2019-02-02 18:01:45,527 pointer device emulation using XTest
2019-02-02 18:01:45,527 Warning: XTest extension is missing
2019-02-02 18:01:45,528 XFixesQueryExtension version present: True
2019-02-02 18:01:45,528 XFixesQueryExtension event base=86, error base=139
2019-02-02 18:01:45,528 Error: keyboard and mouse disabled
2019-02-02 18:01:45,528 randr=True
2019-02-02 18:01:45,529 _XPRA_RANDR_EXACT_SIZE=None
2019-02-02 18:01:45,530 get_xrr_screen_sizes()=[(3840, 1080)]
2019-02-02 18:01:45,530 randr=True, exact size=True
2019-02-02 18:01:45,530 randr enabled: True
2019-02-02 18:01:45,530 get_default_cursor=[1920, 540, 16, 16, 7, 7, 1, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\
xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf
f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\
xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xf
f\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\
xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x0
0\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\
xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x0
0\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\
xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\
x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\
x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\
x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\
xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\
x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xf
f\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\
x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x0
0\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\
x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x0
0\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\
xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xf
f\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\
x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\x00\x00\xff\xff\xff\xff\xff\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\xff\x00\x00\x00\xff\x00\
x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\
xff\xff\xff\xff', '']
~ # |
@1138-4eb Are you still working on this? Otherwise we could close this and other related tickets for now and reopen them if they are of interest again. |
Feel free to re-open if this is of interest again. |
I'm sorry I missed this comment. I've been quite busy lately, so it is ok to close these issues for now. Nonetheless, I created a project with all of them (https://github.com/users/1138-4EB/projects/2), to make it is easier to come back later. |
Coming from #110, I tried the following on MSYS2:
First, start a GUI app on top of a xpra server inside a container and bind it to a TCP port:
Then, download an xpra client for windows (https://xpra.org/dists/windows/Xpra-Client-x86_64_2.4.3-r21365.zip). Either by opening
Xpra-Launcher.exe
and clicking Connect or openingXpra.exe
directly, I can connet toroot@localhost:8086
(without passowrd). The GUI shows as a new window in my desktop. Cool!This is the log of the server:
Bugs/issues:
cannot access python uinput module
. Seems not to be relevanthtml server unavailable, cannot find websockify module
. This is surprising because I did install it explicitly. Doesxpra
user python2 instead of python3? Yes, xpra server requires python2. See https://packages.debian.org/buster/xpra and https://xpra.org/trac/wiki/Newsdbus-launch: not found
dbus server error
if you do not have a dedicated dbus session for this xpra instance, use the 'notifications=no' option
Fixed by adding the optionWarning: webcam forwarding is disabled, the virtual video directory '/sys/devices/virtual/video4linux' was not found, make sure that the 'v4l2loopback' kernel module is installed and loaded. found 0 virtual video devices for webcam forwarding
Fixed by adding --webcam=nofailed to load the mdns publisher. No module named avahi. either fix your installation or use the 'mdns=no' option
Fixed by adding the optionpython netifaces package is missing
Fixed by installing it with pip (not pip3)The server can be stopped with:
This will close the GUI app, xpra and the xorg server.
However, if the GUI app is closed graphically, both xpra and xorg will keep running.
Open questions:
How does this fit with x11docker? As explained in the context of #110, I do not have a clear understanding about how is xpra used. According to https://xpra.org/trac/wiki/Usage/Docker and after the test above, I assume that:
So:
If the assumptions above are correct, the following example is not valid for my use case: https://github.com/mviereck/x11docker/wiki/Remote-access-with-SSH#ssh-with-xpra. It is not valid because it is assumed that the host OS in the server is GNU/Linux. So, command
x11docker --xvfb --display=30 --showenv x11docker/lxde pcmanfm
will try to create a dummy X server withxvfb
, and connect a container to it. Unfortunately,xvfb
is not available on MSYS2.I see two alternatives here:
--xvfb
needs to be removed. As a result, the GUI apps will be seen on the server.Xenv
, but it is up to the user to start the xpra server on windows.--xvfb
is used on windows, create the dummy X server in a sibling container. This would not require an X server on the host, since an xpra client would suffice (seexpra shadow
at https://xpra.org/trac/wiki/Usage). Pseudocode:The second option is based on how
x11docker-gui
behaves whenkaptain
is not installed on the host. I find it to be a really neat solution.EDIT
I think that the comments above also apply to example https://github.com/mviereck/x11docker/wiki/Container-applications-running-in-Browser-with-HTML5#html5-with-xpra. I.e.,
xvfb
is required on the host.Furthermore, I think that these pages describe a similar procedure:
The text was updated successfully, but these errors were encountered: