# Copyright 2016 Julian Ospald <hasufell@posteo.de>
# Distributed under the terms of the GNU General Public License v2

require github [ user="AGProjects" pn="python3-sipsimple" tag="${PV}" ]
require setup-py [ import=distutils blacklist="2" multibuild=false ]

SUMMARY="SIP SIMPLE client SDK is a Software Development Kit"
HOMEPAGE="http://sipsimpleclient.org ${HOMEPAGE}"

ZRTPCPP_SHA="6b3cd8e6783642292bad0c21e3e5e5ce45ff3e03"

DOWNLOADS+="
    https://github.com/pjsip/pjproject/archive/2.10.tar.gz
    https://github.com/wernerd/ZRTPCPP/archive/${ZRTPCPP_SHA}.tar.gz -> ZRTPCPP-${ZRTPCPP_SHA}.tar.gz
"

LICENCES="GPL-3"
SLOT="0"
PLATFORMS="~amd64 ~x86"
MYOPTIONS="
    ( providers: libressl openssl ) [[ number-selected = exactly-one ]]
"

DEPENDENCIES="
    build:
        dev-python/Cython[python_abis:*(-)?]
        virtual/pkg-config
    build+run:
        dev-db/sqlite:3
        dev-libs/icu:=
        dev-python/python-application[>=3.0.3][python_abis:*(-)?]
        media/ffmpeg[h264]
        media-libs/libvpx
        media-libs/v4l-utils
        sys-apps/util-linux
        sys-sound/alsa-lib
        providers:libressl? ( dev-libs/libressl:= )
        providers:openssl? ( dev-libs/openssl )
    run:
        dev-python/dnspython[python_abis:*(-)?]
        dev-python/gevent[python_abis:*(-)?]
        dev-python/greenlet[python_abis:*(-)?]
        dev-python/lxml[python_abis:*(-)?]
        dev-python/python-dateutil[python_abis:*(-)?]
        dev-python/python-eventlib[>=0.3.0][python_abis:*(-)?]
        dev-python/python-gnutls[>=3.1.8][python_abis:*(-)?]
        dev-python/python-msrplib[>=0.21.0][python_abis:*(-)?]
        dev-python/python-otr[>=2.0.1][python_abis:*(-)?]
        dev-python/python-xcaplib[>=2.0.0][python_abis:*(-)?]
        dev-python/zopeinterface[python_abis:*(-)?]
        media-libs/x264[-10bit]
        net-twisted/Twisted[python_abis:*(-)?]
"

DEFAULT_SRC_PREPARE_PATCHES=(
    "${FILES}"/${PN}-fix-build.patch
)

src_prepare() {
    setup-py_src_prepare

    # MOst of this is straight from get_dependencies.sh but that
    # wants to download the dependencies directly so we can't use it
    edo mkdir "${WORK}"/deps/pjsip
    edo mv "${WORKBASE}"/pjproject*/* "${WORK}"/deps/pjsip/

    edo pushd "${WORK}"/deps/

    # Copy wrapper from old version to third_party/zsrtp/
    edo mkdir ./pjsip/third_party/zsrtp
    cp -r zsrtp/include ./pjsip/third_party/zsrtp/
    cp -r zsrtp/srtp    ./pjsip/third_party/zsrtp/
    cp -r zsrtp/build   ./pjsip/third_party/build/zsrtp

    # Copy new version to third_party/zsrtp/
    mkdir ./pjsip/third_party/zsrtp/zrtp
    cp -r "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/bnlib ./pjsip/third_party/zsrtp/zrtp/
    cp -r "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/common ./pjsip/third_party/zsrtp/zrtp/
    cp -r "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/cryptcommon ./pjsip/third_party/zsrtp/zrtp/
    cp -r "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/srtp ./pjsip/third_party/zsrtp/zrtp/
    cp -r "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/zrtp ./pjsip/third_party/zsrtp/zrtp/
    cp "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/COPYING ./pjsip/third_party/zsrtp/zrtp/
    cp "${WORKBASE}"/ZRTPCPP-"${ZRTPCPP_SHA}"/README.md ./pjsip/third_party/zsrtp/zrtp/

    for p in patches/*.patch; do
        expatch -p0 "${p}"
    done

    edo popd
}

src_compile() {
    # breaks horribly with 'ld'
    export LD=${CC}

    setup-py_src_compile
}