Re: EDB Installer initcluster script changes - review requested

Kashif Zeeshan <kashi.zeeshan@gmail.com>

From: Kashif Zeeshan <kashi.zeeshan@gmail.com>
To: Sandeep Thakkar <sandeep.thakkar@enterprisedb.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-29T13:00:32Z
Lists: pgsql-hackers
On Wed, Jan 29, 2025 at 5:59 PM Sandeep Thakkar <
sandeep.thakkar@enterprisedb.com> wrote:

> 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?
>
Yes

>
>
>
>> 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
>
>
>