Subject: bug#40388: closed (Re: bug#40388: Reported upstream to Calibre)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 03 Apr 2020 13:33:03 +0000

Your bug report

#40388: Calibre test suite fails

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
40388: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=40388
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#40388: Reported upstream to Calibre
From: Marius Bakke <[email-masked]>
To: Josh Holland <[email-masked]>, [email-masked]
Date: Fri, 03 Apr 2020 15:31:49 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Josh Holland <[email-masked]> writes:

> I've reported this bug as
> https://bugs.launchpad.net/calibre/+bug/1870541.  I also found the
> backwards-incompatible change in msgpack which is the culprit of this:
>
> * Default value of strict_map_key is changed to True to avoid
>   hashdos. You need to pass strict_map_key=False if you have data which
>   contain map keys which type is not bytes or str.
>
> (from <https://pypi.org/project/msgpack/>)

Thanks for reporting it!  I was just looking into the issue and found
that it was fixed upstream 3 days ago:

https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3

I adopted the patch to Guix in 3e4ce1cc3eb7b35405c4d2c4f837e53ec9952c99.

Subject: Calibre test suite fails
From: Josh Holland <[email-masked]>
To: "bug-guix\\\@gnu.org" <[email-masked]>
Date: Thu, 02 Apr 2020 13:09:50 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Both on my local machine and on the CI[0], the Calibre test suite has
been failing with the following error:

======================================================================
ERROR: test_msgpack (calibre.test_build.BuildTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/guix-build-calibre-3.42.0.drv-0/calibre-3.42.0/src/calibre/test_build.py", line 124, in test_msgpack
    self.assertEqual(obj, msgpack_loads(s))
  File "/tmp/guix-build-calibre-3.42.0.drv-0/calibre-3.42.0/src/calibre/utils/serialize.py", line 113, in msgpack_loads
    return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list)
  File "/gnu/store/z7dz4iiaivmadhk0x50qs5zv3rwykrmd-python2-msgpack-1.0.0/lib/python2.7/site-packages/msgpack/fallback.py", line 129, in unpackb
    ret = unpacker._unpack()
  File "/gnu/store/z7dz4iiaivmadhk0x50qs5zv3rwykrmd-python2-msgpack-1.0.0/lib/python2.7/site-packages/msgpack/fallback.py", line 666, in _unpack
    "%s is not allowed for map key" % str(type(key))
ValueError: <type 'int'> is not allowed for map key

----------------------------------------------------------------------

This is happening on both staging and master.  There have been no
changes to the calibre package itself since January.  I have run a git
bisect and the offending change appears to be in commit
66ab2f5e3a0df665f6e39203aedd2bf4812e6a71, when python-msgpack was
updated to version 1.0.0.

[0]: e.g. http://ci.guix.gnu.org/build/2485977/details

--
Josh Holland