Re: meson: Non-feature feature options

From: Andres Freund <andres(at)anarazel(dot)de>
To: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: meson: Non-feature feature options
Date: 2023-02-08 16:23:10
Message-ID: 20230208162310.scllwgr5qp3m5tme@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-02-08 11:45:05 +0100, Peter Eisentraut wrote:
> Most meson options (meson_options.txt) that enable an external dependency
> (e.g., icu, ldap) are of type 'feature'. Most of these have a default value
> of 'auto', which means they are pulled in automatically if found. Some have
> a default value of 'disabled' for specific reasons (e.g., selinux). This is
> all good.
>
> Two options deviate from this in annoying ways:
>
> option('ssl', type : 'combo', choices : ['none', 'openssl'],
> value : 'none',
> description: 'use LIB for SSL/TLS support (openssl)')
>
> option('uuid', type : 'combo', choices : ['none', 'bsd', 'e2fs', 'ossp'],
> value : 'none',
> description: 'build contrib/uuid-ossp using LIB')
>
> These were moved over from configure like that.
>
> The problem is that these features now cannot be automatically enabled and
> behave annoyingly different from other feature options.

Oh, yes, this has been bothering me too.

> For the 'ssl' option, we have deprecated the --with-openssl option in
> configure and replaced it with --with-ssl, in anticipation of other SSL
> implementations. None of that ever happened or is currently planned AFAICT.
> So I suggest that we semi-revert this, so that we can make 'openssl' an auto
> option in meson.

Hm. I'm inclined to leave it there - I do think it's somewhat likely that
we'll eventually end up with some platform native library. I think it's likely
the NSS patch isn't going anywhere, but I'm not sure that's true for
e.g. using the windows encryption library. IIRC Heikki had a patch at some
point.

I'd probably just add a 'auto' option, and manually make it behave like a
feature option.

> For the 'uuid' option, I'm not sure what the best way to address this would.
> We could establish a search order of libraries that is used if no specific
> one is set (similar to libreadline, libedit, in a way). So we'd have one
> option 'uuid' that is of type feature with default 'auto' and another
> option, say, 'uuid-library' of type 'combo'.

Or add 'auto' as a combo option, and handle the value of the auto_features
option ourselves?

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2023-02-08 16:27:13 Re: recovery modules
Previous Message Andres Freund 2023-02-08 16:15:19 Re: Why cann't simplify stable function in planning phase?