-
supdup
is a client (andsupdupd
is a server) implementing the SUPDUP (Super Duper TELNET) protocol, a highly efficient TELNET-style remote display protocol, on UNIX-like systems. -
It originated as a private protocol between the Chaosnet-connected ITS systems at MIT to allow a user at any one of these systems to use one of the others as a display; later implementations were developed for various platforms.
-
The software creates connections over TCP/IP and Chaosnet (optionally using the cbridge software).
- Tested operating systems: Oracle Solaris, OpenIndiana illumos, Linux/musl, Linux/glibc, IBM AIX, IBM OS/400 (PASE), Haiku, FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Cygwin, and Apple macOS.
- Tested compilers: PCC, GCC, Clang, Xcode, IBM XL C, IBM Open XL C, Oracle Studio C, NVIDIA HPC SDK C, Portland Group C, and DMD ImportC.
- Building on generic UNIX-like systems (Linux, *BSD, macOS, Haiku, etc.):
- The usual environment variables (e.g.
CC
,CFLAGS
,LDFLAGS
, etc.) are respected, for example:env CC="gcc" CFLAGS="-Wall" LDFLAGS="-L/usr/local" gmake
- Building on IBM AIX 7:
- Install prerequisite packages:
dnf install make ncurses-devel pkg-config
- Build with IBM XL C V16:
env CC="xlc" CFLAGS="-q64" LDFLAGS="-q64" gmake
- Build with IBM Open XL C V17:
env CC="ibm-clang" CFLAGS="-m64" LDFLAGS="-m64" gmake
- Build with GNU GCC:
env CC="gcc" CFLAGS="-maix64" LDFLAGS="-maix64 -Wl,-b64" gmake
- Build with Clang:
env CC="clang" CFLAGS="-m64" LDFLAGS="-m64" gmake
- Install prerequisite packages:
- Building on PASE for IBM i (OS/400):
- Install prerequisite packages:
yum install gcc10 make-gnu ncurses-devel pkg-config
- Build with GNU GCC:
env CC="gcc-10" CFLAGS="-maix64" LDFLAGS="-maix64 -Wl,-b64" gmake
- Install prerequisite packages:
- Building with DMD ImportC:
dmd -betterC -c -of=supdup.o chaos.c charmap.c supdup.c tcp.c $(pkg-config --cflags-only-I ncurses)
cc -o supdup supdup.o $(pkg-config --libs ncurses)
- An experimental server,
supdupd
, is included. - The server component is antiquated, incomplete, and will not build on all platforms.
- To build the server on generic UNIX-like systems:
- Install prerequisite packages:
make
(GNU) - Build:
gmake
(or sometimes justmake
)
- Install prerequisite packages:
- To report a problem with
supdup
, use GitHub Issues: