Directory listing for: someodd/opensource/gophervr
DIR Parent directory (..)
TEXT README.txt (4.1KB, 2026-05-14):
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 <this directory>/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
BIN gophervr-modern-build.zip 4.5KB 2026-05-14
BIN gophervr-modern-gcc.patch 1.8KB 2026-05-14