Re: meson: Non-feature feature options - Mailing list pgsql-hackers

From Andres Freund
Subject Re: meson: Non-feature feature options
Date
Msg-id 20230208162310.scllwgr5qp3m5tme@awork3.anarazel.de
Whole thread Raw
In response to meson: Non-feature feature options  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: meson: Non-feature feature options
List 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



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Why cann't simplify stable function in planning phase?
Next
From: Andres Freund
Date:
Subject: Re: recovery modules