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

name                subversion-python27bindings
version             1.13.0
revision            1

categories          devel python
platforms           darwin
license             Apache-2
maintainers         nomaintainer

description         Python bindings for the subversion version control system (svn)
long_description    Subversion (svn) is a version control system designed to be \
                    as similar to cvs(1) as possible, while fixing many \
                    outstanding problems with cvs(1). The python bindings \
                    provide access to subversion API from python.

homepage            https://subversion.apache.org/

master_sites        apache:subversion
use_bzip2           yes

checksums           rmd160	a6f2731a87d612b85d4a82571948150d09b2643a \
                    sha256	bc50ce2c3faa7b1ae9103c432017df98dfd989c4239f9f8270bb3a314ed9e5bd \
                    size	8508122

distname            subversion-${version}
dist_subdir         subversion

depends_build-append \
                    port:swig

depends_lib-append  port:apr \
                    port:apr-util \
                    port:cyrus-sasl2 \
                    port:db48 \
                    port:expat \
                    port:gettext \
                    port:libcomerr \
                    port:libiconv \
                    port:libmagic \
                    port:libutf8proc \
                    port:lz4 \
                    port:python27 \
                    port:serf1 \
                    port:sqlite3 \
                    port:subversion \
                    port:zlib

patchfiles          dynamic_lookup-11.patch

post-patch {
    system "export LANG=C; cd ${worksrcpath}; find build* Makefile.in subversion/bindings/swig/python -type f -print0 | xargs -0 sed -i -e 's/libsvn_swig_py/libsvn_swig_py27/g'"
    file rename \
        ${worksrcpath}/subversion/bindings/swig/python/libsvn_swig_py \
        ${worksrcpath}/subversion/bindings/swig/python/libsvn_swig_py27
}

configure.args      --with-berkeley-db=:${prefix}/include/db48:${prefix}/lib/db48:db-4.8 \
                    --with-apr=${prefix}/bin/apr-1-config \
                    --with-apr-util=${prefix}/bin/apu-1-config --without-apxs \
                    --mandir=\\\${prefix}/share/man \
                    --with-serf=${prefix} \
                    --with-sasl=${prefix} \
                    --with-libmagic=${prefix} \
                    --without-gnome-keyring

configure.env       ac_cv_path_PYTHON=${prefix}/bin/python2.7 \
                    ac_cv_python_includes=-I${frameworks_dir}/Python.framework/Versions/2.7/include/python2.7 \
                    "ac_cv_python_link=${configure.cc} -L${prefix}/lib -bundle -undefined dynamic_lookup ${frameworks_dir}/Python.framework/Versions/2.7/Python" \
                    "ac_cv_python_libs=-L${prefix}/lib -bundle -undefined dynamic_lookup ${frameworks_dir}/Python.framework/Versions/2.7/Python" \
                    ac_cv_python_compile=${configure.cc}

build.target        swig-py
destroot.target     install-swig-py DESTDIR=${destroot}

test.run            yes
test.target         check-swig-py

pre-test {
    set x {}
    fs-traverse dir ${worksrcpath}/subversion {
        if {[file tail ${dir}] == ".libs" && [file isdirectory ${dir}]} {
            lappend x ${dir}
            continue
        }
    }
    test.env-append DYLD_LIBRARY_PATH=[join ${x} ":"]
}

pre-configure {
    reinplace "s|hardcode_direct=yes|hardcode_direct=no|g" \
        ${worksrcpath}/configure
}

post-configure {
    reinplace "s|need_relink=yes|need_relink=no|g" \
        ${worksrcpath}/libtool
}

variant no_bdb description {Build without support for BerkeleyDB repositories} {
    depends_lib-delete      port:db48
    configure.args-delete   --with-berkeley-db=:${prefix}/include/db48:${prefix}/lib/db48:db-4.8
    configure.args-append   --without-berkeley-db
}

post-destroot {
    set PYTHON_PATH ${frameworks_dir}/Python.framework/Versions/2.7/lib/python2.7

    xinstall -m 0755 -d ${destroot}${PYTHON_PATH}/site-packages
    xinstall -m 0755 ${filespath}/svn-python.pth \
        ${destroot}${PYTHON_PATH}/site-packages
    reinplace "s|@PREFIX@|${prefix}|g" \
         ${destroot}${PYTHON_PATH}/site-packages/svn-python.pth

    file rename "${destroot}${prefix}/lib/svn-python" \
        "${destroot}${prefix}/lib/svn-python2.7"
}

# CarbonCore/MacTypes.h: No such file or directory
platform puredarwin {
    configure.args-append   --disable-keychain
}

livecheck.type      regex
livecheck.url       https://svn.apache.org/repos/asf/subversion/tags/
livecheck.regex     "(\\d+\\.\\d+\\.\\d+)/"
