Subject: Re: [PATCH] meson: fix perl detection when docs are enabled, but perl bindings aren't

From: Patrick Steinhardt <[email-masked]>
Date: Mon, 17 Mar 2025 15:01:16 +0100

On Sun, Mar 16, 2025 at 02:06:05AM -0400, Eli Schwartz wrote:
> The `perl` variable in meson.build is assigned to a program lookup,
> which may have the value "not-found object" if configuring with
> `-Dperl=disabled`.
> 
> There is already a list of other cases where we do need a perl command,
> even when not building perl bindings. Building documentation should be
> one of those cases, but was missing from the list. Add it.
> 
> Fixes:
> 
> ```
> $ meson setup builddir/ -Ddocs=man -Dperl=disabled -Dtests=false
> [...]
> Documentation/meson.build:308:22: ERROR: Tried to use not-found external program in "command"
> ```
> 
> Bug: https://bugs.gentoo.org/949247

Nit: we typically don't include Bug trailers.

> Signed-off-by: Eli Schwartz <[email-masked]>
> ---
>  meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index efe2871c9d..c6241c7a12 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -772,7 +772,7 @@ endif
>  # features. It is optional if you want to neither execute tests nor use any of
>  # these optional features.
>  perl_required = get_option('perl')
> -if get_option('tests') or get_option('gitweb').enabled() or 'netrc' in get_option('credential_helpers')
> +if get_option('tests') or get_option('gitweb').enabled() or 'netrc' in get_option('credential_helpers') or get_option('docs') != []
>    perl_required = true
>  endif

This change does indeed make sense. We require Perl in order to generate
command lists. Ideally we would get rid of this dependency so that it
does become possible to build documentation without Perl, as this is the
only part of the build system that requires it. But until then I'm fine
with making the requirement explicit here.

Patrick