ci/release-build: evaluate package_version from m4 definition
authorLuca BRUNO <luca.bruno@coreos.com>
Fri, 9 Jul 2021 16:17:31 +0000 (16:17 +0000)
committerLuca BRUNO <luca.bruno@coreos.com>
Fri, 9 Jul 2021 16:17:31 +0000 (16:17 +0000)
This fixes the ci-release-build.sh script to directly source
and evaluate 'package_version' from its m4 definition, without
requiring a fully configured source tree.

ci/ci-release-build.sh

index e7e7f111fcfa66107d91d9b0b35eae25c8d58b0b..ca60a4a370f6b7e47a873ddcfe807d48dfbc058f 100755 (executable)
@@ -10,14 +10,26 @@ set -euo pipefail
 HEAD=${PAPR_COMMIT:-HEAD}
 
 git log --format=%B -n 1 $HEAD > log.txt
-trap "rm -f log.txt" EXIT
+trap "rm -f version.m4 log.txt" EXIT
 
 if grep -q ^is_release_build=yes configure.ac; then
     echo "*** is_release_build is set to yes ***"
 
-    V=$(grep -Po '^#define PACKAGE_VERSION "\K[0-9]+\.[0-9]+(?=")' config.h)
+    # assemble a short m4 macro file to evaluate 'package_version'
+    cat > version.m4 <<EOF
+m4_divert(-1)
+m4_changequote([, ])
+EOF
+
+    grep m4_define configure.ac | grep _version >> version.m4
+
+    cat >> version.m4 <<EOF
+m4_divert(0)m4_dnl
+package_version
+EOF
+    V=$(m4 -P version.m4)
     if [ -z "$V" ]; then
-        echo "ERROR: couldn't read PACKAGE_VERSION"
+        echo "ERROR: couldn't read package_version"
         exit 1
     fi
     echo "OK: release version is $V"