diff mbox series

[v2] curl: Update from 8.2.1 to 8.3.0

Message ID 20230923172500.3425735-1-robert.joslyn@redrectangle.org
State Accepted, archived
Commit 148de08220c0ad390ec533e452cbaad7a9338204
Headers show
Series [v2] curl: Update from 8.2.1 to 8.3.0 | expand

Commit Message

Robert Joslyn Sept. 23, 2023, 5:17 p.m. UTC
From: Robert Joslyn <robert.joslyn@redrectangle.org>

NSS support was removed, so adjust PACKAGECONFIG options.

The --enable-crypto-auth option was removed and split into separate
options for basic-auth, bearer-auth, digest-auth, kerberos-auth,
negotiate-auth, and aws. Enable these new options since upstream enables
them by default.

Disable test 1279 since this requires libcurl and hangs the tests.

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
---
Changes from v1:
Enable aws authentication by default. Upstream enables it by default and
test 1964 fails with it disabled.

 meta/recipes-support/curl/curl/disable-tests       |  1 +
 .../curl/{curl_8.2.1.bb => curl_8.3.0.bb}          | 14 +++++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)
 rename meta/recipes-support/curl/{curl_8.2.1.bb => curl_8.3.0.bb} (88%)

Comments

Khem Raj Sept. 26, 2023, 2:55 p.m. UTC | #1
I am seeing a ptest failure on qemx86-64/glibc

  Failed ptests:
  {'curl': ['test_1474', 'curl']}

