ttconv: FTBFS building against python 3.15

Emmanuel Arias <[email protected]>
Newsgroups gmane.linux.debian.devel.python
Message-ID <aooXg_Raysb5XRzG@debian>
Package: src:ttconv
Version: 1.2.2-1 
User: [email protected]
Usertags: python3.15
Control: forwarded -1 https://github.com/sandflow/ttconv/pull/544

¡Hola!

While rebuilding packages against python 3.15 we found that ttconv
produces some errors when used against it. The packages fails to build
from source [0].

Seems that the attribute _MISSING_TYPE from dataclasses is used and it
doesn't exists (at least) in python3.15. To fix it we should use
MISSING instead of _MISSING_TYPE.  I'm attaching a patch that fix this
issue.

[0] https://debusine.debian.net/debian/r-python-python3.15/artifact/4393731/

-- 
cheers,
        Emmanuel Arias

 ⢀⣴⠾⠻⢶⣦⠀
 ⣾⠁⢠⠒⠀⣿⡁  [email protected]
 ⢿⡄⠘⠷⠚⠋⠀  OpenPGP: 13796755BBC72BB8ABE2AEB5 FA9DEC5DE11C63F1
 ⠈⠳⣄
ttconv-python3.15.debdiff (text/plain, 2 KB)
diff -Nru ttconv-1.2.2/debian/changelog ttconv-1.2.2/debian/changelog
--- ttconv-1.2.2/debian/changelog	2026-06-08 14:51:37.000000000 -0300
+++ ttconv-1.2.2/debian/changelog	2026-08-22 18:47:41.000000000 -0300
@@ -1,3 +1,10 @@
+ttconv (1.2.2-2) UNRELEASED; urgency=medium
+
+  * Team upload
+  * d/patches/544.patch: Add patch to build correctly in py3.15.
+
+ -- Emmanuel Arias <[email protected]>  Sat, 22 Aug 2026 18:47:41 -0300
+
 ttconv (1.2.2-1) unstable; urgency=medium
 
   * New upstream version
diff -Nru ttconv-1.2.2/debian/patches/544.patch ttconv-1.2.2/debian/patches/544.patch
--- ttconv-1.2.2/debian/patches/544.patch	1969-12-31 21:00:00.000000000 -0300
+++ ttconv-1.2.2/debian/patches/544.patch	2026-08-22 18:35:33.000000000 -0300
@@ -0,0 +1,23 @@
+From f3ee2d94b6ee5eb1d574e0ae0accd52b11cde8c7 Mon Sep 17 00:00:00 2001
+From: Emmanuel Arias <[email protected]>
+Date: Sat, 22 Aug 2026 18:31:35 -0300
+Subject: [PATCH] Remove use of dataclasses._MISSING_TYPE
+
+Use dataclasses.MISSING instead. In py3.15 tests fails.
+---
+ src/main/python/ttconv/config.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/main/python/ttconv/config.py b/src/main/python/ttconv/config.py
+index dbb4f066..961b6796 100644
+--- a/src/main/python/ttconv/config.py
++++ b/src/main/python/ttconv/config.py
+@@ -73,7 +73,7 @@ def parse(cls, config_dict: Dict) -> ModuleConfiguration:
+   @staticmethod
+   def get_field_default(field: dataclasses.Field) -> Optional[Any]:
+     """Returns the default field value if any, None otherwise"""
+-    if isinstance(field.default, dataclasses._MISSING_TYPE):
++    if field.default is dataclasses.MISSING:
+       return None
+     return field.default
+ 
diff -Nru ttconv-1.2.2/debian/patches/series ttconv-1.2.2/debian/patches/series
--- ttconv-1.2.2/debian/patches/series	2026-06-08 14:51:37.000000000 -0300
+++ ttconv-1.2.2/debian/patches/series	2026-08-22 18:35:55.000000000 -0300
@@ -1 +1,2 @@
 skip-broken-unittests.patch
+544.patch
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEE3lnVbvHK7ir4q61+p3sXeEcY/EFAmqKGtYACgkQ+p3sXeEc
Y/HwXxAAmq5vQkDONTuqPjwHPv1Jf6vHt550I0CBHw4OG0UM/q7krKyGM0oqJjNQ
jkYyQCgUotLsnDbsO1VetKaymlHma6eMpepJOwwLCUE+FtWLOAj0wFq4+pAN3h7H
WVicjtz+0P7wfH8PCBnInGo+gQ6vXSvfxvEDOqBcji4AQ2Jts5oIUZgEVZYytvSp
oiuqy4Jz5lFTFPxW2muA2R8UKwkMyYdTwCTY5tW1D1sB9Y3l/PlpWxLXk+MPuEfd
ztSGKI/pHsOpqBwPl4ZdRTbCPNACDX1rS4EA+ysXUr3UAFiiwbMGrTGI0kGHrZ/e
SJUuO9U1izjY3U5w3guhINM9lNYOb+LZHNX12MaFZAWVr3OzTqzcZJ1ZJrekzQkv
0gd09q8iTBWo3ZNHs3HyOcXB2fu7RmcmxJ1wSVf7vzKo11PK3LyoygXV/DQflLMg
v3aEbkRuXgM2Nf+GbakweDTV0pkz5XrnuyOo5T15K5Oo3bYZbTsZCC0oDE3p2mY4
1+6I8c3uH10GCoh+d+vWh6SDdf+5XGw+McsKOke7nnh6ezZdJOk659XBtsqZdAO3
8aO9i6jxlAZb+diCD37evM4qXlluO6UZ9Q+ckn9HNveUJ0CG4y7gQs/7e1jFrqBP
6QZHkT82pEstwgisw+j/pta/c+sxXXQn1tpsK3a7T1W2HaQL+pE=
=C6le
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.