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

Last change on this file since 139229 was 139229, checked in by jeremyhu@…, 4 years ago

misc: Change port:openssl dependency to path:lib/libssl.dylib:openssl

This should allow usage of libressl as a replacement for openssl in relevant
ports. Not all ports have been tested, but libressl aims for API
compatibility with OpenSSL, so it is expected to work.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 10.1 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 139229 2015-08-08 03:10:35Z jeremyhu@macports.org $
3
4PortSystem                      1.0
5
6name                            curl
7version                         7.43.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/:curl \
22                                ftp://ftp.sunet.se/pub/www/utilities/curl/:curl \
23                                http://www.execve.net/curl/:curl
24
25use_bzip2                       yes
26
27set curl_distfile               ${distfiles}
28distfiles                       ${curl_distfile}:curl
29
30checksums                       ${curl_distfile} \
31                                rmd160  404481695a8f79cbf9a245bfa9c06140d1cdbf11 \
32                                sha256  baa654a1122530483ccc1c58cc112fec3724a82c11c6a389f1e6a37dc8858df9
33
34if {${name} eq ${subport}} {
35    PortGroup                   muniversal 1.0
36
37    revision                    1
38
39    depends_build               port:pkgconfig
40
41    depends_lib                 port:zlib
42
43    patchfiles                  patch-curl.h.diff \
44                                yosemite-libtool.patch
45
46    configure.args              --enable-ipv6 \
47                                --without-gnutls \
48                                --without-gssapi \
49                                --without-libidn \
50                                --without-libmetalink \
51                                --without-librtmp \
52                                --without-libssh2 \
53                                --without-nghttp2 \
54                                --without-nss \
55                                --without-polarssl \
56                                --without-spnego \
57                                --without-ssl \
58                                --disable-ares \
59                                --disable-ldap \
60                                --disable-ldaps \
61                                --with-zlib=${prefix}
62
63    configure.env               PKG_CONFIG_PATH=${prefix}
64
65    post-configure {
66        if {[variant_isset universal]} {
67            set dirs {}
68            foreach arch ${universal_archs_to_use} {
69                lappend dirs ${worksrcpath}-${arch}
70            }
71        } else {
72            set dirs ${worksrcpath}
73        }
74        foreach dir ${dirs} {
75            reinplace -E {s|-arch [a-z0-9_]+||g} \
76                ${dir}/curl-config \
77                ${dir}/libcurl.pc
78            reinplace -E {s/ '(host_alias|--host)=[^']+'//g} ${dir}/curl-config
79        }
80    }
81
82    test.run                    yes
83    test.target                 test-full
84
85    global merger_dont_diff
86    set merger_dont_diff "${prefix}/include/curl/curlbuild.h"
87
88    post-destroot {
89        set docdir ${prefix}/share/doc/${name}
90        xinstall -d ${destroot}${docdir}/html/libcurl ${destroot}${docdir}/pdf/libcurl \
91            ${destroot}${prefix}/share/aclocal
92        xinstall -m 0644 -W ${worksrcpath} \
93            CHANGES \
94            COPYING \
95            README \
96            RELEASE-NOTES \
97            ${destroot}${docdir}
98        xinstall -m 0644 -W ${worksrcpath}/docs \
99            BUGS \
100            CONTRIBUTE \
101            FAQ \
102            FEATURES \
103            HISTORY \
104            INTERNALS \
105            KNOWN_BUGS \
106            MANUAL \
107            RESOURCES \
108            THANKS \
109            TODO \
110            TheArtOfHttpScripting \
111            VERSIONS \
112            ${destroot}${docdir}
113        xinstall -m 0644 ${worksrcpath}/docs/libcurl/libcurl.m4 \
114            ${destroot}${prefix}/share/aclocal/
115        xinstall -m 0644 {*}[glob ${worksrcpath}/docs/*.html] ${destroot}${docdir}/html
116        xinstall -m 0644 {*}[glob ${worksrcpath}/docs/libcurl/*.html] ${destroot}${docdir}/html/libcurl
117        xinstall -m 0644 {*}[glob ${worksrcpath}/docs/*.pdf] ${destroot}${docdir}/pdf
118        xinstall -m 0644 {*}[glob ${worksrcpath}/docs/libcurl/*.pdf] ${destroot}${docdir}/pdf/libcurl
119    }
120
121    variant ares description {Support resolving names asynchronously} {
122        depends_lib-append      port:c-ares
123        configure.args-replace  --disable-ares --enable-ares
124    }
125
126    variant gnutls conflicts ssl description {Allow secure connections using GNU TLS} {
127        depends_lib-append      port:gnutls
128        configure.args-replace  --without-gnutls --with-gnutls
129    }
130
131    variant gss description {Support the Generic Security Service API} {
132        # This needs to use the system's Kerberos, not MacPorts' gss or kerberos5.
133        conflicts-append        gss kerberos5
134        configure.args-replace  --without-gssapi --with-gssapi
135    }
136
137    variant http2 description {Support HTTP/2 with nghttp2} {
138        depends_lib-append      port:nghttp2
139        configure.args-replace  --without-nghttp2 --with-nghttp2
140    }
141
142    variant idn description {Enable support for internationalized domain names (IDN)} {
143        depends_lib-append      port:libidn
144        configure.args-replace  --without-libidn --with-idn
145        notes-append "
146            Enabling support for internationalized domain names may be a security risk. See\
147            http://curl.haxx.se/mail/lib-2015-06/0143.html\
148        "
149    }
150
151    variant metalink description {Support Metalink XML download description files} {
152        depends_lib-append      port:libmetalink
153        configure.args-replace  --without-libmetalink --with-libmetalink=${prefix}
154    }
155
156    variant openldap description {Support performing Lightweight Directory Access Protocol queries with OpenLDAP} {
157        depends_lib-append      port:openldap
158        configure.args-replace  --disable-ldap --enable-ldap
159        configure.args-replace  --disable-ldaps --enable-ldaps
160    }
161
162    variant sftp_scp description {Support SFTP/SCP connections via libssh2} {
163        depends_lib-append      port:libssh2
164        configure.args-replace  --without-libssh2 --with-libssh2
165    }
166
167    variant spnego description {Enable SPNEGO authentication support} {
168        # kind of broken?
169        depends_lib-append      port:fbopenssl
170        configure.args-replace  --without-spnego --with-spnego=${prefix}
171    }
172
173    variant ssl conflicts gnutls description {Allow secure connections using OpenSSL} {
174        depends_lib-append      path:lib/libssl.dylib:openssl \
175                                path:share/curl/curl-ca-bundle.crt:curl-ca-bundle
176        configure.args-replace  --without-ssl --with-ssl=${prefix}
177        configure.args-append   --with-ca-bundle=${prefix}/share/curl/curl-ca-bundle.crt
178    }
179
180    if {![variant_isset gnutls]} {
181        default_variants +ssl
182    }
183
184    livecheck.type              regex
185    livecheck.url               [lindex ${master_sites} 0]
186    livecheck.regex             ${name}-(\[0-9.\]+)${extract.suffix}
187} else {
188    livecheck.type              none
189}
190
191subport curl-ca-bundle {
192    revision                    1
193    categories                  net
194    license                     {MPL-2 LGPL-2.1+}
195    supported_archs             noarch
196    installs_libs               no
197    conflicts                   certsync
198
199    description                 CA certificate bundle for curl
200
201    long_description            Installs a bundle of certification authority certificates \
202                                (CA certs) which curl (when linked with OpenSSL) uses to \
203                                verify the authenticity of secure web and FTP servers.
204
205    depends_build               path:bin/perl:perl5
206
207    set certdata_file           certdata.txt
208    # The output of the Tcl command "clock seconds" (you can run it in tclsh) when
209    # the certdata.txt file in the port was last updated.
210    set certdata_updated        1438893540
211    set certdata_version        2f1a37cb43ac
212    set certdata_distfile       certdata-${certdata_version}${extract.suffix}
213    set certdata_path           security/nss/lib/ckfw/builtins/${certdata_file}
214
215    # Only try to fetch from the master site shortly after the port is updated, to guard against stealth updates.
216    if {[clock seconds] - ${certdata_updated} < 90000} {
217        master_sites-append     http://hg.mozilla.org/mozilla-central/archive/${certdata_version}${extract.suffix}/${certdata_path}?dummy=:certdata
218    } else {
219        master_sites-append     macports_distfiles:certdata
220    }
221
222    distfiles-append            ${certdata_distfile}:certdata
223
224    checksums-append            ${certdata_distfile} \
225                                rmd160  40ed746c393c5597a8e8fbf0b3b6fa26a3ea4f78 \
226                                sha256  fc5e116913183a91c8a4cdb248f4ecd1808f9a1dac92aef2f1b6fe67cb5944e6
227
228    extract.only                ${certdata_distfile}
229
230    post-extract {
231        system -W ${workpath} "${extract.cmd} ${extract.pre_args} '${distpath}/${curl_distfile}' ${extract.post_args} ${worksrcdir}/Makefile ${worksrcdir}/lib/mk-ca-bundle.pl"
232        move ${workpath}/mozilla-central-${certdata_version}/${certdata_path} ${worksrcpath}/${certdata_file}
233    }
234
235    patchfiles                  patch-no-autodownload.diff
236
237    use_configure               no
238
239    build.target                ca-bundle
240
241    destroot {
242        set ca_bundle_dir ${prefix}/share/curl
243        set openssl_dir ${prefix}/etc/openssl
244        xinstall -d ${destroot}${ca_bundle_dir} ${destroot}${openssl_dir}
245        xinstall -m 644 ${worksrcpath}/lib/ca-bundle.crt ${destroot}${ca_bundle_dir}/curl-ca-bundle.crt
246        ln -s ${ca_bundle_dir}/curl-ca-bundle.crt ${destroot}${openssl_dir}/cert.pem
247    }
248
249    livecheck.type              regexm
250    livecheck.url               http://hg.mozilla.org/mozilla-central/log/tip/${certdata_path}
251    livecheck.version           ${certdata_version}
252    livecheck.regex             {/rev/([0-9a-f]+)"}
253}
Note: See TracBrowser for help on using the repository browser.