git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] meson: skip gitweb build when Perl is disabled
@ 2024-12-20  7:26 Patrick Steinhardt
  2024-12-20 15:03 ` Junio C Hamano
  2024-12-20 16:30 ` [PATCH v2] " Patrick Steinhardt
  0 siblings, 2 replies; 5+ messages in thread
From: Patrick Steinhardt @ 2024-12-20  7:26 UTC (permalink / raw)
  To: git; +Cc: Daniel Engberg

It is possible to configure a Git build without Perl when disabling both
our test suite and all Perl-based features. In Meson, this can be
achieved with `meson setup -Dperl=disabled -Dtests=false`.

It was reported by a user that this breaks the Meson build because
gitweb gets built even if Perl was not discovered in such a build:

    $ meson setup .. -Dtests=false -Dperl=disabled
    ...
    ../gitweb/meson.build:2:43: ERROR: Unable to get the path of a not-found external program

Fix this issue by introducing a new feature-option that allows the user
to configure whether or not to build Gitweb. The feature is set to
'auto' by default and will be disabled automatically in case Perl was
not found on the system.

Reported-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
Hi,

I received an off-list mail from a user interested in the new Meson
build system who has done a bit of testing of it on FreeBSD. They found
an issue when configuring the build without Perl enabled, which can be
achieved by both disabling tests and Perl-based features. This patch
here fixes the issue.

Thanks!

Patrick
---
 meson.build       | 13 +++++++++++--
 meson_options.txt |  2 ++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/meson.build b/meson.build
index 0dccebcdf16b07650d943e53643f0e09e2975cc9..8e34a895dca80da77d6809a6fe90fe7661f142a1 100644
--- a/meson.build
+++ b/meson.build
@@ -740,7 +740,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')
+if get_option('tests') or get_option('gitweb').enabled()
   perl_required = true
 endif
 
@@ -1874,7 +1874,15 @@ if intl.found()
   subdir('po')
 endif
 subdir('contrib')
-subdir('gitweb')
+
+# Gitweb requires Perl, so we disable the auto-feature if Perl was not found.
+# We make sure further up that Perl is required in case the gitweb option is
+# enabled.
+gitweb_option = get_option('gitweb').disable_auto_if(not perl.found())
+if gitweb_option.enabled()
+  subdir('gitweb')
+endif
+
 subdir('templates')
 
 # Everything but the bin-wrappers need to come before this target such that we
@@ -1893,6 +1901,7 @@ summary({
   'curl': curl.found(),
   'expat': expat.found(),
   'gettext': intl.found(),
+  'gitweb': gitweb_option.enabled(),
   'https': https_backend,
   'iconv': iconv.found(),
   'pcre2': pcre2.found(),
diff --git a/meson_options.txt b/meson_options.txt
index 32a72139bae870745d9131cc9086a4594826be91..1b38d9b716ee2d06ac1484a744529547f7ed4acd 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -23,6 +23,8 @@ option('expat', type: 'feature', value: 'enabled',
   description: 'Build helpers used to push to remotes with the HTTP transport.')
 option('gettext', type: 'feature', value: 'auto',
   description: 'Build translation files.')
+option('gitweb', type: 'feature', value: 'auto',
+  description: 'Build Git web interface. Required Perl.')
 option('iconv', type: 'feature', value: 'auto',
   description: 'Support reencoding strings with different encodings.')
 option('pcre2', type: 'feature', value: 'enabled',

---
base-commit: d882f382b3d939d90cfa58d17b17802338f05d66
change-id: 20241218-b4-pks-meson-fix-gitweb-wo-perl-93379dd0ceed


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-12-20 16:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-20  7:26 [PATCH] meson: skip gitweb build when Perl is disabled Patrick Steinhardt
2024-12-20 15:03 ` Junio C Hamano
2024-12-20 15:18   ` Patrick Steinhardt
2024-12-20 15:50     ` Junio C Hamano
2024-12-20 16:30 ` [PATCH v2] " Patrick Steinhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).