summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2022-04-01 15:05:52 +0000
committerTom Lane2022-04-01 15:05:52 +0000
commit479b69a4a551465614042bba00694001273d702f (patch)
treec1876dbeaf2c391d1b79c90c72173391f7792de4
parentc1932e542863f0f646f005b3492452acc57c7e66 (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-xconfigure22
-rw-r--r--configure.ac2
-rw-r--r--doc/src/sgml/installation.sgml7
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>