Subject: Re: Solaris and sed: Too many commands, last: s/\n//

From: Eric Sunshine <[email-masked]>
Date: Mon, 11 Mar 2019 18:28:05 -0400

On Mon, Mar 11, 2019 at 05:43:55PM -0400, Jeffrey Walton wrote:
> On Mon, Mar 11, 2019 at 5:15 PM Eric Sunshine <[email-masked]> wrote:
> > On Mon, Mar 11, 2019 at 4:32 PM Jeffrey Walton <[email-masked]> wrote:
> > > I enabled self tests for Solaris. Solaris has some anemic utilities so
> > > I put /usr/gnu/bin first on-path.
> >
> > The first question is if you are really running GNU 'sed'? My guess is
> > "no, it's still picking up Solaris's 'sed'".
> 
> I believe so. After modifying PATH, command -v returns:
> 
>     Solaris tools:
>          sed: /usr/gnu/bin/sed
>          awk: /usr/gnu/bin/awk
>         grep: /usr/gnu/bin/grep
> 
> (This was added to my scripts to confirm).

Can you doubly confirm by having t/Makefile tell us itself? I ask because that error message in your original email is exactly the error spit out by Solaris 'sed'. Perhaps apply this patch:

diff --git a/t/Makefile b/t/Makefile
index c83fd18861..d22eff4463 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -70,6 +70,7 @@ clean-chainlint:
 
 check-chainlint:
 	@mkdir -p '$(CHAINLINTTMP_SQ)' && \
+	printf 'SED VERSION: ' && sed --version && \
 	err=0 && \
 	for i in $(CHAINLINTTESTS); do \
 		$(CHAINLINT) <chainlint/$$i.test | \

If it reports "SED VERSION: sed (GNU sed) x.y", then we can feel reasonably assured that it's using GNU 'sed', however, if it errors out or prints something else, then it's not picking up your PATH for some reason.

> Maybe Git would benefit from SED, AWK and GREP variables like PERL.

Very possibly.