I’m currently running Archlinux but would like to use the Debian package Tails installer (which install the Tails live system in a USB stick) so I’m trying to make a docker image containing the installer and run it interactively. Since the installer is a Gtk program and it requires access to the USB stick, I ran the image with
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --privileged --net=host tmpimage
xhost + before starting the container.
The installer launched normally and the window popped up correctly, but when clicking on either button (install or update) it crushed. The first time of crush prompted these error messages:
(tails-installer-launcher:10): Gdk-ERROR **: The program 'tails-installer-launcher' received an X Window System error. This probably reflects a bug in the program. The error was 'BadAccess (attempt to access private resource denied)'. (Details: serial 1379 error_code 10 request_code 130 (MIT-SHM) minor_code 1) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the GDK_SYNCHRONIZE environment variable to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) Trace/breakpoint trap (core dumped)
And from second time the error message became:
[creator.py:1321 (get_extlinux_version)] WARNING: extlinux not found! Only FAT filesystems will be supported /usr/lib/python2.7/dist-packages/tails_installer/creator.py:578: Warning: invalid (NULL) pointer instance self._udisksclient = UDisks.Client.new_sync() /usr/lib/python2.7/dist-packages/tails_installer/creator.py:578: Warning: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed self._udisksclient = UDisks.Client.new_sync() /usr/lib/python2.7/dist-packages/tails_installer/creator.py:578: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed self._udisksclient = UDisks.Client.new_sync() Traceback (most recent call last): File "/usr/lib/tails_installer/tails-installer", line 105, in <module> main() File "/usr/lib/tails_installer/tails-installer", line 99, in main win = TailsInstallerWindow(opts=opts, args=sys.argv) File "/usr/lib/python2.7/dist-packages/tails_installer/gui.py", line 322, in __init__ self.live = TailsInstallerCreator(opts=opts) File "/usr/lib/python2.7/dist-packages/tails_installer/creator.py", line 578, in __init__ self._udisksclient = UDisks.Client.new_sync() GLib.Error: g-io-error-quark: Could not connect: No such file or directory (1)
Firstly the host is ext file system so I’m not sure why it warns that extlinux not found. I’ve also checked the function that caused the error. It seems the Udisks client was not generated correctly. But this step (install or update, either cause the same problem) doesn’t require a device yet and even it does, I’ve already run docker using --privileged so I assume it has the same permission as my host. I cannot get further information about what caused the problem. I’ve tried to set GDK_SYNCHRONIZE to 1, but the output didn’t change.
Does anyone have any ideas about where I may check next? Thanks for help in advance.