Subject: Re: bug#12728: v8.20 is missing LIBICONV for factor tool

From: Jim Meyering <[email-masked]>
Date: Thu, 25 Oct 2012 18:36:25 +0200

Pádraig Brady wrote:

> On 10/25/2012 11:21 AM, Jim Meyering wrote:
>> Thanks for dealing with that.
>> Along with the fix, please add a syntax-check rule that does something
>> like this:
>>
>>    cd src; for i in $(git grep -l -w proper_name_utf8 *.c|sed 's/\.c//'); do
>>      grep -E "^src_${i}_LDADD .?= .*\$(LIBICONV)" local.mk > /dev/null \
>>        || echo FAIL $i
>>    done
>>
>> Before the fix, it would print this:
>>
>>    FAIL factor
>
> Pushed with this:
>
> # Ensure programs with authors with non ASCII names link with LIBICONV
> sc_check-I18N-AUTHORS:
>        @(cd $(srcdir)/src &&                           \
>          for i in $$(git grep -l -w proper_name_utf8 *.c|sed 's/\.c//'); do \
>            grep -E "^src_$${i}_LDADD"' .?= .*\$$\(LIBICONV\)' local.mk > \
>              /dev/null || { echo FAIL $$i; exit 1; };            \
>          done)

Thanks!
I wanted to include a little more information in the diagnostic, so...

>From 74da4c80470bffe3ccfaead598dad36bf64f1b97 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email-masked]>
Date: Thu, 25 Oct 2012 18:35:34 +0200
Subject: [PATCH] maint: tweak sc_check-I18N-AUTHORS

* cfg.mk (sc_check-I18N-AUTHORS): Remove unnecessary subshell;
add a self-explanatory diagnostic.
---
 cfg.mk | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 40ece55..08f6c3d 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -181,13 +181,15 @@ sc_check-AUTHORS: $(all_programs)
 	  && diff $(au_actual) $(au_dotdot) \
 	  && rm -f $(au_actual) $(au_dotdot)

-# Ensure programs with authors with non ASCII names link with LIBICONV
+# Each program with a non-ASCII author name must link with LIBICONV.
 sc_check-I18N-AUTHORS:
-	@(cd $(srcdir)/src &&                           \
+	@cd $(srcdir)/src &&						\
 	  for i in $$(git grep -l -w proper_name_utf8 *.c|sed 's/\.c//'); do \
-	    grep -E "^src_$${i}_LDADD"' .?= .*\$$\(LIBICONV\)' local.mk > \
-	      /dev/null || { echo FAIL $$i; exit 1; };            \
-	  done)
+	    grep -E "^src_$${i}_LDADD"' .?= .*\$$\(LIBICONV\)' local.mk	\
+		> /dev/null						\
+	      || { "echo $(ME): link rules for $$i do not include"	\
+		    '$$(LIBICONV)' 1>&2; exit 1; };			\
+	  done

 # Look for lines longer than 80 characters, except omit:
 # - program-generated long lines in diff headers,
--
1.8.0