Skip to content

Commit 98fac8b

Browse files
authored
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.
1 parent 299483c commit 98fac8b

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

.github/workflows/build.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ jobs:
6464
- uses: actions/setup-python@v2
6565
- name: Install Dependencies
6666
run: sudo ./.github/workflows/posix-deps-apt.sh
67+
- name: Add ccache to PATH
68+
run: echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
69+
- name: Configure ccache action
70+
uses: hendrikmuhs/ccache-action@v1
71+
- name: Check Autoconf version 2.69 and aclocal 1.16.3
72+
run: |
73+
grep "Generated by GNU Autoconf 2.69" configure
74+
grep "aclocal 1.16.3" aclocal.m4
75+
grep -q "runstatedir" configure
76+
grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
77+
- name: Regenerate autoconf files
78+
run: docker run --rm -v $(pwd):/src quay.io/tiran/cpython_autoconf:269
6779
- name: Build CPython
6880
run: |
6981
# Build Python with the libpython dynamic library
@@ -75,20 +87,17 @@ jobs:
7587
git add -u
7688
changes=$(git status --porcelain)
7789
# Check for changes in regenerated files
78-
if ! test -z "$changes"
79-
then
80-
echo "Generated files not up to date. Perhaps you forgot to run make regen-all or build.bat --regen ;)"
90+
if test -n "$changes"; then
91+
echo "Generated files not up to date."
92+
echo "Perhaps you forgot to run make regen-all or build.bat --regen. ;)"
93+
echo "configure files must be regenerated with a specific, unpatched version of autoconf."
8194
echo "$changes"
8295
exit 1
8396
fi
8497
- name: Check exported libpython symbols
8598
run: make smelly
8699
- name: Check limited ABI symbols
87100
run: make check-limited-abi
88-
- name: Check Autoconf version 2.69
89-
run: |
90-
grep "Generated by GNU Autoconf 2.69" configure
91-
grep "PKG_PROG_PKG_CONFIG" aclocal.m4
92101

93102
build_win32:
94103
name: 'Windows (x86)'

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ Tools/unicode/data/
115115
/config.log
116116
/config.status
117117
/config.status.lineno
118+
# hendrikmuhs/ccache-action@v1
119+
/.ccache
118120
/platform
119121
/profile-clean-stamp
120122
/profile-run-stamp
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CI now verifies that autoconf files have been regenerated with a current and
2+
unpatched autoconf package.

0 commit comments

Comments
 (0)