diff options
Diffstat (limited to 'meta/recipes-support/curl/curl_8.14.1.bb')
-rw-r--r-- | meta/recipes-support/curl/curl_8.14.1.bb | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/meta/recipes-support/curl/curl_8.14.1.bb b/meta/recipes-support/curl/curl_8.14.1.bb new file mode 100644 index 0000000000..08ad9cdb17 --- /dev/null +++ b/meta/recipes-support/curl/curl_8.14.1.bb | |||
@@ -0,0 +1,171 @@ | |||
1 | SUMMARY = "Command line tool and library for client-side URL transfers" | ||
2 | DESCRIPTION = "It uses URL syntax to transfer data to and from servers. \ | ||
3 | curl is a widely used because of its ability to be flexible and complete \ | ||
4 | complex tasks. For example, you can use curl for things like user authentication, \ | ||
5 | HTTP post, SSL connections, proxy support, FTP uploads, and more!" | ||
6 | HOMEPAGE = "https://curl.se/" | ||
7 | BUGTRACKER = "https://github.com/curl/curl/issues" | ||
8 | SECTION = "console/network" | ||
9 | LICENSE = "curl" | ||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=72f4e9890e99e68d77b7e40703d789b8" | ||
11 | |||
12 | SRC_URI = " \ | ||
13 | https://curl.se/download/${BP}.tar.xz \ | ||
14 | file://run-ptest \ | ||
15 | file://disable-tests \ | ||
16 | file://no-test-timeout.patch \ | ||
17 | " | ||
18 | |||
19 | SRC_URI:append:class-nativesdk = " \ | ||
20 | file://environment.d-curl.sh \ | ||
21 | " | ||
22 | |||
23 | SRC_URI[sha256sum] = "f4619a1e2474c4bbfedc88a7c2191209c8334b48fa1f4e53fd584cc12e9120dd" | ||
24 | |||
25 | # Curl has used many names over the years... | ||
26 | CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl" | ||
27 | CVE_STATUS[CVE-2024-32928] = "ignored: CURLOPT_SSL_VERIFYPEER was disabled on google cloud services causing a potential man in the middle attack" | ||
28 | |||
29 | inherit autotools pkgconfig binconfig multilib_header ptest | ||
30 | |||
31 | COMMON_PACKAGECONFIG = "basic-auth bearer-auth digest-auth ipfs negotiate-auth openssl proxy threaded-resolver verbose zlib" | ||
32 | PACKAGECONFIG ??= "${COMMON_PACKAGECONFIG} ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws libidn" | ||
33 | PACKAGECONFIG:class-native = "${COMMON_PACKAGECONFIG} ipv6" | ||
34 | PACKAGECONFIG:class-nativesdk = "${COMMON_PACKAGECONFIG} ipv6" | ||
35 | |||
36 | # 'ares' and 'threaded-resolver' are mutually exclusive | ||
37 | PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" | ||
38 | PACKAGECONFIG[aws] = "--enable-aws,--disable-aws" | ||
39 | PACKAGECONFIG[basic-auth] = "--enable-basic-auth,--disable-basic-auth" | ||
40 | PACKAGECONFIG[bearer-auth] = "--enable-bearer-auth,--disable-bearer-auth" | ||
41 | PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" | ||
42 | PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" | ||
43 | # Don't use this in production | ||
44 | PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" | ||
45 | PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," | ||
46 | PACKAGECONFIG[digest-auth] = "--enable-digest-auth,--disable-digest-auth" | ||
47 | PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" | ||
48 | PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," | ||
49 | PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," | ||
50 | PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," | ||
51 | PACKAGECONFIG[ipfs] = "--enable-ipfs,--disable-ipfs," | ||
52 | PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth" | ||
53 | PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" | ||
54 | PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" | ||
55 | PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap" | ||
56 | PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl" | ||
57 | PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" | ||
58 | PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" | ||
59 | PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" | ||
60 | PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt," | ||
61 | PACKAGECONFIG[negotiate-auth] = "--enable-negotiate-auth,--disable-negotiate-auth" | ||
62 | PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" | ||
63 | PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" | ||
64 | PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," | ||
65 | PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," | ||
66 | PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" | ||
67 | PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," | ||
68 | PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," | ||
69 | PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," | ||
70 | PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," | ||
71 | PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," | ||
72 | PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" | ||
73 | PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" | ||
74 | PACKAGECONFIG[websockets] = "--enable-websockets,--disable-websockets" | ||
75 | PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" | ||
76 | PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" | ||
77 | |||
78 | EXTRA_OECONF = " \ | ||
79 | --disable-libcurl-option \ | ||
80 | --without-libpsl \ | ||
81 | --enable-optimize \ | ||
82 | ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \ | ||
83 | WATT_ROOT=${STAGING_DIR_TARGET}${prefix} \ | ||
84 | " | ||
85 | EXTRA_OECONF:append:class-target = " \ | ||
86 | --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ | ||
87 | " | ||
88 | |||
89 | fix_absolute_paths () { | ||
90 | # cleanup buildpaths from curl-config | ||
91 | sed -i \ | ||
92 | -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ | ||
93 | -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ | ||
94 | -e 's|${DEBUG_PREFIX_MAP}||g' \ | ||
95 | -e 's|${@" ".join(d.getVar("DEBUG_PREFIX_MAP").split())}||g' \ | ||
96 | ${D}${bindir}/curl-config | ||
97 | } | ||
98 | |||
99 | do_install:append:class-target() { | ||
100 | fix_absolute_paths | ||
101 | } | ||
102 | |||
103 | do_install:append:class-nativesdk() { | ||
104 | fix_absolute_paths | ||
105 | |||
106 | mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d | ||
107 | install -m 644 ${UNPACKDIR}/environment.d-curl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/curl.sh | ||
108 | } | ||
109 | |||
110 | do_compile_ptest() { | ||
111 | oe_runmake -C ${B}/tests | ||
112 | } | ||
113 | |||
114 | do_install_ptest() { | ||
115 | install -d ${D}${PTEST_PATH}/tests | ||
116 | cp ${S}/tests/*.p[lmy] ${D}${PTEST_PATH}/tests/ | ||
117 | |||
118 | install -d ${D}${PTEST_PATH}/tests/libtest | ||
119 | for name in $(makefile-getvar ${B}/tests/libtest/Makefile noinst_PROGRAMS noinst_LTLIBRARIES); do | ||
120 | ${B}/libtool --mode=install install ${B}/tests/libtest/$name ${D}${PTEST_PATH}/tests/libtest | ||
121 | done | ||
122 | rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la | ||
123 | |||
124 | install -d ${D}${PTEST_PATH}/tests/server | ||
125 | for name in $(makefile-getvar ${B}/tests/server/Makefile noinst_PROGRAMS); do | ||
126 | ${B}/libtool --mode=install install ${B}/tests/server/$name ${D}${PTEST_PATH}/tests/server | ||
127 | done | ||
128 | |||
129 | install -d ${D}${PTEST_PATH}/src | ||
130 | install -m 755 ${B}/src/curlinfo ${D}${PTEST_PATH}/src | ||
131 | |||
132 | cp -r ${S}/tests/data ${D}${PTEST_PATH}/tests/ | ||
133 | |||
134 | # More tests that we disable for automated QA as they're not reliable | ||
135 | cat ${UNPACKDIR}/disable-tests >>${D}${PTEST_PATH}/tests/data/DISABLED | ||
136 | } | ||
137 | |||
138 | DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' openssl-native', '', d)}" | ||
139 | |||
140 | RDEPENDS:${PN}-ptest += " \ | ||
141 | locale-base-en-us \ | ||
142 | perl-module-b \ | ||
143 | perl-module-base \ | ||
144 | perl-module-cwd \ | ||
145 | perl-module-digest \ | ||
146 | perl-module-digest-md5 \ | ||
147 | perl-module-digest-sha \ | ||
148 | perl-module-file-basename \ | ||
149 | perl-module-file-spec \ | ||
150 | perl-module-file-temp \ | ||
151 | perl-module-i18n-langinfo \ | ||
152 | perl-module-io-socket \ | ||
153 | perl-module-ipc-open2 \ | ||
154 | perl-module-list-util \ | ||
155 | perl-module-memoize \ | ||
156 | perl-module-storable \ | ||
157 | perl-module-time-hires \ | ||
158 | " | ||
159 | |||
160 | PACKAGES =+ "lib${BPN}" | ||
161 | |||
162 | FILES:lib${BPN} = "${libdir}/lib*.so.*" | ||
163 | RRECOMMENDS:lib${BPN} += "ca-certificates" | ||
164 | |||
165 | FILES:${PN} += "${datadir}/zsh" | ||
166 | FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/curl.sh" | ||
167 | |||
168 | inherit multilib_script | ||
169 | MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" | ||
170 | |||
171 | BBCLASSEXTEND = "native nativesdk" | ||