From: Peter Oliver <p.d.oliver@mavit.org.uk>
To: gitster@pobox.com
Cc: ps@pks.im, git@vger.kernel.org, Peter Oliver <git@mavit.org.uk>
Subject: [PATCH v3 2/2] meson: fix Perl version check for Meson versions before 1.7.0
Date: Tue, 18 Feb 2025 15:30:43 +0000 [thread overview]
Message-ID: <20250218153043.63535-3-git@mavit.org.uk> (raw)
In-Reply-To: <20250218153043.63535-1-git@mavit.org.uk>
Command `perl --version` says, e.g., “This is perl 5, version 26,
subversion 0 (v5.26.0)”, which older versions of Meson interpret as
version 26.
This will be fixed in Meson 1.7.0, but at the time of writing that isn’t
yet released.
If we run `perl -V:version` we get the unambiguous response
“version='5.26.0';”, but we need at least Meson 1.5.0 to be able to do that.
Note that Perl are seriously considering dropping the leading 5 entirely
in the near future (https://perl.github.io/PPCs/ppc0025-perl-version/),
but that shouldn’t affect us.
Signed-off-by: Peter Oliver <git@mavit.org.uk>
Co-authored-by: Patrick Steinhardt <ps@pks.im>
---
meson.build | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index f01d81b39f..fd19d348c6 100644
--- a/meson.build
+++ b/meson.build
@@ -755,7 +755,22 @@ endif
# Note that we only set NO_PERL if the Perl features were disabled by the user.
# It may not be set when we have found Perl, but only use it to run tests.
-perl = find_program('perl', version: '>=5.26.0', dirs: program_path, required: perl_required)
+#
+# At the time of writing, executing `perl --version` results in a string
+# similar to the following output:
+#
+# This is perl 5, version 40, subversion 0 (v5.40.0) built for x86_64-linux-thread-multi
+#
+# Meson picks up the "40" as version number instead of using "v5.40.0"
+# due to the regular expression it uses. This got fixed in Meson 1.7.0,
+# but meanwhile we have to either use `-V:version` instead of `--version`,
+# which we can do starting with Meson 1.5.0 and newer, or we have to
+# match against the minor version.
+if meson.version().version_compare('>=1.5.0')
+ perl = find_program('perl', dirs: program_path, required: perl_required, version: '>=5.26.0', version_argument: '-V:version')
+else
+ perl = find_program('perl', dirs: program_path, required: perl_required, version: '>=26')
+endif
perl_features_enabled = perl.found() and get_option('perl').allowed()
if perl_features_enabled
build_options_config.set('NO_PERL', '')
--
2.48.1
next prev parent reply other threads:[~2025-02-18 15:31 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-20 16:03 [PATCH 1/2] Check for Perl 5.26.0 from Meson build Peter Oliver
2025-01-20 16:03 ` [PATCH 2/2] Fix Meson Perl version check Peter Oliver
2025-01-21 6:44 ` Patrick Steinhardt
2025-01-21 6:44 ` [PATCH 1/2] Check for Perl 5.26.0 from Meson build Patrick Steinhardt
2025-01-24 16:30 ` [PATCH v2 0/2] Fix Meson Perl version check Peter Oliver
2025-01-24 16:30 ` [PATCH v2 1/2] meson: bump minimum required Perl version to 5.26.0 Peter Oliver
2025-01-24 16:30 ` [PATCH v2 2/2] meson: fix Perl version check for Meson versions before 1.7.0 Peter Oliver
2025-01-27 7:39 ` Patrick Steinhardt
2025-02-18 15:30 ` [PATCH v3 0/2] Fix Meson Perl version check Peter Oliver
2025-02-18 15:30 ` [PATCH v3 1/2] meson: bump minimum required Perl version to 5.26.0 Peter Oliver
2025-02-18 15:30 ` Peter Oliver [this message]
2025-02-18 19:12 ` [PATCH v3 0/2] Fix Meson Perl version check Junio C Hamano
2025-02-19 7:17 ` Patrick Steinhardt
2025-02-19 16:05 ` Junio C Hamano
2025-02-25 12:28 ` Peter Oliver
2025-02-25 18:20 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250218153043.63535-3-git@mavit.org.uk \
--to=p.d.oliver@mavit.org.uk \
--cc=git@mavit.org.uk \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).