Investigating a test failure of GNU grep on Alpine Linux 3.17
<https://lists.gnu.org/archive/html/grep-devel/2023-03/msg3.html>
I found that the cause is:
The 'tr' program on Alpine Linux (origin: BusyBox 1.35.0) does not implement
the [x*n] argument syntax that POSIX mandates
<https://pubs.opengroup.org/onlinepubs/9699919799/utilities/tr.html>
Here's a proposed patch to the Autoconf documentation, chapter "Limitations
of Usual Tools", to document this. We already documentation limitations in
BusyBox 'sed' and BusyBox 'join' in the same chapter.
>From daee95145afac43c083a50c5d9f17283338737fb Mon Sep 17 00:00:00 2001
From: Bruno Haible
Date: Fri, 3 Mar 2023 14:32:13 +0100
Subject: [PATCH] Document limitation of BusyBox tr.
BusyBox 1.35.0 tr, which is shipped with Alpine Linux 3.17, does not support
the POSIX [x*n] syntax.
* doc/autoconf.texi (Limitations of Usual Tools): Document limitation of 'tr'
from BusyBox.
---
doc/autoconf.texi | 14 ++
1 file changed, 14 insertions(+)
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index a37d70de..7fb4370f 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -20373,6 +20373,20 @@ $ @kbd{echo abc | coreutils/tr bc d}
add
@end example
+On platforms with the BusyBox tools, @command{tr} does not support the
+@code{[@var{x}*@var{n}]} option syntax.
+
+@example
+$ @kbd{echo abc | tr 'abcd' '[A*4]'}
+[A*
+$ @kbd{echo abc | coreutils/tr 'abcd' '[A*4]'}
+AAA
+$ @kbd{echo xyz | tr 'a-z' '[A*]'}
+]]]
+$ @kbd{echo xyz | coreutils/tr 'a-z' '[A*]'}
+AAA
+@end example
+
Posix requires @command{tr} to operate on binary files. But at least
Solaris @command{/usr/ucb/tr} and @command{/usr/bin/tr} silently discard
@code{NUL} in the input prior to doing any translation. When using
--
2.34.1