Skip to content

Commit

Permalink
bpo-44035: Check autoconf files thoroughly (pythonGH-29935)
Browse files Browse the repository at this point in the history
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.
(cherry picked from commit 98fac8b)

Co-authored-by: Christian Heimes <christian@python.org>
  • Loading branch information
tiran authored and miss-islington committed Dec 6, 2021
1 parent 2080198 commit 5329916
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
23 changes: 16 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,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
Expand All @@ -95,20 +107,17 @@ jobs:
run: |
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
- name: Check exported libpython symbols
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)'
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ Tools/unicode/data/
/config.log
/config.status
/config.status.lineno
# hendrikmuhs/ccache-action@v1
/.ccache
/platform
/profile-clean-stamp
/profile-run-stamp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CI now verifies that autoconf files have been regenerated with a current and
unpatched autoconf package.

0 comments on commit 5329916

Please sign in to comment.