#!/usr/bin/env bash
name='curl'
release='6'
version='8.5.0'
url='https://github.com/curl/curl'
description='An URL retrieval utility and library'
email='parduscix@yandex.ru'
maintainer='sulincix'
license=('MIT')
source=("https://curl.se/download/curl-$version.zip")
depends=(zlib openssl libnghttp2 libpsl)
makedepends=( )
md5sums=('7b573f83c7c6d1894f43bbabe7085242')
arch=('x86_64')
group=(net.misc)

uses=(zlib libssh)
uses_extra=(zstd brotli libidn2 gnutls)

gnutls_depends=(gnutls)
zlib_depends=(zlib)
libssh_depends=(libssh)

brotli_depends=(brotli)
zstd_depends=(zstd)
libidn2_depends=(libind2)

cd $name-$version

prepare(){
    if use gnutls ; then
        cp -r ../$name-$version ../curl-gnutls
    fi
}

setup(){
    opts=(
        --prefix=/usr
        --libdir=/usr/lib64
        --disable-ldap
        --disable-ldaps
        --disable-versioned-symbols
        --enable-doh
        --enable-ftp
        --enable-ipv6
        --with-ca-path=/etc/ssl/certs
        --with-ca-bundle=/etc/ssl/cert.pem
        --enable-threaded-resolverl
        --enable-websockets
        $(use_opt zstd --with-zstd --without-zstd)
        $(use_opt zlib --with-zlib --without-zlib)
        $(use_opt brotli --with-brotli --without-brotli)
        $(use_opt libssh --with-libssh --without-libssh)
        $(use_opt libidn2 --with-libidn2 --without-libidn2)
    )
    ./configure ${opts[@]} --with-openssl
    if use gnutls ; then
        cd ../curl-gnutls
        ./configure ${opts[@]} --without-openssl --with-gnutls
    fi
}

build(){
    make $jobs
    if use gnutls ; then
        cd ../curl-gnutls
        make -C lib $jobs
    fi
}

package(){
    if use gnutls ; then
        cd ../curl-gnutls
        make install $jobs
        mv "${DESTDIR}"/usr/lib64/libcurl{,-gnutls}.so.4.8.0
        mv "${DESTDIR}"/usr/lib64/libcurl{,-gnutls}.a
        mv "${DESTDIR}"/usr/lib64/pkgconfig/libcurl{,-gnutls}.pc
        sed -i "s/-lcurl/-lcurl-gnutls/g" "${DESTDIR}"/usr/lib64/pkgconfig/libcurl-gnutls.pc
        ln -s libcurl-gnutls.so.4 "${DESTDIR}"/usr/lib64/libcurl-gnutls.so
        for ver in 3 4 4.0.0 4.1.0 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0 4.7.0; do
            ln -s libcurl-gnutls.so.4.8.0 "${DESTDIR}"/usr/lib64/libcurl-gnutls.so.${ver}
        done
    fi
    cd ../$name-$version
    make install $jobs
    for ver in 3 4.0.0 4.1.0 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0 4.7.0; do
        ln -s libcurl.so.4.8.0 "${DESTDIR}"/usr/lib64/libcurl.so.${ver}
    done
}

