Thread

Commits

  1. Show plperl version in the meson setup summary.

  1. plperl version on the meson setup summary screen

    r.zharkov@postgrespro.ru — 2024-10-18T02:02:04Z

    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
  2. Re: plperl version on the meson setup summary screen

    Andrew Dunstan <andrew@dunslane.net> — 2024-11-27T14:50:57Z

    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-L311C27 
    >
    > 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.
    
    
    > 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
    
    
    
    
    
  3. Re: plperl version on the meson setup summary screen

    r.zharkov@postgrespro.ru — 2024-11-29T05:39:52Z

    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.
    
    
    
    
  4. Re: plperl version on the meson setup summary screen

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2024-11-29T08:26:00Z

    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-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)
    
    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
    
    
    
    
  5. Re: plperl version on the meson setup summary screen

    Andrew Dunstan <andrew@dunslane.net> — 2024-12-04T16:10:07Z

    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-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)
    > 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
    
    
    
    
    
  6. Re: plperl version on the meson setup summary screen

    r.zharkov@postgrespro.ru — 2025-02-04T06:37:29Z

    Hello,
    
    Here is a new patch version.
    I tried to use perl 'version' instead of 'api_versionstring' to sync 
    with configure script.
    
    -- 
    Roman Zharkov
  7. Re: plperl version on the meson setup summary screen

    vignesh C <vignesh21@gmail.com> — 2025-03-13T14:34:11Z

    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
    
    
    
    
  8. Re: plperl version on the meson setup summary screen

    vignesh C <vignesh21@gmail.com> — 2025-03-14T06:08:09Z

    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
    
    
    
    
  9. Re: plperl version on the meson setup summary screen

    r.zharkov@postgrespro.ru — 2025-03-17T08:43:13Z

    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
    
    
    
    
  10. Re: plperl version on the meson setup summary screen

    Andrew Dunstan <andrew@dunslane.net> — 2025-03-17T14:31:54Z

    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