summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2021-12-06 12:18:56 (GMT)
committerGitHub <noreply@github.com>2021-12-06 12:18:56 (GMT)
commit98fac8bc183c113903403793ffe411358ee40d8a (patch)
tree504482b1a02c635dd25487e698612e2f92f68996
parent299483c95d601ddcfdce2f96418b6499c1fc7b9f (diff)
downloadcpython-98fac8bc183c113903403793ffe411358ee40d8a.zip
cpython-98fac8bc183c113903403793ffe411358ee40d8a.tar.gz
cpython-98fac8bc183c113903403793ffe411358ee40d8a.tar.bz2
bpo-44035: Check autoconf files thoroughly (GH-29935)
Check that users don't push changes with outdated or patched autoconf. The presence of runstatedir option and aclocal 1.16.3 are good markers. Use my container image to regenerate autoconf files. "Check for changes" will fail later when any file is regenerated. Use ccache in check_generated_files to speed up testing.
-rw-r--r--.github/workflows/build.yml23
-rw-r--r--.gitignore2
-rw-r--r--Misc/NEWS.d/next/Build/2021-12-06-09-31-27.bpo-44035.BiO4XC.rst2
3 files changed, 20 insertions, 7 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index fbf7bb6..99f05f3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -64,6 +64,18 @@ jobs:
- uses: actions/setup-python@v2
- name: Install Dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh
+ - name: Add ccache to PATH
+ run: echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
+ - name: Configure ccache action
+ uses: hendrikmuhs/ccache-action@v1
+ - name: Check Autoconf version 2.69 and aclocal 1.16.3
+ run: |
+ grep "Generated by GNU Autoconf 2.69" configure
+ grep "aclocal 1.16.3" aclocal.m4
+ grep -q "runstatedir" configure
+ grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
+ - name: Regenerate autoconf files
+ run: docker run --rm -v $(pwd):/src quay.io/tiran/cpython_autoconf:269
- name: Build CPython
run: |
# Build Python with the libpython dynamic library
@@ -75,9 +87,10 @@ jobs:
git add -u
changes=$(git status --porcelain)
# Check for changes in regenerated files
- if ! test -z "$changes"
- then
- echo "Generated files not up to date. Perhaps you forgot to run make regen-all or build.bat --regen ;)"
+ if test -n "$changes"; then
+ echo "Generated files not up to date."
+ echo "Perhaps you forgot to run make regen-all or build.bat --regen. ;)"
+ echo "configure files must be regenerated with a specific, unpatched version of autoconf."
echo "$changes"
exit 1
fi
@@ -85,10 +98,6 @@ jobs:
run: make smelly
- name: Check limited ABI symbols
run: make check-limited-abi
- - name: Check Autoconf version 2.69
- run: |
- grep "Generated by GNU Autoconf 2.69" configure
- grep "PKG_PROG_PKG_CONFIG" aclocal.m4
build_win32:
name: 'Windows (x86)'
diff --git a/.gitignore b/.gitignore
index cfd3163..39de841 100644
--- a/.gitignore
+++ b/.gitignore
@@ -115,6 +115,8 @@ Tools/unicode/data/
/config.log
/config.status
/config.status.lineno
+# hendrikmuhs/ccache-action@v1
+/.ccache
/platform
/profile-clean-stamp
/profile-run-stamp
diff --git a/Misc/NEWS.d/next/Build/2021-12-06-09-31-27.bpo-44035.BiO4XC.rst b/Misc/NEWS.d/next/Build/2021-12-06-09-31-27.bpo-44035.BiO4XC.rst
new file mode 100644
index 0000000..7530587
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-12-06-09-31-27.bpo-44035.BiO4XC.rst
@@ -0,0 +1,2 @@
+CI now verifies that autoconf files have been regenerated with a current and
+unpatched autoconf package.