* gl/build-aux/funclib.sh (func_sort_ver): Much simplified.
(func_lt_ver): New function, return true if arguments are in
ascending order.
* gl/build-aux/bootstrap.in: Simplify with func_lt_ver.
* gl/build-aux/do-release-commit-and-tag.diff: Likewise.
* bootstrap: Regenerate.
Co-Authored-by: Paul Eggert <eggert@cs.ucla.edu>
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
{
$debug_cmd
- ver1=$1
- ver2=$2
+ printf '%s\n%s\n' "$1" "$2" |
+ sort -t. -k1n -k1 -k2n -k2 -k3n -k3 -k4n -k4 -k5n -k5 -k6n -k6 -k7n -k7 -k8n -k8 -k9n -k9
+}
- # Split on '.' and compare each component.
- i=1
- while :; do
- p1=`echo "$ver1" |cut -d. -f$i`
- p2=`echo "$ver2" |cut -d. -f$i`
- if test ! "$p1"; then
- echo "$1 $2"
- break
- elif test ! "$p2"; then
- echo "$2 $1"
- break
- elif test ! "$p1" = "$p2"; then
- if test "$p1" -gt "$p2" 2>/dev/null; then # numeric comparison
- echo "$2 $1"
- elif test "$p2" -gt "$p1" 2>/dev/null; then # numeric comparison
- echo "$1 $2"
- else # numeric, then lexicographic comparison
- lp=`printf "$p1\n$p2\n" |sort -n |tail -n1`
- if test "$lp" = "$p2"; then
- echo "$1 $2"
- else
- echo "$2 $1"
- fi
- fi
- break
- fi
- i=`expr $i + 1`
- done
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false. Use it like this:
+#
+# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+ $debug_cmd
+
+ test "x$1" = x`func_sort_ver "$1" "$2" | sed 1q`
}
# Fail if a newer version than what we have is required.
else
- _G_newer=`func_sort_ver $_G_reqver $_G_instver |cut -d' ' -f2`
- test "$_G_newer" != "$_G_instver" && {
+ func_lt_ver "$_G_reqver" "$_G_instver" || {
func_error "\
'$_G_app' version == $_G_instver is too old
'$_G_app' version >= $_G_reqver is required"
# Fail if a newer version than what we have is required.
else
- _G_newer=`func_sort_ver $_G_reqver $_G_instver |cut -d' ' -f2`
- test "$_G_newer" != "$_G_instver" && {
+ func_lt_ver "$_G_reqver" "$_G_instver" || {
func_error "\
'$_G_app' version == $_G_instver is too old
'$_G_app' version >= $_G_reqver is required"
---- gnulib/build-aux/do-release-commit-and-tag 2013-01-26 16:46:26.000000000 +1300
-+++ gl/build-aux/do-release-commit-and-tag 2013-10-26 15:42:36.000000000 +1300
+--- ./gnulib/build-aux/do-release-commit-and-tag 2013-01-26 16:46:26.000000000 +1300
++++ gl/build-aux/do-release-commit-and-tag 2013-10-28 20:21:38.000000000 +1300
@@ -5,6 +5,9 @@
# will serve to identify the release, so apply a signed tag to it as well.
VERSION=2012-08-01.09 # UTC
# Note: this is a bash script (could be zsh or dash)
# Copyright (C) 2009-2013 Free Software Foundation, Inc.
-@@ -125,10 +128,9 @@
+@@ -125,10 +128,8 @@
|| die 'failed to determine previous version number from .prev-version'
# Verify that $ver is sensible (> .prev-version).
- "$prev_ver:$ver:") ;;
- *) die "invalid version: $ver (<= $prev_ver)";;
-esac
-+newer_ver=$(func_sort_ver $prev_ver $ver |cut -d' ' -f2)
-+test "$newer_ver" != "$ver" && \
-+ die "invalid version: $ver (<= $prev_ver)"
++func_lt_ver "$prev_ver" "$ver" \
++ || die "invalid version: $ver (<= $prev_ver)"
case $type in
alpha|beta|stable) ;;
{
$debug_cmd
- ver1=$1
- ver2=$2
+ printf '%s\n%s\n' "$1" "$2" |
+ sort -t. -k1n -k1 -k2n -k2 -k3n -k3 -k4n -k4 -k5n -k5 -k6n -k6 -k7n -k7 -k8n -k8 -k9n -k9
+}
- # Split on '.' and compare each component.
- i=1
- while :; do
- p1=`echo "$ver1" |cut -d. -f$i`
- p2=`echo "$ver2" |cut -d. -f$i`
- if test ! "$p1"; then
- echo "$1 $2"
- break
- elif test ! "$p2"; then
- echo "$2 $1"
- break
- elif test ! "$p1" = "$p2"; then
- if test "$p1" -gt "$p2" 2>/dev/null; then # numeric comparison
- echo "$2 $1"
- elif test "$p2" -gt "$p1" 2>/dev/null; then # numeric comparison
- echo "$1 $2"
- else # numeric, then lexicographic comparison
- lp=`printf "$p1\n$p2\n" |sort -n |tail -n1`
- if test "$lp" = "$p2"; then
- echo "$1 $2"
- else
- echo "$2 $1"
- fi
- fi
- break
- fi
- i=`expr $i + 1`
- done
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false. Use it like this:
+#
+# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+ $debug_cmd
+
+ test "x$1" = x`func_sort_ver "$1" "$2" | sed 1q`
}