Bug 259334 - net/quiche: Update to 0.10.0
Summary: net/quiche: Update to 0.10.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Ashish SHUKLA
URL: https://github.com/cloudflare/quiche/...
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-21 09:43 UTC by Gian-Simon Purkert
Modified: 2022-01-03 10:08 UTC (History)
2 users (show)

See Also:


Attachments
Update to 0.10.0 (1.57 KB, patch)
2021-10-21 09:43 UTC, Gian-Simon Purkert
no flags Details | Diff
Update to 0.10.0 with BoringSSL updated (2.36 KB, patch)
2021-12-31 17:34 UTC, Ashish SHUKLA
ashish: maintainer-approval?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gian-Simon Purkert 2021-10-21 09:43:24 UTC
Created attachment 228916 [details]
Update to 0.10.0

Breaking Changes:

-The h3::Config::set_max_header_list_size() method was renamed to h3::Config::set_max_field_section_size() to align to the renaming of the corresponding HTTP/3 setting in the spec.
-Support for building with Android NDK < 19 was dropped.

Highlights:

-Support for Proportional Rate Reduction (RFC6937) for the CUBIC congestion control algorithm.   
-Support for Hystart++ draft-03 for both CUBIC and Reno.
-Support for loss recovery adaptive packet reordering thresholds.
-New APIs added to send and receive DATAGRAM frames as Vec<u8> to avoid copying data (see Connection::dgram_send_vec() and Connection::dgram_recv_vec()).
-Support for qlog draft-02.
-New APIs added to: expose the server name requested by the client (Connection::server_name()), expose the locally-generated connection error (Connection::local_error()), expose whether the connection timed-out (Connection::is_timed_out()).
-Many bug fixes and performance improvements.

https://github.com/cloudflare/quiche/releases/tag/0.10.0
Comment 1 Junho Choi 2021-10-21 16:54:16 UTC
LGTM! Thanks
Comment 2 Gian-Simon Purkert 2021-12-20 10:15:48 UTC
Ping
Comment 3 Ashish SHUKLA freebsd_committer freebsd_triage 2021-12-31 14:20:54 UTC
0.10.0 also had a bump in BoringSSL version[0] which attached diff ignores. I'm not sure if it's on purpose.

I tried updating that, and now ended up with following compiler error on (13-RELEASE):

  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/trust_token/trust_token.c.o                                                                                                                                           [52/9708]
  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/trust_token/voprf.c.o
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/a_digest.c.o
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:29:15: error: expected parameter declarator
  static_assert(alignof(CRYPTO_refcount_t) == alignof(_Atomic CRYPTO_refcount_t),
                ^
  /usr/include/stdalign.h:46:19: note: expanded from macro 'alignof'
  #define alignof                 _Alignof
                                  ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:29:15: error: expected ')'
  /usr/include/stdalign.h:46:19: note: expanded from macro 'alignof'
  #define alignof                 _Alignof
                                  ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:29:14: note: to match this '('
  static_assert(alignof(CRYPTO_refcount_t) == alignof(_Atomic CRYPTO_refcount_t),
               ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:29:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  static_assert(alignof(CRYPTO_refcount_t) == alignof(_Atomic CRYPTO_refcount_t),
  ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:31:15: error: expected parameter declarator
  static_assert(sizeof(CRYPTO_refcount_t) == sizeof(_Atomic CRYPTO_refcount_t),
                ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:31:15: error: expected ')'
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:31:14: note: to match this '('
  static_assert(sizeof(CRYPTO_refcount_t) == sizeof(_Atomic CRYPTO_refcount_t),
               ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:31:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  static_assert(sizeof(CRYPTO_refcount_t) == sizeof(_Atomic CRYPTO_refcount_t),
  ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:34:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  static_assert((CRYPTO_refcount_t)-1 == CRYPTO_REFCOUNT_MAX,
                 ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:34:34: error: expected ')'
  static_assert((CRYPTO_refcount_t)-1 == CRYPTO_REFCOUNT_MAX,
                                   ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:34:14: note: to match this '('
  static_assert((CRYPTO_refcount_t)-1 == CRYPTO_REFCOUNT_MAX,
               ^
  /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/quiche-0.10.0/deps/boringssl/src/crypto/refcount_c11.c:34:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
  static_assert((CRYPTO_refcount_t)-1 == CRYPTO_REFCOUNT_MAX,
  ^
  4 warnings and 5 errors generated.
  --- CMakeFiles/crypto.dir/src/crypto/refcount_c11.c.o ---
  *** [CMakeFiles/crypto.dir/src/crypto/refcount_c11.c.o] Error code 1

  make[4]: stopped in /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/target/x86_64-unknown-freebsd/release/build/quiche-9a5e171e73c73a84/out/build
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/a_sign.c.o
  1 error

  make[4]: stopped in /wrkdirs/overlays/abbe-freebsd-ports/net/quiche/work/target/x86_64-unknown-freebsd/release/build/quiche-9a5e171e73c73a84/out/build
  --- CMakeFiles/crypto.dir/all ---

I'll see if I can figure it out. If you've any idea then do share.

References:
[0] https://github.com/cloudflare/quiche/commit/1c881359a1106c52827f7acbba1eb33b773a6aac

Thanks!
Comment 4 Ashish SHUKLA freebsd_committer freebsd_triage 2021-12-31 17:34:07 UTC
Created attachment 230594 [details]
Update to 0.10.0 with BoringSSL updated

Attached patch augments Gian-Simon's patch with bumped up BoringSSL dependency.

The mentioned error is fixed by not defining _XOPEN_SOURCE which is not required on FreeBSD for the same purpose as it's required on GNU/Linux.

Thanks!
Comment 5 Junho Choi 2022-01-03 09:48:04 UTC
LGTM - Thanks!
Comment 6 commit-hook freebsd_committer freebsd_triage 2022-01-03 10:08:23 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=128954986d4eae2f01653dff2820cc12994df9f5

commit 128954986d4eae2f01653dff2820cc12994df9f5
Author:     Gian-Simon Purkert <gspurki@gmail.com>
AuthorDate: 2022-01-03 10:03:51 +0000
Commit:     Ashish SHUKLA <ashish@FreeBSD.org>
CommitDate: 2022-01-03 10:06:44 +0000

    net/quiche: Update to 0.10.0

    - Also update the BoringSSL dependency

    PR:             259334
    Approved by:    Junho Choi <junho.choi at gmail dot com> (maintainer)

 net/quiche/Makefile |  9 ++++++---
 net/quiche/distinfo | 10 +++++-----
 2 files changed, 11 insertions(+), 8 deletions(-)
Comment 7 Ashish SHUKLA freebsd_committer freebsd_triage 2022-01-03 10:08:57 UTC
Committed, thanks!