Commit Graph
41255 Commits
Author SHA1 Message Date
Leon Anavi 35b8bd0c0b libmikmod: Upgrade 3.3.15 -> 3.3.16
Upgrade to release 3.3.16:

- Fix out-of-bounds reads in MTM loader (CVE-2026-111165.)
- Fix out-of-bounds reads in IMF loader (CVE-2026-111166.)

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:24 -08:00
Leon Anavi 7a48abdfde libdbi-perl: Upgrade 1.651 -> 1.656
Upgrade to release 1.656:

- Prevent dbi_profile crash (CVE-2026-108518) (Henrik Teichmann)
- Fix lock file not removed when DBD::DBM check for bad serializer
  class fails. (CVE-2026-111879)

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:24 -08:00
Leon Anavi 2303b97f7c lcms: Upgrade 2.19.1 -> 2.20
Upgrade to release 2.20:

- Added a plug-in type for profile header parsing.
- Fixed premultiplied alpha on planar 16 bit and optimized
  matrix-shaper transforms.
- Fixed planar half float and Lab double formatters, and planar
  strides in fast_float.
- Fixed gamut checking with two profiles and a possible crash with
  malformed profiles.
- Recovered neutrality correction in black point detection.
- Made cmsCreateLab2Profile white point handling consistent with
  cmsCreateLab4Profile.
- Fixed UTF8 buffer size calculation.
- CGATS parser is now more permissive on certain properties.
- Fixed callback type mismatch in resampled CLUT evaluation.
- Fixed a crash in PostScript CSA generation.
- Fixed memory leaks in black preserving intents and .cube loading.
- cmsChangeBuffersFormat now correctly rejects format changes on
  floating point transforms.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi fd92c8872b ktls-utils: Upgrade 1.4.0 -> 1.5.0
Upgrade to release 1.5.0:

