I downloaded rsync-3.2.3pre1.tar.gz this morning and started builds on a modest set of hosts; due to a machine-room A/C failure, many of my normal build hosts have been shutdown.
To my surprise, ALL of the builds failed, and examination of the build logs showed they were all due to missing libraries or header files, notably for one or more of lz4, openssl, xxhash, and zstd. Once I installed those packages, I got successful builds. Our site has a small number of servers for each O/S + CPU combination, and hundreds of clients. Thus, it is important that any new libraries added to a server to get a build to complete must also be installed on ALL of the clients, which is a big job. xxhash in particular is not a package that we have needed before, so none of the clients has it. Thus, to get a distributable rsync executable, I need to add various --disable-XXX options to ensure that server builds do not require additional software installation on clients. I also noted that the configure script asks for installation of cmarkgfm or commonmark, because they are needed for documentation builds. In my view, that is wrong: docs in software distributions should not require any building, and should be ready to install by simple copy commands as standard manual pages in groff format, possibly supplemented by .html and .pdf variants. The configure script bails out when a library is not found, which is akin to a compiler that quits on the first syntax error. In both cases, repeated attempts are necessary, fixing one problem at a time. I believe that it would be much better to simply disable the code that needs the missing library or its header files, and keep on running the configure script, with a prominent final report, something like: WARNING: configuration is complete, but some features are missing because libraries and/or header files were not found, or were too old, for these packages: lz4 xxhash We have a large software installation base at my site, with more than 25,000 installed executables in our search paths, and I've never before had to install cmarkgfm or commonmark, so until my work this morning, none of our servers had those packages. With these package installations, I got successful builds and "make check" runs on almost all of the systems I worked on today, except as noted below. After this posting, I continue to do builds on other systems, so I might have further reports. Of the systems below, the O/S versions are mostly recent ones on x86_64, although in many cases, I have several older O/S versions, and machines with numerous other CPU types; they all remain to be tested as our test farm is gradually brought back up, A/C conditions permitting. ------------------------------------------------------------------------ CentOS 7: yum install \ cmark-lib cmark-devel cmark \ lz4 lz4-devel lz4-static \ xxhash xxhash-devel xxhash-libs \ zstd libzstd libzstd-devel \ openssl-devel openssl-static ------------------------------------------------------------------------ CentOS 8 and Oracle 8: yum install \ cmark-lib cmark-devel cmark \ lz4 lz4-devel \ xxhash xxhash-devel xxhash-libs \ zstd libzstd libzstd-devel \ openssl-devel ------------------------------------------------------------------------ Fedora 33: dnf install \ cmark-lib cmark-devel cmark \ lz4-devel lz4-libs lz4-static \ xxhash xxhash-devel xxhash-libs \ zstd libzstd libzstd-devel \ openssl-devel openssl-static ------------------------------------------------------------------------ FreeBSD 10.4: pkg install \ cmark liblz4 openssl py36-gfm py36-xxhash xxhash zstd configure.sh: error: Failed to find ZSTD_minCLevel function in zstd lib. Use --disable-zstd to continue without zstd compression. ./configure --disable-zstd --prefix=$prefix && gmake all check ------------------------------------------------------------------------ FreeBSD 11.4 and 12: pkg install \ cmark liblz4 openssl py37-cmarkgfm py37-xxhash zstd ------------------------------------------------------------------------ FreeBSD 13: pkg install \ cmark cmarkgfm liblz4 openssl py37-xxhash zstd ------------------------------------------------------------------------ ClonOS 19.09: pkg install \ cmark liblz4 openssl py37-cmarkgfm py37-xxhash zstd ------------------------------------------------------------------------ NetBSD 9.0: pkg_add \ cmark lz4 openssl xxhash zstd configure.sh: error: Failed to find XXH64_createState function in xxhash lib. Use --disable-xxhash to continue without xxhash checksums. configure.sh: error: Failed to find ZSTD_minCLevel function in zstd lib. Use --disable-zstd to continue without zstd compression. configure.sh: error: Failed to find LZ4_compress_default function in lz4 lib. Use --disable-lz4 to continue without lz4 compression. ./configure --disable-lz4 --disable-xxhash --disable-zstd CFLAGS=-I/usr/pkg/include gmake LDFLAGS='-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib' LIBS='-lcrypto -liconv' all check ------------------------------------------------------------------------ OpenBSD 6.6: pkg_add \ cmark lz4 openssl py3-pygfm \ openssl xxhash zstd Despite having these libraries installed, I still had to add some --disable-XXX options: env CFLAGS=-I/usr/local/include ./configure --disable-lz4 \ --disable-xxhash --disable-zstd --prefix=$prefix && gmake all check The configure log reports: checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking xxhash.h usability... yes checking xxhash.h presence... no configure.sh: WARNING: xxhash.h: accepted by the compiler, rejected by the preprocessor! configure.sh: WARNING: xxhash.h: proceeding with the compiler's result checking for xxhash.h... yes checking openssl/md4.h usability... yes checking openssl/md4.h presence... yes checking for openssl/md4.h... yes checking openssl/md5.h usability... yes checking openssl/md5.h presence... yes checking for openssl/md5.h... yes checking zstd.h usability... yes checking zstd.h presence... no configure.sh: WARNING: zstd.h: accepted by the compiler, rejected by the preprocessor! configure.sh: WARNING: zstd.h: proceeding with the compiler's result checking for zstd.h... yes checking lz4.h usability... yes checking lz4.h presence... no configure.sh: WARNING: lz4.h: accepted by the compiler, rejected by the preprocessor! configure.sh: WARNING: lz4.h: proceeding with the compiler's result checking for lz4.h... yes ------------------------------------------------------------------------ Ubuntu 20.04: apt-get install \ cmark cmark-gfm \ libssl-dev \ lz4 liblz4-dev \ python3-cmarkgfm \ xxhash libxxhash-dev \ zstd libzstd-dev ------------------------------------------------------------------------ ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@math.utah.edu - - 155 S 1400 E RM 233 be...@acm.org be...@computer.org - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ - ------------------------------------------------------------------------------- -- Please use reply-all for most replies to avoid omitting the mailing list. To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html