# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           python 1.0

name                py-dulwich
version             0.22.3
categories-append   devel
maintainers         {danchr @danchr} openmaintainer
license             {GPL-2+ Apache-2+}

description         Pure-Python Git Library
long_description    Simple Pure-Python implementation of the Git file \
                    formats and protocols. Dulwich is the place where \
                    Mr. and Mrs. Git live in one of the Monty Python sketches.

homepage            https://www.dulwich.io

checksums           ${distname}${extract.suffix} \
                    rmd160  0517b08bac8f4320b6c2ff37f2f58b9108ed6984 \
                    sha256  7968c7b8a877b614c46b5ee7c1b28411772123004d7cf6357e763ad2cbeb8254 \
                    size    447748

python.versions     38 39 310 311 312 313

set dulwich_darwin_min_ver 11

if {${name} ne ${subport}} {
    if {${python.version} < 310} {
        depends_build-append \
            port:py${python.version}-importlib-metadata
    }

    patchfiles      patch-archflags.diff

    # Backport of a fix from upstream.
    # Drop with next release.
    patchfiles-append \
                    eb6e78f01a44d738ca3c801d777785910aab5000.patch

    depends_lib-append \
                    port:py${python.version}-urllib3

    if {${os.platform} eq "darwin" && ${os.major} < ${dulwich_darwin_min_ver}} {
        build.env-append \
                    PURE=1
    } else {
        PortGroup   rust 1.0

        depends_build-append \
                    port:py${python.version}-setuptools-rust

        cargo.crates \
        autocfg 1.4.0 ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 \
        cfg-if 1.0.0 baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd \
        heck 0.5.0 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea \
        indoc 2.0.5 b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5 \
        libc 0.2.159 561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5 \
        memchr 2.7.4 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 \
        memoffset 0.9.1 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a \
        once_cell 1.20.2 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775 \
        portable-atomic 1.9.0 cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2 \
        proc-macro2 1.0.87 b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a \
        pyo3 0.22.5 3d922163ba1f79c04bc49073ba7b32fd5a8d3b76a87c955921234b8e77333c51 \
        pyo3-build-config 0.22.5 bc38c5feeb496c8321091edf3d63e9a6829eab4b863b4a6a65f26f3e9cc6b179 \
        pyo3-ffi 0.22.5 94845622d88ae274d2729fcefc850e63d7a3ddff5e3ce11bd88486db9f1d357d \
        pyo3-macros 0.22.5 e655aad15e09b94ffdb3ce3d217acf652e26bbc37697ef012f5e5e348c716e5e \
        pyo3-macros-backend 0.22.5 ae1e3f09eecd94618f60a455a23def79f79eba4dc561a97324bf9ac8c6df30ce \
        quote 1.0.37 b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af \
        syn 2.0.79 89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590 \
        target-lexicon 0.12.16 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 \
        unicode-ident 1.0.13 e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe \
        unindent 0.2.3 c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce
    }
}
