[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: replacement for 'join'?
From: |
Bruno Haible |
Subject: |
Re: replacement for 'join'? |
Date: |
Wed, 12 May 2021 12:39:19 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-206-generic; KDE/5.18.0; x86_64; ; ) |
Hi Simon,
> > Alpine Linux does not have the 'join' program.
> > The GCS [1] don't list it among the essential utilities.
>
> I ran into that problem during ./bootstrap -- it seems gnulib-tool
> relies on the 'join' tool as well:
>
> ./bootstrap: gnulib/gnulib-tool --no-changelog --aux-dir=build-aux
> --doc-base=doc --lib=libgnu --m4-base=m4/ --source-base=gl/
> --tests-base=gl/tests --local-dir=gl --libtool --import ...
> gnulib/gnulib-tool: line 1: join: not found
>
> The ./bootstrap script completes without error exit, but failed to setup
> the build properly.
That is not proper behaviour. Fixing it through the patch below.
> Do we want to support ./boostrap on systems without 'join'?
No. gnulib-tool needs more advanced use of 'join' (on tables with 2 columns,
not just on lists of symbols). Unless someone writes a full emulation of
'join' that supports the -t, -v, -a options, it's best to require 'join'.
> If not, I suggest the patch below.
>
> /Simon
>
> diff --git a/build-aux/bootstrap.conf b/build-aux/bootstrap.conf
> index 9e21d9f45..0e8cbbe4a 100644
> --- a/build-aux/bootstrap.conf
> +++ b/build-aux/bootstrap.conf
> @@ -64,4 +64,5 @@ autoconf 2.59
> automake 1.9.6
> git 1.5.5
> tar -
> +join -
> "
That is good as well.
2021-05-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fail properly if the 'join' program is not found.
Reported by Simon Josefsson <simon@josefsson.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00029.html>.
* gnulib-tool: Bail out early of the 'join' program is not found.
diff --git a/gnulib-tool b/gnulib-tool
index 182b9b4..9b5c815 100755
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -888,6 +888,15 @@ func_hardlink ()
}
}
+# The 'join' program does not exist on all platforms. Where it exists,
+# we can use it. Where not, bail out.
+if (type join) >/dev/null 2>&1; then
+ :
+else
+ echo "$progname: 'join' program not found. Consider installing GNU
coreutils." >&2
+ func_exit 1
+fi
+
# Ensure an 'echo' command that
# 1. does not interpret backslashes and
# 2. does not print an error message "broken pipe" when writing into a pipe
- Re: replacement for 'join'?, Simon Josefsson, 2021/05/12
- Re: replacement for 'join'?,
Bruno Haible <=
- Re: replacement for 'join'?, Simon Josefsson, 2021/05/12
- Re: replacement for 'join'?, Bernhard Voelker, 2021/05/14
- Re: replacement for 'join'?, Bruno Haible, 2021/05/14
- Re: replacement for 'join'?, Simon Josefsson, 2021/05/14
- Re: replacement for 'join'?, Bruno Haible, 2021/05/14
- Re: replacement for 'join'?, Bernhard Voelker, 2021/05/14
- Re: replacement for 'join'?, Simon Josefsson, 2021/05/14
- Re: replacement for 'join'?, Bernhard Voelker, 2021/05/14
- Re: gnulib-ci project, Bruno Haible, 2021/05/14
- Re: gnulib-ci project, Simon Josefsson, 2021/05/14