Archived document, last updated August 2020
This was a comprehensive assessment that Zack Weinberg and Sumana
Harihareswara developed for Changeset
Consulting to itemize what would ideally produce the best results
for Autoconf 2.70.
Autoconf 2.70 was released in November of 2020,
with some but not all of this work done. The text below has not been
updated since August 2020.
Autoconf 2.70 release long TODO
- Find not-yet-merged patches
- Develop list of "downstream" redistributors of Autoconf to
check for desirable patches, starting with:
- Inventory and copy patches from distributions' patched builds
into Savannah (estimate: 5-10 patches per downstream, many
duplicates) [this + above: about 2 days of work]
- Inventory and migrate patches from mailing list into Savannah
(estimate: 300-500 patches)
- can be parallelized, might take a week or 2
- Prioritize, review, and merge patches (1 person-month + MongoDB
high-priority work parallelizable)
- Deduplicate patches and match to bug reports
- estimate: 2-3 full-time weeks. parallelizable
- Prioritize patches to merge, miminizing disruptive changes
- Patches that can be merged as-is with low risk - merge during
beta
- Patches needing significant additional work - consult MongoDB
for desirability
- if low-priority: defer to 2.71
- if high-priority: rework and merge
- Bugs with no patch - consult MongoDB again, but defer if
possible
- estimate: < 1 week
- Merge fixed bugs
- estimate: 1 week if no problems discovered in the process
- Find regressions
- Recruit testers
- Maintainers of closely related projects (a few hours)
- Automake
- Libtool
- Gnulib
- Autoconf Macro Archive
- Research & make public announcements of beta & any interim
releases (total 1 day, spread throughout beta period)
- LWN
- Linux & BSD distro primary development lists
- .....
- Important autoconf-using projects (a few hours)
- (see list under "run autoconf on these projects')
- social media (3 hours)
- podcasts/lightning talks online (1 day)
- Run bundled testsuite on as many OS and CPU combinations as
possible
- GCC Compile Farm: (takes about a day to grind through these,
Contractor B)
- aarch64-unknown-linux-gnu
- armhf-unknown-linux-gnu
- i686-unknown-linux-gnu
- mips64el-unknown-linux-gnu
- mips64-unknown-linux-gnu
- powerpc64el-unknown-linux-gnu
- powerpc64-unknown-linux-gnu
- powerpc-ibm-aix7.1.3.0
- powerpc-ibm-aix7.2.0.0
- sparc-sun-solaris2.10
- sparc-sun-solaris2.11
- sparc64-unknown-linux-gnu
- x86_64-unknown-linux-gnu
- Debian unstable
- CentOS 5 (about the oldest Linux anyone still uses AFAIK).
- x86_64-unknown-freebsd12.1
- x86_64-unknown-openbsd6.6
- Recruit other OS/CPU combinations (estimate: 4 hours)
- Contact Nelson Beebe
<beebe@math.utah.edu>
for access
to "zoo" of other Unixes
- email sent 2020-03-10
no response as of 2020-06-11
- Contact OpenCSW
<dam@opencsw.org>
http://new.opencsw.org/standards/build_farm
for access to Solaris 8 and 10
- email sent 2020-03-10
no response as of 2020-06-11
- Per Bothner
<per@bothner.com>
offers to test on
MacOS (Homebrew) and Windows (WSL).
- "Nightstrike" says help with MinGW is available on IRC
(
http://irc.oftc.net/#mingw-w64
).
- Run Automake and Libtool test suites on all the above
platforms, with the new autoconf (takes about a day, Contractor
B)
- Regenerate packages' configure script using the new autoconf,
investigate what changes in `config.status` (1 day to run;
Contractor B)
- coreutils-8.31
- emacs-26.3
- gcc-9.2
- glib-2.63.6
- python-3.8.2
- Do a complete rebuild of at least one Linux distribution with
the new autoconf
- Gentoo suggested as a source-based distribution and source of
volunteer testing
- Debian has some automation for this but the docs haven't been
updated in a long time (see
https://wiki.debian.org/qa.debian.org/ArchiveTesting
).
- estimate: up to one week of CPU time + bug triage (ideally,
Contractor B)
- Receive and triage problem reports from the community
- 1-4 hours/week throughout the beta period, so, about 2-6 days
of work, estimating 4 days for cost purposes
- Fix regressions in dev trunk found by above testing
(parallelizable)
- estimate: 1-6 person-weeks depending on how many bugs are found
where we absolutely cannot defer to 2.71 or quickly find & revert
the problematic patch (estimating 2 weeks for cost purposes)
- Known problems in Autoconf proper
- Fix `make distcheck` failures when /bin/sh is dash
77: Forced re-exec with CONFIG_SHELL FAILED (m4sh.at:68)
78: Configure re-execs self with CONFIG_SHELL FAILED (m4sh.at:132)
- Actually a bashism somewhere in the testsuite driver script;
still under investigation (1-2 days debugging + review turnaround
time)
- Appeared to be `make distcheck`-specific due
to an error in the documentation
documentation corrected in
2d06297bd550a0015f3ccedda9f43d7c616cfaf8
- Exposed by a bug in
_AS_DETECT_BETTER_SHELL
caused by
2b59b6f8a79b8bf77e178ff4e5aa0ede433d39cf, fixed in
9894c7b5ba694820636f79ddec0c82e23af5e8e0
- Patches needing review:
- Known problems exposed in other projects
- Fallout from obsoletion of
$as_echo
- Polishing
- Go through documentation and code, find and correct all
references to "future" events that have already happened
- Review in-tree notes files (README*, BUGS, HACKING, INSTALL,
TODO) and remove obsolete entries
- Double-check that nothing has been left out of NEWS
- Cut the release
- Bureaucratic operations - tag git, create tarballs, upload to
ftp.gnu.org
(a few hours)
- Make announcements (a few hours)
- Post-release (27.1 work):
- Feature: Per
https://lists.gnu.org/archive/html/autoconf/2020-03/msg00021.html
Debian intentionally configures /bin/dash without support for
$LINENO to force configure scripts to use bash instead, due to
bashisms in many configure scripts
- have Debian do an archive rebuild with $LINENO turned back on
and a mass bug filing
- add to Autoconf an explicitly supported method for forcing
./configure to be a bash or zsh script
- once that option exists, Autoconf should actively refuse to use
bash or zsh unless that option has been set or it can't find any
other vaguely POSIX compliant sh
- Robust test suite:
- _AS_DETECT_BETTER_SHELL needs more thorough testing; a
catastrophic bug went unnoticed since 2013
- Better way of detecting that "sh -n" isn't buggy
- In general, all of the macros need more thorough automated
tests