plperl version on the meson setup summary screen
Hello,
Would it be convinient to show the plperl version on the meson setup
summary
screen? Now it displays only 'YES' or 'NO'. This is the expected
behavior of
the meson build system and explains in its source code:
https://github.com/mesonbuild/meson/blob/5f0bd8ff1e7fc43199d4b371fc4625f80baba810/mesonbuild/dependencies/base.py#L311C15-L311C27
With the attached patch we can see the "perlversion" in the summary
information table. But without a beautiful console colorize.
Additionaly, we found out that "perlversion" gets from the perl
"api_versionstring" config variable. When the configure script parses
the
"perl -v" output:
pgac_perl_version=`$PERL -v 2>/dev/null | sed -n 's/This is
perl.*v[a-...
Is this behavior correct?
--
Roman Zharkov
Attachments:
0001-show-plperl-version-in-the-meson-setup-summary.patchtext/x-diff; name=0001-show-plperl-version-in-the-meson-setup-summary.patchDownload
diff --git a/meson.build b/meson.build
index 58e67975e85..cdee5880efa 100644
--- a/meson.build
+++ b/meson.build
@@ -990,6 +990,7 @@ endif
perlopt = get_option('plperl')
perl_dep = not_found_dep
+perlversion = ''
if not perlopt.disabled()
perl_may_work = true
@@ -3716,7 +3717,7 @@ if meson.version().version_compare('>=0.57')
'nls': libintl,
'openssl': ssl,
'pam': pam,
- 'plperl': perl_dep,
+ 'plperl': [perl_dep, perlversion],
'plpython': python3_dep,
'pltcl': tcl_dep,
'readline': readline,
@@ -3727,6 +3728,7 @@ if meson.version().version_compare('>=0.57')
'zstd': zstd,
},
section: 'External libraries',
+ list_sep: ' ',
)
endif
On 2024-10-17 Th 10:02 PM, Zharkov Roman wrote:
Hello,
Would it be convinient to show the plperl version on the meson setup
summary
screen? Now it displays only 'YES' or 'NO'. This is the expected
behavior of
the meson build system and explains in its source code:
https://github.com/mesonbuild/meson/blob/5f0bd8ff1e7fc43199d4b371fc4625f80baba810/mesonbuild/dependencies/base.py#L311C15-L311C27With the attached patch we can see the "perlversion" in the summary
information table. But without a beautiful console colorize.
Yeah, the lack of version number has mildly annoyed me too, so let's fix
it. I haven't found the right secret sauce to make the version number
appear colorized, either. Maybe some meson guru can tell us how.
Additionaly, we found out that "perlversion" gets from the perl
"api_versionstring" config variable. When the configure script parses the
"perl -v" output:pgac_perl_version=`$PERL -v 2>/dev/null | sed -n 's/This is
perl.*v[a-...Is this behavior correct?
I think it's ok, it should give the same answer AFAIK. Using sed like
this to parse the output of 'perl -v' is somewhat hacky, so the meson
recipe is arguably an improvement.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
Hello,
On 2024-11-27 21:50, Andrew Dunstan wrote:
it should give the same answer
Sometimes "version" and "api_versionstring" are different. Here are two
simple examples from my windows system and from a linux system of one of
my colleagues:
C:\Temp>perl -MConfig -e "print \"$Config{api_versionstring}\n\"; print
\"$Config{version}\n\""
5.32.0
5.32.1
C:\Temp>perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for
MSWin32-x64-multi-thread
perl -MConfig -e 'print "$Config{api_versionstring}\n"; print
"$Config{version}\n"'
5.38.0
5.38.2
perl -v
This is perl 5, version 38, subversion 2 (v5.38.2)
--
Best regards, Roman Zharkov.
Hi,
On Fri, 29 Nov 2024 at 08:40, Zharkov Roman <r.zharkov@postgrespro.ru> wrote:
Hello,
On 2024-11-27 21:50, Andrew Dunstan wrote:
it should give the same answer
Sometimes "version" and "api_versionstring" are different. Here are two
simple examples from my windows system and from a linux system of one of
my colleagues:C:\Temp>perl -MConfig -e "print \"$Config{api_versionstring}\n\"; print
\"$Config{version}\n\""
5.32.0
5.32.1
C:\Temp>perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for
MSWin32-x64-multi-threadperl -MConfig -e 'print "$Config{api_versionstring}\n"; print
"$Config{version}\n"'
5.38.0
5.38.2
perl -v
This is perl 5, version 38, subversion 2 (v5.38.2)
It is different for me too:
$ perl -MConfig -e 'print "$Config{api_versionstring}\n";
print"$Config{version}\n"'
5.38.0
5.38.2
$ perl -v
This is perl 5, version 38, subversion 2 (v5.38.2)
On Wed, 27 Nov 2024 at 17:51, Andrew Dunstan <andrew@dunslane.net> wrote:
On 2024-10-17 Th 10:02 PM, Zharkov Roman wrote:
With the attached patch we can see the "perlversion" in the summary
information table. But without a beautiful console colorize.Yeah, the lack of version number has mildly annoyed me too, so let's fix
it. I haven't found the right secret sauce to make the version number
appear colorized, either. Maybe some meson guru can tell us how.
It seems that we can force ANSI colors:
- 'plperl': [perl_dep, perlversion],
+ 'plperl': [perl_dep, '\033[1;36m@0@\033[0m'.format(perlversion)],
But I think this is too hacky. I am not sure if that is the best way
or worth it.
--
Regards,
Nazir Bilal Yavuz
Microsoft
On 2024-11-29 Fr 3:26 AM, Nazir Bilal Yavuz wrote:
Hi,
On Fri, 29 Nov 2024 at 08:40, Zharkov Roman <r.zharkov@postgrespro.ru> wrote:
Hello,
On 2024-11-27 21:50, Andrew Dunstan wrote:
it should give the same answer
Sometimes "version" and "api_versionstring" are different. Here are two
simple examples from my windows system and from a linux system of one of
my colleagues:C:\Temp>perl -MConfig -e "print \"$Config{api_versionstring}\n\"; print
\"$Config{version}\n\""
5.32.0
5.32.1
C:\Temp>perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for
MSWin32-x64-multi-threadperl -MConfig -e 'print "$Config{api_versionstring}\n"; print
"$Config{version}\n"'
5.38.0
5.38.2
perl -v
This is perl 5, version 38, subversion 2 (v5.38.2)It is different for me too:
$ perl -MConfig -e 'print "$Config{api_versionstring}\n";
print"$Config{version}\n"'
5.38.0
5.38.2
$ perl -v
This is perl 5, version 38, subversion 2 (v5.38.2)On Wed, 27 Nov 2024 at 17:51, Andrew Dunstan <andrew@dunslane.net> wrote:
On 2024-10-17 Th 10:02 PM, Zharkov Roman wrote:
With the attached patch we can see the "perlversion" in the summary
information table. But without a beautiful console colorize.Yeah, the lack of version number has mildly annoyed me too, so let's fix
it. I haven't found the right secret sauce to make the version number
appear colorized, either. Maybe some meson guru can tell us how.It seems that we can force ANSI colors:
- 'plperl': [perl_dep, perlversion], + 'plperl': [perl_dep, '\033[1;36m@0@\033[0m'.format(perlversion)],But I think this is too hacky. I am not sure if that is the best way
or worth it.
Yes, way too hacky. If we can't find a better way I'm good with Roman's
idea in principle.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
Hello,
Here is a new patch version.
I tried to use perl 'version' instead of 'api_versionstring' to sync
with configure script.
--
Roman Zharkov
Attachments:
v2-0001-Show-plperl-version-in-the-meson-setup.patchtext/x-diff; name=v2-0001-Show-plperl-version-in-the-meson-setup.patchDownload
From: Zharkov Roman <r.zharkov@postgrespro.ru>
Date: Thu, 17 Oct 2024 13:09:51 +0700
Subject: [PATCH] Show plperl version in the meson setup summary.
Use perl 'version' instead of 'api_versionstring' to sync with configure script.
---
meson.build | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 8e128f4982a..436df7bb592 100644
--- a/meson.build
+++ b/meson.build
@@ -996,6 +996,7 @@ endif
perlopt = get_option('plperl')
perl_dep = not_found_dep
+perlversion = ''
if not perlopt.disabled()
perl_may_work = true
@@ -1013,7 +1014,7 @@ if not perlopt.disabled()
# Then inquire perl about its configuration
if perl_may_work
perl_conf_cmd = [perl, '-MConfig', '-e', 'print $Config{$ARGV[0]}']
- perlversion = run_command(perl_conf_cmd, 'api_versionstring', check: true).stdout()
+ perlversion = run_command(perl_conf_cmd, 'version', check: true).stdout()
archlibexp = run_command(perl_conf_cmd, 'archlibexp', check: true).stdout()
privlibexp = run_command(perl_conf_cmd, 'privlibexp', check: true).stdout()
useshrplib = run_command(perl_conf_cmd, 'useshrplib', check: true).stdout()
@@ -3711,7 +3712,7 @@ if meson.version().version_compare('>=0.57')
'nls': libintl,
'openssl': ssl,
'pam': pam,
- 'plperl': perl_dep,
+ 'plperl': [perl_dep, perlversion],
'plpython': python3_dep,
'pltcl': tcl_dep,
'readline': readline,
@@ -3722,6 +3723,7 @@ if meson.version().version_compare('>=0.57')
'zstd': zstd,
},
section: 'External libraries',
+ list_sep: ' ',
)
endif
--
2.34.0.windows.1
On Tue, 4 Feb 2025 at 12:07, Zharkov Roman <r.zharkov@postgrespro.ru> wrote:
Hello,
Here is a new patch version.
I tried to use perl 'version' instead of 'api_versionstring' to sync
with configure script.
Thanks for the patch, this looks good to me.
Regards,
Vignesh
On Tue, 4 Feb 2025 at 12:07, Zharkov Roman <r.zharkov@postgrespro.ru> wrote:
Hello,
Here is a new patch version.
I tried to use perl 'version' instead of 'api_versionstring' to sync
with configure script.
One suggestion, there are many other external libraries for which we
don't display the version, can we include the version for them too:
@@ -3711,7 +3712,7 @@ if meson.version().version_compare('>=0.57')
'nls': libintl,
'openssl': ssl,
'pam': pam,
- 'plperl': perl_dep,
+ 'plperl': [perl_dep, perlversion],
'plpython': python3_dep,
Regards,
Vignesh
On 2025-03-14 13:08, vignesh C wrote:
One suggestion, there are many other external libraries for which we
don't display the version, can we include the version for them too:
Hello,
We have seven "libraries" whose versions meson does not show: bonjour,
bsd_auth, docs, docs_pdf, nls, pam, plperl. And only plperl has a known
version.
bonjour, bsd_auth produces by declare_dependency() function, and I don't
know where to find their versions.
docs, docs_pdf are the complex of libraries: xmllint_bin, xsltproc_bin
and fop. Which version do we need?
nls can be formed in two ways: by declare_dependency() or by
cc.find_library(). It is not clear to me where to get a version.
pam also can be produced by dependency() or cc.find_library().
Best regards, Roman Zharkov
On 2025-03-17 Mo 4:43 AM, Zharkov Roman wrote:
On 2025-03-14 13:08, vignesh C wrote:
One suggestion, there are many other external libraries for which we
don't display the version, can we include the version for them too:Hello,
We have seven "libraries" whose versions meson does not show: bonjour,
bsd_auth, docs, docs_pdf, nls, pam, plperl. And only plperl has a
known version.
bonjour, bsd_auth produces by declare_dependency() function, and I
don't know where to find their versions.
docs, docs_pdf are the complex of libraries: xmllint_bin, xsltproc_bin
and fop. Which version do we need?
nls can be formed in two ways: by declare_dependency() or by
cc.find_library(). It is not clear to me where to get a version.
pam also can be produced by dependency() or cc.find_library().
Yeah. I'm planning to commit your patch shortly.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com