Thanks, Robie, for the excellent response.

> Actually I'm not sure it's a symbol versioning issue now.

Maybe this example can persuade you that there is a problem between
(lib)xxhash in Focal and in Groovy:

  focal$ xxh128sum <(echo -n)
  07fd4e968e916ae11f17545bce1061f1  /dev/fd/63

  groovy$ xxh128sum <(echo -n)
  99aa06d3014798d86001c324468d497f  /dev/fd/63

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

I think I can safely say now that the problem originates in the Debian
package:

if the symbols file is altered as I have done here [1] the problem goes away:
[1] https://github.com/norbusan/debian-xxhash/issues/3 
```
--- a/debian/libxxhash0.symbols
+++ b/debian/libxxhash0.symbols
@@ -1,9 +1,9 @@
 libxxhash.so.0 libxxhash0 #MINVER#
- XXH128@Base 0.7.0
- XXH128_canonicalFromHash@Base 0.7.1
+ XXH128@Base 0.8.0
+ XXH128_canonicalFromHash@Base 0.8.0
...
```
A rebuild of rsync against a libxxhash0 with the above symbol changes will 
properly Depend on 0.8.0+.


I am just not intimately familiar with the rules for these symbol files, so I'm 
not 100% sure if the above changes are "legal". Can you shed some light on this?


> I'd appreciate a fix at the origin of the problem,
> and that would go into a subsequent Ubuntu release

Well. If we get the symbols file updated so it says 0.8.0, then
subsequent updates from Debian would trickle into Ubuntu. Then any _new_
builds (of for example rsync) against the updated libxxhash library
package would get the dependencies fixed.

That does leave the problem of libxxhash 0.7.x on Ubuntu/Focal:

- it has a broken xxh128sum binary
- it exposes access to old/invalid xxh128 functions leading to possible future 
problems when people start upgrading their libxxhash0

To remedy that, I would suggest a rebuild of xxhash + libxxhash0 on
Focal where all xxh128 symbols/functionality is removed/blacklisted.

I could do some quilting that simply `#if 0`'s the relevant code. Is
this something that would be accepted?


** Bug watch added: github.com/norbusan/debian-xxhash/issues #3
   https://github.com/norbusan/debian-xxhash/issues/3

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1934992

Title:
  rsync 3.2.x in Groovy depends on broken libxxhash 0.7.x

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xxhash/+bug/1934992/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to