Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected], [email protected]
Control: affects -1 + src:feed2toot
User: [email protected]
Usertags: pu

Hi,

[ Reason ]
Currently feed2toot does not work at all in trixie (see #1118778). A
feed2toot will throw an import error in the user's face:

$ feed2toot
Traceback (most recent call last):
  File "/usr/bin/feed2toot", line 21, in <module>
    from feed2toot.main import Main
  File "/usr/lib/python3/dist-packages/feed2toot/main.py", line 33, in <module>
    from feed2toot.confparse import ConfParse
  File "/usr/lib/python3/dist-packages/feed2toot/confparse.py", line 20, in 
<module>
    from configparser import SafeConfigParser
ImportError: cannot import name 'SafeConfigParser' from 'configparser' 
(/usr/lib/python3.13/configparser.py). Did you mean: 'RawConfigParser'?

[ Impact ]
feed2toot continues to not work in trixie (it works in bookworm and
earlier).

[ Tests ]
I've added a superficial test to make sure it does not panic in the
user's face. I've been running it in Publicity Team's VM for a few
months now and it's forwarding our micronews to mastodon reliably so
far.

[ Risks ]
Very trivial changes, just a module rename introduced in python 3.13.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
Cherry-pick a patch from a MR in the upstream repo [1] and add
superficial test to catch errors.

[1] https://gitlab.com/chaica/feed2toot/-/merge_requests/25

[ Other info ]
I'm not the maintainer of feed2toot, but we are using it extenxively in
the publicity team, so I care a lot about it. The maintainer has
cherry-picked my patches in unstable but has not replied the question
about trixie-pu. It's been a while, so I'm opening the pu bug myself
after warning the maintainer I intended to follow through with the pu.
Also, I'm CC'ing the bug whre all the communication occurred.

Cheers,
Charles
diff -Nru feed2toot-0.17/debian/changelog feed2toot-0.17/debian/changelog
--- feed2toot-0.17/debian/changelog	2021-09-02 03:17:36.000000000 -0300
+++ feed2toot-0.17/debian/changelog	2026-03-07 19:29:23.000000000 -0300
@@ -1,3 +1,12 @@
+feed2toot (0.17-1+deb13u1) trixie; urgency=medium
+
+  * Team upload.
+  * debian/patches/fix-compatibility-with-py3.13.patch: add new patch so
+    feed2toot works again. (Closes: #1118778)
+  * debian/tests/control: add superficial test to catch problems.
+
+ -- Carlos Henrique Lima Melara <[email protected]>  Sat, 07 Mar 2026 19:29:23 -0300
+
 feed2toot (0.17-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru feed2toot-0.17/debian/patches/fix-compatibility-with-py3.13.patch feed2toot-0.17/debian/patches/fix-compatibility-with-py3.13.patch
--- feed2toot-0.17/debian/patches/fix-compatibility-with-py3.13.patch	1969-12-31 21:00:00.000000000 -0300
+++ feed2toot-0.17/debian/patches/fix-compatibility-with-py3.13.patch	2026-03-07 19:28:27.000000000 -0300
@@ -0,0 +1,34 @@
+From: fluffy <[email protected]>
+Date: Thu, 12 Sep 2024 20:56:43 -0700
+Subject: Switch from long-deprecated SafeConfigParser to ConfigParser
+
+Bug: https://gitlab.com/chaica/feed2toot/-/issues/87
+Bug-Debian: https://bugs.debian.org/1118778
+Origin: https://gitlab.com/chaica/feed2toot/-/merge_requests/25
+Last-Update: 2025-11-08
+---
+ feed2toot/confparse.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/feed2toot/confparse.py b/feed2toot/confparse.py
+index 54010a2..c9cb66f 100644
+--- a/feed2toot/confparse.py
++++ b/feed2toot/confparse.py
+@@ -17,7 +17,7 @@
+ '''Get values of the configuration file'''
+ 
+ # standard library imports
+-from configparser import SafeConfigParser
++from configparser import ConfigParser
+ import logging
+ import os
+ import os.path
+@@ -58,7 +58,7 @@ class ConfParse:
+         for pathtoconfig in self.clioptions.configs:
+             options = {}
+             # read the configuration file
+-            config = SafeConfigParser()
++            config = ConfigParser()
+             if not config.read(os.path.expanduser(pathtoconfig)):
+                 sys.exit('Could not read config file')
+             ####################
diff -Nru feed2toot-0.17/debian/patches/series feed2toot-0.17/debian/patches/series
--- feed2toot-0.17/debian/patches/series	1969-12-31 21:00:00.000000000 -0300
+++ feed2toot-0.17/debian/patches/series	2026-03-07 19:28:27.000000000 -0300
@@ -0,0 +1 @@
+fix-compatibility-with-py3.13.patch
diff -Nru feed2toot-0.17/debian/tests/control feed2toot-0.17/debian/tests/control
--- feed2toot-0.17/debian/tests/control	1969-12-31 21:00:00.000000000 -0300
+++ feed2toot-0.17/debian/tests/control	2026-03-07 19:28:27.000000000 -0300
@@ -0,0 +1,2 @@
+Test-Command: feed2toot --help
+Restrictions: superficial

Reply via email to