Bug#1144487: apostrophe: fails to start with Python 3.14: cannot pickle 'ApostropheTextView' object
H4F&P
contact at h4fnp.blog
Sat Aug 15 20:40:55 BST 2026
Package: apostrophe
Version: 3.4-2
Severity: grave
Tags: upstream
Justification: renders package unusable
X-Debbugs-Cc: contact at h4fnp.blog
Dear Maintainer,
Apostrophe fails to start on a system with Python 3.14 as the default
python3. The window never appears.
What I did:
$ apostrophe
What happened:
Two tracebacks are printed. The first one:
File "/usr/lib/python3/dist-packages/apostrophe/text_view.py", line 139, in __init__
self.markup = MarkupHandler(self)
File "/usr/lib/python3/dist-packages/apostrophe/text_view_markup_handler.py", line 142, in __init__
Process(target=self.parse, args=(child_conn,), daemon=True).start()
[...]
File "/usr/lib/python3.14/multiprocessing/popen_forkserver.py", line 47, in _launch
reduction.dump(process_obj, buf)
File "/usr/lib/python3.14/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: cannot pickle 'ApostropheTextView' object
when serializing dict item 'textview'
when serializing apostrophe.text_view_markup_handler.MarkupHandler state
[...]
Followed by a secondary failure caused by the first:
File "/usr/lib/python3/dist-packages/apostrophe/application.py", line 261, in _set_color_scheme
window.textview.markup.on_style_updated()
AttributeError: 'ApostropheTextView' object has no attribute 'markup'
What I expected:
The editor window to open normally.
Cause:
Python 3.14 changed the default multiprocessing start method on POSIX
platforms from 'fork' to 'forkserver':
https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods
Upstream bug and patch:
https://gitlab.gnome.org/World/apostrophe/-/issues/669
Alpine has already applied that patch:
https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/103093
Workaround:
Forcing the 'fork' start method before Apostrophe creates its processes
makes the application start normally.
-- System Information:
Debian Release: forky/sid
APT prefers testing
APT policy: (500, 'testing'), (50, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 7.1.7+deb14-amd64 (SMP w/32 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages apostrophe depends on:
qii dconf-gsettings-backend [gsettings-backend] 0.49.0-4+b1
ii gir1.2-adw-1 1.9.2-1
ii gir1.2-glib-2.0 2.88.3-2
ii gir1.2-gtk-4.0 4.22.4+ds-1
ii gir1.2-spelling-1 0.4.10-2
ii gir1.2-webkit-6.0 2.52.5-1
ii libjs-mathjax 2.7.9+dfsg-1
ii python3 3.14.6-1
ii python3-gi 3.56.3-2
ii python3-pypandoc 1.15+ds0-1
ii python3-regex 0.1.20250918-1+b1
apostrophe recommends no packages.
apostrophe suggests no packages.
-- no debconf information
More information about the pkg-gnome-maintainers
mailing list