Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/curl/
Date: Wed, 26 May 2021 09:57:38
Message-Id: 1622022879.165dd6597ef914e03559478024450ea84459372f.sam@gentoo
1 commit: 165dd6597ef914e03559478024450ea84459372f
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 26 09:54:26 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed May 26 09:54:39 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=165dd659
7
8 net-misc/curl: add 7.77.0
9
10 Bug: https://bugs.gentoo.org/792192
11 Signed-off-by: Sam James <sam <AT> gentoo.org>
12
13 net-misc/curl/Manifest | 1 +
14 net-misc/curl/curl-7.77.0.ebuild | 295 +++++++++++++++++++++++++++++++++++++++
15 2 files changed, 296 insertions(+)
16
17 diff --git a/net-misc/curl/Manifest b/net-misc/curl/Manifest
18 index 4c03138de9e..025d4d2bb17 100644
19 --- a/net-misc/curl/Manifest
20 +++ b/net-misc/curl/Manifest
21 @@ -1 +1,2 @@
22 DIST curl-7.76.1.tar.xz 2427636 BLAKE2B 56452871fbd998f0c9a5af86b3853ed1dfc956c39380e5da472b4f382db45926ac3aa9e395ae7d2812aac0f0f29bee28343218810a169beb592c5224e0a4f018 SHA512 5fe85d2e776789aa8117c57fe7648e375b7fa92d5ead5d69855f19ca9a2624d77a1f9ab91766ecb72bbc17e82862248cd07e48917884d6fd856b93fb00d83e28
23 +DIST curl-7.77.0.tar.xz 2439336 BLAKE2B 433b3179dcf2c3363514b72bf9c54286873d8e5559b33e543ba8f3e7df25a619c5be13a8aacb9361c4464b646af4d1fb214d4de57a17f3de7e8f379777214d13 SHA512 aef92a0e3f8ce8491b258a9a1c4dcea3c07c29b139a1f68f08619caa0295cfde76335d2dfb9cdf434525daea7dd05d8acd22f203f5ccc7735bd317964ec1da76
24
25 diff --git a/net-misc/curl/curl-7.77.0.ebuild b/net-misc/curl/curl-7.77.0.ebuild
26 new file mode 100644
27 index 00000000000..e28c3794c9a
28 --- /dev/null
29 +++ b/net-misc/curl/curl-7.77.0.ebuild
30 @@ -0,0 +1,295 @@
31 +# Copyright 1999-2021 Gentoo Authors
32 +# Distributed under the terms of the GNU General Public License v2
33 +
34 +EAPI="7"
35 +
36 +inherit autotools prefix multilib-minimal
37 +
38 +DESCRIPTION="A Client that groks URLs"
39 +HOMEPAGE="https://curl.haxx.se/"
40 +SRC_URI="https://curl.haxx.se/download/${P}.tar.xz"
41 +
42 +LICENSE="curl"
43 +SLOT="0"
44 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
45 +IUSE="adns alt-svc brotli +ftp gnutls gopher hsts +http2 idn +imap ipv6 kerberos ldap mbedtls metalink nss +openssl +pop3 +progress-meter rtmp samba +smtp ssh ssl sslv3 static-libs test telnet +tftp threads winssl zstd"
46 +IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls curl_ssl_nss +curl_ssl_openssl curl_ssl_winssl"
47 +IUSE+=" nghttp3 quiche"
48 +IUSE+=" elibc_Winnt"
49 +
50 +# c-ares must be disabled for threads
51 +# only one default ssl provider can be enabled
52 +REQUIRED_USE="
53 + winssl? ( elibc_Winnt )
54 + threads? ( !adns )
55 + ssl? (
56 + ^^ (
57 + curl_ssl_gnutls
58 + curl_ssl_mbedtls
59 + curl_ssl_nss
60 + curl_ssl_openssl
61 + curl_ssl_winssl
62 + )
63 + )"
64 +
65 +# lead to lots of false negatives, bug #285669
66 +RESTRICT="!test? ( test )"
67 +
68 +RDEPEND="ldap? ( net-nds/openldap[${MULTILIB_USEDEP}] )
69 + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] )
70 + ssl? (
71 + gnutls? (
72 + net-libs/gnutls:0=[static-libs?,${MULTILIB_USEDEP}]
73 + dev-libs/nettle:0=[${MULTILIB_USEDEP}]
74 + app-misc/ca-certificates
75 + )
76 + mbedtls? (
77 + net-libs/mbedtls:0=[${MULTILIB_USEDEP}]
78 + app-misc/ca-certificates
79 + )
80 + openssl? (
81 + dev-libs/openssl:0=[sslv3=,static-libs?,${MULTILIB_USEDEP}]
82 + )
83 + nss? (
84 + dev-libs/nss:0[${MULTILIB_USEDEP}]
85 + app-misc/ca-certificates
86 + )
87 + )
88 + http2? ( net-libs/nghttp2[${MULTILIB_USEDEP}] )
89 + nghttp3? (
90 + net-libs/nghttp3[${MULTILIB_USEDEP}]
91 + net-libs/ngtcp2[ssl,${MULTILIB_USEDEP}]
92 + )
93 + quiche? ( >=net-libs/quiche-0.3.0[${MULTILIB_USEDEP}] )
94 + idn? ( net-dns/libidn2:0=[static-libs?,${MULTILIB_USEDEP}] )
95 + adns? ( net-dns/c-ares:0[${MULTILIB_USEDEP}] )
96 + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
97 + metalink? ( >=media-libs/libmetalink-0.1.1[${MULTILIB_USEDEP}] )
98 + rtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
99 + ssh? ( net-libs/libssh2[${MULTILIB_USEDEP}] )
100 + sys-libs/zlib[${MULTILIB_USEDEP}]
101 + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
102 +
103 +# Do we need to enforce the same ssl backend for curl and rtmpdump? Bug #423303
104 +# rtmp? (
105 +# media-video/rtmpdump
106 +# curl_ssl_gnutls? ( media-video/rtmpdump[gnutls] )
107 +# curl_ssl_openssl? ( media-video/rtmpdump[-gnutls,ssl] )
108 +# )
109 +
110 +# ssl providers to be added:
111 +# fbopenssl $(use_with spnego)
112 +
113 +DEPEND="${RDEPEND}"
114 +BDEPEND="virtual/pkgconfig
115 + test? (
116 + sys-apps/diffutils
117 + dev-lang/perl
118 + )"
119 +
120 +DOCS=( CHANGES README docs/{FEATURES.md,INTERNALS.md,FAQ,BUGS.md,CONTRIBUTE.md} )
121 +
122 +MULTILIB_WRAPPED_HEADERS=(
123 + /usr/include/curl/curlbuild.h
124 +)
125 +
126 +MULTILIB_CHOST_TOOLS=(
127 + /usr/bin/curl-config
128 +)
129 +
130 +PATCHES=(
131 + "${FILESDIR}"/${PN}-7.30.0-prefix.patch
132 + "${FILESDIR}"/${PN}-respect-cflags-3.patch
133 +)
134 +
135 +src_prepare() {
136 + default
137 +
138 + sed -i '/LD_LIBRARY_PATH=/d' configure.ac || die #382241
139 + sed -i '/CURL_MAC_CFLAGS/d' configure.ac || die #637252
140 +
141 + eprefixify curl-config.in
142 + eautoreconf
143 +}
144 +
145 +multilib_src_configure() {
146 + # We make use of the fact that later flags override earlier ones
147 + # So start with all ssl providers off until proven otherwise
148 + # TODO: in the future, we may want to add wolfssl (https://www.wolfssl.com/)
149 + local myconf=()
150 +
151 + myconf+=( --without-gnutls --without-mbedtls --without-nss --without-polarssl --without-ssl --without-winssl )
152 + myconf+=( --without-ca-fallback --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt )
153 + #myconf+=( --without-default-ssl-backend )
154 + if use ssl ; then
155 + if use gnutls || use curl_ssl_gnutls; then
156 + einfo "SSL provided by gnutls"
157 + myconf+=( --with-gnutls --with-nettle )
158 + fi
159 + if use mbedtls || use curl_ssl_mbedtls; then
160 + einfo "SSL provided by mbedtls"
161 + myconf+=( --with-mbedtls )
162 + fi
163 + if use nss || use curl_ssl_nss; then
164 + einfo "SSL provided by nss"
165 + myconf+=( --with-nss )
166 + fi
167 + if use openssl || use curl_ssl_openssl; then
168 + einfo "SSL provided by openssl"
169 + myconf+=( --with-ssl --with-ca-path="${EPREFIX}"/etc/ssl/certs )
170 + fi
171 + if use winssl || use curl_ssl_winssl; then
172 + einfo "SSL provided by Windows"
173 + myconf+=( --with-winssl )
174 + fi
175 +
176 + if use curl_ssl_gnutls; then
177 + einfo "Default SSL provided by gnutls"
178 + myconf+=( --with-default-ssl-backend=gnutls )
179 + elif use curl_ssl_mbedtls; then
180 + einfo "Default SSL provided by mbedtls"
181 + myconf+=( --with-default-ssl-backend=mbedtls )
182 + elif use curl_ssl_nss; then
183 + einfo "Default SSL provided by nss"
184 + myconf+=( --with-default-ssl-backend=nss )
185 + elif use curl_ssl_openssl; then
186 + einfo "Default SSL provided by openssl"
187 + myconf+=( --with-default-ssl-backend=openssl )
188 + elif use curl_ssl_winssl; then
189 + einfo "Default SSL provided by Windows"
190 + myconf+=( --with-default-ssl-backend=winssl )
191 + else
192 + eerror "We can't be here because of REQUIRED_USE."
193 + fi
194 +
195 + else
196 + einfo "SSL disabled"
197 + fi
198 +
199 + # These configuration options are organized alphabetically
200 + # within each category. This should make it easier if we
201 + # ever decide to make any of them contingent on USE flags:
202 + # 1) protocols first. To see them all do
203 + # 'grep SUPPORT_PROTOCOLS configure.ac'
204 + # 2) --enable/disable options second.
205 + # 'grep -- --enable configure | grep Check | awk '{ print $4 }' | sort
206 + # 3) --with/without options third.
207 + # grep -- --with configure | grep Check | awk '{ print $4 }' | sort
208 +
209 + myconf+=(
210 + $(use_enable alt-svc)
211 + --enable-crypto-auth
212 + --enable-dict
213 + --disable-ech
214 + --enable-file
215 + $(use_enable ftp)
216 + $(use_enable gopher)
217 + $(use_enable hsts)
218 + --enable-http
219 + $(use_enable imap)
220 + $(use_enable ldap)
221 + $(use_enable ldap ldaps)
222 + --disable-ntlm-wb
223 + $(use_enable pop3)
224 + --enable-rt
225 + --enable-rtsp
226 + $(use_enable samba smb)
227 + $(use_with ssh libssh2)
228 + $(use_enable smtp)
229 + $(use_enable telnet)
230 + $(use_enable tftp)
231 + --enable-tls-srp
232 + $(use_enable adns ares)
233 + --enable-cookies
234 + --enable-dateparse
235 + --enable-dnsshuffle
236 + --enable-doh
237 + --enable-hidden-symbols
238 + --enable-http-auth
239 + $(use_enable ipv6)
240 + --enable-largefile
241 + --enable-manual
242 + --enable-mime
243 + --enable-netrc
244 + $(use_enable progress-meter)
245 + --enable-proxy
246 + --disable-sspi
247 + $(use_enable static-libs static)
248 + $(use_enable threads threaded-resolver)
249 + $(use_enable threads pthreads)
250 + --disable-versioned-symbols
251 + --without-amissl
252 + --without-bearssl
253 + $(use_with brotli)
254 + --without-cyassl
255 + --without-darwinssl
256 + --without-fish-functions-dir
257 + $(use_with http2 nghttp2)
258 + --without-hyper
259 + $(use_with idn libidn2)
260 + $(use_with kerberos gssapi "${EPREFIX}"/usr)
261 + $(use_with metalink libmetalink)
262 + --without-libgsasl
263 + --without-libpsl
264 + $(use_with nghttp3)
265 + $(use_with nghttp3 ngtcp2)
266 + $(use_with quiche)
267 + $(use_with rtmp librtmp)
268 + --without-rustls
269 + --without-schannel
270 + --without-secure-transport
271 + --without-spnego
272 + --without-winidn
273 + --without-wolfssl
274 + --with-zlib
275 + $(use_with zstd)
276 + )
277 +
278 + ECONF_SOURCE="${S}" \
279 + econf "${myconf[@]}"
280 +
281 + if ! multilib_is_native_abi; then
282 + # avoid building the client
283 + sed -i -e '/SUBDIRS/s:src::' Makefile || die
284 + sed -i -e '/SUBDIRS/s:scripts::' Makefile || die
285 + fi
286 +
287 + # Fix up the pkg-config file to be more robust.
288 + # https://github.com/curl/curl/issues/864
289 + local priv=() libs=()
290 + # We always enable zlib.
291 + libs+=( "-lz" )
292 + priv+=( "zlib" )
293 + if use http2; then
294 + libs+=( "-lnghttp2" )
295 + priv+=( "libnghttp2" )
296 + fi
297 + if use quiche; then
298 + libs+=( "-lquiche" )
299 + priv+=( "quiche" )
300 + fi
301 + if use nghttp3; then
302 + libs+=( "-lnghttp3" "-lngtcp2" )
303 + priv+=( "libnghttp3" "-libtcp2" )
304 + fi
305 + if use ssl && use curl_ssl_openssl; then
306 + libs+=( "-lssl" "-lcrypto" )
307 + priv+=( "openssl" )
308 + fi
309 + grep -q Requires.private libcurl.pc && die "need to update ebuild"
310 + libs=$(printf '|%s' "${libs[@]}")
311 + sed -i -r \
312 + -e "/^Libs.private/s:(${libs#|})( |$)::g" \
313 + libcurl.pc || die
314 + echo "Requires.private: ${priv[*]}" >> libcurl.pc
315 +}
316 +
317 +multilib_src_test() {
318 + multilib_is_native_abi && default_src_test
319 +}
320 +
321 +multilib_src_install_all() {
322 + einstalldocs
323 + find "${ED}" -type f -name '*.la' -delete || die
324 + rm -rf "${ED}"/etc/ || die
325 +}