The configure script of fvwm 2.5.16 attempts to detect the versions of various packages installed and to verify that they are of an acceptably recent version. The code misparses version numbers that have more than three components.
For example, on my machine the problem arises with Xft: $ ./configure [ ... several lines omitted ... ] checking for Xft - version >= 2.0.0... ./configure: line 10146: test: 2.2: integer expression expected ./configure: line 10149: test: 2.2: integer expression expected yes [ ... several lines omitted ... ] Here's how it happens: The version number is detected by running xft-config --version, then parsing the output with a sed script: $ sed -n '1405,1406p' fvwm-2.5.16/acinclude.m4 xft_config_major_version=`$XFT_CONFIG $xft_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` (With similar code on subsequent lines, and elsewhere for other packages.) The sed script replaces a three-part version number such as 2.0.1 with just its first component. However, on my system we have $ xft-config --version 2.1.2.2 The sed replaces the leading "2.1.2" with "2", resulting in "2.2", which confuses the subsequent comparison with the minimum required major version number. Perhaps something like xft-config --version | cut -d. -f1 (and the like) would be more robust; the attached patch to acinclude.m4 implements this notion, both for the xft autodetection and in the similar code for gtk, imlib, freetype2, and fontconfig. -- Steven Taschuk [EMAIL PROTECTED] "This could be construed as a feature." -- patch(1)
--- fvwm-2.5.16.orig/acinclude.m4 2006-01-20 02:12:50.000000000 -0700 +++ fvwm-2.5.16/acinclude.m4 2006-02-22 15:07:58.000000000 -0700 @@ -379,11 +379,11 @@ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + cut -d. -f1'` gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + cut -d. -f2'` gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + cut -d. -f3'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" @@ -572,10 +572,8 @@ IMLIB_CFLAGS=`$IMLIBCONF $imlibconf_args --cflags` IMLIB_LIBS=`$IMLIBCONF $imlibconf_args --libs` - imlib_major_version=`$IMLIBCONF $imlib_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - imlib_minor_version=`$IMLIBCONF $imlib_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + imlib_major_version=`$IMLIBCONF $imlib_args --version | cut -d. -f1'` + imlib_minor_version=`$IMLIBCONF $imlib_args --version | cut -d. -f2'` if test "x$enable_imlibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" @@ -711,10 +709,8 @@ GDK_IMLIB_CFLAGS=`$IMLIBCONF $imlibconf_args --cflags-gdk` GDK_IMLIB_LIBS=`$IMLIBCONF $imlibconf_args --libs-gdk` - imlib_major_version=`$IMLIBCONF $imlib_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - imlib_minor_version=`$IMLIBCONF $imlib_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + imlib_major_version=`$IMLIBCONF $imlib_args --version | cut -d. -f1'` + imlib_minor_version=`$IMLIBCONF $imlib_args --version | cut -d. -f2'` if test "x$enable_imlibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" @@ -1095,17 +1091,14 @@ FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags` FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs` ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + cut -d. -f1'` ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + cut -d. -f2'` ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - ft_min_major_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - ft_min_minor_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - ft_min_micro_version=`echo $min_ft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + cut -d. -f3'` + ft_min_major_version=`echo $min_ft_version | cut -d. -f1'` + ft_min_minor_version=`echo $min_ft_version | cut -d. -f2'` + ft_min_micro_version=`echo $min_ft_version | cut -d. -f3'` if test "x$enable_fttest" = "xyes" ; then ft_config_is_lt=no if test $ft_config_major_version -lt $ft_min_major_version ; then @@ -1247,17 +1240,14 @@ FC_CFLAGS=`$FC_CONFIG $fc_config_args --cflags` FC_LIBS=`$FC_CONFIG $fc_config_args --libs` fc_config_major_version=`$FC_CONFIG $fc_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + cut -d. -f1'` fc_config_minor_version=`$FC_CONFIG $fc_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + cut -d. -f2'` fc_config_micro_version=`$FC_CONFIG $fc_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - fc_min_major_version=`echo $min_fc_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - fc_min_minor_version=`echo $min_fc_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - fc_min_micro_version=`echo $min_fc_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + cut -d. -f3'` + fc_min_major_version=`echo $min_fc_version | cut -d. -f1'` + fc_min_minor_version=`echo $min_fc_version | cut -d. -f2'` + fc_min_micro_version=`echo $min_fc_version | cut -d. -f3'` fc_config_is_lt=no if test $fc_config_major_version -lt $fc_min_major_version ; then fc_config_is_lt=yes @@ -1403,17 +1393,14 @@ XFT_CFLAGS=`$XFT_CONFIG $xft_config_args --cflags` XFT_LIBS=`$XFT_CONFIG $xft_config_args --libs` xft_config_major_version=`$XFT_CONFIG $xft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + cut -d. -f1'` xft_config_minor_version=`$XFT_CONFIG $xft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + cut -d. -f2'` xft_config_micro_version=`$XFT_CONFIG $xft_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - xft_min_major_version=`echo $min_xft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - xft_min_minor_version=`echo $min_xft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - xft_min_micro_version=`echo $min_xft_version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + cut -d. -f3'` + xft_min_major_version=`echo $min_xft_version | cut -d. -f1'` + xft_min_minor_version=`echo $min_xft_version | cut -d. -f2'` + xft_min_micro_version=`echo $min_xft_version | cut -d. -f3'` xft_config_is_lt=no if test $xft_config_major_version -lt $xft_min_major_version ; then xft_config_is_lt=yes