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

From Andres Freund
Subject Re: [RFC] building postgres with meson
Date
Msg-id 20211013163721.oqwvztktwsym3iu4@alap3.anarazel.de
Whole thread Raw
In response to Re: [RFC] building postgres with meson  (John Naylor <john.naylor@enterprisedb.com>)
Responses Re: [RFC] building postgres with meson
List pgsql-hackers
Hi,

On 2021-10-13 11:51:03 -0400, John Naylor wrote:
> On Tue, Oct 12, 2021 at 4:59 PM Andres Freund <andres@anarazel.de> wrote:
> 
> > On 2021-10-12 15:55:22 -0400, John Naylor wrote:
> > > (I couldn't get a build working but I'll leave that aside for now).
> >
> > If you want to do that separately, I'll try to fix it.
> 
> Okay, I pulled the latest commits and tried again:
> /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/LDAP.framework/Headers/ldap.h:1:
> 
> [the last line is repeated a bunch of times, then...]

Oh. I actually saw that on CI at some point... That one is definitely
odd. Currently CI for OSX builds like

    - brew install make coreutils ccache icu4c lz4 tcl-tk openldap
    - brew install meson ninja python@3.9
..
        PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"
        PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"
        PKG_CONFIG_PATH="/usr/local/opt/openldap/lib/pkgconfig:$PKG_CONFIG_PATH"

        export PKG_CONFIG_PATH

        meson setup --buildtype debug -Dcassert=true -Dssl=openssl build

but I set that up knowing little about macos.


For the autoconf build CI currently does something similar via
        LIBS="/usr/local/lib:$LIBS"
        INCLUDES="/usr/local/include:$INCLUDES"
...
        LIBS="/usr/local/opt/openldap/lib:$LIBS"
        INCLUDES="/usr/local/opt/openldap/include:$INCLUDES"
        ...
          --with-includes="$INCLUDES" \
          --with-libs="$LIBS" \

are you doing something like that? Or does it work for you without? I vaguely
recall hitting a similar problem as you report when not passing
/usr/local/... to configure.


> i tried disabling ldap with the meson build but i'll spare the details of
> what went wrong there in case i did something wrong, so we can take things
> one step at a time.

you can change it for an existing builddir with
meson configure -dldap=disabled or when setting up a new builddir by passing
-dldap=disabled at that time.


> > > ninja, gdbm, ca-certificates, openssl@1.1, readline, sqlite and
> python@3.9
> >
> > meson does depend on ninja (to execute the build) and of course python.
> but
> > the rest should be optional dependencies. ninja builds without any
> > dependencies as long as you don't change its parser sources. python
> builds on
> > aix, hpux etc.
> >
> > not sure what way gdbm openssl@1.1 and sqlite are pulled in? i assume
> readline
> > is for python...
> 
> Hmm, weird.

They're homebrew python deps: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.9.rb#L28
which are optional things enabled explicitly:
https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.9.rb#L123

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: "kuroda.hayato@fujitsu.com"
Date:
Subject: RE: Allow escape in application_name
Next
From: Hans Buschmann
Date:
Subject: AW: VS2022: Support Visual Studio 2022 on Windows