Add ./configure check for "lz4" command
authorMichael Paquier <michael@paquier.xyz>
Mon, 14 Feb 2022 01:40:34 +0000 (10:40 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 14 Feb 2022 01:40:34 +0000 (10:40 +0900)
commit1d084fba1bd144538dfea22c322f1c148c821148
tree7b7455ffbdb1a0ceae09ea8ccce473083279a3aa
parent3f74daa8dfc634132ff7270212c57da5e316b001
Add ./configure check for "lz4" command

Some environments may compile with --with-lz4 while the command "lz4"
goes missing, causing two failures in the TAP tests of pg_verifybackup
(008_untar.pl and 010_client_untar.pl) as the code assumed that the
command always existed with a hardcoded value in src/Makefile.global.
Rather than this method, this adds a ./configure check based on
PGAC_PATH_PROGS() to find automatically the command and get an absolute
path to it.

Both tests need to be adjusted for the case where the command does not
exist, actually, as Makefile.global would set now LZ4 to an empty value
in this case.  The TAP tests of pg_receivewal already do that.

Per report from buildfarm member copperhead, as an effect of dab2984.
The origin of the failure is actually babbbb5 that did not centralize
the check for the existence of a "lz4" command at ./configure to shave a
few cycles.  Note that one just needs to tweak an environment to move
"lz4" out of the way to reproduce the problem, which is what I did to
test this change.

Per discussion with Robert Haas, Tom Lane, Andres Freund and myself.

Discussion: https://postgr.es/m/Ygc51WVAFGocSu4h@paquier.xyz
configure
configure.ac
src/Makefile.global.in
src/bin/pg_verifybackup/t/008_untar.pl
src/bin/pg_verifybackup/t/010_client_untar.pl