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: Tue, 03 May 2022 03:19:17
Message-Id: 1651547927.25f5af6ec754e7e2f1e9d9c60e1196dfa42eb59f.sam@gentoo
1 commit: 25f5af6ec754e7e2f1e9d9c60e1196dfa42eb59f
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 3 03:18:43 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue May 3 03:18:47 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25f5af6e
7
8 net-misc/curl: add 7.83.0
9
10 Now with verbose tests & disabled valgrind (unreliable on various arches
11 and within sandbox).
12
13 Bug: https://bugs.gentoo.org/841302
14 Closes: https://bugs.gentoo.org/739738
15 Signed-off-by: Sam James <sam <AT> gentoo.org>
16
17 net-misc/curl/Manifest | 2 +
18 net-misc/curl/curl-7.83.0.ebuild | 287 +++++++++++++++++++++++++++++++++++++++
19 2 files changed, 289 insertions(+)
20
21 diff --git a/net-misc/curl/Manifest b/net-misc/curl/Manifest
22 index 8478ecaaa8d5..2d24c0dc1752 100644
23 --- a/net-misc/curl/Manifest
24 +++ b/net-misc/curl/Manifest
25 @@ -6,3 +6,5 @@ DIST curl-7.81.0.tar.xz 2486388 BLAKE2B bf8a3a03564648a9d7a5b4e7a523d840230f0323
26 DIST curl-7.81.0.tar.xz.asc 488 BLAKE2B 9280f10b14ddd95a1405fda79f8c51528c91c5e86b8f90d16d20d7f11d212e6e4391377eed971d0b0b27f5f4692c702e9d7a11705f0558ad39df38608d6a0648 SHA512 ca32a639900a9f8211005227dfb594f809c5ca5ec1eb87e944ef33cca60e4844f5b6ebe49de79fba53068e5dee9652b1d43a7d3a74e05419a2ffb5b40dab8176
27 DIST curl-7.82.0.tar.xz 2446764 BLAKE2B 838accae4a45c090909cff91477a023789a79535691c80e507fd9e9712861b0c08e25ecd26079cb8ac8946cdf429a50991a7521e7b550b43c19e455625bc0750 SHA512 a977d69360d1793f8872096a21f5c0271e7ad145cd69ad45f4056a0657772f0f298b04bdb41aefd4ea5c4478352c60d80b5a118642280a07a7198aa80ffb1d57
28 DIST curl-7.82.0.tar.xz.asc 488 BLAKE2B 9da4ea63671621df956aa5dc191cfc6c8d2a8b1958416ca58ffc04d43ed65b89244968588879e6bd3299ca8f60b1eccb34dede012f8a2a37acf3ca34021da958 SHA512 1f14d8ab55360ba735dff916369ee318e98767718394654ce9443b6013509b6d3ed5597685b142e9823cec7496373b709a8656515d66039c06783879655151fe
29 +DIST curl-7.83.0.tar.xz 2472560 BLAKE2B 0669f40265a56e7549e8038ed8421680d7264bff44dcc0692cf9f5248621311be5e228314710149bf9d2ccbe739f929039e04402c1d04a1362d0bbf08cb8cdc7 SHA512 be02bb2a8a3140eff3a9046f27cd4f872ed9ddaa644af49e56e5ef7dfec84a15b01db133469269437cddc937eda73953fa8c51bb758f7e98873822cd2290d3a9
30 +DIST curl-7.83.0.tar.xz.asc 488 BLAKE2B a8f6dcf00f1b01b457a7eecc8364538393f414df60757f3664709c62b6007023a34ddf4ecb4688734e396031d30905b490dd0c115f09a9428db6a6be97cdf72c SHA512 8fb90f9692f4fdb82ea49f0e5151219b2334da5d3910f28e787bb688fb055b8b028ccf75cdcc15cd9f86d780d479f88f902fef7d7b9e007a4b849cb25c6c13cc
31
32 diff --git a/net-misc/curl/curl-7.83.0.ebuild b/net-misc/curl/curl-7.83.0.ebuild
33 new file mode 100644
34 index 000000000000..08bd291889b6
35 --- /dev/null
36 +++ b/net-misc/curl/curl-7.83.0.ebuild
37 @@ -0,0 +1,287 @@
38 +# Copyright 1999-2022 Gentoo Authors
39 +# Distributed under the terms of the GNU General Public License v2
40 +
41 +EAPI="8"
42 +
43 +inherit autotools prefix multilib-minimal verify-sig
44 +
45 +DESCRIPTION="A Client that groks URLs"
46 +HOMEPAGE="https://curl.haxx.se/"
47 +SRC_URI="https://curl.haxx.se/download/${P}.tar.xz
48 + verify-sig? ( https://curl.haxx.se/download/${P}.tar.xz.asc )"
49 +
50 +LICENSE="curl"
51 +SLOT="0"
52 +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"
53 +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"
54 +IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls curl_ssl_nss +curl_ssl_openssl"
55 +IUSE+=" nghttp3 quiche"
56 +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/danielstenberg.asc
57 +
58 +# c-ares must be disabled for threads
59 +# only one default ssl provider can be enabled
60 +REQUIRED_USE="
61 + threads? ( !adns )
62 + ssl? (
63 + ^^ (
64 + curl_ssl_gnutls
65 + curl_ssl_mbedtls
66 + curl_ssl_nss
67 + curl_ssl_openssl
68 + )
69 + )"
70 +
71 +# lead to lots of false negatives, bug #285669
72 +RESTRICT="!test? ( test )"
73 +
74 +RDEPEND="ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
75 + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] )
76 + ssl? (
77 + gnutls? (
78 + net-libs/gnutls:0=[static-libs?,${MULTILIB_USEDEP}]
79 + dev-libs/nettle:0=[${MULTILIB_USEDEP}]
80 + app-misc/ca-certificates
81 + )
82 + mbedtls? (
83 + net-libs/mbedtls:0=[${MULTILIB_USEDEP}]
84 + app-misc/ca-certificates
85 + )
86 + openssl? (
87 + dev-libs/openssl:0=[sslv3(-)=,static-libs?,${MULTILIB_USEDEP}]
88 + )
89 + nss? (
90 + dev-libs/nss:0[${MULTILIB_USEDEP}]
91 + app-misc/ca-certificates
92 + )
93 + )
94 + http2? ( net-libs/nghttp2:=[${MULTILIB_USEDEP}] )
95 + nghttp3? (
96 + net-libs/nghttp3[${MULTILIB_USEDEP}]
97 + net-libs/ngtcp2[ssl,${MULTILIB_USEDEP}]
98 + )
99 + quiche? ( >=net-libs/quiche-0.3.0[${MULTILIB_USEDEP}] )
100 + idn? ( net-dns/libidn2:0=[static-libs?,${MULTILIB_USEDEP}] )
101 + adns? ( net-dns/c-ares:0=[${MULTILIB_USEDEP}] )
102 + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
103 + rtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
104 + ssh? ( net-libs/libssh2[${MULTILIB_USEDEP}] )
105 + sys-libs/zlib[${MULTILIB_USEDEP}]
106 + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
107 +
108 +# Do we need to enforce the same ssl backend for curl and rtmpdump? Bug #423303
109 +# rtmp? (
110 +# media-video/rtmpdump
111 +# curl_ssl_gnutls? ( media-video/rtmpdump[gnutls] )
112 +# curl_ssl_openssl? ( media-video/rtmpdump[-gnutls,ssl] )
113 +# )
114 +
115 +DEPEND="${RDEPEND}"
116 +BDEPEND="dev-lang/perl
117 + virtual/pkgconfig
118 + test? (
119 + sys-apps/diffutils
120 + )
121 + verify-sig? ( sec-keys/openpgp-keys-danielstenberg )"
122 +
123 +DOCS=( CHANGES README docs/{FEATURES.md,INTERNALS.md,FAQ,BUGS.md,CONTRIBUTE.md} )
124 +
125 +MULTILIB_WRAPPED_HEADERS=(
126 + /usr/include/curl/curlbuild.h
127 +)
128 +
129 +MULTILIB_CHOST_TOOLS=(
130 + /usr/bin/curl-config
131 +)
132 +
133 +PATCHES=(
134 + "${FILESDIR}"/${PN}-7.30.0-prefix.patch
135 + "${FILESDIR}"/${PN}-respect-cflags-3.patch
136 +)
137 +
138 +src_prepare() {
139 + default
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-ssl )
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 --with-nss-deprecated )
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 +
172 + if use curl_ssl_gnutls; then
173 + einfo "Default SSL provided by gnutls"
174 + myconf+=( --with-default-ssl-backend=gnutls )
175 + elif use curl_ssl_mbedtls; then
176 + einfo "Default SSL provided by mbedtls"
177 + myconf+=( --with-default-ssl-backend=mbedtls )
178 + elif use curl_ssl_nss; then
179 + einfo "Default SSL provided by nss"
180 + myconf+=( --with-default-ssl-backend=nss )
181 + elif use curl_ssl_openssl; then
182 + einfo "Default SSL provided by openssl"
183 + myconf+=( --with-default-ssl-backend=openssl )
184 + else
185 + eerror "We can't be here because of REQUIRED_USE."
186 + fi
187 +
188 + else
189 + einfo "SSL disabled"
190 + fi
191 +
192 + # These configuration options are organized alphabetically
193 + # within each category. This should make it easier if we
194 + # ever decide to make any of them contingent on USE flags:
195 + # 1) protocols first. To see them all do
196 + # 'grep SUPPORT_PROTOCOLS configure.ac'
197 + # 2) --enable/disable options second.
198 + # 'grep -- --enable configure | grep Check | awk '{ print $4 }' | sort
199 + # 3) --with/without options third.
200 + # grep -- --with configure | grep Check | awk '{ print $4 }' | sort
201 +
202 + myconf+=(
203 + $(use_enable alt-svc)
204 + --enable-crypto-auth
205 + --enable-dict
206 + --disable-ech
207 + --enable-file
208 + $(use_enable ftp)
209 + $(use_enable gopher)
210 + $(use_enable hsts)
211 + --enable-http
212 + $(use_enable imap)
213 + $(use_enable ldap)
214 + $(use_enable ldap ldaps)
215 + --enable-ntlm
216 + --disable-ntlm-wb
217 + $(use_enable pop3)
218 + --enable-rt
219 + --enable-rtsp
220 + $(use_enable samba smb)
221 + $(use_with ssh libssh2)
222 + $(use_enable smtp)
223 + $(use_enable telnet)
224 + $(use_enable tftp)
225 + --enable-tls-srp
226 + $(use_enable adns ares)
227 + --enable-cookies
228 + --enable-dateparse
229 + --enable-dnsshuffle
230 + --enable-doh
231 + --enable-symbol-hiding
232 + --enable-http-auth
233 + $(use_enable ipv6)
234 + --enable-largefile
235 + --enable-manual
236 + --enable-mime
237 + --enable-netrc
238 + $(use_enable progress-meter)
239 + --enable-proxy
240 + --disable-sspi
241 + $(use_enable static-libs static)
242 + $(use_enable threads threaded-resolver)
243 + $(use_enable threads pthreads)
244 + --disable-versioned-symbols
245 + --without-amissl
246 + --without-bearssl
247 + $(use_with brotli)
248 + --without-fish-functions-dir
249 + $(use_with http2 nghttp2)
250 + --without-hyper
251 + $(use_with idn libidn2)
252 + $(use_with kerberos gssapi "${EPREFIX}"/usr)
253 + --without-libgsasl
254 + --without-libpsl
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 +}