Re: EDB Installer initcluster script changes - review requested

Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>

From: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>
To: Kashif Zeeshan <kashi.zeeshan@gmail.com>
Cc: Manika Singhal <manika.singhal@enterprisedb.com>, pgsql-hackers@lists.postgresql.org, thomas.munro@gmail.com, noah@leadboat.com, Dave Page <dpage@pgadmin.org>
Date: 2025-01-29T12:59:21Z
Lists: pgsql-hackers
Hi

On Wed, Jan 29, 2025 at 12:53 PM Kashif Zeeshan <kashi.zeeshan@gmail.com>
wrote:

> Hi Manika
>
> The bug is fixed with the shared package.
>
> Just to be sure, you're talking about the issue where EDB's installer was
passing the locale with non-ascii characters and was failing, correct?


> Thanks
> Kashif Zeehsan
>
> On Tue, Jan 28, 2025 at 11:19 PM Manika Singhal <
> manika.singhal@enterprisedb.com> wrote:
>
>> On Tue, Jan 28, 2025 at 3:12 PM Manika Singhal <
>> manika.singhal@enterprisedb.com> wrote:
>>
>>> Hi,
>>>
>>> As a part of rewriting the legacy *initcluster.vbs* [1], which EDB's
>>> graphical installer uses to initialize the database cluster and set the
>>> proper ACL's, into Powershell script *initcluster.ps1,* I have also
>>> attempted to fix the locale issue (about non-ASCII characters) being
>>> discussed at [2].
>>>
>>> Here are the test cases that I tried with the generated test installer
>>> for PG17 [3]
>>>
>>>    1. Ensure that the ACLs of the data directories generated by the
>>>    existing initcluster.vbs and the new *initcluster.ps1* match, both
>>>    in the default installation directory (C:\Program Files) and in non-default
>>>    location (outside C:\Program Files).
>>>    2. Ensure that the ACls of the password file and its temporary
>>>    directory match those created by the existing initcluster.vbs
>>>    3. Ensure that the ASCII and non-ASCII locales passed during the GUI
>>>    based installation are converted into BCP-47 names before being passed to
>>>    the initdb.exe
>>>    a. *example:* I have selected locale "Turkish, Türkiye" at the time
>>>    of installation, please refer to the screenshot below:
>>>    [image: ss.png]
>>>
>>> *initcluster.ps1* converted it into its BCP-47 name, i.e. "tr-TR" and
>>> passed it to initdb.exe, please refer below installation log lines:
>>>
>>>
>>>> *Executing C:\Windows\System32\cmd.exe /c powershell.exe
>>>> -ExecutionPolicy Bypass -File "C:\Program
>>>> Files\PostgreSQL\17\installer\server\initcluster.ps1" "NT
>>>> AUTHORITY\NetworkService" "postgres" "****"
>>>> "C:\Users\Administrator\AppData\Local\Temp\2\postgresql_installer_cd746730f8"
>>>> "C:\Program Files\PostgreSQL\17" "C:\Program Files\PostgreSQL\17\data" 5432
>>>> "Turkish,Türkiye" 0**Script exit code: 0*
>>>> Script output:
>>>> <some script output lines>
>>>>
>>>> *The database cluster will be initialized with locale "tr-TR".**The
>>>> default text search configuration will be set to "turkish".*
>>>
>>>
>>>  Can I request you all to please review the pull request at
>>> https://github.com/EnterpriseDB/edb-installers/pull/227?
>>>
>>> Thanks!
>>>
>>>
>>> [1] https://github.com/EnterpriseDB/edb-installers/issues/98
>>>
>>> [2]
>>> https://www.postgresql.org/message-id/CA+hUKGL5mBN3JQuebAPbX0yxDNtpui04J+KSy2F7KBbhLGaJig@mail.gmail.com
>>>
>>> [3]
>>> https://get.enterprisedb.com/test-installers/postgresql-17.2-0.0snapshot12949906433.1091.1.3b995e2.3-windows-x64.exe
>>>
>>>
>>>
>> Here is the link to the updated installer with a fix:
>> [3]
>> https://get.enterprisedb.com/test-installers/postgresql-17.2-0.0snapshot13015478730.1095.1.3b995e2.3-windows-x64.exe
>>
>>
>>>
>>>
>> --------------------------------
>>> Thanks
>>> Manika Singhal
>>>
>>

-- 
Sandeep Thakkar