]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
maint: skip a check when en_US.UTF-8 collation rules are broken
authorJim Meyering <meyering@fb.com>
Mon, 25 Jul 2016 15:37:28 +0000 (08:37 -0700)
committerJim Meyering <meyering@fb.com>
Wed, 27 Jul 2016 16:31:03 +0000 (09:31 -0700)
* cfg.mk (sc_THANKS_in_sorted): This check would fail on systems
for which "." is not ignored.  Add a quick sort-based check for
that error, and skip the check on any broken system.

cfg.mk

diff --git a/cfg.mk b/cfg.mk
index c917c874fa5fc7712434c2fd6f7e1140a74ea526..08d9e9dd444f6485976e7a25e549c89852e2a3bc 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -722,15 +722,22 @@ sc_THANKS_in_duplicates:
            && { echo '$(ME): remove the above names from THANKS.in'    \
                  1>&2; exit 1; } || :
 
-# Ensure the contributor list stays sorted.  Use our sort as other
-# implementations may result in a different order.
-sc_THANKS_in_sorted:  src/sort
-       @sed '/^$$/,/^$$/!d;/^$$/d' $(srcdir)/THANKS.in > $@.1;         \
-       LC_ALL=en_US.UTF-8 src/sort -f -k1,1 $@.1 > $@.2
-       @diff -u $@.1 $@.2; diff=$$?;                                   \
-       rm -f $@.1 $@.2;                                                \
-       test "$$diff" = 0                                               \
-         || { echo '$(ME): THANKS.in is unsorted' 1>&2; exit 1; }
+# Ensure the contributor list stays sorted.  However, if the system's
+# en_US.UTF-8 locale data is erroneous, give a diagnostic and skip
+# this test.  This affects OS X, up to at least 10.11.6.
+# Use our sort as other implementations may result in a different order.
+sc_THANKS_in_sorted:
+       @printf 'a\n.b\n'|LC_ALL=en_US.UTF-8 src/sort -c 2> /dev/null   \
+         && {                                                          \
+           sed '/^$$/,/^$$/!d;/^$$/d' $(srcdir)/THANKS.in > $@.1 &&    \
+           LC_ALL=en_US.UTF-8 src/sort -f -k1,1 $@.1 > $@.2 &&         \
+           diff -u $@.1 $@.2; diff=$$?;                                \
+           rm -f $@.1 $@.2;                                            \
+           test "$$diff" = 0                                           \
+             || { echo '$(ME): THANKS.in is unsorted' 1>&2; exit 1; }; \
+           }                                                           \
+         || { echo '$(ME): this system has erroneous locale data;'     \
+                   'skipping $@' 1>&2; }
 
 # Look for developer diagnostics that are marked for translation.
 # This won't find any for which devmsg's format string is on a separate line.