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