Improve PostgreSQL version detection

Need to consider different numbering system from PostgreSQL 10.
This commit is contained in:
Ian Barwick
2017-04-19 10:12:52 +09:00
parent e306eb213b
commit 2704ab0536
2 changed files with 47 additions and 21 deletions

35
configure vendored
View File

@@ -1803,23 +1803,36 @@ if test -z "$PG_CONFIG"; then
fi fi
pgac_pg_config_version=$($PG_CONFIG --version 2>/dev/null) pgac_pg_config_version=$($PG_CONFIG --version 2>/dev/null)
version_num=$(echo "$pgac_pg_config_version"|
$SED -e 's/^PostgreSQL \([0-9]*\)\.\([0-9]*\)\([a-zA-Z0-9.]*\)$/\1.\2/')
if test -z "$version_num"; then major_version_num=$(echo "$pgac_pg_config_version"|
as_fn_error $? "could not detect the PostgreSQL version, wrong or broken pg_config?" "$LINENO" 5 $SED -e 's/^PostgreSQL \([0-9]\{1,2\}\).*$/\1/')
fi
version_num_int=$(echo "$version_num"| if test "$major_version_num" -lt '10'; then
$SED -e 's/^\([0-9]*\)\.\([0-9]*\)$/\1\2/') version_num=$(echo "$pgac_pg_config_version"|
$SED -e 's/^PostgreSQL \([0-9]*\)\.\([0-9]*\)\([a-zA-Z0-9.]*\)$/\1.\2/')
if test "$version_num_int" -lt '93'; then if test -z "$version_num"; then
as_fn_error $? "repmgr is not compatible with detected PostgreSQL version: $version_num" "$LINENO" 5 as_fn_error $? "could not detect the PostgreSQL version, wrong or broken pg_config?" "$LINENO" 5
fi
version_num_int=$(echo "$version_num"|
$SED -e 's/^\([0-9]*\)\.\([0-9]*\)$/\1\2/')
if test "$version_num_int" -lt '93'; then
as_fn_error $? "repmgr is not compatible with detected PostgreSQL version: $version_num" "$LINENO" 5
fi
else else
{ $as_echo "$as_me:${as_lineno-$LINENO}: building against PostgreSQL $version_num" >&5 version_num=$(echo "$pgac_pg_config_version"|
$as_echo "$as_me: building against PostgreSQL $version_num" >&6;} $SED -e 's/^PostgreSQL \(.\+\)$/\1/')
if test -z "$version_num"; then
as_fn_error $? "could not detect the PostgreSQL version, wrong or broken pg_config?" "$LINENO" 5
fi
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: building against PostgreSQL $version_num" >&5
$as_echo "$as_me: building against PostgreSQL $version_num" >&6;}
# add includedir to prerequisites, so tests for headers can succeed # add includedir to prerequisites, so tests for headers can succeed
CPPFLAGS="-I$($PG_CONFIG --includedir-server) $CFLAGS" CPPFLAGS="-I$($PG_CONFIG --includedir-server) $CFLAGS"

View File

@@ -15,22 +15,35 @@ if test -z "$PG_CONFIG"; then
fi fi
pgac_pg_config_version=$($PG_CONFIG --version 2>/dev/null) pgac_pg_config_version=$($PG_CONFIG --version 2>/dev/null)
version_num=$(echo "$pgac_pg_config_version"|
$SED -e 's/^PostgreSQL \([[0-9]]*\)\.\([[0-9]]*\)\([[a-zA-Z0-9.]]*\)$/\1.\2/')
if test -z "$version_num"; then major_version_num=$(echo "$pgac_pg_config_version"|
AC_MSG_ERROR([could not detect the PostgreSQL version, wrong or broken pg_config?]) $SED -e 's/^PostgreSQL \([[0-9]]\{1,2\}\).*$/\1/')
fi
version_num_int=$(echo "$version_num"| if test "$major_version_num" -lt '10'; then
$SED -e 's/^\([[0-9]]*\)\.\([[0-9]]*\)$/\1\2/') version_num=$(echo "$pgac_pg_config_version"|
$SED -e 's/^PostgreSQL \([[0-9]]*\)\.\([[0-9]]*\)\([[a-zA-Z0-9.]]*\)$/\1.\2/')
if test "$version_num_int" -lt '93'; then if test -z "$version_num"; then
AC_MSG_ERROR([repmgr is not compatible with detected PostgreSQL version: $version_num]) AC_MSG_ERROR([could not detect the PostgreSQL version, wrong or broken pg_config?])
fi
version_num_int=$(echo "$version_num"|
$SED -e 's/^\([[0-9]]*\)\.\([[0-9]]*\)$/\1\2/')
if test "$version_num_int" -lt '93'; then
AC_MSG_ERROR([repmgr is not compatible with detected PostgreSQL version: $version_num])
fi
else else
AC_MSG_NOTICE([building against PostgreSQL $version_num]) version_num=$(echo "$pgac_pg_config_version"|
$SED -e 's/^PostgreSQL \(.\+\)$/\1/')
if test -z "$version_num"; then
AC_MSG_ERROR([could not detect the PostgreSQL version, wrong or broken pg_config?])
fi
fi fi
AC_MSG_NOTICE([building against PostgreSQL $version_num])
# add includedir to prerequisites, so tests for headers can succeed # add includedir to prerequisites, so tests for headers can succeed
CPPFLAGS="-I$($PG_CONFIG --includedir-server) $CFLAGS" CPPFLAGS="-I$($PG_CONFIG --includedir-server) $CFLAGS"