Tags: + patch
thanks 

Dear,

Please find in attachment a patch to fix this.
I also opened an MR in salsa [1] as well as upstream [2].

The rationale for this FTBFS is as follow:
Since Python 3.3, using or importing the ABCs from 'collections'
instead of using 'collections.abc' is deprecated. 
In Python 3.10, it is no longer supported.

Best regards,

Henry-Nicolas Tourneur

[1]
https://salsa.debian.org/python-team/packages/spyne/-/merge_requests/1
[2] https://github.com/arskom/spyne/pull/677
diff --git a/debian/changelog b/debian/changelog
index 6ceb4cc..81f2844 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,10 @@ spyne (2.13.16-3) UNRELEASED; urgency=medium
 
   * Scan GitHub tags instead of releases
 
+  [ Henry-Nicolas Tourneur ]
+  * d/patches: add 000_fix_collections.patch, fixes an FTBFS (Closes:
+    #1002398)
+
  -- Bastian Germann <b...@debian.org>  Wed, 10 Nov 2021 15:57:11 +0100
 
 spyne (2.13.16-2) unstable; urgency=medium
diff --git a/debian/patches/000_fix_collections.patch b/debian/patches/000_fix_collections.patch
new file mode 100644
index 0000000..500dbff
--- /dev/null
+++ b/debian/patches/000_fix_collections.patch
@@ -0,0 +1,27 @@
+Author: Henry-Nicolas Tourneur <deb...@nilux.be>
+Forwarded: https://github.com/arskom/spyne/pull/677
+Description: Since Python 3.3, using or importing the ABCs from 'collections'
+ instead of using 'collections.abc' is deprecated. 
+ In Python 3.10, it is no longer supported.
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/spyne/util/etreeconv.py
++++ b/spyne/util/etreeconv.py
+@@ -48,7 +48,7 @@ def root_dict_to_etree(d):
+ 
+     if isinstance(val, dict) or isinstance(val, odict):
+         dict_to_etree(val, retval)
+-    elif not isinstance(val, collections.Sized) or isinstance(val, six.string_types):
++    elif not isinstance(val, collections.abc.Sized) or isinstance(val, six.string_types):
+         retval.text=str(val)
+     else:
+         for a in val:
+@@ -74,7 +74,7 @@ def dict_to_etree(d, parent):
+             child = etree.SubElement(parent, k)
+             dict_to_etree(v, child)
+ 
+-        elif not isinstance(v, collections.Sized):
++        elif not isinstance(v, collections.abc.Sized):
+             etree.SubElement(parent, k).text = str(v)
+ 
+         elif len(v) == 0:
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..58f3ecf
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+000_fix_collections.patch

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to