]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
CI: Second attempt to fix stale XS cache issue.
authorJoe Orton <jorton@apache.org>
Mon, 14 Oct 2024 14:08:21 +0000 (14:08 +0000)
committerJoe Orton <jorton@apache.org>
Mon, 14 Oct 2024 14:08:21 +0000 (14:08 +0000)
Cache the "perl -V" output and flush the cache if it changes.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921308 13f79535-47bb-0310-9956-ffa450edef68

test/travis_before_linux.sh

index 1c0f3018933699484429181cd6862410bac0e096..e2a42d593da4f4a862101f8f3f83a4c48bb6278f 100755 (executable)
@@ -67,10 +67,18 @@ if ! test -v SKIP_TESTING -o -v NO_TEST_FRAMEWORK; then
     # Clear CPAN cache if necessary
     if [ -v CLEAR_CACHE ]; then rm -rf ~/perl5; fi
 
-    # Also flush if the system Perl is newer than the cache, otherwise
-    # it may refuse to load the (older) XS modules.
-    if [ /usr/bin/perl -nt ~/perl5/.key ]; then
-        : Purging cache since /usr/bin/perl has been updated
+    if perl -V > perlver; then
+        : Perl binary broken
+        perl -V
+        exit 1
+    fi
+
+    # Compare the current "perl -V" output with the output at the time
+    # the cache was built; flush the cache if it's changed to avoid
+    # failure later when /usr/bin/perl refuses to load a mismatched XS
+    # module.
+    if ! cmp -s perlver ~/perl5/.perlver; then
+        : Purging cache since "perl -V" output has changed
         rm -rf ~/perl5
     fi
     
@@ -85,11 +93,11 @@ if ! test -v SKIP_TESTING -o -v NO_TEST_FRAMEWORK; then
     # CC=gcc, e.g. for the CC="gcc -m32" case the builds are not correct
     # otherwise.
     CC=gcc cpanm --notest $pkgs
-
-    # Set cache key.
-    echo $pkgs > ~/perl5/.key
     unset pkgs
 
+    # Cache the perl -V output for future verification.
+    mv perlver ~/perl5/.perlver
+
     # Make a shallow clone of httpd-tests git repo.
     git clone -q --depth=1 https://github.com/apache/httpd-tests.git test/perl-framework