threads / patch / 63142

patchmeson: fix perl detection when docs are enabled, but perl bindings aren't

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

## tl;dr

2 messages between Mar 16, 2025 and Mar 17, 2025. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Eli Schwartz· Mar 16, 2025, 06:06 UTC · lore

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
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to meson.build +1 −1
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
 
-- 
2.48.1
Patrick Steinhardt· Mar 17, 2025, 14:01 UTC · re: Eli Schwartz · lore

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

On Sun, Mar 16, 2025 at 02:06:05AM -0400, Eli Schwartz wrote:
Show 17 quoted lines
> 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.
Show 17 quoted lines
> Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
> ---
>  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

← back to recent threads