Hey all, long time user, first time poster: Back in the 2000s I, like many, used showeq and then life took over and I parted ways with the game. I've rediscovered eq and thus showeq. I've been keen to get back to it and with qt3 being hard to use, I thought to give this beta a try since it's using qt4.
I'm using this in a pretty unique way, within Docker.
Code:
# Dockerfile
FROM debian:buster
RUN \
apt update && \
apt install -yy subversion build-essential automake libtool xdm x11-apps libvte9 qt4-dev-tools subversion libtool make automake libpcap-dev libqt4-dev libgd-dev && \
mkdir -p /build && cd /build && \
svn checkout https://svn.code.sf.net/p/seq/svn/showeq/branches/pre_6_0_beta && \
cd pre_6_0_beta&& \
make -f Makefile.dist build && \
./configure && \
make && \
make install
ENTRYPOINT ["/usr/local/bin/showeq"]
This can be built with
Code:
docker build -t showeq:v6beta .
Running this is a bit of a challenge and sadly requires elevated privileges for the container.
Code:
docker run --network host -e QT_GRAPHICSSYSTEM=native -e DISPLAY=192.168.86.96:0 --privileged showeq:v6beta
(Note: I'm projecting X onto a Mac with XQuartz, hence
Code:
-e QT_GRAPHICSSYSTEM=native
.)
This is definitely an MVP with a number of limitations:
* No persistent volumes for anything
* No configuration (showeq.xml)
* No maps
* No filters
* Will try to attach to eth0
Getting all these extras into the container are pretty trivial uses of Docker's -v, or curled down in with the container build. But I haven't got any of those yet, so it's fine.
Any options can be appended right to the docker run just like you're calling showeq, so:
Code:
docker run --network host -e QT_GRAPHICSSYSTEM=native -e DISPLAY=192.168.86.96:0 --privileged showeq:v6beta -i enp2s0
Maybe other folks will find this useful.
Code:
EQ box (physical) ---> SEQ box (enp2s0; 192.168.1.0/24)
|
|
\---> Internet (wlp3s0b1; 192.168.0.0/24 network, wireless)
\---> XQuartz (on 192.168.0.0/24 network)
Edit: I forgot to mention that this will not work on MacOS because the Docker daemon is itself running inside a virtual machine, and thus does not have access to actual host networking, including any bridge device set up for Internet sharing. There might be some deep hacking to enable this, but there is a much lower barrier to entry to use Mac XQuartz + headless Linux box + Everquest PC.
The purpose of using a container is to keep QT and X isolated from headless box. It's also possible that the container only needs the NET_ADMIN capability, and not privileged, to put the device into promiscuous mode.