Package: urlscan
Version: 1.0.3-1
Severity: grave
Tags: patch
Justification: renders package unusable
Hi!
python3-urwid 3.0.4-1 was uploaded to unstable and urlscan now fails with:
Traceback (most recent call last):
File "/usr/bin/urlscan", line 5, in <module>
from urlscan.__main__ import main
File "/usr/lib/python3/dist-packages/urlscan/__main__.py", line 30, in
<module>
from urlscan import urlchoose, urlscan
File "/usr/lib/python3/dist-packages/urlscan/urlchoose.py", line 34, in
<module>
import urwid.curses_display
ModuleNotFoundError: No module named 'urwid.curses_display'
>From a quick look it seems enough to replace urwid.curses_display with
urwid.displays.curses and urwid.raw_display with urwid.displays.raw. (patch
attached)
Have a nice day,
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 6.18.3+deb14-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages urlscan depends on:
ii python3 3.13.9-3
ii python3-urwid 3.0.4-1
urlscan recommends no packages.
Versions of packages urlscan suggests:
ii chromium [www-browser] 144.0.7559.59-1
ii epiphany-browser [www-browser] 49.2-3
ii firefox [www-browser] 147.0-1
ii lynx [www-browser] 2.9.2-2
ii mutt 2.2.13-1+b1
-- no debconf information
--- /tmp/urlchoose.py 2026-01-15 16:31:52.377963833 +0100
+++ /tmp/urlchoose.py.new 2026-01-15 16:32:39.442166044 +0100
@@ -31,8 +31,8 @@
import webbrowser
import urwid
-import urwid.curses_display
-import urwid.raw_display
+import urwid.display.curses
+import urwid.display.raw
if platform == 'darwin':
@@ -209,7 +209,7 @@
self.search_string = ""
self.no_matches = False
self.enter = False
- self.term_width, _ = urwid.raw_display.Screen().get_cols_rows()
+ self.term_width, _ = urwid.display.raw.Screen().get_cols_rows()
self.width = min(self.term_width, width or self.term_width)
self.whitespaceoff = whitespaceoff
self.activate_keys = [i for i, j in
urwid.Button._command_map._command.items()
@@ -253,7 +253,7 @@
(2 if self.compact is False else 0)
if reverse is True:
self._reverse()
- self.tui = urwid.curses_display.Screen()
+ self.tui = urwid.display.curses.Screen()
self.palette_names = list(self.palettes.keys())
self.palette_idx = 0
self.number = ""