Cannot install on Windows 10. Problem with locale?

16 views
Skip to first unread message

ew...@mailbox.org

unread,
Nov 9, 2021, 6:49:38 PM11/9/21
to sqitch...@googlegroups.com
Hi,

I want to install Sqitch on the Windows 10 machines of my team mates.
The installation fails due to problems with Win32::Locale::get_locale().
See the attached log from the install.

I use Strawberry Perl 5.32.1.1 (ZIP edition) and ran the post-install
scripts as documented.

I get the same result regardless of running in PowerShell or cmd.exe, both
with codepage 1252.

Also checked the result of Win32::Locale::get_locale() which returns
undefined:

> perl -MWin32::Locale -MDevel::Peek -e 'Dump Win32::Locale::get_locale()'
SV = NULL(0x0) at 0x1c7138
REFCNT = 2147483619
FLAGS = (READONLY,PROTECT)

This is where my Perl skills come to an end ;)

Environment variable LC_ALL appears to be picked up by Perl, e.g.:

> $env:LC_ALL = 'x'
> perl -MWin32::Locale -MDevel::Peek -e 'Dump Win32::Locale::get_locale()'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = "x"
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C")
SV = NULL(0x0) at 0xf17138
REFCNT = 2147483619
FLAGS = (READONLY,PROTECT)

Setting $env:LC_ALL = '' or $env:LC_ALL = 'english' gets rid of the warning
but the output of Dump remains unchanged.

Thanks,
Erik
install.log

ew...@mailbox.org

unread,
Nov 10, 2021, 10:14:21 AM11/10/21
to ewie via Sqitch Users
> On 10/11/2021 00:49 ewie via Sqitch Users <sqitch...@googlegroups.com> wrote:
>
> Also checked the result of Win32::Locale::get_locale() which returns
> undefined:
>
> > perl -MWin32::Locale -MDevel::Peek -e 'Dump Win32::Locale::get_locale()'
> SV = NULL(0x0) at 0x1c7138
> REFCNT = 2147483619
> FLAGS = (READONLY,PROTECT)

I found the problem and Sqitch installs fine now.

Win32::Locale does not recognize [1] language ID 0xc00 I had set for value
"Locale" under key "HKEY_CURRENT_USER\Control Panel\International".
Setting it to 0x407 (de-DE) solved it.

I don't know where language ID 0xc00 even comes from. It's not listed in
the docs [2].

Erik

[1] https://metacpan.org/dist/Win32-Locale/source/Locale.pm#L202
[2] https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
Reply all
Reply to author
Forward
0 new messages