[libvirt PATCH 3/4] meson: Check GNU sed's availability

Andrea Bolognani abologna at redhat.com
Wed Mar 24 18:37:59 UTC 2021


As explained in the comment in build-aux/Makefile.in, the
version of sed included in the FreeBSD base system is not GNU
sed, which our syntax-check rules expect; as a result, many
checks will fail with

  gmake: gsed: No such file or directory
  /bin/sh: gsed: not found

Similarly to what we're already doing with GNU make and GNU
grep, look for GNU sed during the configuration step and fail
early if it's not available.

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
---
 build-aux/Makefile.in     | 1 +
 build-aux/meson.build     | 3 +++
 build-aux/syntax-check.mk | 9 ---------
 3 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/build-aux/Makefile.in b/build-aux/Makefile.in
index 415a8df305..9ccbec7b1b 100644
--- a/build-aux/Makefile.in
+++ b/build-aux/Makefile.in
@@ -6,6 +6,7 @@ FLAKE8 = @flake8_path@
 RUNUTF8 = @runutf8@
 PYTHON = @PYTHON3@
 GREP = @GREP@
+SED = @SED@
 
 # include syntax-check.mk file
 include $(top_srcdir)/build-aux/syntax-check.mk
diff --git a/build-aux/meson.build b/build-aux/meson.build
index c56a348946..fe88d6b736 100644
--- a/build-aux/meson.build
+++ b/build-aux/meson.build
@@ -12,8 +12,10 @@ syntax_check_conf.set('PYTHON3', python3_prog.path())
 
 if host_machine.system() == 'freebsd'
   make_prog = find_program('gmake')
+  sed_prog = find_program('gsed')
 else
   make_prog = find_program('make')
+  sed_prog = find_program('sed')
 endif
 
 if host_machine.system() == 'freebsd'
@@ -34,6 +36,7 @@ else
 endif
 
 syntax_check_conf.set('GREP', grep_prog.path())
+syntax_check_conf.set('SED', sed_prog.path())
 
 configure_file(
   input: 'Makefile.in',
diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk
index 51a498a897..7f4a23c048 100644
--- a/build-aux/syntax-check.mk
+++ b/build-aux/syntax-check.mk
@@ -27,15 +27,6 @@ ME := build-aux/syntax-check.mk
 # of the module description. But some packages import this file directly,
 # ignoring the module description.
 AWK ?= awk
-# FreeBSD (and probably some other OSes too) ships own version of sed(1), not
-# compatible with the GNU sed. GNU sed is available as gsed(1), so use this
-# instead
-UNAME := $(shell uname)
-ifeq ($(UNAME),FreeBSD)
-SED ?= gsed
-else
-SED ?= sed
-endif
 
 # Helper variables.
 _empty =
-- 
2.26.3




More information about the libvir-list mailing list