Gentoo Archives: gentoo-commits

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