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