Rsync 3.2.3pre1 released

Nelson H. F. Beebe beebe at math.utah.edu
Tue Jul 28 18:53:32 UTC 2020


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: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



More information about the rsync mailing list