[Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x
Wayne Davison
1934992 at bugs.launchpad.net
Fri Jul 9 19:37:11 UTC 2021
Anyone who has an rsync that supports the xxh128 hash using the xxhash
0.7 library did something very bad in their build. An rsync compiled
with that library only supports xxh64 & xxh32. Thus, this described
mismatch never occurs in a stock rsync (the 128-bit hash was unstable in
xxhash 0.7, and thus rsync doesn't use it).
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to xxhash in Ubuntu.
https://bugs.launchpad.net/bugs/1934992
Title:
rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x
Status in xxhash package in Ubuntu:
Triaged
Status in xxhash source package in Groovy:
Won't Fix
Bug description:
**Problem**
$ rsync root at focal-system:/etc/.pwd.lock .
ERROR: .pwd.lock failed verification -- update discarded.
rsync error: some files/attrs were not transferred (see previous errors)
(code 23) at main.c(1816) [generator=3.2.3]
$ rsync root at focal-system:/etc/.pwd.lock . --debug=all
opening connection using: ssh -l root focal-system rsync --server --sender \
-e.LsfxCIvu . /etc/.pwd.lock (10 args)
(Client) Protocol versions: remote=31, negotiated=31
Client negotiated checksum: xxh128
...
**Cause**
focal-system# dpkg -l | grep -E 'libxxhash|rsync'
ii libxxhash0:amd64 0.7.3-1 amd64
ii rsync 3.2.3-2ubuntu1 amd64
**Why this affects only us and not more people?**
On Ubuntu/Focal, there is no rsync 3.2.3, only 3.1.3-8. But because we
need the lz4 compression support we've fetched a newer rsync (from
Groovy).
However: the rsync 3.2.3 depends on libxxhash0 0.7.1+, while in fact
it needs 0.8+.
**Details**
On a Ubuntu/Focal system we have installed a rsync 3.2.3 package from Ubuntu/Groovy because we need the lz4 compression support.
focal-system# apt-cache show rsync
Package: rsync
...
Version: 3.2.3-2ubuntu1
Depends: lsb-base, libacl1 (>= 2.2.23), libc6 (>= 2.15),
liblz4-1 (>= 0.0~r130), libpopt0 (>= 1.14), libssl1.1 (>= 1.1.0),
libxxhash0 (>= 0.7.1), libzstd1 (>= 1.3.8), zlib1g (>= 1:1.1.4)
...
Alongside this we had libxxhash0 0.7.3-1 from Focal:
focal-system# apt-cache policy libxxhash0
libxxhash0:
Installed: 0.7.3-1
Candidate: 0.7.3-1
Version table:
*** 0.7.3-1 500
500 http://ARCHIVE/ubuntu focal/universe amd64 Packages
100 /var/lib/dpkg/status
According to the dependencies, this should work. But the combination does not, as this quote from the rsync maintainer would tell you:
https://github.com/WayneD/rsync/issues/122#issuecomment-737690913
> Yeah, Cyan4973 could have told you that the 128-bit xxhash only
> just stabilized in its 0.8.0 release, so anything older than
> that isn't compatible.
**The fix**
As the maintainer points out, version 0.7 is not stable (= broken for
our intents and purposes) and thus not fit for use with rsync 3.2.
I would argue that it's a good idea to bump the dependency of rsync
3.2.3 on Groovy to libxxhash0>=0.8
After all, in Groovy there is a libxxhash0 0.8.0-1ubuntu1.20.10.1, so
that would not be a problem. And it would fix issues for those mixing
and matching packages.
Thanks!
Walter Doekes
OSSO B.V.
(*) possible patch:
$ diff -pu debian/control{.orig,}
--- debian/control.orig 2021-07-08 09:56:57.646861644 +0200
+++ debian/control 2021-07-08 09:57:38.499029903 +0200
@@ -8,7 +8,7 @@ Build-Depends: debhelper-compat (= 13),
libacl1-dev,
libpopt-dev,
liblz4-dev,
- libxxhash-dev,
+ libxxhash-dev (>= 0.8),
libzstd-dev,
zlib1g-dev,
libssl-dev
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xxhash/+bug/1934992/+subscriptions
More information about the foundations-bugs
mailing list