[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-09 Thread Robie Basak
Sorry, the use cases you describe are not supported by Ubuntu.

You're welcome to hack your system as you wish, but that doesn't mean
that we will necessarily make changes in Ubuntu to accommodate that. We
do try to be helpful, of course. And in this case I agree that it is a
bug that rsync doesn't depend on a higher version of libxxhash
automatically. That's something we should fix, but it is of low priority
but I don't expect such a fix to be backported to Groovy because, as
presented at the moment, this doesn't meet our threshold of disrupting
users to achieve such a change. See
https://wiki.ubuntu.com/StableReleaseUpdates for details of our policies
in this area.

In particular:

> - I make a hypothetical package that depends on libxxhash < 0.8
because I want the "broken/old" xxh128 support

Such a hypothetical package does not exist in the Ubuntu archive in
practice. Adding third party packages is not something that Ubuntu can
realistically support. The scenario you present is exactly why we don't
support third party packages in the general case: they break
distribution release upgrades.

> - libxxhash-dev,
> + libxxhash-dev (>= 0.8),

I don't think your patch will work as-is. You've changed the build
dependency versioning, not the binary package dependency versioning. I
suspect what needs adjusting is the symbols file in the xxhash source
(debian/libxxhash0.symbols). However this needs further investigation
and the low priority of this issue means that I'm not going to spend any
more time on this unless a more important and supported use case is
presented here.

> (Ok, in fact, I think it's ultimately a bug in soname-version/symbol
handling of libxxhash. But that's not where the problem manifests
itself.)

Right. We track bugs and their fixes by following the status of a fix
against the root cause. So I'm going to reassign the bug to that package
as it seems likely to me that this is where the problem lies.

> I'll leave it as is if you still feel it should be closed.

I agree that it's not correct that the binary dependency is wrong, so
this bug can remain open if somebody wants to volunteer a fix. However,
I suggest you find the fix and send it to wherever the problem
originates in our ecosystem (maybe Debian? Or perhaps xxhash upstream?).
Unless a supported use case is presented, I think it's unlikely that
we'll carry a patch for this in Ubuntu.

> But at least it has some visibility/presence on the internet so others
are helped if they also run into this issue.

Sure. People affected by this are welcome to coordinate in this bug.

I'm going to explicitly mark a Groovy task as Won't Fix to make it clear
that we don't expect any change will be made in Groovy to fix this. The
bug remains open to being fixed in a future Ubuntu release if a
volunteer takes the appropriate steps to get the issue resolved at its
actual origin.

** Package changed: rsync (Ubuntu) => xxhash (Ubuntu)

** Also affects: xxhash (Ubuntu Groovy)
   Importance: Undecided
   Status: New

** Changed in: xxhash (Ubuntu Groovy)
   Status: New => Won't Fix

** Changed in: xxhash (Ubuntu)
   Status: New => Triaged

** Changed in: xxhash (Ubuntu)
   Importance: Undecided => Low

-- 
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 xxhash package in Ubuntu:
  Triaged
Status in xxhash source package in Groovy:
  Won't Fix

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), 

[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-09 Thread wdoekes
How about this case:

- I make a hypothetical package that depends on libxxhash < 0.8 because
I want the "broken/old" xxh128 support;

- I have libxxhash 0.7.3 (that came with Focal);

- I have rsync 3.1.x (that came with Focal);

- Now I release-upgrade my system from Focal to Groovy;

- I get all kinds of new packages, including rsync 3.2.3;

- Dependency resolution fixes that I _don't_ get libxxhash 0.8 _because_
I have:

- (a) my hypothetical package pinned and it depends on libxxhash<0.8;

- (b) rsync that depends on libxxhash>=0.7.1.

- The dependencies are all still satisfied and I get to keep
libxxhash=0.7.3.

In this new situation I have completed the upgrade to Groovy. As long as
my hypothetical package that depends on libxxhash <0.8 exists, Ubuntu
will not upgrade libxxhash.

And then I'm in the same situation as I am now:


root@groovy-rsync:~# apt-mark hold hypothetical-pkg
hypothetical-pkg set on hold.

root@groovy-rsync:~# apt-cache show hypothetical-pkg | grep ^Depe
Depends: libxxhash0 (<= 0.8)

root@groovy-rsync:~# apt-get install rsync
Reading package lists... Done
Building dependency tree   
Reading state information... Done
Suggested packages:
  openssh-server
The following NEW packages will be installed:
  rsync

root@groovy-rsync:~# dpkg -l | grep -E 'rsync|libxxhash'
hi  hypothetical-pkg 1.0
ii  libxxhash0:amd64 0.7.3-1
ii  rsync3.2.3-2ubuntu1

root@groovy-rsync:~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree   
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libxxhash0
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.


This may not be the commonest of cases. But this would be an impossible 
situation if rsync_3.2.3 simply depended on 0.8+ instead of on 0.7.1+. (An 
impossible situation is good in this case, because you have to choose between 
either hypothetical-pkg or rsync.)

So, I still feel that this is a bug in the rsync control file in Groovy.
Not a bug in the rsync source.

(Ok, in fact, I think it's ultimately a bug in soname-version/symbol
handling of libxxhash. But that's not where the problem manifests
itself.)

I'll leave it as is if you still feel it should be closed. But at least
it has some visibility/presence on the internet so others are helped if
they also run into this issue.

Cheers :)
Walter

