Subject: bug#44129: closed (Re: bug#44129: Patch to improve valac version detection)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 23 Oct 2020 21:42:03 +0000

Your bug report

#44129: Patch to improve valac version detection

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
44129: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44129
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#44129: Patch to improve valac version detection
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Fri, 23 Oct 2020 15:40:58 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

    I simply failed to update the test; 

I'm glad it was simple.

All the tests pass for me now, and I pushed your patch, and am closing
this bug. Thanks!

Subject: Patch to improve valac version detection
From: Reuben Thomas <[email-masked]>
To: bug-automake <[email-masked]>
Date: Wed, 21 Oct 2020 23:37:51 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Attached, a patch to improve valac version detection. The vala compiler,
valac, can report the API version it supports. For releases, this is the
same as the major & minor version of the compiler, so for example:

$ valac --version
Vala 0.48.11
$ valac --api-version
0.48

The advantage of using the API version is that it's semantically
meaningful. It's also simpler to parse! It can be to allow a 3rd-party,
patched, or unreleased compiler to be used more easily.

(For example, the current Vala git master compiler reports:

$ valac-0.52 --version
Vala 0.50.1.19-135c0
$ valac-0.52 --api-version
0.52

)

-- 
https://rrt.sc3d.org
From 3cb4252dd8e182bab5f484d3a8dd7a96f6da2180 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <[email-masked]>
Date: Wed, 21 Oct 2020 23:31:46 +0100
Subject: [PATCH] Improve Vala compiler detection: use API version, not
 compiler version

* m4/vala.m4: check `valac --api-version', not `valac --version'.
* doc/automake.texi: update documentation.
---
 doc/automake.texi | 15 +++++++++------
 m4/vala.m4        | 28 +++++++++++++++-------------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/doc/automake.texi b/doc/automake.texi
index 91e1d679a..dbeaf01f5 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -6969,12 +6969,15 @@ number.
 Search for a Vala compiler in @env{PATH}.  If it is found, the variable
 @code{VALAC} is set to point to it (see below for more details).  This
 macro takes three optional arguments.  The first argument, if present,
-is the minimum version of the Vala compiler required to compile this
-package.  If a compiler is found and satisfies @var{minimum-version},
-then @var{action-if-found} is run (this defaults to do nothing).
-Otherwise, @var{action-if-not-found} is run.  If @var{action-if-not-found}
-is not specified, the default value is to print a warning in case no
-compiler is found, or if a too-old version of the compiler is found.
+is the minimum version of the Vala API required to compile this package.
+For Vala releases, this is the same as the major and minor release
+number; e.g., when @code{valac --version} reports @code{0.48.7},
+@code{valac --api-version} reports @code{0.48}.  If a compiler is found
+and satisfies @var{minimum-version}, then @var{action-if-found} is run
+(this defaults to do nothing).  Otherwise, @var{action-if-not-found} is
+run.  If @var{action-if-not-found} is not specified, the default value
+is to print a warning in case no compiler is found, or if a too-old
+version of the compiler is found.
 @end defmac
 
 There are a few variables that are used when compiling Vala sources:
diff --git a/m4/vala.m4 b/m4/vala.m4
index 759061dc0..509904b11 100644
--- a/m4/vala.m4
+++ b/m4/vala.m4
@@ -6,23 +6,25 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# Check whether the Vala compiler exists in $PATH.  If it is found, the
-# variable VALAC is set pointing to its absolute path.  Otherwise, it is
-# simply set to 'valac'.
-# Optionally a minimum release number of the compiler can be requested.
-# If the ACTION-IF-FOUND parameter is given, it will be run if a proper
-# Vala compiler is found.
-# Similarly, if the ACTION-IF-FOUND is given, it will be run if no proper
-# Vala compiler is found.  It defaults to simply print a warning about the
-# situation, but otherwise proceeding with the configuration.
+# Search for a Vala compiler in PATH.  If it is found, the variable VALAC is
+# set to point to it.  Otherwise, it is simply set to 'valac'.  This macro
+# takes three optional arguments.  The first argument, if present, is the
+# minimum version of the Vala API required to compile this package.  For Vala
+# releases, this is the same as the major and minor release number; e.g., when
+# `valac --version' reports 0.48.7, `valac --api-version' reports 0.48.  If a
+# compiler is found and satisfies MINIMUM-VERSION, then ACTION-IF-FOUND is run
+# (this defaults to do nothing).  Otherwise, ACTION-IF-NOT-FOUND is run.  If
+# ACTION-IF-NOT-FOUND is not specified, the default value is to print a
+# warning in case no compiler is found, or if a too-old version of the
+# compiler is found.
 #
 # AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
 # --------------------------------------------------------------------------
 AC_DEFUN([AM_PROG_VALAC],
   [AC_PATH_PROG([VALAC], [valac], [valac])
    AS_IF([test "$VALAC" != valac && test -n "$1"],
-      [AC_MSG_CHECKING([whether $VALAC is at least version $1])
-       am__vala_version=`$VALAC --version | sed 's/Vala  *//'`
+      [AC_MSG_CHECKING([whether $VALAC supports at least API version $1])
+       am__vala_version=`$VALAC --api-version`
        AS_VERSION_COMPARE([$1], ["$am__vala_version"],
          [AC_MSG_RESULT([yes])],
          [AC_MSG_RESULT([yes])],
@@ -30,8 +32,8 @@ AC_DEFUN([AM_PROG_VALAC],
           VALAC=valac])])
     if test "$VALAC" = valac; then
       m4_default([$3],
-        [AC_MSG_WARN([no proper vala compiler found])
-         AC_MSG_WARN([you will not be able to compile vala source files])])
+        [AC_MSG_WARN([Vala compiler not found or too old])
+         AC_MSG_WARN([you will not be able to compile Vala source files])])
     else
       m4_default([$2], [:])
     fi])
-- 
2.25.1