# -*- 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           perl5 1.0

# O_CLOEXEC, AT_FDCWD, utimensat
PortGroup           legacysupport 1.1

legacysupport.newest_darwin_requires_legacy 16

name                samba4
# With sbsat due to /opt/local/bin/gentest
conflicts           samba3 sbsat
version             4.23.0
revision            0
checksums           rmd160  87fc01438b8a5a1c1b6f30b5dbdb3fc1b39c681d \
                    sha256  b0cb963a63eb1515227f3779a46d3a7f790c1bbfeeb4b31fd43e405eefe7a3af \
                    size    43320412

categories          net
platforms           darwin freebsd
maintainers         nomaintainer
license             GPL-3+
description         SMB/CIFS server and client
long_description    Samba is an software suite that provides seamless file \
                    and print services to SMB/CIFS clients.

homepage            https://www.samba.org
master_sites        https://download.samba.org/pub/samba/stable
distname            samba-${version}

set py_ver          3.13
set py_ver_nodot    [string map {. {}} ${py_ver}]

depends_build       path:bin/pkg-config:pkgconfig \
                    port:gettext \
                    port:bison \
                    port:cmocka \
                    port:libxslt \
                    port:docbook-xml \
                    port:docbook-xsl-nons \
                    port:p${perl5.major}-parse-yapp

depends_lib         port:gettext-runtime \
                    path:lib/pkgconfig/gnutls.pc:gnutls \
                    path:lib/pkgconfig/icu-uc.pc:icu \
                    port:gpgme \
                    port:jansson \
                    port:libarchive \
                    port:libiconv \
                    path:lib/libldap.dylib:openldap \
                    port:popt \
                    port:python${py_ver_nodot} \
                    port:readline \
                    port:zlib \
                    port:libtasn1 \
                    port:ncurses \
                    path:lib/libssl.dylib:openssl \
                    port:lmdb \
                    port:tdb \
                    port:talloc \
                    port:tevent

depends_run         port:py${py_ver_nodot}-dnspython \
                    port:py${py_ver_nodot}-markdown

# https://bugzilla.samba.org/show_bug.cgi?id=9665
patchfiles-append   patch-samba-install.diff

# https://bugzilla.samba.org/show_bug.cgi?id=15030
patchfiles-append   patch-bug-15030.diff

# https://bugzilla.samba.org/show_bug.cgi?id=15763
patchfiles-append   patch-ldb-test.diff

# https://bugzilla.samba.org/show_bug.cgi?id=15850
patchfiles-append   patch-util-crypt.diff

# https://gitlab.com/samba-team/samba/-/merge_requests/4227
patchfiles-append   patch-kdc-realloc-p.diff

configure.perl          ${perl5.bin}
configure.python        ${prefix}/bin/python${py_ver}
configure.env-append    YAPP=${prefix}/bin/yapp-${perl5.major}
configure.args-append   --enable-fhs \
                        --disable-avahi

variant avahi description {Use avahi} {
    depends_lib-append \
        port:avahi
    configure.args-delete \
        --disable-avahi
}

platform darwin {
    configure.args-append \
        --without-acl-support
}

platform freebsd {
    default_variants-append +avahi
}

build.env-append    PYTHON=${configure.python} \
                    XML_CATALOG_FILES=file://${prefix}/etc/xml/catalog

destroot.env-append {*}${build.env}

# error: redefinition of typedef ‘SMB_STRUCT_STAT’
compiler.blacklist-append *gcc-4.* {clang < 400}

livecheck.type      regex
livecheck.url       https://download.samba.org/pub/samba/
livecheck.regex     samba-(\[0-9a-z.\]+)\\.tar\\.gz
