On 2023-12-21 Th 18:20, Michael Paquier wrote:
> On Thu, Dec 21, 2023 at 03:43:32PM -0500, Andrew Dunstan wrote:
>> On 2023-12-21 Th 03:01, Michael Paquier wrote:
>>> Andrew, was the original target of pgperlsyncheck committers and
>>> hackers who played with the MSVC scripts but could not run sanity
>>> checks on Windows (see [1])?
>>
>> yes.
> Okay, thanks. Wouldn't it be better to remove it at the end? With
> the main use case behind its introduction being gone, it is less
> attractive to keep maintaining it. If some people have been using it
> in their workflows, I'm OK to keep it but the rest of the tree can be
> checked at runtime as well.
>
>> I'm actually a bit dubious about win32tzlist.pl. Win32::Registry is not
>> present in a recent Strawberry Perl installation, and its latest version
>> says it is obsolete, although it's still included in the cpan bundle
>> libwin32.
>>
>> I wonder who has actually run the script any time recently?
> Hmm... I've never run it with meson on Win32.
Turns out I was wrong - Windows sometimes doesn't find files nicely. It
is present in my Strawberry installation.
>
>> In any case, we can probably work around the syncheck issue by making the
>> module a runtime requirement rather than a compile time requirement, by
>> using "require" instead of "use".
> Interesting. Another trick would be needed for HKEY_LOCAL_MACHINE,
> like what the dummylib but local to win32tzlist.pl. Roughly among
> these lines:
> -use Win32::Registry;
> +use Config;
> +
> +require Win32::Registry;
>
> my $tzfile = 'src/bin/initdb/findtimezone.c';
>
> +if ($Config{osname} ne 'MSWin32' && $Config{osname} ne 'msys')
> +{
> + use vars qw($HKEY_LOCAL_MACHINE);
> +}
I've done it a bit differently, but the same idea. I have tested that
what I committed passes checks on Unix and works on Windows.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com