guix_mirror_bot pushed a commit to branch python-team
in repository guix.
commit 51e316d8fe0a7408936698ab475cd3741b30c0b3
Author: Hugo Buddelmeijer <[email protected]>
AuthorDate: Fri Oct 23 23:15:15 2026 +0200
gnu: python-dicomweb-client: Fix build with Pillow 13.
* gnu/packages/patches/python-dicomweb-client-pillow-13.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register patch.
* gnu/packages/python-web.scm (python-dicomweb-client): Fix Pillow 13 build.
[origin]<patches>: Use patch.
Relates-to: guix/guix!12052
Signed-off-by: Sharlatan Hellseher <[email protected]>
---
gnu/local.mk | 1 +
.../patches/python-dicomweb-client-pillow-13.patch | 34 ++++++++++++++++++++++
gnu/packages/python-web.scm | 2 ++
3 files changed, 37 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index c53c68c9a3c..5e15b61d47d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2174,6 +2174,7 @@ dist_patch_DATA =
\
%D%/packages/patches/python-clarabel-blas.patch \
%D%/packages/patches/python-daemon-relax-lockfile.patch \
%D%/packages/patches/python-docrepr-fix-tests.patch \
+ %D%/packages/patches/python-dicomweb-client-pillow-13.patch \
%D%/packages/patches/python-hdmedians-replace-nose.patch \
%D%/packages/patches/python-holodeck-cython-3-compat.patch \
%D%/packages/patches/python-jinja2-fragments-modify-conftest-py.patch
\
diff --git a/gnu/packages/patches/python-dicomweb-client-pillow-13.patch
b/gnu/packages/patches/python-dicomweb-client-pillow-13.patch
new file mode 100644
index 00000000000..78deec8b9b2
--- /dev/null
+++ b/gnu/packages/patches/python-dicomweb-client-pillow-13.patch
@@ -0,0 +1,34 @@
+From e217f70c5ef76018d56171e798c9fc7906cff3d9 Mon Sep 17 00:00:00 2001
+From: Hugo Buddelmeijer <[email protected]>
+Date: Fri, 23 Oct 2026 23:00:30 +0200
+Subject: [PATCH] Fix pillow-13 support.
+
+---
+ src/dicomweb_client/file.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/dicomweb_client/file.py b/src/dicomweb_client/file.py
+index 612c1f1..a635dbe 100644
+--- a/src/dicomweb_client/file.py
++++ b/src/dicomweb_client/file.py
+@@ -3337,6 +3337,8 @@ class DICOMfileClient:
+ )
+ )
+ image = Image.fromarray(array)
++ if codec_name == "png" and image.mode == "I":
++ image = image.convert("I;16")
+ with io.BytesIO() as fp:
+ image.save(fp, codec_name, **codec_kwargs) # type: ignore
+ fp.seek(0)
+@@ -3895,6 +3897,8 @@ class DICOMfileClient:
+ )
+ )
+ image = Image.fromarray(array)
++ if codec_name == "png" and image.mode == "I":
++ image = image.convert("I;16")
+ with io.BytesIO() as fp:
+ image.save(fp, codec_name, **codec_kwargs) # type: ignore
+ fp.seek(0)
+--
+2.54.0
+
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 5b46f18fcc7..d8b4aa76729 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3440,6 +3440,8 @@ caching server.")
(url "https://github.com/ImagingDataCommons/dicomweb-client")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ ;; https://github.com/ImagingDataCommons/dicomweb-client/pull/131
+ (patches (search-patches "python-dicomweb-client-pillow-13.patch"))
(sha256
(base32 "1zad0905cc4jy4hnh9yhcw63bg25f7xa33x9rj9fhh5r4fznha8d"))))
(build-system pyproject-build-system)