]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-44035: Check autoconf files thoroughly (GH-29935)
authorChristian Heimes <christian@python.org>
Mon, 6 Dec 2021 12:18:56 +0000 (14:18 +0200)
committerGitHub <noreply@github.com>
Mon, 6 Dec 2021 12:18:56 +0000 (13:18 +0100)
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.

.github/workflows/build.yml
.gitignore
Misc/NEWS.d/next/Build/2021-12-06-09-31-27.bpo-44035.BiO4XC.rst [new file with mode: 0644]

index fbf7bb6fe2128a873f60eda72850e44f4f49ac82..99f05f3abec936d5262c1da826cff6b8e47f57f3 100644 (file)
@@ -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)'
index cfd3163cd1818dd4adc22de12a8ce94b1ad42f85..39de8410200ce499c314f43412471378ba30953a 100644 (file)
@@ -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 (file)
index 0000000..7530587
--- /dev/null
@@ -0,0 +1,2 @@
+CI now verifies that autoconf files have been regenerated with a current and
+unpatched autoconf package.