<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/be8cfe8d759397726992c9ca1c97fdb9a2ac2a14">https://github.com/macports/macports-ports/commit/be8cfe8d759397726992c9ca1c97fdb9a2ac2a14</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new be8cfe8d759 py-dulwich: build pure version on legacy systems with no rust
</span>be8cfe8d759 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit be8cfe8d759397726992c9ca1c97fdb9a2ac2a14
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Thu Oct 31 07:06:48 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    py-dulwich: build pure version on legacy systems with no rust
</span>---
 python/py-dulwich/Portfile                         |  21 +++-
 .../eb6e78f01a44d738ca3c801d777785910aab5000.patch | 108 +++++++++++++++++++++
 python/py-dulwich/files/patch-strnlen-lion.diff    |  11 +++
 3 files changed, 137 insertions(+), 3 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-dulwich/Portfile b/python/py-dulwich/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c0afaa1565e..7b1e4b217d1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-dulwich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-dulwich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,7 +2,6 @@
</span> 
 PortSystem          1.0
 PortGroup           python 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           rust 1.0
</span> 
 name                py-dulwich
 version             0.22.3
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,6 +23,8 @@ checksums           ${distname}${extract.suffix} \
</span> 
 python.versions     38 39 310 311 312 313
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set dulwich_darwin_min_ver 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${name} ne ${subport}} {
     if {${python.version} < 310} {
         depends_build-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,11 +33,24 @@ if {${name} ne ${subport}} {
</span> 
     patchfiles      patch-archflags.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Backport of a fix from upstream.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Drop with next release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    eb6e78f01a44d738ca3c801d777785910aab5000.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:py${python.version}-setuptools-rust \
</span>                     port:py${python.version}-urllib3
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    cargo.crates \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.platform} eq "darwin" && ${os.major} < ${dulwich_darwin_min_ver}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.env-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    PURE=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup   rust 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python.version}-setuptools-rust
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        cargo.crates \
</span>         autocfg 1.4.0 ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 \
         cfg-if 1.0.0 baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd \
         heck 0.5.0 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -57,4 +71,5 @@ if {${name} ne ${subport}} {
</span>         target-lexicon 0.12.16 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 \
         unicode-ident 1.0.13 e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe \
         unindent 0.2.3 c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-dulwich/files/eb6e78f01a44d738ca3c801d777785910aab5000.patch b/python/py-dulwich/files/eb6e78f01a44d738ca3c801d777785910aab5000.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..531f15c13ea
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-dulwich/files/eb6e78f01a44d738ca3c801d777785910aab5000.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,108 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9fea5e31722b35ee66c564538fb84c96f10eee40 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Eli Schwartz <eschwartz93@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 5 Nov 2024 12:01:47 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] build: respect the "pure" argument at metadata generation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+When a pure build is requested, no compiled extensions are produced. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+setuptools_rust dependency ends up imported-but-not-used. Teach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+setuptools to avoid build-requiring it in this case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Closes: https://github.com/jelmer/dulwich/issues/1405
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyproject.toml |  2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup.py       | 58 ++++++++++++++++++++++++++++----------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 33 insertions(+), 27 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/pyproject.toml b/pyproject.toml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f7c59681..aaa873223 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyproject.toml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyproject.toml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [build-system]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-requires = ["setuptools>=61.2", "setuptools-rust"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++requires = ["setuptools>=61.2"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build-backend = "setuptools.build_meta"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [project]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/setup.py b/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6eada1487..07381eee8 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import sys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ from setuptools import setup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-from setuptools_rust import Binding, RustExtension
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tests_require = ["fastimport"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,35 +17,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optional = os.environ.get("CIBUILDWHEEL", "0") != "1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-rust_extensions = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "dulwich._objects",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "crates/objects/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "dulwich._pack",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "crates/pack/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "dulwich._diff_tree",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "crates/diff-tree/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Ideally, setuptools would just provide a way to do this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if "--pure" in sys.argv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sys.argv.remove("--pure")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if "PURE" in os.environ or "--pure" in sys.argv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if "--pure" in sys.argv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sys.argv.remove("--pure")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    setup_requires = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rust_extensions = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    setup_requires = ["setuptools_rust"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # We check for egg_info since that indicates we are running prepare_metadata_for_build_*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if "egg_info" in sys.argv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        rust_extensions = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        from setuptools_rust import Binding, RustExtension
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        rust_extensions = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "dulwich._objects",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "crates/objects/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "dulwich._pack",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "crates/pack/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            RustExtension(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "dulwich._diff_tree",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                "crates/diff-tree/Cargo.toml",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                binding=Binding.PyO3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                optional=optional,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     package_data={"": ["py.typed"]},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rust_extensions=rust_extensions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    setup_requires=setup_requires,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     tests_require=tests_require,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-dulwich/files/patch-strnlen-lion.diff b/python/py-dulwich/files/patch-strnlen-lion.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..22d5b55eaa8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-dulwich/files/patch-strnlen-lion.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- dulwich/_objects.c~    2011-11-06 13:52:35.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ dulwich/_objects.c     2011-11-06 13:52:41.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,7 +25,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef int Py_ssize_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__MINGW32_VERSION) || defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__MINGW32_VERSION) || (defined(__APPLE__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t rep_strnlen(char *text, size_t maxlen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t rep_strnlen(char *text, size_t maxlen)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span></pre><pre style='margin:0'>

</pre>