ktls-utils 1.5.0 2026-09-23
- Implement DANE authentication of server certificates
- Add nfstlskey, a tool that manages NFS mTLS client identities
- Add support for GnuTLS URL-based private keys (PKCS#11, TPM)
- Enable post-quantum ECDHE + ML-KEM hybrid key exchange

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi 1b422e3bc4 ipmiutil: Upgrade 3.2.2 -> 3.2.3
Upgrade to release 3.2.3:

- configure.ac: add 0800-openssl-4.patch from Brent Kirby
- util/ipmiutil.c: set ver 3.23

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi 4b1d4ef798 gst-editing-services: Upgrade 1.28.5 -> 1.28.8
Upgrade to release 1.28.8:

- Various security fixes and playback fixes
- Fix adaptivedemux2 HLS and DASH playback regression
- Fix FLAC audio seeking regression
- Various RTP depayloader and RTSP client SDP handling fixes
- MXF demuxer: Added support for reading AAF AIFF-AIFC audio
- VA-API compositor: Fix alpha blending with Intel driver
- Windows media audio/video seeking improvements
- AMD AMF AV1 video encoder force-keyframe fixes
- Fix endless drain in some FFmpeg wrapper audio encoders and
  support dual mono
- hlssink3 improvements
- ISOBMFF dash/iso/fmp4 muxer fixes for timestamp rollover in 2036
- cerbero: Rework checksum verification to allow mirror retries
- Various bug fixes, build fixes, memory leak fixes, and other
  stability and reliability improvements

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi 74f29e6195 gsoap: Upgrade 2.8.144 -> 2.8.146
Upgrade to release 2.8.146:

- Update compile-time configuration option `WITH_SELF_PIPE` to use
  `poll()` when available.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi 0381a62587 graphviz: Upgrade 15.1.1 -> 16.1.0
Upgrade to release 16.1.0:

Added

- Graph attribute svgid sets the id property of the <svg> of a
  graph.

Fixed

- An sfdp crash has been fixed. This was a regression in Graphviz
  15.1.1.
- Graphs that induce invalid trapezoids during ortho routing no
  longer cause Graphviz crashes on non-Windows platforms. These
scenarios now exit with failure gracefully.
- edgepaint no longer crashes when passed the illegal option -s.
- cluster no longer crashes when passed single character
  command-line options without arguments (e.g. cluster -C).
- cluster of trivial graphs with no nodes no longer crashes.
- cluster on large chains of nodes no longer references
  out-of-bounds memory. This was a regression in Graphviz 7.1.0.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi 7ced5a6823 flashrom: Upgrade 1.7.0 -> 1.8.0
Upgrade to release 1.8.0:

- Repeated reads

--read-repeated[=<count>] [<file>]: Read the flash chip multiple
times (default: 3, minimum: 3) and use majority voting to detect
unstable connections. Deduplicates read results to minimise memory
usage. If a file is given and a strict majority is found, saves the
majority content to it. Useful for diagnosing flaky SPI wiring or
unreliable programmers.

- Bugs fixed

Internal programmer no longer exits when ECAM is unavailable On
Intel PCH100+ systems the flash enable code opens a second libpci
accessor with PCI_ACCESS_ECAM. Mapping the ECAM region requires
access to a physical range the kernel commonly reserves for a
driver (PNP0C02), which CONFIG_IO_STRICT_DEVMEM denies. libpci
reports this through its error handler, which by contract does not
return and by default terminates the process, so flashrom died
with:

pcilib: Cannot map ecam region: Operation not permitted.  before
probing anything, with no command line option to work around it.
Every kernel built with CONFIG_IO_STRICT_DEVMEM=y was affected,
which is the default in most distributions.

An ECAM initialisation failure is now caught and the 0xcf8/0xcfc
port I/O access is used instead. ECAM is still tried first, so
machines that need it keep using it.

Remove 0003-cli_classic-Initialize-time_start-time_end.patch
because the patch has been merged in the upstream.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:23 -08:00
Leon Anavi c416c39f73 feh: Upgrade 3.12.4 -> 3.13.1
Upgrade to release 3.13.1:

- Improve behaviour of --scale-down in tiling window managers.
  Newly loaded images should now no longer flicker.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Leon Anavi 1c099a1d64 debootstrap: Upgrade 1.0.144 -> 1.0.145
Upgrade to release 1.0.145:

- Use SHA512 if listed in Release file
- work_out_debs: On hurd-any, add seedfiles to fulfill passwd's
  dependency on systemd-tmpfiles

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Leon Anavi 318102a33c bubblewrap: Upgrade 0.11.2 -> 0.13.1
Upgrade to release 0.13.1:

Enhancements:

  - bwrap now accepts multiple --sync-fd arguments and will handle
    all of the fds.

Bug fixes:

  - O_PATH is used when opening parent directories in the new root,
    fixing an error when read permission is missing.

License-Update: Change from LGPL-2.0-or-later to LGPL-2.1-or-later

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Leon Anavi 14887076f9 botan: Upgrade 3.13.0 -> 3.14.0
Upgrade to release 3.14.0:

General Notes

- Botan4 is expected to be released in May 2027. This new major
  release will remove significant deprecated functionality. Please
  consult the deprecation notes in doc/deprecated.rst and if your
  usage would be impacted by any such deprecations, please comment
  in GH #4666
- Add a warning to the documentation regarding recent research on
  the security of Classic McEliece. Following the current
  recommendations of BSI, Classic McEliece should only be used in a
  hybrid scheme. (GH #5993)
- The API documentation now consistently warns about algorithms and
  operations with known side channel issues. (GH #6007)

New APIs and Features

- Add types PK_Signature_Options PK_Encryption_Options,
  PK_KEM_Options, and PK_Key_Agreement_Options which allow an
  application to precisely control how public key operations
  (signature, encryption, decryption, KEM, etc) are performed. (GH
  #5489 #5864)
- Add an implementation of HPKE from RFC 9180 (GH #5989)
- Add an implementation of the BLS12-381 pairing friendly curve,
  including the groups G1, G2, and Gt and the pairing operation.
  (GH #5718)
- Add Work_Executor, which allows an application to replace the
  library's internal thread pool with its own executor. (GH #5990)
- ML-DSA signatures now support the application context string of
  FIPS 204, passed via PK_Signature_Options::with_context. (GH
  #5531)
- Add an experimental C API for TLS in the new ffi_tls module,
  currently covering policies, credentials, and session managers.
  Experimental modules are not built by default and not covered by
  SemVer. (GH #2492 #5941 #5963)
- Introduce a new design for entropy sources. (GH #5928 #5945)
- Add EC_Group::register_custom_group, which makes explicit the
  registration behavior previously only available as a side effect
  of the EC_Group constructor taking the curve parameters. (GH
  #5922)
- Add group functions returning the associated EC_Group to
  EC_Scalar and EC_AffinePoint. (GH #5948)
- Add TLS::Callbacks::tls_register_deferred_operation, which gives
  the library explicit control over DTLS retransmission timers, as
  an alternative to polling Channel::timeout_check. Use of
  timeout_check is deprecated. (GH #5915 #6096)
- In TLS 1.3 send KeyUpdate requests when the number of records
  sent or received approaches a policy-set limit. (GH #5877)
- Add TelephoneNumber and TelephoneNumberRange types modeling the
  telephone numbers and number ranges used in RFC 8226 STIR
  certificates. (GH #5979)
- Add PKCS12::mac_protected which indicates if the PKCS #12 file
  was protected using a MAC. (GH #5902)
- Jitter_RNG now accepts the compliance mode and the oversampling
  rate which should be used by the jitterentropy library. AIS 20/31
  NTG.1 compliance can be requested with Jitter_RNG::Mode::NTG1 if
  jitterentropy 3.7.0 or later is used. Note that Jitter_RNG no
  longer forces the FIPS mode of jitterentropy by default; use
  Jitter_RNG::Mode::FIPS to retain the previous behavior. (GH
  #5832)
- FFI handles can now share ownership of the underlying object. The
  RNG passed to botan_tpm2_ctx_enable_crypto_backend is now
  retained for the lifetime of the TPM2 context, rather than being
  borrowed. Add botan_is_shared and botan_use_count to query the
  ownership of a handle. (GH #5959 #6038 #6048 #6052)
- Add FFI functions botan_ec_scalar_get_group,
  botan_ec_point_get_group, and botan_ec_point_to_mp_xy. (GH #6080)
- Add FFI functions botan_x509_crl_view_issuer_dn and
  botan_x509_crl_view_issuer_dn_count for accessing the issuer DN
  of a CRL. (GH #6077)
- Processor_RNG now supports the ARMv8.5-A FEAT_RNG extension (the
  RNDR instruction) on aarch64. (GH #5228 #6084)

Security and Hardening

- CVE-2026-118770 Fix a use after free in the TLS asio integration
  which depending on application usage patterns may allow leaking
  heap memory to the peer.
- CVE-2026-118771 Fix a bug in TLS 1.3 which could allow an
  unauthenticated peer to pin unlimited amounts of memory in the
  handshake by sending many dummy ChangeCipherSpec messages.
- Fix a bug in DTLS which allowed a peer to skip the cookie
  exchange even if the policy required it.
- Address various DTLS handshake desync bugs (GH #5783)
- Fix a number of minor TLS conformance bugs and validate peer
  input with respect to some RFC requirements which were previously
  ignored. (GH #6061)
- During X.509 path validation, signatures are now verified
  starting from the trust anchor down to the leaf, stopping at the
  first invalid signature. (GH #5982)
- CRL signatures are now checked against the trusted hashes policy,
  as already done for certificate signatures. (GH #5981)
- Ed25519, Ed448, X25519, and X448 public keys are now fully
  validated on deserialization, rejecting points of low order. (GH
  #5594)
- Harden EC, RSA, DL, and Ed25519 private key loading, rejecting
  various invalid encodings and parameters. (GH #5994 #5995 #5996
  #5997 #6009 #6041)
- All paths which decode or construct an EC_Group now verify the
  complete set of group parameters, including generator validity,
  the Hasse bound, and the curve discriminant. Anomalous curves
  (where the order equals the field prime) are now rejected, and
  the deprecated EC_Group constructor rejects cofactors of zero or
  greater than 16. (GH #5921)
- ECIES now verifies that the peer's public point is encoded using
  the point format specified in the ECIES parameters. Also,
  EC_AffinePoint::deserialize now rejects hybrid encoded points of
  the wrong length. (GH #5913 #5920)
- Rework how stateful RNGs decide that they are seeded. Previously
  a call of randomize_with_input with an empty output and a
  non-empty input of sufficient length was treated as sufficient
  for seeding. Now only an explicit call of initialize_with or
  add_entropy is treated as a possible seeding event. (GH #5928
  #5945)
- The TLS server now validates that the host name received in the
  SNI extension is a syntactically valid DNS name. The name passed
  to the Credentials_Manager and other callbacks is now the
  canonical (lowercased) form. (GH #5937)
- Fix various bugs in decoding the RFC 3779 IP address and AS
  identifier extensions. Add interop between IPAddressBlocks and
  the IPv4/IPv6 name types. (GH #5957 #5978)
- Fix lenient decoding of the RFC 8226 TNAuthList extension, and
  add support for encoding it. (GH #5977)
- Replace the algorithm name parser with a stricter and faster one.
  Previously, invalid or trailing parameters were sometimes
  silently ignored, for example HMAC(SHA-512,Foo) was accepted. (GH
  #5956)
- Fix several bugs and missing validations in the HTTP client.
  Control characters in headers are now rejected, RequestLimits now
  caps the response body at 8 MiB by default, and timeouts are
  tracked using a monotonic clock with the budget carried across
  redirects. (GH #5980)
- SPAKE2+ now rejects a ProverSecret with w0 or w1 equal to zero,
  and the context moves to a failed state if any peer message fails
  to decode, rather than allowing further attempts. (GH #5976)
- Avoid an information leak during RSA key generation, where the
  number of candidate primes rejected after sieving leaked some
  bits of the final prime. (GH #6068)
- The Lucas primality test is now constant time; previously the
  search for the parameter D leaked information about the prime
  being tested. (GH #6067)
- Fix various minor side channels, including a value dependent
  branch when storing BigInt words, a value dependent loop in
  modular multiplication, variable length blinding of RSA
  exponents, and a branch when negating Ed25519 field elements.
  Many more secrets are now marked for the valgrind based constant
  time checks. (GH #6069 #6071)
- Improve validation of ML-KEM, ML-DSA, FrodoKEM, Classic McEliece,
  McEliece, and XMSS keys. Invalid keys now consistently throw
  Decoding_Error, and various cheap consistency checks are
  performed during deserialization. (GH #6083)
- Fix two bugs in TLS session resumption. A server now verifies
  that a resumed session satisfies the current policy, including
  client certificate authentication requirements and (in TLS 1.2)
  the ciphersuite requirements, rather than accepting any
  previously established session. Additionally a session manager
  shared between a client and a server role no longer allows a
  session established in one role to be resumed in the other. (GH
  #5797 #5837)
- TLS now limits the number of consecutive useless records (empty
  records, warning alerts, and TLS 1.3 compatibility mode
  ChangeCipherSpec) accepted from the peer, closing the connection
  if the limit is exceeded. The default limit of 32 can be changed
  using TLS::Policy::max_useless_records. (GH #6051)
- AutoSeeded_RNG now mixes a high resolution timestamp along with
  output from the system RNG into each request, to help recover
  from a VM rollback or process duplication which the kernel RNG
  did not detect. (GH #6054)
- The stateful key index registry used by XMSS and HSS-LMS now
  detects a fork using the fork generation counter rather than only
  the process ID, and Stateful_RNG now detects a fork which occurs
  before it is first seeded. (GH #6058)
- The baseline SM4 implementation (used if there is no suitable AES
  or SIMD hardware) is now constant time. (GH #6090)

Behavior Changes

- TLS now enforces that certificates contain the digitalSignature
  bit (or, for TLS 1.2 RSA key exchange, keyEncipherment).
  Previously nonRepudiation or dataEncipherment key usages were
  also accepted. (GH #6061)
- If the TLS policy requires client authentication then PSK
  ciphersuites will no longer be accepted, since PSK plus client
  auth is not supported in the handshake. (GH #6061)
- Update the ML-DSA private key encoding in PKCS #8 containers to
  conform to RFC 9881. All three encodings of the RFC (seed,
  expanded key, both) are supported. The old formats can still be
  decoded. (GH #5002 #5307)
- Update the ML-KEM private key encoding in PKCS #8 containers to
  conform to RFC 9935. The old formats can still be decoded. (GH
  #5934)
- By default, ECDSA signatures are now randomized rather than
  deterministic even when RFC 6979 support is available at build
  time. Deterministic signatures can be requested using the API
  PK_Signature_Options::with_deterministic_signature or by
  appending ",Deterministic" to the normal hash specifier string.
  (GH #5489)
- AutoSeeded_RNG now uses HMAC_DRBG with SHA-256 rather than
  SHA-512 when hardware support for SHA-256 is available. (GH
  #6003)
- Rework ChaCha_RNG: it now uses HMAC(SHA-512) instead of
  HMAC(SHA-256) and also derives the ChaCha nonce from the key
  material. Optional fast key erasure can be enabled with
  ChaCha_RNG::KeyErasure::WithKeyErasure to gain backtracking
  resistance. As a result the output of ChaCha_RNG for a given seed
  has changed; it was never guaranteed to be stable across versions
  and may change again in the future. (GH #5121)
- Password hash tuning (PasswordHashFamily::tune_params) now
  measures the CPU time of the calling thread where available
  (falling back to a monotonic clock), and uses the fastest of
  several samples rather than the mean. This makes the result much
  less sensitive to concurrent load and clock adjustments. (GH
  #5898)
- During X.509 path validation the self-signature of the trust
  anchor is no longer verified; the anchor is trusted because the
  application provided it. For a typical chain this removes about a
  third of the cost of path validation. (GH #6008)
- DSA now rejects parameters where p is smaller than 512 bits or
  larger than 3072 bits, or where q is larger than 256 bits.
  Previously only a minimum of 160 bits for q was enforced. (GH
  #6039)
- The ASN.1 pretty printer now formats integers of fewer than 32
  bits in decimal; previously the limit was 16 bits. (GH #6025)

Optimizations

- Add support for parallel hash function invocations, including
  AVX2/AVX512 implementations of SHA-256, SHA-512, and SHAKE (GH
  #5493 #5865 #5867 #5869 #5871 #5872 #5873)
- Optimize SLH-DSA, XMSS, HSS-LSM, FrodoKEM, and ML-KEM using
  parallel hash function execution. (GH #5866 #5868 #5870 #5876
  #5878)
- Refactor and optimize Ed25519 (GH #5893)
- Refactor and optimize X25519, especially improving key generation
  (GH #6010)
- Elliptic curve optimizations, especially improving P-256 and SM2.
  (GH #6012 #6013 #6020 #6021 #6024 #6031 #6059)
- Add AVX-512+IFMA modular exponentiation support, improving RSA
  and FFDHE by 3-4x (GH #6026)
- Add a fused Montgomery multiplication using BMI2/ADX, improving
  modular exponentiation on x86-64 processors without IFMA by about
  30%, and optimize the corresponding Montgomery squaring. (GH
  #6044 #6053)
- Add AVX2 codepath for ML-KEM (GH #5964 #6032 #6033)
- Enable many SIMD optimizations on POWER systems (GH #6027 #6028)
- Improve the performance of one-shot RSA private key operations
  (GH #6004)
- Optimize multiprecision integer division operations, and convert
  all such divisions to be constant time with respect to their
  inputs. (GH #5849 #5880 #5883 #5884)
- Optimize primality testing by performing trial division by small
  primes before running Miller-Rabin, rewriting the Lucas test to
  use Montgomery form, using faster variable time variants when
  testing public parameters, and running the Miller-Rabin and Lucas
  tests in the thread pool when it is available. (GH #5886 #6040)
- Improve the performance of X.509 certificate parsing, including
  PEM decoding, OID decoding, and extension handling. (GH #5888
  #5889 #5890 #5891)
- Avoid quadratic behavior when decoding an X.509 distinguished
  name with many attributes. (GH #6063)
- Add a certificate cache to the macOS system certificate store,
  implement contains() directly, and query the keychain by issuer
  DN and serial number instead of scanning all certificates of an
  issuer. (GH #5541 #5929)
- Resolve a performance regression in TLS 1.3 record processing
  introduced in 3.13.0, and avoid several copies and allocations on
  the send side. (GH #6002 #6046)
- Reduce memory allocations during TLS 1.2 record processing. (GH
  #5887)
- Use the AES instructions to compute the key schedule on x86,
  ARMv8, and POWER8, making AES::set_key substantially faster,
  especially on ARMv8 and POWER8 which previously used the
  bitsliced software key schedule. (GH #6078 #6081)
- Modify the bitsliced AES implementation to use the native word
  size of the processor, instead of always 32 bits. (GH #5826)
- The AVX-512/GFNI Twofish implementation is now used for all
  blocks, including any tail of fewer than 16 blocks, so the table
  based implementation is never used on processors which support
  these extensions. (GH #5975)
- Optimize the Whirlpool compression function on x86-64 and
  aarch64. (GH #5857 #5892)
- Add an AVX-512 implementation of base64 encoding and decoding (GH
  #5999)
- Optimize base58 encoding and decoding (GH #5858)
- Enable support for NEON/ARMv8 codepaths on Windows aarch64 (GH
  #5863)

Bug Fixes

- Fix a bug where a TLS 1.2 client configured with multiple
  certificate chains selected among them arbitrarily, without
  considering the server's signature_algorithms extension. (GH
  #5932)
- Fix the in-memory TLS session manager, which ordered stored
  sessions by session ID rather than by recency, so the wrong
  session could be evicted or returned. (GH #5847)
- Fix a bug introduced in 3.13.0 where, in builds without the
  system RNG, RandomNumberGenerator::randomize_with_ts_input passed
  only the low 32 bits of the timestamp, and never the process id,
  as additional input. (GH #5924 #5926)
- Fix various bugs in RNGs and entropy sources, including some edge
  cases involving fork safety. (GH #5987)
- Fix several bugs in the PKCS #11 wrapper, including typed key
  searches matching keys of the wrong type, EC public keys always
  being encoded in compressed form, ECDH accepting peer points with
  a small order component, and Object::destroy leaving a stale
  handle. (GH #5983)
- Fix a race in the FFI layer where the thread-local storage for
  the last exception message could be accessed after its
  destruction during process shutdown. (GH #5859)
- Fix libsodium compatibility issues in the sodium compat layer (GH
  #5966)
- Fix various edge cases in the sqlite3 database wrapper. (GH
  #5972)
- TOTP::verify_totp now takes an optional forward_drift_accepted
  parameter to accept codes from a client whose clock is ahead of
  the server's, as allowed by RFC 6238. The existing
  clock_drift_accepted parameter is unchanged and still only
  applies backwards. (GH #6035 #6070)
- Fix several corner case bugs in CPU feature detection. (GH #6036)
- Fix the move operators of Dynamically_Loaded_Library, which
  previously caused the library to be closed twice. (GH #5967)
- Fix various bugs in the TLS ASIO stream. Cancellation slots are
  now forwarded to the next layer so that timeouts reach pending
  operations, synchronous operations are refused while an
  asynchronous write is in flight, operations attempted before the
  handshake no longer cause all later handshakes to fail, and move
  assignment of Stream now compiles. (GH #6060)
- Fix various bugs and edge cases in the stateful hash signature
  schemes XMSS and HSS-LMS (GH #6066)

Deprecations and Cleanups

- Deprecate the public header pem.h; it will become internal in
  Botan4. (GH #5891)
- Deprecate the modules filters, comb4p, passhash9, emsa_x931, ofb,
  rc4, certstor_sql, and certstor_sqlite3. Additionally SRP6, the
  X9.42 PRF, and the TLS OCB ciphersuites are now documented as
  deprecated. (GH #5971)
- Remove many unused header includes, including from public
  headers. Applications which relied on transitive includes may
  need to add explicit includes. (GH #5897)

Command Line Utility

- Add a create_cert_for_key command, which issues a certificate
  directly for a public key without requiring a PKCS #10 request.
  This allows creating certificates for KEM keys such as ML-KEM.
  (GH #5529)
- Add a --one-shot flag to the speed command which causes the
  public key benchmarks to create a new operation object
  (PK_Signer, PK_Verifier, ...) for each measured operation, rather
  than creating one and reusing it. (GH #5951)
- Remove the sandboxing support (sandbox_init, pledge, Capsicum)
  from the command line tool. Recent versions of macOS kill any
  process which calls sandbox_init, and the other implementations
  were dead or untested code. (GH #5940 #5942)
- Fix many bugs in the command line tool. Commands now consistently
  report failures through the exit status, integer and option
  arguments are strictly validated, I/O errors are consistently
  detected, and passing the same file as input and --output no
  longer truncates the input. (GH #6037)

Python Binding

- The Python binding now can adapt itself to any version of Botan3.
  (GH #5851)
- Add X509Cert.binary_values/string_values and the equivalents on
  X509CRL. (GH #5984)
- Fix a number of bugs in the Python binding (GH #5969 #6064)

Build and Infrastructure

- Add support for precompiled headers with GCC and Clang, enabled
  using --enable-pch. (GH #5298)
- SIMD support on POWER now requires POWER8 (VSX). (GH #6029)
- Add --disable-lsx and --disable-lasx options for LoongArch. (GH
  #5108)
- Various build fixes, including for MinGW with libc++ 20 or later,
  the import library output directory with GCC on MinGW, and Clang
  on Aarch64. (GH #5850 #5854 #5875 #5901 #5953 #5954)
- The aes_ni, aes_armv8, and aes_power8 modules have been merged
  into a single aes_hwaes module. Build configurations which
  referenced the old module names must be updated. (GH #6081)
- Fix the CMake package configuration on MinGW, which did not set
  IMPORTED_IMPLIB for the imported target. (GH #6057)
- CI updates including moving most builds to Ubuntu 26.04, adding
  Windows Aarch64 builders, dropping the 32-bit MIPS cross build,
  updating dependencies used in CI, and improving resilience to
  slow package mirrors. (GH #5768 #5846 #5848 #5860 #5861 #6065)

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Leon Anavi 3f0f8ef63d asio: Upgrade 1.36.0 -> 1.38.2
Upgrade to release 1.38.2:

- Added a `"scheduler"` / `"assume_continuation"` configuration
  parameter. When `true`, the scheduler assumes that all posted
  handlers are a continuation of the currently executing handler,
  allowing them to be added to a fast thread-local queue. This can
  improve performance for applications that exclusively use
  short-running handlers.
- Added a `"reactor"` / `"io_uring_ring_count"` configuration
  parameter.  This sets the number of independent io_uring
  instances ("rings") that a single execution context maintains
  internally. Increasing this parameter from its default of 1 may
  improve scalability when the execution context is used with
  multiple threads.
- Added a `"reactor"` / `"io_uring_ring_size"` configuration
  parameter, which is used to specify the number of entries in each
  io_uring instance.
- Added a `"reactor"` / `"io_uring_submit_batch_size"`
  configuration parameter.  This sets the number of pending
  io_uring submission queue entries at which they are submitted
  immediately, rather than deferred.
- Added a `"reactor"` / `"io_uring_iowait"` configuration
  parameter, which may be used to determine whether the thread is
  marked as being in iowait while io_uring operations are pending.
- Added the ability to configure `ssl::stream<>`'s internal buffer
  sizes.
- Added `asio/fwd.hpp`, as a way to safely forward declare some
  Asio class names, even when `ASIO_ENABLE_VERSION_NAMESPACE` or
  `ASIO_VERSION_NAMESPACE` are defined.
- Added an example for using `cancel_after` with coroutines.
- Changed all exception classes to use inline implementations, to
  fix an undefined symbol error on some platforms when using
  separate compilation.
- Changed constants and CPOs to use external linkage for C++17 and
  later.
- Changed "slim" mutexes to use futexes on Linux.
- Changed the reactor send/receive path to use `MSG_DONTWAIT`, if
  supported, rather than setting the socket to be non-blocking.
- Added a missing optimisation for `concurrency_hint == 1` in the
  `io_context` class's `poll_one()` function.
- Added support for `co_composed` under `ASIO_NO_EXCEPTIONS`.
- Fixed a `co_composed` crash on MSVC that occurs when using
  multiple completion signatures.
- Fixed a `co_composed` crash on MSVC by ensuring 16-byte block
  alignment in its internal coroutine representation.
- Fixed the return type on one `cancel_after` overload.
- Fixed integer truncation in `basic_streambuf::commit`/`consume`
  for sizes greater than or equal to `INT_MAX`.
- Fixed a buffer invalidation error triggered when SSL streams are
  moved, and clarified the buffer invalidation semantics in the
  documentation.
- Fixed a compilation error, seen with some compilers such as
  [^nvc++], that occurs when using `post`, `dispatch` or `defer`
  (or an asynchronous operation built on them) with a completion
  handler.
- Fixed `parallel_group` handling of non-terminal cancellation
  requests.
- Fixed thread sanitizer warnings due to atomic thread fences, and
  added thread sanitizer instrumentation to the io_uring backend.
- Fixed a signed/unsigned warning in `basic_resolver_results`.
- Fixed `experimental::channel` compilation with older versions of
  MSVC.
- Fixed the `multicast::enable_loopback` socket option size on
  NetBSD and OpenBSD.
- Suppressed case fall-through warnings in the SSL implementation.
- Fixed standard library coroutine detection when using
  [^clang-cl].
- Improved cross-referencing within the documentation.

License-Update: Update copyright years to 2003-2026

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Ankur Tyagi 546617def1 c-periphery: upgrade 2.5.1 -> 2.5.2
Changelog:
https://github.com/vsergeev/c-periphery/blob/v2.5.2/CHANGELOG.md

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:22 -08:00
Ankur Tyagi 82c79b3530 cglm: upgrade 0.9.6 -> 0.9.7
Changelog:
https://github.com/recp/cglm/releases/tag/v0.9.7

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi 50d32314ba vnstat: upgrade 2.13 -> 2.14
Changelog:
https://github.com/vergoh/vnstat/releases/tag/v2.14

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi 7aa71c270a openvpn: upgrade 2.7.8 -> 2.7.9
Changelog:
https://github.com/OpenVPN/openvpn/releases/tag/v2.7.9

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi f1b322a5b1 sngrep: upgrade 1.8.4 -> 1.9.0
Dropped patch that is part of the upstream version

Changelog:
https://github.com/irontec/sngrep/releases/tag/v1.9.0

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi c65dd75f10 libdaq: upgrade 3.0.28 -> 3.0.29
Changelog:
https://github.com/snort3/libdaq/releases/tag/v3.0.29

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi 734747cde1 wireplumber: upgrade 0.5.18 -> 0.5.19
Changelog:
https://gitlab.freedesktop.org/pipewire/wireplumber/-/blob/0.5.19/NEWS.rst?ref_type=tags

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:21 -08:00
Ankur Tyagi c4f6f7bab7 libcloudproviders: upgrade 0.4.1 -> 0.4.2
Changelog:
https://gitlab.gnome.org/GNOME/libcloudproviders/-/blob/0.4.2/CHANGELOG?ref_type=tags

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:20 -08:00
Ankur Tyagi 5f461e6774 libspelling: upgrade 0.4.10 -> 0.4.11
Changelog:
https://gitlab.gnome.org/GNOME/libspelling/-/blob/0.4.11/NEWS?ref_type=tags

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:20 -08:00
Ankur Tyagi 900acc4441 gdm: upgrade 51.1 -> 51.1.1
Changelog:
https://gitlab.gnome.org/GNOME/gdm/-/blob/51.1.1/NEWS?ref_type=tags

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:20 -08:00
Ankur Tyagi 0b70bfc69a evolution-data-server: upgrade 3.62.0 -> 3.62.1
Changelog:
https://gitlab.gnome.org/GNOME/evolution/-/blob/3.62.1/NEWS?ref_type=tags

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-07 23:28:20 -08:00
Khem Raj 809a4c4546 python3-objgraph: Fix intermittent test_at_addrs ptest failure
get_new_ids() keeps the ids it saw in earlier calls, including those of
objects freed since. When the list created by test_at_addrs reuses one
of those addresses it is not reported as new and the test fails, which
was seen on musl qemux86-64:

  {'python3-objgraph': ['tests.py:AtAddrsTest.test_at_addrs']}

Refresh the baseline right before creating the list.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 21:27:18 -08:00
Khem Raj c093bc4cb2 python3-simple-websocket: Do not need network access in client ptests
The client unit tests mock socket.socket but not socket.getaddrinfo(), so
every test resolves example.com. Without working DNS in the image (e.g.
yoe-musl-sysvinit qemux86-64) all of tests/test_client.py fails.

Backport the upstream fix that uses localhost instead.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 21:27:18 -08:00
Jason Schonberg 021b790f5c yyjson: upgrade 0.12.0 -> 0.13.0
Changelog: https://github.com/ibireme/yyjson/releases/tag/0.13.0

Signed-off-by: Jason Schonberg <schonm@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 08:14:29 -08:00
Kanksha Paturi e2f8cb8bad libyuv: use GNUInstallDirs for install destinations
libyuv's CMakeLists.txt hardcodes the install destinations to bin, lib
and include, so on multilib (lib64) targets the libraries are installed
to the wrong location and are not packaged.

Add a patch to use GNUInstallDirs (CMAKE_INSTALL_BINDIR,
CMAKE_INSTALL_LIBDIR, CMAKE_INSTALL_INCLUDEDIR) so files are installed
to the correct, platform-appropriate directories.

Signed-off-by: Kanksha Paturi <Kanksha.Paturi@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:45 -08:00
Ricardo Salveti b5d60afb63 ostree: upgrade 2026.5 -> 2026.6
This release fixes a 2026.5 regression where static-delta pulls fail with
"mmap: No such device" when the BSPATCH output lives on FUSE, which breaks
Flatpak system updates. It also carries more hardening: dirtree objects
with duplicate names are rejected, static-delta superblocks are parsed as
untrusted, the OpenSSL signers check for a return value of 1, rofiles-fuse
blocks O_TRUNC opens and removexattr on hardlinked objects, and a crash on
loading a second revoked SPKI key is fixed. ostree-prepare-root now accepts
a /run/ostree directory created earlier by the initramfs.

https://github.com/ostreedev/ostree/releases/tag/v2026.6

AI-Generated: Uses Claude Code (Claude Opus 5.5)
Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:45 -08:00
Ankur Tyagi 26f80ca3e0 libgphoto2: patch CVE-2026-120452
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120452

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi 56beba6867 libgphoto2: patch CVE-2026-120451
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120451

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi fe4c1b5472 hdf5: patch CVE-2026-120758
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120758

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi 17d4a12f9c hdf5: patch CVE-2026-120757
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120757

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi da818690f6 hdf5: patch CVE-2026-120756
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120756

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi 6254a354d6 hdf5: patch CVE-2026-120754 and CVE-2026-120755
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120754
https://nvd.nist.gov/vuln/detail/cve-2026-120755

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:44 -08:00
Ankur Tyagi 08221d912d hdf5: patch CVE-2026-120689
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-120689

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Ankur Tyagi 7c96b85733 hdf5: patch CVE-2026-19023 and CVE-2026-19024
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-19023
https://nvd.nist.gov/vuln/detail/cve-2026-19024

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Ankur Tyagi 7ae51251f4 hdf5: patch CVE-2026-19026, CVE-2026-19027 and CVE-2026-19028
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-19026
https://nvd.nist.gov/vuln/detail/cve-2026-19027
https://nvd.nist.gov/vuln/detail/cve-2026-19028

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Leon Anavi 4edb9dd826 opensc: add PACKAGECONFIG for ctapi
Add a PACKAGECONFIG option for OpenSC's CT-API reader driver so it
can be enabled without modifying the recipe, e.g. from local.conf:

PACKAGECONFIG:pn-opensc = "ctapi"

Please note that OpenSC's configure allows only one reader driver:

Only one of --enable-pcsc, --enable-cryptotokenkit,
--enable-openct, --enable-ctapi can be specified!

So to use it, ctapi should replace the default pcsc rather than
being just added to it. Not enabled by default. Existing builds are
unaffected.

The patch also removes --disable-ctapi from EXTRA_OECONF.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Sean Nyekjaer 876538ec6d zsh: add pcre PACKAGECONFIG
The zsh/pcre module is link=dynamic only, so add a PACKAGECONFIG for it
that conflicts with static.

libpcre2 inherits binconfig-disabled, so pass a small pcre2-config
wrapper using pkg-config via PCRE_CONFIG.

AI-Generated: Uses Claude Code
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Sean Nyekjaer 22c06dfc4f zsh: add gdbm PACKAGECONFIG
The zsh/db/gdbm module is link=dynamic only, so add a PACKAGECONFIG for
it that conflicts with static.

When static is disabled, preset the dynamic loading checks configure
can't run when cross compiling.

AI-Generated: Uses Claude Code
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:43 -08:00
Sean Nyekjaer 2951c149c5 zsh: move --disable-dynamic to a static PACKAGECONFIG
Allow building zsh with dynamically loadable modules by moving
--disable-dynamic into a PACKAGECONFIG named static, enabled by
default to keep the current behaviour.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Sean Nyekjaer 93bcd81032 zsh: drop unused libpcre2 dependency
The zsh/pcre module is link=dynamic only, and the recipe configures
with --disable-dynamic, so the module is not built. pcre is also
disabled by default in configure.

Drop libpcre2 from DEPENDS to avoid pulling in an unused library.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Sean Nyekjaer 144451f3e8 zsh: drop gdbm dependency and --disable-gdbm
gdbm support is disabled by default in zsh's configure, so
--disable-gdbm is redundant and gdbm in DEPENDS is unused.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Leon Anavi daa633e618 meta-python: README.md: Improve send-email command
Add -M30% -C --find-copies-harder to the git send-email example in
README.md so that git format-patch detects renames and copies more
aggressively.

Patches that move or copy files then show only the changed lines
instead of full file deletions and additions, which makes them
smaller and easier to review.

Suggested-by: Khem Raj <khem.raj@oss.qualcomm.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Leon Anavi dd641d680d python3-ujson: Upgrade 6.0.0 -> 6.1.0
Upgrade to release 6.1.0:

- No functional changes, only in binary wheels released to PyPI

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Leon Anavi 05e3c962b2 python3-typing-inspection: Upgrade 0.4.4 -> 0.4.5
Upgrade to release 0.4.5:

- Improve performance of get_literal_values()
- Expand chained type aliases in get_literal_values()

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Leon Anavi bab1ebbba3 python3-svglib: Upgrade 2.3.2 -> 2.3.3
Upgrade to release 2.3.3:

Security:

- The limit on <use> expansions added in 2.3.1 counted expansions,
  not their size. Each expansion copies and renders the whole
  element it refers to, so a few kilobytes of nested <use> groups
  with a large group at the bottom could still take minutes and
  gigabytes to render (CWE-400, GHSA-xpfm-fw4h-qxwv, an incomplete
  fix of GHSA-555j-qj3j-c8jv). The elements copied by all
  expansions of a document, external SVGs included, are now limited
  too (MAX_USE_CLONED_ELEMENTS, 20,000); once it is spent the
  remaining <use> elements are skipped and an error is logged.
  Thanks to Adrian Korwel for the report.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:42 -08:00
Leon Anavi 6178510d46 python3-soupsieve: Upgrade 3.0.4 -> 4.0
Upgrade to release 4.0:

- BREAK: The contents of an HTML template are no longer treated as
  part of the document. Selectors do not descend into a template,
  and elements inside one can't see beyond it, which also applies
  to pseudo-classes such as :lang(), :disabled, and :default.
  select and filter will still reach the contents of a template
  when they are called on the template itself, for example
  soup.template.select('p'). See the FAQ for more information.
- BREAK: The contents of an iframe are no longer treated as a
  separate document, as they are not one in a browser. Elements in
  an iframe are normal children, so :root does not match them, and
  :default, :indeterminate, :checked, :dir(), :lang(), and
  :read-write treat them like any other element. Recent versions of
  html.parser, lxml, and html5lib all escape the contents of an
  iframe like a browser does, so this mostly affects XHTML, Python
  versions that still don't escape such content in their specific
  html.parser, and elements added to an iframe by hand.
  :-soup-contains() now also includes the escaped text in an
  iframe. See the FAQ for more information.
- NEW: Update :disabled and :enabled to treat option and optgroup
  elements inside a disabled select as disabled, following a recent
  HTML specification update.
- FIX: Fix the subsequent-sibling combinator and :has(~ ...) never
  matching top level elements of a fragment that has no root
  element, unless caching was disabled.
- FIX: :indeterminate now treats a radio button group without a
  form as extending across the whole document instead of the top
  level element that contains it, and it no longer ignores radio
  buttons at the top level.
- FIX: Fix :default to treat a button with a missing or invalid
  type, and an input with type="image", as submit buttons.
- FIX: Fix :in-range and :out-of-range raising TypeError when the
  document contains an input without a type attribute.
- FIX: :read-write (and :read-only) now treat
  contenteditable="plaintext-only" elements as editing hosts and
  match the editable elements inside an editing host, following the
  nearest contenteditable state.
- FIX: :read-write (and :read-only) now ignore contenteditable on
  non-HTML elements, such as an SVG foreignObject, as the attribute
  only applies to HTML elements. Such elements inherit the state of
  their parent.
- FIX: :checked now only matches the last radio button with a
  checked attribute in a radio button group, as in a browser, where
  a group is the radio buttons with the same name and form,
  including the form attribute. :default still matches all of them,
  and the contents of a template are unaffected as they are not
  connected.
- FIX: :dir() and :defined no longer affect the rest of the
  selector list they are in. Previously, a selector list that used
  either of them could not have its combinators cross an iframe,
  ignored the specified namespaces, and matched nothing in XML, not
  even the parts that didn't use them. They still do not match in
  XML, but :not(:dir(ltr)) and :not(:defined) now do.
- FIX: :default and :indeterminate now honor the form attribute,
  which can associate a submit button or radio button with a form
  it is not in, or leave it without a form. It is ignored in a
  template, as in the HTML specification. Submit buttons outside of
  a form can now be its default button.
- FIX: :default, :checked, and :indeterminate now handle a form
  inside a form like a browser. In HTML, a browser ignores the
  nested form and takes its end tag for that of the parent, which
  matters for parsers that keep the nested form, such as
  html.parser. In XHTML and in a template, nested forms are real
  forms.
- FIX: :checked now matches the option that a browser would select.
  Without multiple, that is only the last option with a selected
  attribute in a select, and if there are none and the select shows
  a single option, the first option that is not disabled. :default
  still only considers the selected attribute.
- FIX: Fix [attribute!=value] excluding values that only start with
  the specified value, and in XML documents, type values that
  contain a newline.
- FIX: Match the values of every attribute that the HTML
  specification lists as ASCII case insensitive (rel, method, lang,
  dir, ...) without ASCII case sensitivity on HTML elements in HTML
  documents, not just type. Non-HTML elements are matched case
  sensitively.
- FIX: :dir() now matches non-HTML elements, such as SVG and
  MathML, by the direction they inherit from their parent (the dir
  attribute only applies to HTML elements), and HTML elements
  inside them, such as in an SVG foreignObject, by the direction of
  their ancestors.
- FIX: Fix :dir() ignoring the value of an input with dir="auto"
  and a missing or empty type.
- FIX: :dir() now uses a table generated from Unicode 18 instead of
  unicodedata, so results no longer depend on the Unicode version
  of the Python in use, and unassigned code points use their
  default direction.
- FIX: :dir() now uses the value of an input with dir="auto" when
  type is hidden, password, submit, reset, or button, as the HTML
  specification does.
- FIX: dir="auto" and bdi now analyze the text of non-HTML
  elements, such as SVG and MathML, and only ignore HTML elements
  such as script, style, and bdi. The text directly in an iframe is
  analyzed as well, and the contents of a template, which are not
  part of the document, are not.
- FIX: :dir() no longer lets the contents of a template inherit
  direction from the template or its ancestors, as they are not
  part of the document. They are left to right unless they specify
  otherwise.
- FIX: :dir() now matches a bdi element that is the root by its
  text instead of assuming left to right.
- FIX: :dir() now treats any element without a parent element as
  left to right, not just the root. Before, all but the first top
  level element of a fragment parsed with html.parser never
  matched.
- FIX: :dir() now accepts any identifier, as CSS requires,
  including escaped ones. Values other than ltr and rtl do not
  match anything.
- FIX: Respect namespaces provided by the parser when the root is
  not an HTML element, such as an svg element extracted from an
  html5lib document. Previously every element in such a tree was
  treated as an HTML element, which affected namespace selectors,
  namespaced attributes, and HTML specific pseudo-classes.
- FIX: Fix :lang() treating an element with an empty lang or
  xml:lang attribute as having the language of a tagged ancestor.
- FIX: Cache forms without a default button when matching :default
  to avoid quadratic time on forms with many non-default submit
  candidates.
- FIX: Fix :in-range and :out-of-range matching elements whose
  value, min, or max has a trailing newline; per HTML, such values
  are not valid, so they are treated like a missing value and
  cannot be out of range.
- FIX: Fix :in-range and :out-of-range raising ValueError when a
  date, month, week, or local date and time input has a year with
  more digits than Python will convert; such a year is now treated
  as invalid.
- FIX: Fix :in-range and :out-of-range not recognizing a
  datetime-local value, min, or max that uses a single space
  instead of T to separate the date and time.
- FIX: Search a form only once for checked radio buttons when
  matching :indeterminate to avoid quadratic time on forms with
  many radio button groups.
- FIX: :lang() now uses the lang attribute of SVG elements, as the
  HTML specification does (with xml:lang taking precedence).
  Previously only xml:lang was considered for elements outside the
  HTML namespace.
- FIX: :defined no longer matches HTML elements with an is
  attribute (customized built-in elements), which, like custom
  elements, are undefined until they are registered.
- FIX: Cache the index of each child when matching the general
  sibling combinator (a ~ b and :has(~ b)) to avoid quadratic time
  when the first matching sibling is far into a long list of
  siblings.
- FIX: Match attribute values with the i modifier using ASCII case
  insensitivity.
- FIX: Treat an input with an unknown type, such as type="foo", as
  a text input in :placeholder-shown, :read-write, :read-only and
  :dir(), as an invalid type is in the Text state in the HTML
  specification.
- FIX: Fix :enabled and :disabled never matching input elements
  with type="hidden".
- FIX: :required no longer matches input elements of types the
  required attribute does not apply to (hidden, range, color,
  submit, image, reset and button). Like in browsers, they match
  :optional.
- FIX: Cache whether an element is or has a matching ancestor when
  matching the descendant combinator (a b) to avoid time that grows
  with the depth of the document to the power of the number of
  combinators.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-11-06 00:15:41 -08:00