Subject: [PATCH core-updates v2 2/2] u-boot: Fix build under Python 3.10.

From: Josselin Poiret <[email-masked]>
Date: Tue, 21 Mar 2023 09:59:37 +0100

* gnu/packages/patches/u-boot-fix-build-python-3.10.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/bootloaders.scm (u-boot): Apply patch.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/bootloaders.scm                  |  3 ++
 .../u-boot-fix-build-python-3.10.patch        | 35 +++++++++++++++++++
 3 files changed, 39 insertions(+)
 create mode 100644 gnu/packages/patches/u-boot-fix-build-python-3.10.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 058b23c683..73cf7b89a1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1936,6 +1936,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-bcg729.patch			\
   %D%/packages/patches/u-boot-allow-disabling-openssl.patch	\
+  %D%/packages/patches/u-boot-fix-build-python-3.10.patch	\
   %D%/packages/patches/u-boot-infodocs-target.patch		\
   %D%/packages/patches/u-boot-patman-guix-integration.patch	\
   %D%/packages/patches/u-boot-nintendo-nes-serial.patch		\
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index ac269807be..457f3b3994 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -655,6 +655,9 @@ (define u-boot
                      %u-boot-allow-disabling-openssl-patch
                      %u-boot-sifive-prevent-relocating-initrd-fdt
                      %u-boot-rk3399-enable-emmc-phy-patch
+                     ;; FIXME The following patch is backported from 2023.01,
+                     ;; remove when updating.
+                     (search-patch "u-boot-fix-build-python-3.10.patch")
                      (search-patch "u-boot-infodocs-target.patch")
                      (search-patch "u-boot-patman-guix-integration.patch")))
               (method url-fetch)
diff --git a/gnu/packages/patches/u-boot-fix-build-python-3.10.patch b/gnu/packages/patches/u-boot-fix-build-python-3.10.patch
new file mode 100644
index 0000000000..27c03f92f4
--- /dev/null
+++ b/gnu/packages/patches/u-boot-fix-build-python-3.10.patch
@@ -0,0 +1,35 @@
+From 7d01bb1c5a1daef0187c9ea276bde19a8d0e7fde Mon Sep 17 00:00:00 2001
+From: Michal Suchanek <[email-masked]>
+Date: Thu, 13 Oct 2022 22:43:41 +0200
+Subject: [PATCH] libfdt: Fix build with python 3.10
+
+Python 3.10 requires defining PY_SSIZE_T_CLEAN. This will be fixed in
+swig 4.10 but it is not clear when it will be released. There was a
+warning since python 3.8.
+
+Link: https://github.com/swig/swig/pull/2277
+
+Signed-off-by: Michal Suchanek <[email-masked]>
+Reviewed-by: Simon Glass <[email-masked]>
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 27c29ea260..56cc5d48f4 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -7,6 +7,10 @@
+ 
+ %module libfdt
+ 
++%begin %{
++#define PY_SSIZE_T_CLEAN
++%}
++
+ %include <stdint.i>
+ 
+ %{
+-- 
+GitLab
+
-- 
2.39.2