source: trunk/dports/net/curl/Portfile @ 107230

Last change on this file since 107230 was 107230, checked in by ryandesign@…, 6 years ago

curl: update to 7.31.0

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 9.8 KB
Line 
1# -*- 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
2# $Id: Portfile 107230 2013-06-23 09:30:02Z ryandesign@macports.org $
3
4PortSystem                      1.0
5
6name                            curl
7version                         7.31.0
8categories                      net www
9platforms                       darwin freebsd
10maintainers                     ryandesign
11license                         Curl
12
13description                     Tool for transferring files with URL syntax
14
15long_description                curl is a client to get documents/files from servers, \
16                                using any of the supported protocols. The command is \
17                                designed to work without user interaction or any kind \
18                                of interactivity.
19
20homepage                        http://curl.haxx.se/
21master_sites                    ${homepage}download/ \
22                                ftp://ftp.sunet.se/pub/www/utilities/curl/ \
23                                http://www.execve.net/curl/
24
25use_bzip2                       yes
26
27checksums                       ${distfiles} \
28                                rmd160  e8fac9e4a80a20c3cef79615286722183abfd335 \
29                                sha256  a73b118eececff5de25111f35d1d0aafe1e71afdbb83082a8e44d847267e3e08
30
31if {${name} == ${subport}} {
32    PortGroup                   muniversal 1.0
33
34    depends_build               port:pkgconfig
35
36    depends_lib                 port:libidn \
37                                port:zlib
38
39    patchfiles                  patch-curl.h.diff
40
41    configure.args              --enable-ipv6 \
42                                --without-gnutls \
43                                --without-gssapi \
44                                --without-libmetalink \
45                                --without-librtmp \
46                                --without-libssh2 \
47                                --without-nss \
48                                --without-polarssl \
49                                --without-spnego \
50                                --without-ssl \
51                                --disable-ares \
52                                --disable-ldap \
53                                --disable-ldaps \
54                                --with-libidn \
55                                --with-zlib=${prefix}
56
57    configure.env               PKG_CONFIG_PATH=${prefix}
58
59    post-configure {
60        if {[variant_isset universal]} {
61            set dirs {}
62            foreach arch ${universal_archs_to_use} {
63                lappend dirs ${worksrcpath}-${arch}
64            }
65        } else {
66            set dirs ${worksrcpath}
67        }
68        foreach dir ${dirs} {
69            reinplace -E {s|-arch [a-z0-9_]+||g} \
70                ${dir}/curl-config \
71                ${dir}/libcurl.pc
72            reinplace -E {s/ '(host_alias|--host)=[^']+'//g} ${dir}/curl-config
73        }
74    }
75
76    test.run                    yes
77    test.target                 test-full
78
79    global merger_dont_diff
80    set merger_dont_diff "${prefix}/include/curl/curlbuild.h"
81
82    post-destroot {
83        set docdir ${prefix}/share/doc/${name}
84        xinstall -d ${destroot}${docdir}/html/libcurl ${destroot}${docdir}/pdf/libcurl \
85            ${destroot}${prefix}/share/aclocal
86        xinstall -m 0644 -W ${worksrcpath} \
87            CHANGES \
88            COPYING \
89            README \
90            RELEASE-NOTES \
91            ${destroot}${docdir}
92        xinstall -m 0644 -W ${worksrcpath}/docs \
93            BUGS \
94            CONTRIBUTE \
95            FAQ \
96            FEATURES \
97            HISTORY \
98            INTERNALS \
99            KNOWN_BUGS \
100            MANUAL \
101            RESOURCES \
102            THANKS \
103            TODO \
104            TheArtOfHttpScripting \
105            VERSIONS \
106            ${destroot}${docdir}
107        xinstall -m 0644 ${worksrcpath}/docs/libcurl/libcurl.m4 \
108            ${destroot}${prefix}/share/aclocal/
109        eval xinstall -m 0644 [glob ${worksrcpath}/docs/*.html] ${destroot}${docdir}/html
110        eval xinstall -m 0644 [glob ${worksrcpath}/docs/libcurl/*.html] ${destroot}${docdir}/html/libcurl
111        eval xinstall -m 0644 [glob ${worksrcpath}/docs/*.pdf] ${destroot}${docdir}/pdf
112        eval xinstall -m 0644 [glob ${worksrcpath}/docs/libcurl/*.pdf] ${destroot}${docdir}/pdf/libcurl
113    }
114
115    variant ares description {Support resolving names asynchronously} {
116        depends_lib-append      port:c-ares
117        configure.args-delete   --disable-ares
118        configure.args-append   --enable-ares
119    }
120
121    variant gnutls conflicts ssl description {Allow secure connections using GNU TLS} {
122        depends_lib-append      port:gnutls
123        configure.args-delete   --without-gnutls
124        configure.args-append   --with-gnutls
125    }
126
127    variant gss description {Support the Generic Security Service API} {
128        # This needs to use the system's Kerberos, not MacPorts' gss or kerberos5.
129        conflicts-append        gss kerberos5
130        configure.args-delete   --without-gssapi
131        configure.args-append   --with-gssapi
132    }
133
134    variant metalink description {Support Metalink XML download description files} {
135        depends_lib-append      port:libmetalink
136        configure.args-delete   --without-libmetalink
137        configure.args-append   --with-libmetalink=${prefix}
138    }
139
140    variant openldap description {Support performing Lightweight Directory Access Protocol queries with OpenLDAP} {
141        depends_lib-append      port:openldap
142        configure.args-delete   --disable-ldap \
143                                --disable-ldaps
144        configure.args-append   --enable-ldap \
145                                --enable-ldaps
146    }
147
148    variant sftp_scp description {Support SFTP/SCP connections via libssh2} {
149        depends_lib-append      port:libssh2
150        configure.args-delete   --without-libssh2
151        configure.args-append   --with-libssh2
152    }
153
154    variant spnego description {Enable SPNEGO authentication support} {
155        # kind of broken?
156        depends_lib-append      port:fbopenssl
157        configure.args-delete   --without-spnego
158        configure.args-append   --with-spnego=${prefix}
159    }
160
161    variant ssl conflicts gnutls description {Allow secure connections using OpenSSL} {
162        depends_lib-append      port:openssl \
163                                port:curl-ca-bundle
164        configure.args-delete   --without-ssl
165        configure.args-append   --with-ssl \
166                                --with-ca-bundle=${prefix}/share/curl/curl-ca-bundle.crt
167    }
168
169    if {![variant_isset gnutls]} {
170        default_variants +ssl
171    }
172
173    livecheck.type              regex
174    livecheck.url               [lindex ${master_sites} 0]
175    livecheck.regex             ${name}-(\[0-9.\]+)${extract.suffix}
176} else {
177    livecheck.type              none
178}
179
180subport curl-ca-bundle {
181    revision                    0
182    categories                  net
183    license                     {MPL-2 LGPL-2.1+}
184    supported_archs             noarch
185    installs_libs               no
186    conflicts                   certsync
187
188    description                 CA certificate bundle for curl
189
190    long_description            Installs a bundle of certification authority certificates \
191                                (CA certs) which curl (when linked with OpenSSL) uses to \
192                                verify the authenticity of secure web and FTP servers.
193
194    depends_build               path:bin/perl:perl5
195
196    set certdata_file           certdata.txt
197    set certdata_version        1.87
198    set certdata_date           2012-12-29
199    set certdata_distfile       certdata-${certdata_version}.txt
200    set certdata_path           security/nss/lib/ckfw/builtins/${certdata_file}
201
202    # Set this to the UTC date when an update to certdata.txt is committed.
203    set commit_date_utc         2013-01-11
204
205    # Avoid most of the checksum errors that inevitably occur whenever upstream
206    # updates certdata.txt by only using the upstream site on the day the latest
207    # update is committed. After that time, use only our mirrors, which should
208    # have copied the file by then. The success of this strategy relies on
209    # upstream not updating the file again on that day.
210    set days_since_commit [expr {[expr {[clock seconds] - [clock format [clock scan ${commit_date_utc} -gmt yes] -format %s]}] / 86400}]
211    if {${days_since_commit} > 0} {
212        master_sites-append http://distfiles.macports.org/curl/:certdata
213    } else {
214        master_sites-append http://mxr.mozilla.org/mozilla/source/${certdata_path}?raw=1&dummy=:certdata
215    }
216
217    extract.only                ${distfiles}
218    extract.post_args-append    ${worksrcdir}/Makefile ${worksrcdir}/lib/mk-ca-bundle.pl
219
220    distfiles-append            ${certdata_distfile}:certdata
221
222    checksums-append            ${certdata_distfile} \
223                                rmd160  bc21321abe4cf27418880c4ce8e6ebd329df82a1 \
224                                sha256  5b28c27582f302c4bf34ddb114266e143d6d685a688357651be9c9db000d822d
225
226    post-extract {
227        xinstall ${distpath}/${certdata_distfile} ${worksrcpath}/${certdata_file}
228    }
229
230    patchfiles                  patch-no-autodownload.diff
231
232    use_configure               no
233
234    build.target                ca-bundle
235
236    destroot {
237        set ca_bundle_dir ${prefix}/share/curl
238        set openssl_dir ${prefix}/etc/openssl
239        xinstall -d ${destroot}${ca_bundle_dir} ${destroot}${openssl_dir}
240        xinstall -m 644 ${worksrcpath}/lib/ca-bundle.crt ${destroot}${ca_bundle_dir}/curl-ca-bundle.crt
241        ln -s ${ca_bundle_dir}/curl-ca-bundle.crt ${destroot}${openssl_dir}/cert.pem
242    }
243
244    livecheck.type              regex
245    livecheck.url               http://bonsai.mozilla.org/cvsquery.cgi?file=mozilla/${certdata_path}&date=explicit&mindate=${certdata_date}
246    livecheck.version           ${certdata_version}
247    livecheck.regex             '${certdata_file}','(\[0-9.\]+)'
248}
Note: See TracBrowser for help on using the repository browser.