Re: [RFC] building postgres with meson - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: [RFC] building postgres with meson
Date
Msg-id d1ea641b-0822-78dd-7a7e-cfe5f5f9cf8e@dunslane.net
Whole thread Raw
In response to Re: [RFC] building postgres with meson  (Andres Freund <andres@anarazel.de>)
Responses Re: [RFC] building postgres with meson  (Andrew Dunstan <andrew@dunslane.net>)
Re: [RFC] building postgres with meson  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On 10/12/21 2:09 PM, Andres Freund wrote:
> Hi,
>
> On 2021-10-12 09:59:26 -0700, Andres Freund wrote:
>> On 2021-10-12 11:50:03 -0400, Andrew Dunstan wrote:
>>> It hung because it expected the compiler to be 'ccache cc'. Hanging in
>>> such a case is kinda unforgivable. I remedied that by setting 'CC=gcc'
>>> but it then errored out looking for perl libs. I think msys2 is going to
>>> be a bit difficult here :-(
>> Hm. Yea, the perl thing is my fault - you should be able to get past it with
>> -Dperl=disabled, and I'll take a look at fixing the perl detection. (*)
> This is a weird one. I don't know much about msys, so it's probably related to
> that. Perl spits out /usr/lib/perl5/core_perl/ as its archlibexp. According to
> shell commands that exists, but not according to msys's own python
>
> $ /mingw64/bin/python -c "import os; p = '/usr/lib/perl5/core_perl/CORE'; print(f'does {p} exist:',
os.path.exists(p))"
> does /usr/lib/perl5/core_perl/CORE exist: False
>
> $ ls -ld /usr/lib/perl5/core_perl/CORE
> drwxr-xr-x 1 anfreund anfreund 0 Oct 10 10:19 /usr/lib/perl5/core_perl/CORE


Looks to me like a python issue:


# perl -e 'my $p = "/usr/lib/perl5/core_perl/CORE"; print qq(does $p
exist: ), -e $p, qq{\n};'
does /usr/lib/perl5/core_perl/CORE exist: 1

# python -c "import os; p = '/usr/lib/perl5/core_perl/CORE';
print(f'does {p} exist:', os.path.exists(p))"
does /usr/lib/perl5/core_perl/CORE exist: False

# cygpath -m /usr/lib/perl5/core_perl/CORE
C:/tools/msys64/usr/lib/perl5/core_perl/CORE

# python -c "import os; p =
'C:/tools/msys64/usr/lib/perl5/core_perl/CORE'; print(f'does {p}
exist:', os.path.exists(p))"
does C:/tools/msys64/usr/lib/perl5/core_perl/CORE exist: True


Clearly python is not understanding msys virtualized paths.


>
>
> I guess I should figure out how to commandline install msys and add it to CI.
>


here's what I do:


    # msys2 outputs esc-[3J which clears the screen's scroll buffer. Nasty.
    # so we redirect the output
    # find the log in c:\Windows\System32 if needed
    choco install -y --no-progress --limit-output msys2 > msys2inst.log
    c:\tools\msys64\usr\bin\bash -l
    '/c/vfiles/windows-uploads/msys2-packages.sh'

Here's what's in msys-packages.sh:


    pacman -S --needed --noconfirm \
        base-devel \
        msys/git \
        msys/ccache \
        msys/vim  \
        msys/perl-Crypt-SSLeay \
        mingw-w64-clang-x86_64-toolchain \
        mingw-w64-x86_64-toolchain

    # could do: pacman -S --needed --noconfirm development
    # this is more economical. These should cover most of the things you
    might
    # want to configure with

    pacman -S --needed --noconfirm \
           msys/gettext-devel \
           msys/icu-devel \
           msys/libiconv-devel \
           msys/libreadline-devel \
           msys/libxml2-devel \
           msys/libxslt-devel \
           msys/openssl-devel \
           msys/zlib-devel


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: [RFC] building postgres with meson
Next
From: Andrew Dunstan
Date:
Subject: Re: [RFC] building postgres with meson