On Sat, Sep 23, 2023 at 10:25 AM Robert Joslyn via
lists.openembedded.org
<robert.joslyn=redrectangle.org@lists.openembedded.org> wrote:
>
> From: Robert Joslyn <robert.joslyn@redrectangle.org>
>
> NSS support was removed, so adjust PACKAGECONFIG options.
>
> The --enable-crypto-auth option was removed and split into separate
> options for basic-auth, bearer-auth, digest-auth, kerberos-auth,
> negotiate-auth, and aws. Enable these new options since upstream enables
> them by default.
>
> Disable test 1279 since this requires libcurl and hangs the tests.
>
> Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
> ---
> Changes from v1:
> Enable aws authentication by default. Upstream enables it by default and
> test 1964 fails with it disabled.
>
>  meta/recipes-support/curl/curl/disable-tests       |  1 +
>  .../curl/{curl_8.2.1.bb => curl_8.3.0.bb}          | 14 +++++++++-----
>  2 files changed, 10 insertions(+), 5 deletions(-)
>  rename meta/recipes-support/curl/{curl_8.2.1.bb => curl_8.3.0.bb} (88%)
>
> diff --git a/meta/recipes-support/curl/curl/disable-tests b/meta/recipes-support/curl/curl/disable-tests
> index b687b2bb76..fdac795662 100644
> --- a/meta/recipes-support/curl/curl/disable-tests
> +++ b/meta/recipes-support/curl/curl/disable-tests
> @@ -21,6 +21,7 @@
>  # This test is scanning the source tree
>  1222
>  # These CRL tests need --libcurl option to be enabled
> +1279
>  1400
>  1401
>  1402
> diff --git a/meta/recipes-support/curl/curl_8.2.1.bb b/meta/recipes-support/curl/curl_8.3.0.bb
> similarity index 88%
> rename from meta/recipes-support/curl/curl_8.2.1.bb
> rename to meta/recipes-support/curl/curl_8.3.0.bb
> index b86c6f3bba..646ac01914 100644
> --- a/meta/recipes-support/curl/curl_8.2.1.bb
> +++ b/meta/recipes-support/curl/curl_8.3.0.bb
> @@ -14,7 +14,7 @@ SRC_URI = " \
>      file://run-ptest \
>      file://disable-tests \
>  "
> -SRC_URI[sha256sum] = "dd322f6bd0a20e6cebdfd388f69e98c3d183bed792cf4713c8a7ef498cba4894"
> +SRC_URI[sha256sum] = "376d627767d6c4f05105ab6d497b0d9aba7111770dd9d995225478209c37ea63"
>
>  # Curl has used many names over the years...
>  CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
> @@ -24,21 +24,26 @@ inherit autotools pkgconfig binconfig multilib_header ptest
>  # Entropy source for random PACKAGECONFIG option
>  RANDOM ?= "/dev/urandom"
>
> -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} libidn openssl proxy random threaded-resolver verbose zlib"
> +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib"
>  PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
>  PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
>
>  # 'ares' and 'threaded-resolver' are mutually exclusive
>  PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
> +PACKAGECONFIG[aws] = "--enable-aws,--disable-aws"
> +PACKAGECONFIG[basic-auth] = "--enable-basic-auth,--disable-basic-auth"
> +PACKAGECONFIG[bearer-auth] = "--enable-bearer-auth,--disable-bearer-auth"
>  PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
>  PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
>  # Don't use this in production
>  PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
>  PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
> +PACKAGECONFIG[digest-auth] = "--enable-digest-auth,--disable-digest-auth"
>  PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
>  PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
>  PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
>  PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
> +PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
>  PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
>  PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
>  PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap"
> @@ -47,6 +52,7 @@ PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
>  PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
>  PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
>  PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
> +PACKAGECONFIG[negotiate-auth] = "--enable-negotiate-auth,--disable-negotiate-auth"
>  PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
>  PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
>  PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
> @@ -56,7 +62,6 @@ PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
>  PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
>  PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
>  PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
> -PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
>  PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
>  PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
>  PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
> @@ -67,11 +72,10 @@ PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
>  EXTRA_OECONF = " \
>      --disable-libcurl-option \
>      --disable-ntlm-wb \
> -    --enable-crypto-auth \
>      --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
>      --without-libpsl \
>      --enable-optimize \
> -    ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls nss openssl', d) == '') else ''} \
> +    ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
>  "
>
>  do_install:append:class-target() {
> --
> 2.41.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#188152): https://lists.openembedded.org/g/openembedded-core/message/188152
> Mute This Topic: https://lists.openembedded.org/mt/101543494/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Robert Joslyn Sept. 27, 2023, 2:55 a.m. UTC | #2
On 9/26/23 7:55 AM, Khem Raj wrote:
> I am seeing a ptest failure on qemx86-64/glibc
>
>    Failed ptests:
>    {'curl': ['test_1474', 'curl']}

In looking at the test, it is marked as flaky with the comment:

# Because of the timing sensitivity (scheduling delays of 500 msec can cause
# the test to fail), this test is marked flaky to avoid it being run in 
the CI
# builds which are often run on overloaded servers.

https://github.com/curl/curl/blob/curl-8_3_0/tests/data/test1474#L21

My server is pretty lightly loaded while running the tests, so that 
could explain why I haven't seen it fail normally. I was able to induce 
a failure by running a very heavy load while running that test on my 
desktop (which is older and slower than my build server). If you'd like, 
I can send a follow up patch to skip tests marked as flaky.

Thanks,

Robert
Khem Raj Sept. 27, 2023, 3:51 a.m. UTC | #3
On Tue, Sep 26, 2023 at 7:55 PM Robert Joslyn
<robert.joslyn@redrectangle.org> wrote:
>
> On 9/26/23 7:55 AM, Khem Raj wrote:
> > I am seeing a ptest failure on qemx86-64/glibc
> >
> >    Failed ptests:
> >    {'curl': ['test_1474', 'curl']}
>
> In looking at the test, it is marked as flaky with the comment:
>
> # Because of the timing sensitivity (scheduling delays of 500 msec can cause
> # the test to fail), this test is marked flaky to avoid it being run in
> the CI
> # builds which are often run on overloaded servers.
>
> https://github.com/curl/curl/blob/curl-8_3_0/tests/data/test1474#L21
>
> My server is pretty lightly loaded while running the tests, so that
> could explain why I haven't seen it fail normally. I was able to induce
> a failure by running a very heavy load while running that test on my
> desktop (which is older and slower than my build server). If you'd like,
> I can send a follow up patch to skip tests marked as flaky.
>

another run resulted in yet another failure

  test 0587...
   FAIL: 587: protoc!
   There was no content at all in the file log/2/server.input.
   Server glitch? Total curl failure? Returned: 42

prior to this upgrade my test setup never saw curl failures and it has
same amount of load etc.


> Thanks,
>
> Robert
>
Robert Joslyn Sept. 27, 2023, 1:53 p.m. UTC | #4
On 9/26/23 8:51 PM, Khem Raj wrote:
> On Tue, Sep 26, 2023 at 7:55 PM Robert Joslyn
> <robert.joslyn@redrectangle.org> wrote:
>> On 9/26/23 7:55 AM, Khem Raj wrote:
>>> I am seeing a ptest failure on qemx86-64/glibc
>>>
>>>     Failed ptests:
>>>     {'curl': ['test_1474', 'curl']}
>> In looking at the test, it is marked as flaky with the comment:
>>
>> # Because of the timing sensitivity (scheduling delays of 500 msec can cause
>> # the test to fail), this test is marked flaky to avoid it being run in
>> the CI
>> # builds which are often run on overloaded servers.
>>
>> https://github.com/curl/curl/blob/curl-8_3_0/tests/data/test1474#L21
>>
>> My server is pretty lightly loaded while running the tests, so that
>> could explain why I haven't seen it fail normally. I was able to induce
>> a failure by running a very heavy load while running that test on my
>> desktop (which is older and slower than my build server). If you'd like,
>> I can send a follow up patch to skip tests marked as flaky.
>>
> another run resulted in yet another failure
>
>    test 0587...
>     FAIL: 587: protoc!
>     There was no content at all in the file log/2/server.input.
>     Server glitch? Total curl failure? Returned: 42
>
> prior to this upgrade my test setup never saw curl failures and it has
> same amount of load etc.

Test 587 is also marked flaky by upstream. There are 12 tests marked as 
flaky total, and since you've just hit two of them, I'm much more 
inclined to just skip them. Right before this version bump there was 
also an update to run the curl ptests in parallel, which could be 
contributing to the change in test behavior.

Thanks,

Robert
diff mbox series

Patch

diff --git a/meta/recipes-support/curl/curl/disable-tests b/meta/recipes-support/curl/curl/disable-tests
index b687b2bb76..fdac795662 100644
--- a/meta/recipes-support/curl/curl/disable-tests
+++ b/meta/recipes-support/curl/curl/disable-tests
@@ -21,6 +21,7 @@ 
 # This test is scanning the source tree
 1222
 # These CRL tests need --libcurl option to be enabled
+1279
 1400
 1401
 1402
diff --git a/meta/recipes-support/curl/curl_8.2.1.bb b/meta/recipes-support/curl/curl_8.3.0.bb
similarity index 88%
rename from meta/recipes-support/curl/curl_8.2.1.bb
rename to meta/recipes-support/curl/curl_8.3.0.bb
index b86c6f3bba..646ac01914 100644
--- a/meta/recipes-support/curl/curl_8.2.1.bb
+++ b/meta/recipes-support/curl/curl_8.3.0.bb
@@ -14,7 +14,7 @@  SRC_URI = " \
     file://run-ptest \
     file://disable-tests \
 "
-SRC_URI[sha256sum] = "dd322f6bd0a20e6cebdfd388f69e98c3d183bed792cf4713c8a7ef498cba4894"
+SRC_URI[sha256sum] = "376d627767d6c4f05105ab6d497b0d9aba7111770dd9d995225478209c37ea63"
 
 # Curl has used many names over the years...
 CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
@@ -24,21 +24,26 @@  inherit autotools pkgconfig binconfig multilib_header ptest
 # Entropy source for random PACKAGECONFIG option
 RANDOM ?= "/dev/urandom"
 
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} libidn openssl proxy random threaded-resolver verbose zlib"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib"
 PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
 PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
 
 # 'ares' and 'threaded-resolver' are mutually exclusive
 PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
+PACKAGECONFIG[aws] = "--enable-aws,--disable-aws"
+PACKAGECONFIG[basic-auth] = "--enable-basic-auth,--disable-basic-auth"
+PACKAGECONFIG[bearer-auth] = "--enable-bearer-auth,--disable-bearer-auth"
 PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
 PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
 # Don't use this in production
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
+PACKAGECONFIG[digest-auth] = "--enable-digest-auth,--disable-digest-auth"
 PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
 PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
 PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
 PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
 PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
 PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap"
@@ -47,6 +52,7 @@  PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
 PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
 PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
 PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
+PACKAGECONFIG[negotiate-auth] = "--enable-negotiate-auth,--disable-negotiate-auth"
 PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
 PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
 PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
@@ -56,7 +62,6 @@  PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
 PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
 PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
 PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
 PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
 PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
 PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
@@ -67,11 +72,10 @@  PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
 EXTRA_OECONF = " \
     --disable-libcurl-option \
     --disable-ntlm-wb \
-    --enable-crypto-auth \
     --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
     --without-libpsl \
     --enable-optimize \
-    ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls nss openssl', d) == '') else ''} \
+    ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
 "
 
 do_install:append:class-target() {