15
0
forked from pool/python-dill

Accepting request 1317773 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/1317773
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-dill?expand=0&rev=20
This commit is contained in:
2025-11-14 15:23:05 +00:00
committed by Git OBS Bridge
3 changed files with 45 additions and 1 deletions

36
fix-contextvars.patch Normal file
View File

@@ -0,0 +1,36 @@
From a84c1a6baf4ba3f8d119da7166a6624ace6b8fc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
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

View File

@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Nov 14 10:48:35 UTC 2025 - Marius Grossu <marius.grossu@suse.com>
- 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á <mmachova@suse.com>

View File

@@ -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}