diff options
author | Tom Lane | 2022-04-01 15:05:52 +0000 |
---|---|---|
committer | Tom Lane | 2022-04-01 15:05:52 +0000 |
commit | 479b69a4a551465614042bba00694001273d702f (patch) | |
tree | c1876dbeaf2c391d1b79c90c72173391f7792de4 | |
parent | c1932e542863f0f646f005b3492452acc57c7e66 (diff) |
Set minimum required version of zstd as 1.4.0.
It emerges that our new zstd code depends on features that were not
present (or at least not enabled by default) in zstd before 1.4.0.
That's already four years old, so there's little reason to try to
make our code work with something older. Instead make configure
check that zstd is at least 1.4.0, and document this requirement.
Justin Pryzby (doc changes by me)
Discussion: https://postgr.es/m/efbd94cd1102f99fd1300e44905ee4a994ee2ef6.camel@gunduz.org
-rwxr-xr-x | configure | 22 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | doc/src/sgml/installation.sgml | 7 |
3 files changed, 16 insertions, 15 deletions
diff --git a/configure b/configure index c5e27697011..a4b654ad94e 100755 --- a/configure +++ b/configure @@ -9092,19 +9092,19 @@ $as_echo "$with_zstd" >&6; } if test "$with_zstd" = yes; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzstd" >&5 -$as_echo_n "checking for libzstd... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzstd >= 1.4.0" >&5 +$as_echo_n "checking for libzstd >= 1.4.0... " >&6; } if test -n "$ZSTD_CFLAGS"; then pkg_cv_ZSTD_CFLAGS="$ZSTD_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libzstd") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd >= 1.4.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libzstd >= 1.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_ZSTD_CFLAGS=`$PKG_CONFIG --cflags "libzstd" 2>/dev/null` + pkg_cv_ZSTD_CFLAGS=`$PKG_CONFIG --cflags "libzstd >= 1.4.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -9116,12 +9116,12 @@ if test -n "$ZSTD_LIBS"; then pkg_cv_ZSTD_LIBS="$ZSTD_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libzstd") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzstd >= 1.4.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libzstd >= 1.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_ZSTD_LIBS=`$PKG_CONFIG --libs "libzstd" 2>/dev/null` + pkg_cv_ZSTD_LIBS=`$PKG_CONFIG --libs "libzstd >= 1.4.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -9142,14 +9142,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - ZSTD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libzstd" 2>&1` + ZSTD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libzstd >= 1.4.0" 2>&1` else - ZSTD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libzstd" 2>&1` + ZSTD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libzstd >= 1.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$ZSTD_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libzstd) were not met: + as_fn_error $? "Package requirements (libzstd >= 1.4.0) were not met: $ZSTD_PKG_ERRORS diff --git a/configure.ac b/configure.ac index 6a48982c23d..44d35e1b5a2 100644 --- a/configure.ac +++ b/configure.ac @@ -1073,7 +1073,7 @@ AC_MSG_RESULT([$with_zstd]) AC_SUBST(with_zstd) if test "$with_zstd" = yes; then - PKG_CHECK_MODULES(ZSTD, libzstd) + PKG_CHECK_MODULES(ZSTD, libzstd >= 1.4.0) # We only care about -I, -D, and -L switches; # note that -lzstd will be added by AC_CHECK_LIB below. for pgac_option in $ZSTD_CFLAGS; do diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index dcd1e772c6c..df32025a86f 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -250,7 +250,7 @@ su - postgres encrypted client connections. <productname>OpenSSL</productname> is also required for random number generation on platforms that do not have <filename>/dev/urandom</filename> (except Windows). The minimum - version required is 1.0.1. + required version is 1.0.1. </para> </listitem> @@ -265,7 +265,7 @@ su - postgres <listitem> <para> You need <productname>LZ4</productname>, if you want to support - compression of data with this method; see + compression of data with that method; see <xref linkend="guc-default-toast-compression"/> and <xref linkend="guc-wal-compression"/>. </para> @@ -274,8 +274,9 @@ su - postgres <listitem> <para> You need <productname>zstd</productname>, if you want to support - compression of data with this method; see + compression of data with that method; see <xref linkend="guc-wal-compression"/>. + The minimum required version is 1.4.0. </para> </listitem> |