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, 23 Sep 2021 11:35:55
Message-Id: 1632396948.1e54ea9820fe88d95c5e619092d732e5a26adae3.blueness@gentoo
1 commit: 1e54ea9820fe88d95c5e619092d732e5a26adae3
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 23 11:35:31 2021 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 23 11:35:48 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e54ea98
7
8 net-misc/curl: version bump to 7.79.1, bug #813270
9
10 Package-Manager: Portage-3.0.20, Repoman-3.0.3
11 Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
12
13 net-misc/curl/Manifest | 1 +
14 net-misc/curl/curl-7.79.1.ebuild | 290 +++++++++++++++++++++++++++++++++++++++
15 2 files changed, 291 insertions(+)
16
17 diff --git a/net-misc/curl/Manifest b/net-misc/curl/Manifest
18 index b1b6f556d43..6ee95e4498c 100644
19 --- a/net-misc/curl/Manifest
20 +++ b/net-misc/curl/Manifest
21 @@ -1,2 +1,3 @@
22 DIST curl-7.78.0.tar.xz 2440640 BLAKE2B 0422071ce22d38b89652c702989674a2257dd18b05004245c4f2d7494ccdd24b5b52f330629ce6a411a059d5990e8c879cbbdf23d873b881141f9d2b9ad07f7f SHA512 f72e822a0b5e28320ef547c7a441c07f3b4870579a70ab4c428751baba435a1385cb89a22b9ed4b84a7fafecf620f155911e4131e3463ec1bdad80ecde47bb7a
23 DIST curl-7.79.0.tar.xz 2463072 BLAKE2B c3a8a60d3c04965272b1a439a4719cfaca903daaecd6265869b9188d1b6b13be63817b9daa77260673d67330baa3d9c2d917274f939cdadc467ac64d8fcf3203 SHA512 68bccba61f18de9f94c311b0d92cfa6572bb7e55e8773917c13b25203164a5a9f4ef6b8ad84a14d3d5dcb286271bf18c3dd84c4ca353866763c726f9defce808
24 +DIST curl-7.79.1.tar.xz 2465212 BLAKE2B 2b694f96661c0aa0a136fdae4159e0ca8e811557c5a1f0b47cccaaad122f3ddbdaa6450c3835290955baf9357e872ee105a8cb0912064af3d3e38d16beb124ad SHA512 1edb71647a7f4dbb070baf1a019b4751aefeda793ff523c504410bb5cc74e5bffc52f20dd889697d1585f9ca3c4e81b1a9caadd182c30c8358ffd25f33e4db4d
25
26 diff --git a/net-misc/curl/curl-7.79.1.ebuild b/net-misc/curl/curl-7.79.1.ebuild
27 new file mode 100644
28 index 00000000000..2859ae2efd9
29 --- /dev/null
30 +++ b/net-misc/curl/curl-7.79.1.ebuild
31 @@ -0,0 +1,290 @@
32 +# Copyright 1999-2021 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI="7"
36 +
37 +inherit autotools prefix multilib-minimal
38 +
39 +DESCRIPTION="A Client that groks URLs"
40 +HOMEPAGE="https://curl.haxx.se/"
41 +SRC_URI="https://curl.haxx.se/download/${P}.tar.xz"
42 +
43 +LICENSE="curl"
44 +SLOT="0"
45 +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"
46 +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 winssl zstd"
47 +IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls curl_ssl_nss +curl_ssl_openssl curl_ssl_winssl"
48 +IUSE+=" nghttp3 quiche"
49 +IUSE+=" elibc_Winnt"
50 +
51 +# c-ares must be disabled for threads
52 +# only one default ssl provider can be enabled
53 +REQUIRED_USE="
54 + winssl? ( elibc_Winnt )
55 + threads? ( !adns )
56 + ssl? (
57 + ^^ (
58 + curl_ssl_gnutls
59 + curl_ssl_mbedtls
60 + curl_ssl_nss
61 + curl_ssl_openssl
62 + curl_ssl_winssl
63 + )
64 + )"
65 +
66 +# lead to lots of false negatives, bug #285669
67 +RESTRICT="!test? ( test )"
68 +
69 +RDEPEND="ldap? ( net-nds/openldap[${MULTILIB_USEDEP}] )
70 + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] )
71 + ssl? (
72 + gnutls? (
73 + net-libs/gnutls:0=[static-libs?,${MULTILIB_USEDEP}]
74 + dev-libs/nettle:0=[${MULTILIB_USEDEP}]
75 + app-misc/ca-certificates
76 + )
77 + mbedtls? (
78 + net-libs/mbedtls:0=[${MULTILIB_USEDEP}]
79 + app-misc/ca-certificates
80 + )
81 + openssl? (
82 + dev-libs/openssl:0=[sslv3(-)=,static-libs?,${MULTILIB_USEDEP}]
83 + )
84 + nss? (
85 + dev-libs/nss:0[${MULTILIB_USEDEP}]
86 + app-misc/ca-certificates
87 + )
88 + )
89 + http2? ( net-libs/nghttp2:=[${MULTILIB_USEDEP}] )
90 + nghttp3? (
91 + net-libs/nghttp3[${MULTILIB_USEDEP}]
92 + net-libs/ngtcp2[ssl,${MULTILIB_USEDEP}]
93 + )
94 + quiche? ( >=net-libs/quiche-0.3.0[${MULTILIB_USEDEP}] )
95 + idn? ( net-dns/libidn2:0=[static-libs?,${MULTILIB_USEDEP}] )
96 + adns? ( net-dns/c-ares:0=[${MULTILIB_USEDEP}] )
97 + kerberos? ( >=virtual/krb5-0-r1[${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 + eprefixify curl-config.in
139 + eautoreconf
140 +}
141 +
142 +multilib_src_configure() {
143 + # We make use of the fact that later flags override earlier ones
144 + # So start with all ssl providers off until proven otherwise
145 + # TODO: in the future, we may want to add wolfssl (https://www.wolfssl.com/)
146 + local myconf=()
147 +
148 + myconf+=( --without-gnutls --without-mbedtls --without-nss --without-polarssl --without-ssl --without-winssl )
149 + myconf+=( --without-ca-fallback --with-ca-bundle="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt )
150 + #myconf+=( --without-default-ssl-backend )
151 + if use ssl ; then
152 + if use gnutls || use curl_ssl_gnutls; then
153 + einfo "SSL provided by gnutls"
154 + myconf+=( --with-gnutls --with-nettle )
155 + fi
156 + if use mbedtls || use curl_ssl_mbedtls; then
157 + einfo "SSL provided by mbedtls"
158 + myconf+=( --with-mbedtls )
159 + fi
160 + if use nss || use curl_ssl_nss; then
161 + einfo "SSL provided by nss"
162 + myconf+=( --with-nss )
163 + fi
164 + if use openssl || use curl_ssl_openssl; then
165 + einfo "SSL provided by openssl"
166 + myconf+=( --with-ssl --with-ca-path="${EPREFIX}"/etc/ssl/certs )
167 + fi
168 + if use winssl || use curl_ssl_winssl; then
169 + einfo "SSL provided by Windows"
170 + myconf+=( --with-winssl )
171 + fi
172 +
173 + if use curl_ssl_gnutls; then
174 + einfo "Default SSL provided by gnutls"
175 + myconf+=( --with-default-ssl-backend=gnutls )
176 + elif use curl_ssl_mbedtls; then
177 + einfo "Default SSL provided by mbedtls"
178 + myconf+=( --with-default-ssl-backend=mbedtls )
179 + elif use curl_ssl_nss; then
180 + einfo "Default SSL provided by nss"
181 + myconf+=( --with-default-ssl-backend=nss )
182 + elif use curl_ssl_openssl; then
183 + einfo "Default SSL provided by openssl"
184 + myconf+=( --with-default-ssl-backend=openssl )
185 + elif use curl_ssl_winssl; then
186 + einfo "Default SSL provided by Windows"
187 + myconf+=( --with-default-ssl-backend=winssl )
188 + else
189 + eerror "We can't be here because of REQUIRED_USE."
190 + fi
191 +
192 + else
193 + einfo "SSL disabled"
194 + fi
195 +
196 + # These configuration options are organized alphabetically
197 + # within each category. This should make it easier if we
198 + # ever decide to make any of them contingent on USE flags:
199 + # 1) protocols first. To see them all do
200 + # 'grep SUPPORT_PROTOCOLS configure.ac'
201 + # 2) --enable/disable options second.
202 + # 'grep -- --enable configure | grep Check | awk '{ print $4 }' | sort
203 + # 3) --with/without options third.
204 + # grep -- --with configure | grep Check | awk '{ print $4 }' | sort
205 +
206 + myconf+=(
207 + $(use_enable alt-svc)
208 + --enable-crypto-auth
209 + --enable-dict
210 + --disable-ech
211 + --enable-file
212 + $(use_enable ftp)
213 + $(use_enable gopher)
214 + $(use_enable hsts)
215 + --enable-http
216 + $(use_enable imap)
217 + $(use_enable ldap)
218 + $(use_enable ldap ldaps)
219 + --enable-ntlm
220 + --disable-ntlm-wb
221 + $(use_enable pop3)
222 + --enable-rt
223 + --enable-rtsp
224 + $(use_enable samba smb)
225 + $(use_with ssh libssh2)
226 + $(use_enable smtp)
227 + $(use_enable telnet)
228 + $(use_enable tftp)
229 + --enable-tls-srp
230 + $(use_enable adns ares)
231 + --enable-cookies
232 + --enable-dateparse
233 + --enable-dnsshuffle
234 + --enable-doh
235 + --enable-hidden-symbols
236 + --enable-http-auth
237 + $(use_enable ipv6)
238 + --enable-largefile
239 + --enable-manual
240 + --enable-mime
241 + --enable-netrc
242 + $(use_enable progress-meter)
243 + --enable-proxy
244 + --disable-sspi
245 + $(use_enable static-libs static)
246 + $(use_enable threads threaded-resolver)
247 + $(use_enable threads pthreads)
248 + --disable-versioned-symbols
249 + --without-amissl
250 + --without-bearssl
251 + $(use_with brotli)
252 + --without-cyassl
253 + --without-fish-functions-dir
254 + $(use_with http2 nghttp2)
255 + --without-hyper
256 + $(use_with idn libidn2)
257 + $(use_with kerberos gssapi "${EPREFIX}"/usr)
258 + --without-libgsasl
259 + --without-libpsl
260 + $(use_with nghttp3)
261 + $(use_with nghttp3 ngtcp2)
262 + $(use_with quiche)
263 + $(use_with rtmp librtmp)
264 + --without-rustls
265 + --without-schannel
266 + --without-secure-transport
267 + --without-spnego
268 + --without-winidn
269 + --without-wolfssl
270 + --with-zlib
271 + $(use_with zstd)
272 + )
273 +
274 + ECONF_SOURCE="${S}" \
275 + econf "${myconf[@]}"
276 +
277 + if ! multilib_is_native_abi; then
278 + # avoid building the client
279 + sed -i -e '/SUBDIRS/s:src::' Makefile || die
280 + sed -i -e '/SUBDIRS/s:scripts::' Makefile || die
281 + fi
282 +
283 + # Fix up the pkg-config file to be more robust.
284 + # https://github.com/curl/curl/issues/864
285 + local priv=() libs=()
286 + # We always enable zlib.
287 + libs+=( "-lz" )
288 + priv+=( "zlib" )
289 + if use http2; then
290 + libs+=( "-lnghttp2" )
291 + priv+=( "libnghttp2" )
292 + fi
293 + if use quiche; then
294 + libs+=( "-lquiche" )
295 + priv+=( "quiche" )
296 + fi
297 + if use nghttp3; then
298 + libs+=( "-lnghttp3" "-lngtcp2" )
299 + priv+=( "libnghttp3" "-libtcp2" )
300 + fi
301 + if use ssl && use curl_ssl_openssl; then
302 + libs+=( "-lssl" "-lcrypto" )
303 + priv+=( "openssl" )
304 + fi
305 + grep -q Requires.private libcurl.pc && die "need to update ebuild"
306 + libs=$(printf '|%s' "${libs[@]}")
307 + sed -i -r \
308 + -e "/^Libs.private/s:(${libs#|})( |$)::g" \
309 + libcurl.pc || die
310 + echo "Requires.private: ${priv[*]}" >> libcurl.pc
311 +}
312 +
313 +multilib_src_test() {
314 + multilib_is_native_abi && default_src_test
315 +}
316 +
317 +multilib_src_install_all() {
318 + einstalldocs
319 + find "${ED}" -type f -name '*.la' -delete || die
320 + rm -rf "${ED}"/etc/ || die
321 +}