** Changed in: rsync (Ubuntu)
   Status: Incomplete => 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 

[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-09 Thread Utkarsh Gupta
Hello Walter,

Thanks for filling the bug and helping in making the Ubuntu server
better.

However, if I get everything right, I think you're mistaken about how it
works and I am sorry but what you're trying to do is not correct! You
cannot just decide to take one of the package from another release and
the other from another release. That is not how it works, I am afraid :/

If you do a fresh installation of rsync on Groovy, everything works
fine! See here:

$ lxc launch images:ubuntu/groovy groovy-rsync
$ lxc shell groovy-rsync
# apt update && apt install rsync
  ### here you'll see that the right version of libxxhash gets installed.
  (cf: `Setting up libxxhash0:amd64 (0.8.0-1ubuntu1.20.10.1) ...)
# ls -lah /usr/lib/x86_64-linux-gnu/libxxhash.so.0
lrwxrwxrwx 1 root root 18 Jan 12 11:17 /usr/lib/x86_64-linux-gnu/libxxhash.so.0 
-> libxxhash.so.0.8.0

...which is linked against the right version. Further libxxhash-
dev/0.8.0-1 is not in Focal but in Groovy, so the patch will not be
right to apply in Focal. That said, I agree that it'd have been nice to
have that version constraints but I don't see this as something that'd
cause problems unless somebody tries to do some sort of manual
intervention. :)

Given this, I am inclined towards believing that this is not really a
bug in rsync but a "local" issue (that is, manually installing a version
of rsync from Groovy to Focal and expecting it to work w/ libxxhash-
dev). So I am setting this to "Incomplete" for now, leaving some space
for discussion - in case I wrongly interpreted your problem and thus
this report.

But should you feel that it's still a bug, please set the status back to
"New" along with some reasoning (and hopefully a reproducer!) as to why
you think that it's indeed a bug rather than a local issue. Thank you,
again! \o/

** Changed in: rsync (Ubuntu)
   Status: New => Incomplete

-- 
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:
  Incomplete

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/control2021-07-08 09:57:38.499029903 +0200

[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-09 Thread wdoekes
Hi Wayne! Thanks for commenting.

> It's only the 128-bit hash that depends on 0.8.0.
> The 0.7 version works fine with rsync, giving it
> the 64-bit and 32-bit hashes.

Yes. Except it seems that if you switch the libxxhash0 from 0.8 to 0.7,
you get different behaviour.

rsync doesn't check what kind of xxh128 is produced, so we end up with a
mismatch.

Steps to reproduce:

  wget -q
https://launchpad.net/ubuntu/+archive/primary/+files/rsync_3.2.3-2ubuntu1_amd64.deb

  wget -q
https://launchpad.net/ubuntu/+archive/primary/+files/libxxhash0_0.7.3-1_amd64.deb

  wget -q
https://launchpad.net/ubuntu/+archive/primary/+files/libxxhash0_0.8.0-1ubuntu1.20.10.1_amd64.deb

focal-node-1:

  sudo dpkg -i libxxhash0_0.7.3-1_amd64.deb \
rsync_3.2.3-2ubuntu1_amd64.deb
  touch empty-file.txt
  echo A > non-empty-file.txt

focal-node-2:

  sudo dpkg -i rsync_3.2.3-2ubuntu1_amd64.deb \
libxxhash0_0.8.0-1ubuntu1.20.10.1_amd64.deb
  rsync -v --debug=nstr \
focal-node-1:*empty-file.txt \
.

Result:

  Client negotiated checksum: xxh128
  empty-file.txt
  WARNING: empty-file.txt failed verification
-- update discarded (will try again).
  non-empty-file.txt
  WARNING: non-empty-file.txt failed verification
-- update discarded (will try again).
  empty-file.txt
  ERROR: empty-file.txt failed verification
-- update discarded.
  non-empty-file.txt
  ERROR: non-empty-file.txt failed verification
-- update discarded.

  sent 104 bytes  received 255 bytes  239.33 bytes/sec
  total size is 2  speedup is 0.01
  rsync error: some files/attrs were not transferred
(see previous errors) (code 23) at main.c(1816)
[generator=3.2.3]


focal-node-2:

  $ ls *empty*
  ls: cannot access '*empty*': No such file or directory


I don't mind if I don't get xxh128 and get some poorer hash. But I _do_ mind if 
I get a hash that produces different results.

If I install libxxhash0 0.7.3 on both: things work.

If I install libxxhash0 0.8.x on both: things work.

But when there is a mismatch, things break. And uselessly too. I ended
up syncing lots of GBs multiple times because our job kept retrying.

I hope that clarifies the situation.

Walter

P.S. Alternative solutions could be:
- not exporting xxh128 functions from libxxhash0 0.7.3 (but it might be a bit 
late for that);
- checking that xxh128 produces sane values in rsync before choosing that 
option.

-- 
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 

[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-08 Thread Wayne Davison
That said, of course, 0.8.0 is the better choice for the most possible
features (if it is available).

-- 
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/control2021-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


[Touch-packages] [Bug 1934992] Re: rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

2021-07-08 Thread Wayne Davison
You misread my comments. It's only the 128-bit hash that depends on
0.8.0. The 0.7 version works fine with rsync, giving it the 64-bit and
32-bit hashes.

-- 
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/control2021-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