diff --git a/fix-contextvars.patch b/fix-contextvars.patch new file mode 100644 index 0000000..cba62c2 --- /dev/null +++ b/fix-contextvars.patch @@ -0,0 +1,36 @@ +From a84c1a6baf4ba3f8d119da7166a6624ace6b8fc0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Thu, 22 May 2025 20:13:40 +0200 +Subject: [PATCH] Pickle _contextvars.Context objects, for threads in Python + 3.14+ + +Fixes https://github.com/uqfoundation/dill/issues/716 +--- + dill/_dill.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +Index: dill-0.4.0/dill/_dill.py +=================================================================== +--- dill-0.4.0.orig/dill/_dill.py ++++ dill-0.4.0/dill/_dill.py +@@ -54,6 +54,7 @@ OLD312a7 = (sys.hexversion < 0x30c00a7) + import builtins as __builtin__ + from pickle import _Pickler as StockPickler, Unpickler as StockUnpickler + from pickle import GLOBAL, POP ++from _contextvars import Context + from _thread import LockType + from _thread import RLock as RLockType + try: +@@ -2119,6 +2120,12 @@ if HAS_CTYPES and hasattr(ctypes, 'pytho + else: + _testcapsule = None + ++@register(Context) ++def save_context(pickler, obj): ++ logger.trace(pickler, "Cx: %s", obj) ++ pickler.save_reduce(Context, tuple(obj.items()), obj=obj) ++ logger.trace(pickler, "# Cx") ++ + + ############################# + # A quick fix for issue #500 diff --git a/python-dill.changes b/python-dill.changes index 9ec2ac3..8f80c4a 100644 --- a/python-dill.changes +++ b/python-dill.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Nov 14 10:48:35 UTC 2025 - Marius Grossu + +- added a fix-contextvars.patch: + * Pickle _contextvars.Context objects, for threads in Python 3.14+ + ------------------------------------------------------------------- Tue Aug 19 14:30:27 UTC 2025 - Markéta Machová diff --git a/python-dill.spec b/python-dill.spec index cff0013..517f631 100644 --- a/python-dill.spec +++ b/python-dill.spec @@ -1,7 +1,7 @@ # # spec file for package python-dill # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -29,6 +29,8 @@ Summary: Module to serialize all of Python License: BSD-3-Clause URL: https://github.com/uqfoundation/dill Source: https://github.com/uqfoundation/dill/archive/refs/tags/%{version}.tar.gz#/dill-%{version}.tar.gz +#PATCH-FIX-UPSTREAM fix-contextvars.patch based on gh#uqfoundation/dill#717 +Patch0: fix-contextvars.patch BuildRequires: %{python_module dbm} BuildRequires: %{python_module devel >= 3.7} BuildRequires: %{python_module objgraph >= 1.7.2}