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

# strnlen(), strndup()
legacysupport.newest_darwin_requires_legacy 10

github.setup            VirusTotal yara 4.5.6 v
revision                0
categories              security
license                 GPL-2+
maintainers             nomaintainer
description             Malware identification and classification tool
long_description        YARA is a tool aimed at helping malware researchers to identify \
                        and classify malware samples.
checksums               rmd160  98677d2c771effa9a9384e6dbdb3df18c612f1ad \
                        sha256  8c74e8d05190ee1534c6bdb6c07cde6f77f20c611aa4bcf33b2d281861b12f0b \
                        size    2203852
github.tarball_from     archive

if {${subport} eq ${name}} {
    depends_build-append \
                        port:autoconf \
                        port:automake \
                        port:libtool \
                        path:bin/pkg-config:pkgconfig

    depends_lib-append  port:jansson \
                        port:libmagic \
                        path:lib/libssl.dylib:openssl \
                        port:pcre \
                        port:protobuf-c

    patchfiles          patch-configure.ac.diff \
                        patch-Makefile.am.diff

    pre-configure {
        system -W ${worksrcpath} "./bootstrap.sh"
    }

    # tlsh_impl.h:93: error: redefinition of typedef 'TlshImpl'
    compiler.c_standard     2011

    configure.args-append   --with-crypto \
                            --disable-silent-rules \
                            --disable-dependency-tracking \
                            --enable-cuckoo \
                            --enable-magic

    test.run            yes
    test.target         check

    github.livecheck.regex (\[0-9a-z.\]+)
}

set python.branches [list 3.10 3.11 3.12 3.13 3.14]

foreach b ${python.branches} {
    set python.branch          ${b}
    set python.version         [join [split ${python.branch} "."] ""]
    set python.bin             ${prefix}/bin/python${python.branch}
    set python.prefix          ${frameworks_dir}/Python.framework/Versions/${python.branch}

    subport py${python.version}-${name} {
        github.setup            VirusTotal yara-python 4.5.5 v
        revision                0
        categories              security python
        description             ${name} bindings for python ${python.branch}
        long_description        Malware identification and classification tool. \
                                This subport provides bindings for python ${python.branch}

        checksums               rmd160  0173e824c1d3e8053f2f5f118e3563dd311a6b36 \
                                sha256  da79d0c8f07eed9780e14e3e51ee0ccdd5b9a28b5ed8b22735c2c2497f8dbff9 \
                                size    39314
        github.tarball_from     archive

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

        use_configure           no

        build.cmd               ${python.bin} setup.py --no-user-cfg
        build.target            build --dynamic-linking

        destroot.cmd            ${python.bin} setup.py --no-user-cfg
        destroot.destdir        --prefix=${python.prefix} --root=${destroot}

        pre-test {
            test.env-append     PYTHONPATH=[glob -nocomplain ${worksrcpath}/build/lib*]
        }

        test.run                yes
        test.cmd                ${python.bin} tests.py
        test.target
    }
}
