# -*- 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               legacysupport 1.1
PortGroup               muniversal 1.0
PortGroup               perl5 1.0

name                    wget
version                 1.25.0
revision                1

checksums               rmd160  39e268af49675a252706ca972b42b75cc73260fe \
                        sha256  19225cc756b0a088fc81148dc6a40a0c8f329af7fd8483f1c7b2fe50f4e08a1f \
                        size    2582072

categories              net www
maintainers             {ryandesign @ryandesign} openmaintainer
license                 GPL-3+
homepage                https://www.gnu.org/software/wget/
platforms               darwin freebsd
use_parallel_build      yes
master_sites            gnu
use_lzip                yes

description \
    internet file retriever

long_description \
    GNU Wget is a free software package for retrieving files using HTTP, \
    HTTPS, and FTP, the most widely-used Internet protocols. It is a \
    non-interactive commandline tool, so it may easily be called from \
    scripts, cron jobs, terminals without Xsupport, etc.

configure.args          --enable-option-checking \
                        --disable-silent-rules \
                        --enable-libproxy \
                        --enable-opie \
                        --enable-digest \
                        --enable-ntlm \
                        --enable-debug \
                        --disable-valgrind-tests \
                        --disable-assert \
                        --enable-largefile \
                        --enable-threads=posix \
                        --enable-nls \
                        --disable-rpath \
                        --enable-ipv6 \
                        --enable-iri \
                        --disable-pcre \
                        --enable-pcre2 \
                        --enable-xattr \
                        --without-ssl \
                        --with-zlib \
                        --without-metalink \
                        --without-cares \
                        --with-libiconv-prefix=${prefix} \
                        --with-libintl-prefix=${prefix} \
                        --with-libunistring-prefix=${prefix} \
                        --without-included-regex \
                        --without-libuuid

# use a specific MacPorts perl version
# older system perl versions (10.6 and earlier) do not support pod2man --utf8
# https://trac.macports.org/ticket/50164

depends_build           port:gettext \
                        port:perl${perl5.major} \
                        path:bin/pkg-config:pkgconfig \
                        bin:makeinfo:texinfo

depends_test            port:p${perl5.major}-libwww-perl \
                        port:p${perl5.major}-io-socket-ssl

depends_lib             port:gettext-runtime \
                        port:libiconv \
                        port:libidn2 \
                        port:libproxy \
                        port:libpsl \
                        port:libunistring \
                        port:nettle \
                        port:pcre2 \
                        port:zlib

legacysupport.redirect_bins wget

patchfiles              prefix.patch

# https://trac.macports.org/wiki/WimplicitFunctionDeclaration#strchr
configure.checks.implicit_function_declaration.whitelist-append strchr

configure.perl          ${perl5.bin}
configure.env-append    POD2MAN=${prefix}/bin/pod2man-${perl5.major}

# Ensure libuuid doesn't get used even if the ossp-uuid port is installed.
configure.args-append   ac_cv_header_uuid_uuid_h=no

# tempname.c:290: error: 'for' loop initial declaration used outside C99 mode
compiler.c_standard     1999
configure.cflags-append -std=c99

test.run                yes
test.target             check

variant gnutls conflicts ssl description {SSL support via GnuTLS} {
    configure.args-replace  --without-ssl --with-ssl=gnutls
    configure.args-append   --with-libgnutls-prefix=${prefix}
    depends_lib-append      path:lib/pkgconfig/gnutls.pc:gnutls
}

variant ssl conflicts gnutls description {SSL support via OpenSSL} {
    PortGroup openssl 1.0

    configure.args-replace  --without-ssl --with-ssl=openssl
    configure.args-append   --with-libssl-prefix=[openssl::install_area]
}

variant metalink description {Metalink support} {
    configure.args-replace  --without-metalink --with-metalink
    depends_lib-append      port:gpgme \
                            port:libmetalink
}

if {![variant_isset ssl]} {
    default_variants +gnutls
}

post-patch {
    reinplace "s|@PREFIX@|${prefix}|g" \
        ${worksrcpath}/README \
        ${worksrcpath}/NEWS \
        ${worksrcpath}/doc/sample.wgetrc \
        ${worksrcpath}/doc/wget.texi
}

post-destroot {
    # Install documentation.
    set docdir ${destroot}${prefix}/share/doc/${name}
    xinstall -d ${docdir}
    xinstall -W ${worksrcpath} -m 0644 AUTHORS COPYING ChangeLog MAILING-LIST NEWS README ${docdir}

    # Rename sample wgetrc file so we don't clobber a user's real config file on upgrade.
    move ${destroot}${prefix}/etc/wgetrc ${destroot}${prefix}/etc/wgetrc.sample
}

notes "
To customize wget, you can copy ${prefix}/etc/wgetrc.sample to\
${prefix}/etc/wgetrc and then make changes.
"
