Public bug reported: **Problem**
$ rsync root@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@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 ** Affects: rsync (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to rsync in Ubuntu. https://bugs.launchpad.net/bugs/1934992 Title: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x Status in rsync package in Ubuntu: New Bug description: **Problem** $ rsync root@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@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/rsync/+bug/1934992/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp