On Sat, Feb 12, 2022 at 05:16:03PM -0500, Tom Lane wrote: > It looks to me like somebody figured it didn't need any more support > than gzip/bzip2, which is wrong on a couple of grounds: > * hardly any modern platforms lack those, unlike lz4 > * we don't invoke either one of them during testing, only when > you explicitly ask to make a compressed tarball > > I think adding an explicit PGAC_PATH_PROGS would be worth the cycles.
Well, this somebody is I, and the buildfarm did not blow up on any of that so that looked rather fine. Adding a few cycles for this check is fine by me. What do you think of the attached? -- Michael
diff --git a/src/bin/pg_basebackup/t/020_pg_receivewal.pl b/src/bin/pg_basebackup/t/020_pg_receivewal.pl index 0e6e685aa6..88dff2e673 100644 --- a/src/bin/pg_basebackup/t/020_pg_receivewal.pl +++ b/src/bin/pg_basebackup/t/020_pg_receivewal.pl @@ -130,8 +130,7 @@ SKIP: my $gzip = $ENV{GZIP_PROGRAM}; skip "program gzip is not found in your system", 1 if ( !defined $gzip - || $gzip eq '' - || system_log($gzip, '--version') != 0); + || $gzip eq '' ); my $gzip_is_valid = system_log($gzip, '--test', @zlib_wals); is($gzip_is_valid, 0, @@ -186,8 +185,7 @@ SKIP: my $lz4 = $ENV{LZ4}; skip "program lz4 is not found in your system", 1 if ( !defined $lz4 - || $lz4 eq '' - || system_log($lz4, '--version') != 0); + || $lz4 eq '' ); my $lz4_is_valid = system_log($lz4, '-t', @lz4_wals); is($lz4_is_valid, 0, diff --git a/configure b/configure index 0d52af5529..9305555658 100755 --- a/configure +++ b/configure @@ -650,6 +650,7 @@ CFLAGS_ARMV8_CRC32C CFLAGS_SSE42 have_win32_dbghelp LIBOBJS +LZ4 UUID_LIBS LDAP_LIBS_BE LDAP_LIBS_FE @@ -13832,6 +13833,60 @@ fi fi +if test -z "$LZ4"; then + for ac_prog in lz4 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_LZ4+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $LZ4 in + [\\/]* | ?:[\\/]*) + ac_cv_path_LZ4="$LZ4" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_LZ4="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +LZ4=$ac_cv_path_LZ4 +if test -n "$LZ4"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LZ4" >&5 +$as_echo "$LZ4" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$LZ4" && break +done + +else + # Report the value of LZ4 in configure's output in all cases. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LZ4" >&5 +$as_echo_n "checking for LZ4... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LZ4" >&5 +$as_echo "$LZ4" >&6; } +fi + if test "$with_lz4" = yes; then for ac_header in lz4.h do : diff --git a/configure.ac b/configure.ac index 2afc822b12..16167329fc 100644 --- a/configure.ac +++ b/configure.ac @@ -1485,6 +1485,7 @@ failure. It is possible the compiler isn't looking in the proper directory. Use --without-zlib to disable zlib support.])]) fi +PGAC_PATH_PROGS(LZ4, lz4) if test "$with_lz4" = yes; then AC_CHECK_HEADERS(lz4.h, [], [AC_MSG_ERROR([lz4.h header file is required for LZ4])]) fi diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 05c54b27de..9dcd54fcbd 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -350,7 +350,7 @@ XGETTEXT = @XGETTEXT@ GZIP = gzip BZIP2 = bzip2 -LZ4 = lz4 +LZ4 = @LZ4@ DOWNLOAD = wget -O $@ --no-use-server-timestamps #DOWNLOAD = curl -o $@
signature.asc
Description: PGP signature