gophervr on modern Linux ======================== Cameron Kaiser's 2015 Motif port of UMN's 1995 GopherVR — a 3D "walk around gopherspace" client — has bitrotted on modern gcc. This bundle includes one small patch + a build script so anyone on a current Debian/Ubuntu can have it running in about 5 minutes. Tested on: Debian forky/sid, gcc 15.2, libmotif-dev 2.3.8, May 2026 Should work on: any glibc Linux with X11 + Motif + gcc 12+ Files in this directory ----------------------- README.txt this file gophervr-modern-gcc.patch the diff (~50 lines, two files touched) gophervr-modern-build.zip one-shot bundle: README + patch + build.sh The lazy way: one-shot install ------------------------------ curl -O /gophervr-modern-build.zip unzip gophervr-modern-build.zip cd gophervr-modern-build ./build.sh # installs apt deps, builds in ~/src/gophervr cd ~/src/gophervr/gophervr/gophervr && ./gophervr build.sh will sudo-apt-install the deps it needs. Read it first if you don't trust strangers' shell scripts (you shouldn't). The hand-rolled way ------------------- 1. Install build dependencies (Debian/Ubuntu): sudo apt-get install -y \ build-essential libmotif-dev xutils-dev \ libxt-dev libxmu-dev libasound2-dev unzip curl 2. Fetch the source from Floodgap (it's a .zip mislabelled .tar.gz): curl -o gophervr-src.zip \ "gopher://gopher.floodgap.com/9/gophervr/gophervr-src.tar.gz" unzip gophervr-src.zip rm -rf __MACOSX find gophervr -name .DS_Store -delete 3. Apply the patch: patch -p1 < gophervr-modern-gcc.patch 4. Build: cd gophervr make linux 5. Run (needs X11; doesn't work under Wayland-only sessions without XWayland): cd gophervr # yes, gophervr/gophervr — nested DISPLAY=:0 ./gophervr Try gopher.floodgap.com from the File menu. Hit F1 for the help topics. What the patch actually does ---------------------------- Two files, one root cause. gcc 14+ changed the default C standard to gnu23, where `f()` in a declaration finally means `f(void)` instead of "unspecified args (K&R)". 1995 C code is full of empty-parens prototypes that the linker is expected to reconcile later. gcc 14 also promoted several long-standing warnings into errors (implicit declarations, int<->pointer conversions, mismatched pointer types). The fix is to tell gcc to behave like it's 2014 again: -std=gnu89 -Wno-error=implicit-function-declaration -Wno-error=int-conversion -Wno-error=incompatible-pointer-types -fcommon The patch threads these flags into: - gophervr/Makefile (top-level `linux:` target — passes them to libgopher's ./configure and libtracker's make) - gophervr/gophervr/Imakefile.linux (the main binary's CFLAGS) libvogl needs no changes; it was written carefully enough that its own prototypes survive gcc 15 untouched. Credits ------- Mark McCahill et al. original UMN GopherVR (1995, ~0.2 alpha) Paul Lindner Motif port + Unix gopher client base Cameron Kaiser 2010s revival, OS X launcher, Floodgap maintenance (this is from his 0.5.1 of 24 October 2015) regarding_someodd modern-gcc build patch + this bundle (2026) Original source remains GPL. So is this patch. Floodgap canonical: gopher://gopher.floodgap.com/1/gophervr Troubleshooting --------------- * "xmkmf: command not found" — apt-get install xutils-dev * "Xm/Xm.h: No such file" — apt-get install libmotif-dev * "configure: error: ..." in gopher/ — try `cd gopher; make clean; rm -f config.status config.cache` then rerun `make linux` from the top * Window opens but is all black / no text — Hershey fonts can't load; either symlink the font file: sudo mkdir -p /usr/local/lib/hershey sudo cp gophervr/gophervr/futura.hfont /usr/local/lib/hershey/ or just run from gophervr/gophervr/ where futura.hfont sits alongside the binary * `tempnam` linker warning — cosmetic, ignore