# -*- 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           github 1.0
PortGroup           legacysupport 1.1
PortGroup           meson 1.0

# strnlen, clock_gettime
legacysupport.newest_darwin_requires_legacy 15

github.setup        latchset pkcs11-provider 1.0 v
github.tarball_from releases
revision            1
checksums           rmd160  d4cdbff60a62536e3c743554a908ab9ebe6c276f \
                    sha256  843d01f660d6d9cb429e90b272e85da2ae694d9a2df4dcc5028bf73b2417f653 \
                    size    162076
use_xz              yes

maintainers         {cal @neverpanic} openmaintainer

categories          security crypto
license             Apache-2.0
description         A pkcs#11 provider for OpenSSL 3.0+
long_description    \
    An OpenSSL 3 provider to access Hardware or Software Tokens using the \
    PKCS#11 Cryptographic Token Interface

# NSS, softhsm, p11-kit, gnutls, and opensc are used for testing, but detection happens at build time
depends_build       port:gnutls \
                    port:nss \
                    port:opensc \
                    port:p11-kit \
                    port:pkgconfig \
                    port:softhsm

depends_lib         port:openssl3

# C11 compiler required
compiler.c_standard 2011

# needed only where legacysupport is used
if {${os.platform} eq "darwin" && ${os.major} < 16} {
    patchfiles-append \
                    patch-meson-build.diff
}

post-destroot {
    xinstall -m 0644 \
        ${filespath}/pkcs11-provider.cnf \
        ${prefix}/libexec/openssl3/etc/openssl/openssl.cnf.d/pkcs11-provider.cnf
}

test.run            yes

github.livecheck.branch main