xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-support/curl/curl_7.82.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1SUMMARY = "Command line tool and library for client-side URL transfers"
2DESCRIPTION = "It uses URL syntax to transfer data to and from servers. \
3curl is a widely used because of its ability to be flexible and complete \
4complex tasks. For example, you can use curl for things like user authentication, \
5HTTP post, SSL connections, proxy support, FTP uploads, and more!"
6HOMEPAGE = "https://curl.se/"
7BUGTRACKER = "https://github.com/curl/curl/issues"
8SECTION = "console/network"
9LICENSE = "curl"
10LIC_FILES_CHKSUM = "file://COPYING;md5=190c514872597083303371684954f238"
11
12SRC_URI = "https://curl.se/download/${BP}.tar.xz \
13           file://CVE-2022-22576.patch \
14           file://CVE-2022-27775.patch \
15           file://CVE-2022-27776.patch \
16           file://CVE-2022-27774-1.patch \
17           file://CVE-2022-27774-2.patch \
18           file://CVE-2022-27774-3.patch \
19           file://CVE-2022-27774-4.patch \
20           file://CVE-2022-30115.patch \
21           file://CVE-2022-27780.patch \
22           file://CVE-2022-27781.patch \
23           file://CVE-2022-27779.patch \
24           file://CVE-2022-27782-1.patch \
25           file://CVE-2022-27782-2.patch \
26           file://0001-openssl-fix-CN-check-error-code.patch \
27           file://CVE-2022-32205.patch \
28           file://CVE-2022-32206.patch \
29           file://CVE-2022-32207.patch \
30           file://CVE-2022-32208.patch \
31           file://CVE-2022-35252.patch \
32           file://CVE-2022-32221.patch \
33           file://CVE-2022-42916.patch \
34           file://CVE-2022-42915.patch \
35           file://CVE-2022-43551.patch \
36           file://CVE-2022-43552.patch \
37           file://CVE-2023-23914_5-1.patch \
38           file://CVE-2023-23914_5-2.patch \
39           file://CVE-2023-23914_5-3.patch \
40           file://CVE-2023-23914_5-4.patch \
41           file://CVE-2023-23914_5-5.patch \
42           file://CVE-2023-23916.patch \
43           "
44SRC_URI[sha256sum] = "0aaa12d7bd04b0966254f2703ce80dd5c38dbbd76af0297d3d690cdce58a583c"
45
46# Curl has used many names over the years...
47CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
48
49inherit autotools pkgconfig binconfig multilib_header
50
51# Entropy source for random PACKAGECONFIG option
52RANDOM ?= "/dev/urandom"
53
54PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} libidn openssl proxy random threaded-resolver verbose zlib"
55PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
56PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
57
58# 'ares' and 'threaded-resolver' are mutually exclusive
59PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
60PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
61PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
62PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
63PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
64PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
65PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
66PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
67PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
68PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
69PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap"
70PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl"
71PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
72PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
73PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
74PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
75PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
76PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
77PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
78PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
79PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random"
80PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
81PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
82PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
83PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
84PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
85PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
86PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
87PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
88PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
89PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
90PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
91
92EXTRA_OECONF = " \
93    --disable-libcurl-option \
94    --disable-ntlm-wb \
95    --enable-crypto-auth \
96    --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
97    --without-libpsl \
98    --enable-debug \
99    --enable-optimize \
100    --disable-curldebug \
101    ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls nss openssl', d) == '') else ''} \
102"
103
104do_install:append:class-target() {
105	# cleanup buildpaths from curl-config
106	sed -i \
107	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
108	    -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
109	    -e 's|${DEBUG_PREFIX_MAP}||g' \
110	    -e 's|${@" ".join(d.getVar("DEBUG_PREFIX_MAP").split())}||g' \
111	    ${D}${bindir}/curl-config
112}
113
114PACKAGES =+ "lib${BPN}"
115
116FILES:lib${BPN} = "${libdir}/lib*.so.*"
117RRECOMMENDS:lib${BPN} += "ca-certificates"
118
119FILES:${PN} += "${datadir}/zsh"
120
121inherit multilib_script
122MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"
123
124BBCLASSEXTEND = "native nativesdk"
125