summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/curl
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-support/curl')
-rw-r--r--meta/recipes-support/curl/curl/disable-tests41
-rw-r--r--meta/recipes-support/curl/curl/environment.d-curl.sh19
-rw-r--r--meta/recipes-support/curl/curl/no-test-timeout.patch2
-rw-r--r--meta/recipes-support/curl/curl/run-ptest10
-rw-r--r--meta/recipes-support/curl/curl_8.14.1.bb (renamed from meta/recipes-support/curl/curl_8.7.1.bb)72
5 files changed, 76 insertions, 68 deletions
diff --git a/meta/recipes-support/curl/curl/disable-tests b/meta/recipes-support/curl/curl/disable-tests
index 259576fd01..e69de29bb2 100644
--- a/meta/recipes-support/curl/curl/disable-tests
+++ b/meta/recipes-support/curl/curl/disable-tests
@@ -1,41 +0,0 @@
1# Intermittently fails e.g. https://autobuilder.yocto.io/pub/non-release/20231220-28/testresults/qemux86-64-ptest/curl.log
2# https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
3337
4# These CRL test (alt-avc) are failing
5356
6412
7413
8# These CRL tests are scanning docs
9971
10# Intermittently hangs e.g http://autobuilder.yocto.io/pub/non-release/20231228-18/testresults/qemux86-64-ptest/curl.log
111091
12# Intermittently hangs e.g https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
131096
14# These CRL tests are scanning docs
151119
161132
171135
181478
19# These CRL tests are scanning headers
201167
211477
22# These CRL tests are scanning man pages
231139
241140
251173
261177
27# This CRL test is looking for m4 files
281165
29# This CRL test is looking for src files
301185
31# This test is scanning the source tree
321222
33# These CRL tests need --libcurl option to be enabled
341279
351400
361401
371402
381403
391404
401405
411465
diff --git a/meta/recipes-support/curl/curl/environment.d-curl.sh b/meta/recipes-support/curl/curl/environment.d-curl.sh
new file mode 100644
index 0000000000..7c2971b3da
--- /dev/null
+++ b/meta/recipes-support/curl/curl/environment.d-curl.sh
@@ -0,0 +1,19 @@
1# Respect host env CURL_CA_BUNDLE/CURL_CA_PATH first, then auto-detected host cert, then cert in buildtools
2# CAFILE/CAPATH is auto-deteced when source buildtools
3if [ -z "$CURL_CA_PATH" ]; then
4 if [ -n "$CAFILE" ];then
5 export CURL_CA_BUNDLE="$CAFILE"
6 elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
7 export CURL_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
8 fi
9fi
10
11if [ -z "$CURL_CA_PATH" ]; then
12 if [ -n "$CAPATH" ];then
13 export CURL_CA_PATH="$CAPATH"
14 elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
15 export CURL_CA_PATH="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs"
16 fi
17fi
18
19export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} CURL_CA_BUNDLE CURL_CA_PATH"
diff --git a/meta/recipes-support/curl/curl/no-test-timeout.patch b/meta/recipes-support/curl/curl/no-test-timeout.patch
index 7122b6f043..5b901a6fe9 100644
--- a/meta/recipes-support/curl/curl/no-test-timeout.patch
+++ b/meta/recipes-support/curl/curl/no-test-timeout.patch
@@ -14,7 +14,7 @@ diff --git a/tests/servers.pm b/tests/servers.pm
14index d4472d5..9999938 100644 14index d4472d5..9999938 100644
15--- a/tests/servers.pm 15--- a/tests/servers.pm
16+++ b/tests/servers.pm 16+++ b/tests/servers.pm
17@@ -120,7 +120,7 @@ my $sshdverstr; # for socks server, ssh daemon version string 17@@ -124,7 +124,7 @@ my $sshdverstr; # for socks server, ssh daemon version string
18 my $sshderror; # for socks server, ssh daemon version error 18 my $sshderror; # for socks server, ssh daemon version error
19 my %doesntrun; # servers that don't work, identified by pidfile 19 my %doesntrun; # servers that don't work, identified by pidfile
20 my %PORT = (nolisten => 47); # port we use for a local non-listening service 20 my %PORT = (nolisten => 47); # port we use for a local non-listening service
diff --git a/meta/recipes-support/curl/curl/run-ptest b/meta/recipes-support/curl/curl/run-ptest
index 3d25f3d90b..597cf92dbb 100644
--- a/meta/recipes-support/curl/curl/run-ptest
+++ b/meta/recipes-support/curl/curl/run-ptest
@@ -7,5 +7,13 @@ cd tests
7# Use automake-style output 7# Use automake-style output
8# Run four tests in parallel 8# Run four tests in parallel
9# Print log output on failure 9# Print log output on failure
10
10# Don't run the flaky or timing dependent tests 11# Don't run the flaky or timing dependent tests
11./runtests.pl -a -n -am -j4 -p !flaky !timing-dependent 12# Until https://github.com/curl/curl/issues/13350 is resolved, don't run FTP tests
13# We don't enable --libcurl
14# Don't assume curl-config exists
15# We don't have the source tree
16./runtests.pl \
17 -a -c curl -vc curl -n -am -j4 -p \
18 !flaky !timing-dependent !FTP \
19 !--libcurl !curl-config !source\ analysis !checksrc !documentation
diff --git a/meta/recipes-support/curl/curl_8.7.1.bb b/meta/recipes-support/curl/curl_8.14.1.bb
index c6654bbad6..08ad9cdb17 100644
--- a/meta/recipes-support/curl/curl_8.7.1.bb
+++ b/meta/recipes-support/curl/curl_8.14.1.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "https://curl.se/"
7BUGTRACKER = "https://github.com/curl/curl/issues" 7BUGTRACKER = "https://github.com/curl/curl/issues"
8SECTION = "console/network" 8SECTION = "console/network"
9LICENSE = "curl" 9LICENSE = "curl"
10LIC_FILES_CHKSUM = "file://COPYING;md5=eed2e5088e1ac619c9a1c747da291d75" 10LIC_FILES_CHKSUM = "file://COPYING;md5=72f4e9890e99e68d77b7e40703d789b8"
11 11
12SRC_URI = " \ 12SRC_URI = " \
13 https://curl.se/download/${BP}.tar.xz \ 13 https://curl.se/download/${BP}.tar.xz \
@@ -15,19 +15,23 @@ SRC_URI = " \
15 file://disable-tests \ 15 file://disable-tests \
16 file://no-test-timeout.patch \ 16 file://no-test-timeout.patch \
17" 17"
18SRC_URI[sha256sum] = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd" 18
19SRC_URI:append:class-nativesdk = " \
20 file://environment.d-curl.sh \
21"
22
23SRC_URI[sha256sum] = "f4619a1e2474c4bbfedc88a7c2191209c8334b48fa1f4e53fd584cc12e9120dd"
19 24
20# Curl has used many names over the years... 25# Curl has used many names over the years...
21CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl" 26CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
27CVE_STATUS[CVE-2024-32928] = "ignored: CURLOPT_SSL_VERIFYPEER was disabled on google cloud services causing a potential man in the middle attack"
22 28
23inherit autotools pkgconfig binconfig multilib_header ptest 29inherit autotools pkgconfig binconfig multilib_header ptest
24 30
25# Entropy source for random PACKAGECONFIG option 31COMMON_PACKAGECONFIG = "basic-auth bearer-auth digest-auth ipfs negotiate-auth openssl proxy threaded-resolver verbose zlib"
26RANDOM ?= "/dev/urandom" 32PACKAGECONFIG ??= "${COMMON_PACKAGECONFIG} ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws libidn"
27 33PACKAGECONFIG:class-native = "${COMMON_PACKAGECONFIG} ipv6"
28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib" 34PACKAGECONFIG:class-nativesdk = "${COMMON_PACKAGECONFIG} ipv6"
29PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
30PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
31 35
32# 'ares' and 'threaded-resolver' are mutually exclusive 36# 'ares' and 'threaded-resolver' are mutually exclusive
33PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" 37PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
@@ -44,6 +48,7 @@ PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
44PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," 48PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
45PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," 49PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
46PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 50PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
51PACKAGECONFIG[ipfs] = "--enable-ipfs,--disable-ipfs,"
47PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth" 52PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
48PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" 53PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
49PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" 54PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
@@ -58,7 +63,6 @@ PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
58PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" 63PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
59PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," 64PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
60PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," 65PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
61PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random"
62PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" 66PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
63PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," 67PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
64PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," 68PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
@@ -67,16 +71,19 @@ PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
67PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," 71PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
68PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" 72PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
69PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" 73PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
74PACKAGECONFIG[websockets] = "--enable-websockets,--disable-websockets"
70PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" 75PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
71PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" 76PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
72 77
73EXTRA_OECONF = " \ 78EXTRA_OECONF = " \
74 --disable-libcurl-option \ 79 --disable-libcurl-option \
75 --disable-ntlm-wb \
76 --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
77 --without-libpsl \ 80 --without-libpsl \
78 --enable-optimize \ 81 --enable-optimize \
79 ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \ 82 ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
83 WATT_ROOT=${STAGING_DIR_TARGET}${prefix} \
84"
85EXTRA_OECONF:append:class-target = " \
86 --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
80" 87"
81 88
82fix_absolute_paths () { 89fix_absolute_paths () {
@@ -95,6 +102,9 @@ do_install:append:class-target() {
95 102
96do_install:append:class-nativesdk() { 103do_install:append:class-nativesdk() {
97 fix_absolute_paths 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
98} 108}
99 109
100do_compile_ptest() { 110do_compile_ptest() {
@@ -102,31 +112,43 @@ do_compile_ptest() {
102} 112}
103 113
104do_install_ptest() { 114do_install_ptest() {
105 cat ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED 115 install -d ${D}${PTEST_PATH}/tests
106 rm -f ${B}/tests/configurehelp.pm 116 cp ${S}/tests/*.p[lmy] ${D}${PTEST_PATH}/tests/
107 cp -rf ${B}/tests ${D}${PTEST_PATH} 117
108 rm -f ${D}${PTEST_PATH}/tests/libtest/.libs/libhostname.la 118 install -d ${D}${PTEST_PATH}/tests/libtest
109 rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la 119 for name in $(makefile-getvar ${B}/tests/libtest/Makefile noinst_PROGRAMS noinst_LTLIBRARIES); do
110 mv ${D}${PTEST_PATH}/tests/libtest/.libs/* ${D}${PTEST_PATH}/tests/libtest/ 120 ${B}/libtool --mode=install install ${B}/tests/libtest/$name ${D}${PTEST_PATH}/tests/libtest
111 mv ${D}${PTEST_PATH}/tests/libtest/libhostname.so ${D}${PTEST_PATH}/tests/libtest/.libs/ 121 done
112 mv ${D}${PTEST_PATH}/tests/http/clients/.libs/* ${D}${PTEST_PATH}/tests/http/clients/ 122 rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la
113 cp -rf ${S}/tests ${D}${PTEST_PATH} 123
114 find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete 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
115 install -d ${D}${PTEST_PATH}/src 129 install -d ${D}${PTEST_PATH}/src
116 ln -sf ${bindir}/curl ${D}${PTEST_PATH}/src/curl 130 install -m 755 ${B}/src/curlinfo ${D}${PTEST_PATH}/src
117 cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH} 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
118} 136}
119 137
138DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' openssl-native', '', d)}"
139
120RDEPENDS:${PN}-ptest += " \ 140RDEPENDS:${PN}-ptest += " \
121 bash \ 141 locale-base-en-us \
122 perl-module-b \ 142 perl-module-b \
123 perl-module-base \ 143 perl-module-base \
124 perl-module-cwd \ 144 perl-module-cwd \
125 perl-module-digest \ 145 perl-module-digest \
126 perl-module-digest-md5 \ 146 perl-module-digest-md5 \
147 perl-module-digest-sha \
127 perl-module-file-basename \ 148 perl-module-file-basename \
128 perl-module-file-spec \ 149 perl-module-file-spec \
129 perl-module-file-temp \ 150 perl-module-file-temp \
151 perl-module-i18n-langinfo \
130 perl-module-io-socket \ 152 perl-module-io-socket \
131 perl-module-ipc-open2 \ 153 perl-module-ipc-open2 \
132 perl-module-list-util \ 154 perl-module-list-util \
@@ -134,7 +156,6 @@ RDEPENDS:${PN}-ptest += " \
134 perl-module-storable \ 156 perl-module-storable \
135 perl-module-time-hires \ 157 perl-module-time-hires \
136" 158"
137RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us"
138 159
139PACKAGES =+ "lib${BPN}" 160PACKAGES =+ "lib${BPN}"
140 161
@@ -142,6 +163,7 @@ FILES:lib${BPN} = "${libdir}/lib*.so.*"
142RRECOMMENDS:lib${BPN} += "ca-certificates" 163RRECOMMENDS:lib${BPN} += "ca-certificates"
143 164
144FILES:${PN} += "${datadir}/zsh" 165FILES:${PN} += "${datadir}/zsh"
166FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/curl.sh"
145 167
146inherit multilib_script 168inherit multilib_script
147MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" 169MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"