new file mode 100644
@@ -0,0 +1,39 @@
+From eccc9ea5eef13ee353de610af36fb7759b70e2e4 Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@debian.org>
+Date: Mon, 26 Aug 2024 18:14:33 +0100
+Subject: [PATCH] Build bindings reproducibly
+
+`glob` output isn't guaranteed to be in any particular order, so
+`_sodium.*.so` wasn't always reproducible.
+
+Upstream-Status: Backport [https://github.com/pyca/pynacl/pull/836]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/bindings/build.py | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/bindings/build.py b/src/bindings/build.py
+index 9634237..777237b 100644
+--- a/src/bindings/build.py
++++ b/src/bindings/build.py
+@@ -22,12 +22,16 @@ from cffi import FFI
+ __all__ = ["ffi"]
+
+
+-HEADERS = glob.glob(
+- os.path.join(os.path.abspath(os.path.dirname(__file__)), "*.h")
++HEADERS = sorted(
++ glob.glob(os.path.join(os.path.abspath(os.path.dirname(__file__)), "*.h"))
+ )
+
+-MINIMAL_HEADERS = glob.glob(
+- os.path.join(os.path.abspath(os.path.dirname(__file__)), "minimal", "*.h")
++MINIMAL_HEADERS = sorted(
++ glob.glob(
++ os.path.join(
++ os.path.abspath(os.path.dirname(__file__)), "minimal", "*.h"
++ )
++ )
+ )
+
+
@@ -4,6 +4,7 @@ HOMEPAGE = "https://github.com/pyca/pynacl"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
+SRC_URI += "file://0001-Build-bindings-reproducibly.patch"
SRC_URI[sha256sum] = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"
PYPI_PACKAGE = "PyNaCl"
glob output isn't guaranteed to be in any particular order, so _sodium.*.so wasn't always reproducible. Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Yoann Congal <yoann.congal@smile.fr> Cc: Hongxu Jia <hongxu.jia@windriver.com> --- .../0001-Build-bindings-reproducibly.patch | 39 +++++++++++++++++++ .../python/python3-pynacl_1.5.0.bb | 1 + 2 files changed, 40 insertions(+) create mode 100644 meta-python/recipes-devtools/python/python3-pynacl/0001-Build-bindings-reproducibly.patch