On 2025-04-20 04:47, James Cloos wrote:

the whole point of this thread is that fedora removed awk from its base
set.

>>>>>> "PH" == Perry Hutchison <pl...@agora.rdrop.com> writes:
PH> But why should we go to that extra trouble *only* for awk?

obviously if it adds such support it should be in general, not only for
one command.  but fedora has made awk an important one.

I see little need to support "busybox X" for all X, since we don't have distros that do that. Also, adding such support would be a real pain.

However, there is a need for "busybox X" on stripped-down Fedora 42; we have a user bug report about it. Also, adding support for busybox awk in minimal 'configure' scripts is a trivial (one-line) change. So let's do that. I installed the attached.

Of course many packages won't build even with this change, because they use 'awk' directly instead of using $AWK. That's OK; if they care about stripped-down Fedora 42 they can make the effort, and if not then it's no big deal as there are easy workarounds for those who want to build on that platform: symlink busybox to awk, install gawk, configure with AWK='busybox awk', etc., etc.
From fa76d00401519123a782af1963b7d7ba677347b3 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sun, 20 Apr 2025 10:36:19 -0700
Subject: [PATCH] Fall back on busybox awk

* lib/autoconf/programs.m4 (AC_PROG_AWK):
Fall back 'busybox awk' of none of the other awks work.
---
 NEWS                     |  2 ++
 doc/autoconf.texi        | 13 +++++++++----
 lib/autoconf/programs.m4 |  2 +-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index 0899de5f..1e4e513e 100644
--- a/NEWS
+++ b/NEWS
@@ -28,6 +28,8 @@ GNU Autoconf NEWS - User visible changes.
   The autom4te, autoscan and ifnames programs now recognize the two
   preprocessor directives, which were introduced in C23 and C++23.
 
+*** AC_PROG_AWK now also checks for busybox awk.
+
 *** AC_USE_SYSTEM_EXTENSIONS now defines _COSMO_SOURCE for Cosmopolitan Libc.
 
 ** Notable bug fixes
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index fd16d5fb..7b156b82 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -4162,14 +4162,19 @@ otherwise to @samp{:} (do nothing).
 @acindex{PROG_AWK}
 @ovindex AWK
 @caindex prog_AWK
-Check for @code{gawk}, @code{mawk}, @code{nawk}, and @code{awk}, in that
+Check for the commands @command{gawk}, @command{mawk},
+@command{nawk}, @command{awk}, and @code{busybox awk}, in that
 order, and set output variable @code{AWK} to the first one that is found.
-It tries @code{gawk} first because that is reported to be the
+Try @code{gawk} first because that is reported to be the
 best implementation.  The result can be overridden by setting the
 variable @code{AWK} or the cache variable @code{ac_cv_prog_AWK}.
 
-Using this macro is sufficient to avoid the pitfalls of traditional
-@command{awk} (@pxref{awk, , Limitations of Usual Tools}).
+Using this macro avoids some pitfalls of older systems that have both
+traditional @command{awk} (@pxref{awk, , Limitations of Usual Tools})
+and better alternatives like @command{gawk}.
+It also can help port to stripped-down systems that have only
+@code{busybox awk}, although these systems could well have problems
+with other build components that use plain @command{awk}.
 @end defmac
 
 @defmac AC_PROG_GREP
diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
index 1d44bbf3..d8b8b8b1 100644
--- a/lib/autoconf/programs.m4
+++ b/lib/autoconf/programs.m4
@@ -357,7 +357,7 @@ AN_PROGRAM([gawk], [AC_PROG_AWK])
 AN_PROGRAM([mawk], [AC_PROG_AWK])
 AN_PROGRAM([nawk], [AC_PROG_AWK])
 AC_DEFUN([AC_PROG_AWK],
-[AC_CHECK_PROGS(AWK, gawk mawk nawk awk, )])
+[AC_CHECK_PROGS([AWK], [gawk mawk nawk awk 'busybox awk'])])
 
 
 # AC_PROG_EGREP
-- 
2.48.1

Reply via email to