Thread (3 messages) 3 messages, 2 authors, 2025-03-26

Re: [PATCH v2] meson: disable coccinelle configuration when building from a tarball

From: Patrick Steinhardt <hidden>
Date: 2025-03-26 08:29:03

On Tue, Mar 25, 2025 at 04:08:48PM -0400, Eli Schwartz wrote:
Wiring up coccinelle in the build, depends on running git commands to
get the list of files to operate on. Reasonable, for a feature mainly
used by people developing on git. If building git itself from a tarball
distribution of git's own source code, one likely does not need to run
coccinelle.

But running those git commands failed, and caused the build to error
out, if `spatch` was installed -- because the build assumed that its
presence indicated a desire to use it on this source tree. Instead, we
can expand the conditional to check for both `spatch` and the `.git`
file or directory.

Meson's `opt.require()` method allows us to add a prerequisite for the
feature option. If the prerequisite fails, then the option either:

- converts autodetection to disabled

- emits an informative error if the feature was set to enabled:
  ERROR: Feature coccinelle cannot be enabled: coccinelle can only be run from a git checkout
Makes sense.
quoted hunk ↗ jump to hunk
Signed-off-by: Eli Schwartz <redacted>
---

v2: accidentally chopped off part of the commit message, sorry...

 contrib/coccinelle/meson.build | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/contrib/coccinelle/meson.build b/contrib/coccinelle/meson.build
index 5d76a7fee6..ea054c924f 100644
--- a/contrib/coccinelle/meson.build
+++ b/contrib/coccinelle/meson.build
@@ -1,4 +1,9 @@
-spatch = find_program('spatch', required: get_option('coccinelle'))
+coccinelle_opt = get_option('coccinelle').require(
+  fs.exists(meson.project_source_root() / '.git'),
+  error_message: 'coccinelle can only be run from a git checkout',
+)
+
+spatch = find_program('spatch', required: coccinelle_opt)
 if not spatch.found()
   subdir_done()
 endif
base-commit: c1d6628c9433c09ff62f916f2b933ee12995e9d8
Yup, makes sense, as well.

Thank you for the patch, looks good!

Patrick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help