I report here my fruitless attempts at running previous versions of PostgreSQL on a Debian or Ubuntu Linux. They would not configure and/or compile, at least with the minimal effort I was ready to undergo: writing portable-to-the-future system-dependent C code does not work. Basically, the code from 15 years ago is lost unless you run it on a system from 15 years ago, which may require a hardware from 15 years ago as well, or maybe a VM.
Trying to compile old PostgreSQL versions…
Here is a summary of failures encountered while trying to compile previous versions from available sources:
PostgreSQL 7.2 (2002)
configure thinks that my flex 2.5.35 is flex 2.5.3 and reports an issue. Then the compilation fails, possibly because of an include issue, on:
hba.c:885: error: storage size of ‘peercred’ isn’t known
Trying again with an older Debian Lenny, it fails when linking
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in commands/SUBSYS.o /lib/libc.so.6: could not read symbols: Bad value collect2: ld returned 1 exit status
PostgreSQL 7.1 (2001)
configure fails, it does not recognize
autoconf fails on
m4 while processing
configure.in. Same result with the old Debian Lenny.
... /usr/bin/m4:configure.in:930: non-numeric argument to builtin `_m4_divert_raw' autom4te: /usr/bin/m4 failed with exit status: 1
PostgreSQL 7.0 (2000) and 6.5 (1999)
configure fails, but
autoconf works fine. Fix manually string continuations in
ld fails in the end with a segfault while linking
collect2: ld terminated with signal 11 [Segmentation fault]
PostgreSQL 6.0 (1997)
make. Compilation fails, possibly because of include issues:
ipc.c:197: error: storage size of ‘semun’ isn’t known
Same result on the old Debian Lenny.
Postgres95 1.08 (1996)
make. Compilation fails:
indexam.c:188:1: error: pasting "->" and "aminsert" does not give a valid preprocessing token
Although the sources of past versions of PostgreSQL are available, having them up and running on a modern system is another story.