I cannot find the minimum version of Autoconf that Tor should support. This makes it difficult to improve upon the build configuration without accidentally using functionality not supported by older versions of Autoconf.
My suggestions are to
use AC_PREREQ in configure.ac.
move AUTOMAKE_OPTIONS from Makefile.am to configure.ac to have all the version configuration in one file.
document the versions in one of the doc/HACKING files.
I am willing to write a patch with these changes if someone could tell me the minimum Autoconf version Tor should support.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Good idea; I'm afraid I don't know how far back we support, though. One place to start would be to figure out what versions we do support now, and then consider whether that's too permissive/restrictive.
To avoid recompiling Tor with the Cartesian product of all released versions of Autoconf and Automake to see which ones are supported, i have made a table of the versions available on Debian and Ubuntu per release. The releases reflect the releases which Jenkins is currently testing. The list also includes the versions available with Homebrew on OS X, Cygwin on Windows and some BSDs.
Debian
squeeze
wheezy
jessie
stretch
sid
Autoconf
2.67
2.69
2.69
2.69
2.69
Automake
1.11.1
1.11.6
1.14.1
1.15
1.15
Ubuntu
precise
trusty
vivid
wily
xenial
Autoconf
2.68
2.69
2.69
2.69
2.69
Automake
1.11.3
1.14.1
1.14.1
1.15
1.15
OS X
Homebrew
MacPorts
Fink
Autoconf
2.69
2.69
2.63
Automake
1.15
1.15
1.15^1
Windows
Cygwin (x86)
Cygwin (x86_64)
Autoconf
2.69
2.69
Automake
1.15
1.15
BSD
FreeBSD
OpenBSD
NetBSD
Autoconf
2.69
2.69
2.69
Automake
1.15
1.15
1.15
RHEL
RHEL 4
CentOS 5
Autoconf
2.59
2.59
Automake
1.9.2
1.9.6
^1 Fink has no default automake version, versions 1.10 - 1.15 are available.
Edit: teor added MacPorts and Fink on OS X.
Remaining questions
Are all operating systems that Tor should support in the table?
Is picking the oldest versions from the table the proper answer?
The oldest version of RHEL still supported is RHEL 4 (till March 31, 2017 source). The oldest version of CentOS still supported is CentOS 5 (till March 31, 2017 source). I have added them to the table above.
RHEL 4 brought the minimum versions we should support down to Autoconf 2.59 and Automake 1.9.2. Are these reasonable requirements?
I'm not sure about Autoconf 2.59 and automake 1.9.2; those versions seem quite old.
Does tor currently do anything that breaks on those autoconf/automake versions?
Does tor currently build/run on RHEL 4 or CentOS 5?
(If we've already done things to make them unsupported, we could declare that release X is the last release that supported them. If not, we could declare 0.2.7 the last release to support them.)
FreeBSD ports and packages for majors 8 through 11 all use autoconf 2.69 and automake 1.15.
8 and earlier are EOL, packages for 8 are no longer updated but are still served up.
9 is done and will be EOL in one year.
The older 8 box from tor-dev today used 2.69 and 1.14, no expectations there.
http://pkg.freebsd.org/http://www.freebsd.org/security/security.html#sup
Does tor currently build/run on RHEL 4 or CentOS 5?
0.2.6.10 builds fine and seems to run fine on CentOS 5. (Sorry, I can't test RHEL 4.)
However, CentOS 5 has openssl 0.9.8e. Tor 0.2.7.2-alpha dropped support for OpenSSL older than 1.0.0, so (even if you support the ancient versions of autoconf/automake) it won't build on CentOS 5 anyway. Going forward, Tor Project can probably stop caring about anything older than CentOS 6.
Hm. I was going to say something about Centos5 users who have upgraded openssl, but if they have upgraded openssl they can surely upgrade autotools too.
So I have updated the configure.ac and Makefile.am to say that 2.63 and 1.11 are the required versions.
Fixed in commit 31c7a65d894c144647a2364bcad337ee5ae020ff
Trac: Status: new to closed Resolution: N/Ato implemented
Hm. I was going to say something about Centos5 users who have upgraded openssl, but if they have upgraded openssl they can surely upgrade autotools too.
So I have updated the configure.ac and Makefile.am to say that 2.63 and 1.11 are the required versions.
Fixed in commit 31c7a65d894c144647a2364bcad337ee5ae020ff
This only fixes the first point of the ticket description.
I have attached a patch to fix the second point (and some typos). Reopening to get this applied.
The third point is IMO not necessary anymore because the configuration is self-documenting. It would also increase the chance of the configuration and the documentation getting out of sync.
Trac: Status: closed to reopened Priority: High to Medium Resolution: implemented toN/A