uscan / uupdate and the attached patch to the debian directory fixes this for me.
diff -Nru xcffib-0.4.2/debian/changelog xcffib-0.5.1/debian/changelog --- xcffib-0.4.2/debian/changelog 2016-09-19 22:59:15.000000000 +1200 +++ xcffib-0.5.1/debian/changelog 2017-07-13 15:37:48.000000000 +1200 @@ -1,3 +1,11 @@ +xcffib (0.5.1-1) UNRELEASED; urgency=medium + + * New upstream release. (Closes: #866543, #839314) + * d/patches/fix-big-endian-machines.patch: drop, included upstream. + * d/control: Add Build-Depends on libghc-semigroups-dev, libghc-either-dev. + + -- Michael Hudson-Doyle <michael.hud...@ubuntu.com> Thu, 13 Jul 2017 15:14:31 +1200 + xcffib (0.4.2-2) unstable; urgency=medium * Removed unnecessary depends on python{3,}-cffi. (Closes: #833163) diff -Nru xcffib-0.4.2/debian/control xcffib-0.5.1/debian/control --- xcffib-0.4.2/debian/control 2016-09-19 22:59:15.000000000 +1200 +++ xcffib-0.5.1/debian/control 2017-07-13 15:28:16.000000000 +1200 @@ -1,7 +1,8 @@ Source: xcffib Section: python Priority: optional -Maintainer: Iain R. Learmonth <i...@debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> +XSBC-Original-Maintainer: Iain R. Learmonth <i...@debian.org> Build-Depends: debhelper (>= 9) , dh-python , pkg-config @@ -16,8 +17,10 @@ , libghc-optparse-applicative-dev (>= 0.5) , libghc-filemanip-dev , libghc-mtl-dev (>= 2.1) + , libghc-semigroups-dev , libghc-test-framework-hunit-dev , libghc-attoparsec-dev + , libghc-either-dev , python-setuptools , python3-setuptools , python-autopep8 diff -Nru xcffib-0.4.2/debian/patches/fix-big-endian-machines.patch xcffib-0.5.1/debian/patches/fix-big-endian-machines.patch --- xcffib-0.4.2/debian/patches/fix-big-endian-machines.patch 2016-09-19 22:59:15.000000000 +1200 +++ xcffib-0.5.1/debian/patches/fix-big-endian-machines.patch 1970-01-01 12:00:00.000000000 +1200 @@ -1,47 +0,0 @@ -Description: handle endian-ness in test cases -Author: Tycho Andersen <ty...@tycho.ws> -Reviewed-By: Iain R. Learmonth <i...@debian.org> -Bug: https://github.com/tych0/xcffib/issues/77 -Last-Update: 2016-09-19 - ---- xcffib-0.4.2.orig/module/__init__.py -+++ xcffib-0.4.2/module/__init__.py -@@ -448,7 +448,7 @@ class List(Protobj): - - def to_atoms(self): - """ A helper for converting a List of chars to an array of atoms """ -- return struct.unpack("=" + "I" * (len(self) // 4), b''.join(self)) -+ return struct.unpack("I" * (len(self) // 4), b''.join(self)) - - def buf(self): - return b''.join(self.list) ---- xcffib-0.4.2.orig/test/test_python_code.py -+++ xcffib-0.4.2/test/test_python_code.py -@@ -16,6 +16,7 @@ - import xcffib - import xcffib.xproto - import struct -+import sys - from xcffib.xproto import EventMask - - from .testing import XcffibTest -@@ -44,9 +45,16 @@ class TestPythonCode(XcffibTest): - for actual, expected in zip(range(20), cm.data8): - assert actual == expected, actual - -- assert cm.data32[0] == 0x03020100 -- assert cm.data32[1] == 0x07060504 -- assert cm.data32[2] == 0x0b0a0908 -+ if sys.byteorder == "little": -+ assert cm.data32[0] == 0x03020100 -+ assert cm.data32[1] == 0x07060504 -+ assert cm.data32[2] == 0x0b0a0908 -+ elif sys.byteorder == "big": -+ assert cm.data32[0] == 0x00010203 -+ assert cm.data32[1] == 0x04050607 -+ assert cm.data32[2] == 0x08090a0b -+ else: -+ raise Exception("unknown byte order?") - - def test_offset_map(self): - om = xcffib.OffsetMap({0: "Event0,0"}) diff -Nru xcffib-0.4.2/debian/patches/series xcffib-0.5.1/debian/patches/series --- xcffib-0.4.2/debian/patches/series 2016-09-19 22:59:15.000000000 +1200 +++ xcffib-0.5.1/debian/patches/series 2017-07-13 15:16:09.000000000 +1200 @@ -1 +0,0 @@ -fix-big-endian-machines.patch