efabless / openlane2

The next generation of OpenLane, rewritten from scratch with a modular architecture
https://openlane2.readthedocs.io/
Apache License 2.0
207 stars 38 forks source link

--dockerized fails to start unless X11 optional directory/files exist for docker to mount #580

Open dlmiles opened 1 month ago

dlmiles commented 1 month ago

Description

https://github.com/efabless/openlane2/blob/main/openlane/container.py#L60

Please check the directory /tmp/.X11-unix exists before adding it into the docker command line. Many methods exists to allow X.11 client applications to connect to the Xserver (TCP sockets, shared memory, as well as AF_UNIX sockets the directory is for). In my case I use an SSH forwarded TCP socket.

Please check the file $HOME/.Xauthority exists before adding it into the docker command line. X.11 is allowed to not need to use any authentication to connect to an X.11 server. This is not usual for interactive setups, but maybe if you were headless testing you'd disable all X.11 client authentication protocols so would not have an MIT-MAGIC-COOKIE-1in this file to present.

Maybe it makes sense to emit a logger WARNING when these any of these items are not found (calling them out), indicating, if there is a problem to resolve this matter and check the environment has a working X.11 installation. Maybe lack of $DISPLAY being set to non-blank would also trigger this warning.

Expected Behavior

For the --dockerized to just work

Environment report

X.11 connected via TCP (not UNIX socket), X.11 with access control disabled.

Reproduction material

Info above.

Relevant log output

docker run --rm --name da677e89-c290-4927-9753-7324704d93c1 -i -t -v ..... -e DISPLAY=localhost:10.0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/dlm/.Xauthority:/.Xauthority  ... ghcr.io/efabless/openlane2:2.1.9 openlane --smoke-test
Error: statfs /tmp/.X11-unix: no such file or directory