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

PortSystem      1.0
PortGroup       github 1.0
PortGroup       xcode 1.0

github.setup    transmission transmission 4.0.6
revision        0
categories      net aqua
maintainers     {khindenburg @kurthindenburg} {i0ntempest @i0ntempest} openmaintainer
license         MIT GPL-2

description     Lightweight BitTorrent client
long_description \
    Transmission is a free, lightweight BitTorrent client. \
    It features a simple, intuitive interface on top of an \
    efficient, cross-platform back-end. Transmission is open \
    source (MIT license) and runs on Mac OS X (Cocoa interface), \
    Linux/NetBSD/FreeBSD/OpenBSD (GTK+ interface) and BeOS \
    (native interface). This is the Cocoa version.

homepage        https://transmissionbt.com

github.tarball_from \
                releases
use_xz          yes

checksums       rmd160  b4fbc8aa3491eb775f3238cabea1c02ab50ec5db \
                sha256  2a38fe6d8a23991680b691c277a335f8875bdeca2b97c6b26b598bc9c7b0c45f \
                size    11908296

platforms       macosx

depends_lib-append      port:gettext \
                        port:libdeflate \
                        port:libevent \
                        port:curl \
                        path:lib/libssl.dylib:openssl

xcode.target            Transmission
xcode.configuration     Release

# Hardened Runtime on 10.14 is not compatible with AdHoc signing
# Hardened Runtime on 10.15 causes crash when loading unsigned libs
if {${os.major} == 18 || ${os.major} == 19} {
    xcode.build.settings-append \
                ENABLE_HARDENED_RUNTIME=NO
}

patchfiles      patch-miniupnpc.diff \
                patch-xcodebuild.diff

pre-patch {
    reinplace -E "s%third-party/(curl|libevent|openssl|libdeflate)/(include|lib)%@@PREFIX@@/\\2%g" \
        ${worksrcpath}/Transmission.xcodeproj/project.pbxproj
}

post-patch {
    reinplace -E "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/Transmission.xcodeproj/project.pbxproj
    # Disable Sparkle without messing with xib files
    system -W ${worksrcpath}/macosx/ "/usr/libexec/PlistBuddy -c \"Delete :SUFeedURL\" Info.plist"
    system -W ${worksrcpath}/macosx/ "/usr/libexec/PlistBuddy -c \"Set :SUEnableAutomaticChecks bool false\" Defaults.plist"
    if {${os.major} <= 18} {
        # 10.14 and older do not have any of python3, python3.7, and python2
        reinplace "s|command -v python2|command -v python2.7|" ${worksrcpath}/Transmission.xcodeproj/project.pbxproj
        # systemTealColor not available in 10.14 SDK
        if {[vercmp ${macosx_sdk_version} 10.14] <= 0} {
            reinplace "s|systemTealColor|systemBlueColor|g" ${worksrcpath}/macosx/MessageWindowController.mm
        }
    }
}

variant daemon description {Builds headless daemon} {
    xcode.target-append transmission-daemon \
                        transmission-remote \
                        transmission-create \
                        transmission-edit \
                        transmission-show
}

destroot {
    system -W ${worksrcpath}/build/Release "/usr/bin/codesign --verify Transmission.app || /usr/bin/codesign --deep --force --sign - Transmission.app"
    file copy ${worksrcpath}/build/${xcode.configuration}/Transmission.app \
        ${destroot}${applications_dir}/Transmission.app

    if {[variant_isset daemon]} {
        xinstall -m 755 -W ${worksrcpath}/build/${xcode.configuration} \
        transmission-daemon transmission-remote transmission-create transmission-edit transmission-show \
        ${destroot}${prefix}/bin

        xinstall -m 644 -W ${worksrcpath} \
            daemon/transmission-daemon.1 \
            utils/transmission-remote.1 utils/transmission-create.1 utils/transmission-edit.1 utils/transmission-show.1 \
            ${destroot}${prefix}/share/man/man1
   }
}

set minxcodever 10.0
set minosver 10.13
if {([vercmp $xcodeversion ${minxcodever}] < 0) || ([vercmp ${macosx_deployment_target} ${minosver}] < 0)} {
    known_fail yes
    pre-fetch {
        ui_error "${name} ${version} requires Xcode ${minxcodever} or greater to build and macOS ${minosver} to run."
        ui_error "Consider installing transmission-x11 instead."
        return -code error "incompatible OS X version"
    }
}

# Ignore betas - can't use extract.suffix
livecheck.regex     (\[0-9.\]+).tar
