From: Hans Ulrich Niedermann (vserver_at_n-dimensional.de)
Date: Thu 06 Jan 2005 - 22:21:18 GMT
Summary: improve dietlibc version detection
URL: http://vserver.lauft.net/util-vserver/patches--merge/util-vserver--merge--0.30.196--patch-4.patch
Revision: util-vserver--merge--0.30.196--patch-4
Archive: hun_at_n-dimensional.de--2004-public
The changes:
* Detect and require "sort"
* Use "sort -n" instead of multiplication magic to determine whether the
dietlibc version is sufficiently new. This test should be more robust.
What they fix:
* handle a version number like 0.27-7
* handle "diet -v" output like "diet version $VERSION" in addition to
the old "dietlibc-$VERSION"
--- orig/m4/ensc_dietlibc.m4
+++ mod/m4/ensc_dietlibc.m4
@@ -72,19 +72,14 @@
if test "$use_dietlibc" = detected -a '$2'; then
_dietlibc_ver=$(${DIET:-diet} -v 2>&1 | sed '1p;d')
_dietlibc_ver=${_dietlibc_ver##*dietlibc-}
- _dietlibc_ver_maj=${_dietlibc_ver%%.*}
- _dietlibc_ver_min=${_dietlibc_ver##*.}
- _dietlibc_ver_min=${_dietlibc_ver_min%% *}
- _dietlibc_cmp=$2
- _dietlibc_cmp_maj=${_dietlibc_cmp%%.*}
- _dietlibc_cmp_min=${_dietlibc_cmp##*.}
+ _dietlibc_ver="$(echo ${_dietlibc_ver##diet version})"
+ _dietlibc_cmp="$(echo $2)"
- ensc_version_dietlibc=$_dietlibc_ver_maj.$_dietlibc_ver_min
+ ensc_version_dietlibc=$_dietlibc_ver
- let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0
- let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min
-
- test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old
+ _dietlibc_newer="$(echo -e "$_dietlibc_cmp\n$_dietlibc_ver" \
+ | sort -rn | sed '1p;d')"
+ test "$_dietlibc_newer" = "$_dietlibc_ver" || use_dietlibc=detected_old
else
ensc_version_dietlibc=
fi
--- orig/m4/ensc_pathprog.m4
+++ mod/m4/ensc_pathprog.m4
@@ -83,6 +83,7 @@
ENSC_PATHPROG(RMDIR, rmdir)
ENSC_PATHPROG(SED, sed)
ENSC_PATHPROG(SH, sh)
+ ENSC_PATHPROG(SORT, sort)
ENSC_PATHPROG(TAC, tac)
ENSC_PATHPROG(TAR, tar)
ENSC_PATHPROG(TOUCH, touch)
_______________________________________________
Vserver mailing list
Vserver_at_list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver