Commit Graph
40921 Commits
Author SHA1 Message Date
Leon Anavi 73aeb65880 python3-coverage: Upgrade 7.16.2 -> 7.17.0
Upgrade to release 7.17.0:

- Dropped support for Python 3.10.
- Binary wheels are now provided for iOS and Android. This allows
  the use of the optimized C tracer on mobile platforms.
- Fix: three or more levels of nested with statements could make a
  with line look like a branch with an exit that can never happen.
  Using the sys.monitoring core, these phantom branches were
  reported as partial. Other cores hid the problem but still
  counted the phantom branches in the total.
- Fix: a comment or string that merely mentioned if True: or while
  True: could mark its line as a branch that is known to be
  partial, so a branch that never ran was reported as taken. These
  built-in patterns now only match at the start of the statement.
- Fix: region detection missed functions defined in unusual places,
  such as else and except clauses. This is now fixed.
- Fix: recent versions of the lcov tool complain if the same
  function name appears more than once in a report. Python can have
  multiple same-named functions in a few ways, for example,
  getters/setters or conditionally defined functions. These are now
  disambiguated by adding a @<line number> suffix to the function
  name.
- Fix: The "Can't combine statement coverage data with branch data"
  error now names the two data files it couldn’t combine. The error
  description in the docs now lists common causes and how to find
  the process that wrote the file.
- Fix: at coverage totals close to 0 or 100, the XML report could
  get incorrect line-rate values like 8.333e-05 or 1. This is now
  fixed.
- Fix: a parallel data file saved more than once kept the hash of
  its first save in its file name. Combining could then skip it as
  a duplicate of another file that had the same data at that point,
  and delete it, losing the data recorded after the first save.
  Each save now updates the hash. This had been a problem since
  7.13.1.
- Fixes for obscure but legal file names:
  - File names (and plugin names) can contain control characters,
    which are legal in POSIX paths but unsafe in reports: in XML
    1.0 they make the document non-well-formed, and in a terminal
    they act as escape sequences (colors, title/clipboard
    sequences, cursor moves that forge output). Now the XML report,
    the text and Markdown summary reports, and coverage debug data
    replace non-printable characters in names. Printable names are
    unchanged.
  - A file pattern (from include, omit, or a [paths] alias)
    containing a newline sent the glob-to-regex translation into an
    infinite loop, hanging the process. Newlines in patterns are
    now handled like any other character.
- Fixes in the implementation of the C tracer:
  - If a plugin’s dynamic_source_filename method raised an
    exception, lines in that function could be recorded as
    belonging to a different file. Also fixed some minor memory
    leaks in the C tracer.
  - The refcount of None was mismanaged during function calls,
    including comprehensions. This was unlikely to cause an actual
    problem, but is now fixed. Thanks, Andrew Dalke.
  - The C tracer held borrowed references to dictionary values,
    which was unsafe on free-threaded Python. Now it takes its own
    references.
  - An internal error while recording a new file could be reported
    as a confusing SystemError instead of the actual exception.
- Performance: the text summary report (coverage report) held on to
  every file’s parsed source until it finished, so its memory use
  grew with the size of the project: ten times or more what 7.14
  used on large projects. Now it keeps only what it needs to print.
- Performance: HTML reports should be about 5% faster to produce.
- Kept the political banner in the README.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 10:48:01 -07:00
Leon Anavi 6a79ef1cfe python3-brotli: Upgrade 1.2.0 -> 1.2.1
Upgrade to release 1.2.1:

- CVE-2026-111497: out-of-bounds write permits remote code execution

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 10:48:01 -07:00
Leon Anavi ac20bdb6f1 python3-autobahn: Upgrade 26.10.1 -> 26.10.2
Upgrade to release 26.10.2:

- Fix reading the TLS peer certificate
  (TransportDetails.peer_cert) with pyOpenSSL 26.2.0 and later:
  autobahn.twisted.util.extract_peer_certificate() raised
  AttributeError: 'X509' object has no attribute 'get_extension'
  for every certificate with extensions, as pyOpenSSL removed its
  X.509 extension API (and deprecates the rest of its X509 API).
  The certificate is now read with cryptography, in the new
  backend-neutral autobahn.util.peer_certificate_details(), which
  also never raises on certificate content it cannot parse (it is
  peer data, read before authentication): extensions, or a subject
  or issuer, that cannot be read are left empty. The peer_cert dict
  keeps its keys and formats, except: ⚠ extensions[].value was
  OpenSSL's text; a subject or issuer alternative name is still
  given as OpenSSL prints it (DNS:localhost, IP Address:127.0.0.1),
  other extensions now as cryptography prints them; and
  signature_algorithm is ed25519 instead of ED25519 for Ed25519
  certificates

- Fix the TLS peer certificate never being available on Twisted
  WebSocket and RawSocket connections: it was read when the TCP
  connection was made, before the TLS handshake, and so was always
  None. It is now read when the TLS handshake is complete, together
  with the TLS channel ID. With this, TLS client certificate
  authentication (Crossbar.io authmethod tls, and dynamic
  authenticators reading transport.peer_cert) works again

- Fix asyncio: fill TransportDetails.peer_cert (it was always
  None), and treat a TLS server connection without a client
  certificate as secure, with a TLS channel ID: is_secure was
  derived from the peer certificate, so WAMP-cryptosign with
  channel binding failed on asyncio servers

- Behaviour change - the TLS channel ID tls-unique on Twisted now
  follows RFC 5929 (the first TLS Finished message of the
  handshake, in a full handshake the client's), as Python's ssl
  module, and so autobahn on asyncio, already did. Twisted used the
  server's Finished message, so WAMP-cryptosign with channel
  binding failed between Twisted and asyncio peers over WebSocket,
  and between Twisted RawSocket peers (whose protocols did not set
  is_server, so the client side used the wrong message). Twisted
  peers on autobahn 26.10.1 or older and on 26.10.2 no longer agree
  on the channel ID over WebSocket: upgrade both sides of
  connections that use channel binding (#2014) Work around a PyPy
  bug: PyPy's ssl module (up to at least PyPy 7.3.23) returns the
  server's TLS Finished message from
  get_channel_binding("tls-unique") instead of the first (the
  client's), so autobahn on asyncio on PyPy disagreed with all
  other peers on the channel ID. The new autobahn.util.tls_unique()
  uses PyPy's own tls_unique_cb() on PyPy, which returns the right
  message

- TransportDetails.is_server is now set on Twisted RawSocket and
  asyncio WebSocket connections (it was None)

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 10:48:01 -07:00
Leon Anavi 7a902c3dab python3-alembic: Upgrade 1.20.0 -> 1.20.1
Upgrade to release 1.20.1:

bug:

- [bug] [autogenerate] Fixed issue where a table or column comment
  set to an empty string would cause autogenerate to detect a
  comment change on every run.  As most backends, including
  PostgreSQL, MySQL, MariaDB and Oracle, don't store an empty
  string comment distinctly from no comment, autogenerate now
  treats an empty string comment the same as None when comparing
  comments. Additionally, an empty string comment is now rendered
  in op.create_table() and op.add_column() directives, where it was
  previously omitted.  Pull request courtesy vineoy.

- [bug] [autogenerate] [postgresql] Fixed rendering of the
  PostgreSQL ~sqlalchemy.dialects.postgresql.DOMAIN type in
  autogenerated migration scripts.  Previously the type was
  rendered using repr(), which omitted the check, not_null,
  default, collation, constraint_name, schema and create_type
  arguments and did not apply a dialect prefix to the underlying
  data type.  The full set of arguments is now rendered and the
  underlying data type is rendered using the standard
  type-rendering logic.  Pull request courtesy Sebastian Cao.

- [bug] [autogenerate] [postgresql] Fixed false-positive "Computed
  default cannot be modified" warning emitted during autogenerate
  when comparing PostgreSQL Computed columns whose reflected SQL
  expression includes type cast specifiers such as ::regconfig or
  ::text, which PostgreSQL adds to the expression as stored.  These
  cast specifiers are now stripped before comparison so that
  otherwise equivalent expressions no longer trigger the warning.
  Pull request courtesy Sebastian Cao.

- [bug] [autogenerate] [postgresql] Fixed issue where autogenerate
  would detect an unchanged PostgreSQL expression-based index as
  modified when the expression included type casts, such as a cast
  to a type with a length or precision, a nested cast, or a cast
  followed by a DESC modifier.

- [bug] [postgresql] Fixed bug where Operations.alter_column()
  against a PostgreSQL identity column would render an incomplete,
  invalid ALTER TABLE ... ALTER COLUMN statement with no clause at
  all when existing_server_default was omitted, even if there were
  no existing server default.  Pull request courtesy Riti Grover.

- [bug] [environment] Fixed issue where a third party plugin
  published using the alembic.plugins entrypoint, configured to
  refer to a plugin module as documented at
  alembic.plugins.toplevel, would cause import alembic to fail with
  a TypeError, as the loaded module was erroneously iterated rather
  than being set up directly. An entrypoint that refers to a
  collection of modules, the form which inadvertently worked
  previously, continues to be accepted but now emits a deprecation
  warning.

- [bug] [autogenerate] Fixed issue where dialect-specific keyword
  arguments on a ForeignKeyConstraint, ForeignKey or
  CheckConstraint, such as postgresql_not_valid, were not rendered
  for the constraints that are part of an autogenerated
  Operations.create_table() directive, nor for an autogenerated
  Operations.create_check_constraint() directive.  The
  Operations.create_table() case additionally requires SQLAlchemy
  2.0.55 / 2.1.5 or greater.

- [bug] [autogenerate] Fixed issue where, when using SQLAlchemy
  2.1, the CHECK constraint generated by a type such as
  ~sqlalchemy.types.Enum or ~sqlalchemy.types.Boolean with
  create_constraint=True would be rendered by autogenerate as
  explicit sa.CheckConstraint() entries within op.create_table(),
  in addition to the type itself which already produces that
  constraint, leading to a duplicate constraint error when the
  migration is run.

- [bug] [operations] Fixed issue where a CreateTableOp produced
  from an existing ~sqlalchemy.schema.Table using
  CreateTableOp.from_table() would emit the CHECK constraint
  generated by a type such as ~sqlalchemy.types.Enum or
  ~sqlalchemy.types.Boolean with create_constraint=True twice in
  the resulting CREATE TABLE statement when invoked directly.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 10:48:01 -07:00
Ross Burton c3dc1f2b33 python3-dbus-fast: upgrade 4.0.0 -> 5.2.0
Drop the Cython version patch, as upstream has a wider range now.

async-timeout was removed as an dependency upstream in v1.90.0.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 10:48:01 -07:00
Peter Marko e94f799ccc python3-grpcio-tools: upgrade 1.76.0 -> 1.84.1
Upgrade to addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

Sync all grpc recipes to the same version.

Removed obsolete patches:
* The compiler-argument fix is already handled upstream using
  shlex.split()
* Bundled protobuf now restricts musttail to AArch64 and x86-64, so the
  MIPS exclusion patch is unnecessary.

License-Update: switched from license to license expression
orig: License: Apache License 2.0
New:  License-Expression: Apache-2.0

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Peter Marko 01a487f06c python3-grpcio-reflection: upgrade 1.84.0 -> 1.84.1
Upgrade to addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

Sync all grpc recipes to the same version.

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Peter Marko 44bd91716b python3-grpcio-channelz: upgrade 1.84.0 -> 1.84.1
Upgrade to addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

Sync all grpc recipes to the same version.

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Peter Marko 049f4b32b5 python3-grpcio: upgrade 1.78.0 -> 1.84.1
Upgrade to addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

License-Update: clarified which license applies to which file
* https://github.com/grpc/grpc/commit/fb53717dfa6b264e7f930bb5e9a7e5c86a31ed9e

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Peter Marko 5366568e93 grpc: upgrade 1.84.0 -> 1.84.1
Upgrade to addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

$ git log --oneline v1.84.0..v1.84.1
b0c0c4f882 (HEAD -> v1.84.x, tag: v1.84.1) [Release] Bump version to 1.84.1 (on v1.84.x branch) (#43709)
405e6a1c30 [Backport][v1.84.x][security] Update gRPC repo roots. (#43700)
826616aed4 [Backport][v1.84.x][CI] Various macOS CI reliability fixes (#43701)
49d6985875 [PSM Interop][Backport v1.84.x] Update xDS legacy test scripts for health proto pa… (#43572)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Ankur Tyagi d267404808 unbound: upgrade 1.26.1 -> 1.26.2
Details:
https://github.com/NLnetLabs/unbound/releases/tag/release-1.26.2

(cherry picked from commit fa5ff1a6995788e231fff5e59901d226ab5ff0e8)

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:06 -07:00
Ankur Tyagi ba17174e39 libmspack: patch CVE-2026-110602
Details:
https://nvd.nist.gov/vuln/detail/cve-2026-110602

(cherry picked from commit 94901e4ad41b2d45e1a28e92ceeda8ae74148081)

Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Ross Burton 58b59c7c86 python3-ruff: build with maturin
ruff is built with maturin, so inherit the python_maturin class.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Peter Marko d2c99857c3 nss: upgrade 3.126 -> 3.132
Amongst other things, this addresses eMudhra certificates issue.
See https://emudhra.we-have-a-problem.com/

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Khem Raj 7985170eb4 gnome-commander: Fix build on targets without 64-bit atomics
The object id counter in src/weak_ref.rs is a std AtomicU64, which is
not available on targets without 64-bit atomics, so the build fails
for riscv32:

  error[E0432]: unresolved import `std::sync::atomic::AtomicU64`

Add a patch that keeps the 64-bit counter in a Mutex instead. The code
has since been removed upstream.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Khem Raj 2cadb9afb8 waf-samba: Reconfigure when the cross-answers file changes
do_configure reads the per architecture cross-answers file from the
layer by path rather than through SRC_URI, so editing it does not
change the task signature, and existing builds keep the old answers
until they are reconfigured by hand.

Make the answers directory a variable and add the file to
do_configure[file-checksums].

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Khem Raj 1e48d62ee0 samba: Fix riscv32 waf cross answers
The riscv32 cross answers were derived from arm, but riscv32 has no
legacy 32-bit credential syscalls such as setresuid32, so samba asks
"Checking whether we can use Linux thread-specific credentials" instead
of the "with 32-bit system calls" variant. With no answer, configure
fails:

  Checking whether we can use Linux thread-specific credentials : not found
  ...
  The configuration failed

Answer it like riscv64 and aarch64 do.

riscv32 also has a 64-bit time_t, so the time_t maximum value check
succeeds like on 64-bit targets. Answer it OK so that samba does not
limit TIME_T_MAX to INT32_MAX.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:05 -07:00
Khem Raj 341d70bee2 gthumb: Include stdbool.h for bool
src/lib/util.h uses bool without including stdbool.h, which fails to
build where no other header pulls it in, e.g. with clang on riscv32
musl:

  src/lib/util.h:68:1: error: unknown type name 'bool'

Add a patch that includes it.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj d595881711 gnome-shell: Mark incompatible with riscv32
It depends on glycin, which is not available on riscv32, as it
requires libseccomp, which is not ported to rv32.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj 30e5984702 sd: Fix build for riscv32
crossbeam-utils 0.8.16 does not recognize the riscv32-yoe-linux-musl
target as lacking 64-bit atomics, and rustix 0.38.20 with linux-raw-sys
0.4.10 lacks ioctl definitions for riscv32, so the build fails.

Add a patch that updates them in Cargo.lock to crossbeam-utils 0.8.23,
rustix 0.38.44 and linux-raw-sys 0.4.15, and regenerate sd-crates.inc.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj 42201df1a5 ibus: Use native pkg-config for build tools
When cross compiling, ibus builds unicode-parser with CC_FOR_BUILD and
the glib flags from PKG_CONFIG_FOR_BUILD. That defaults to the native
pkg-config binary, but with the target PKG_CONFIG_PATH and sysroot, so
the build tool is compiled against the target glib headers. On 32-bit
targets glib's static assertions then fail with the 64-bit host
compiler:

  glib/gmacros.h:910:31: error: static assertion failed: "Expression evaluates to false"

Pass pkg-config-native, which uses the native sysroot, as
PKG_CONFIG_FOR_BUILD.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj ff4d0b0184 librice: Fix build on targets without 64-bit atomics
rice-proto counts agents in a core AtomicU64, which is not available on
targets without 64-bit atomics, so it fails to build for riscv32:

  error[E0432]: unresolved import `core::sync::atomic::AtomicU64`

Add a patch that uses AtomicUsize for it, like the other id counters
in rice-proto, keeping the u64 agent id.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj 9c0106e63b nushell: Fix build for riscv32 musl
Add patches to the vendored crates:

- libc: Add the syscall numbers 443 to 450, which riscv32 musl lacks
  and rustix needs for SYS_futex_waitv.
- fff-search, rmcp, nu-command and nu-dap: Use the 64-bit atomics from
  portable-atomic on targets without 64-bit atomics, where std does not
  provide them, and record the dependency in Cargo.lock since the build
  uses --frozen.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:04 -07:00
Khem Raj 5115c1d7d0 nushell: Upgrade 0.116.0 -> 0.116.1
Regenerate nushell-crates.inc with 'bitbake -c update_crates'.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 6241c7a96c python3-ruff: Fix build on targets without 64-bit atomics
std only provides AtomicU64 on targets with 64-bit atomics, so ruff
fails to build for riscv32:

  error[E0432]: unresolved import `std::sync::atomic::AtomicU64`
   --> crates/ruff/src/cache.rs:7:25

Add a patch that uses portable-atomic's AtomicU64 for the cache
timestamp on such targets, archived in the same on-disk format.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 98867b96b8 python3-ruff: Upgrade 0.16.8 -> 0.17.1
Regenerate python3-ruff-crates.inc with 'bitbake -c update_crates'.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 52c9543412 floret: Link with libatomic when 64-bit atomics need it
floret keeps its training token counter in a std::atomic<int64_t>. On
riscv32 its operations become __atomic_*_8 libcalls, and floret is not
linked with libatomic, so linking the CLI fails:

  ld.lld: error: undefined symbol: __atomic_fetch_add_8

Add a patch that checks in CMake whether 64-bit atomics need libatomic
and only then links the libraries with it and adds it to floret.pc.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 8fd0c8b3cc mozjs-140: Backport libc fix to declare getrandom on all musl targets
The vendored libc 0.2.171 crate declares getrandom() for musl only on
some architectures, so the vendored getrandom crate fails to build for
riscv32 musl:

  error[E0425]: cannot find value `getrandom` in crate `libc`

Backport the libc 0.2.172 change that declares it for all musl targets,
and update the vendored crate checksums of the modified files.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 9d6a9eac6a klibc: Mark incompatible with riscv32
klibc only has a riscv64 port, which hardcodes KLIBCBITSIZE = 64 and
uses 64-bit loads and stores in its assembly, and upstream has no
riscv32 port. With KLIBC_ARCH defaulting to TARGET_ARCH, the build fails:

  make[1]: *** No rule to make target '.../usr/klibc/arch/riscv32/MCONFIG'.  Stop.

Mark klibc and the recipes sharing klibc.inc incompatible with riscv32
so they are skipped instead of failing to build.

Also skip all recipes inheriting klibc

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:03 -07:00
Khem Raj 6d1dec8ef3 x265: Link with libatomic when 64-bit atomics need it
The encoder uses atomic operations on 64-bit counters. On riscv32 these
become __atomic_*_8 libcalls, and libx265 is not linked with libatomic,
so linking the x265 CLI fails:

  ld.lld: error: undefined reference: __atomic_fetch_or_8
  >>> referenced by libx265.so.217 (disallowed by --no-allow-shlib-undefined)

Add a patch that checks in CMake whether 64-bit atomics need libatomic
and adds it to the platform libraries only in that case.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj 535b74e21a hiawatha: Link with libatomic when 64-bit atomics need it
hiawatha uses __atomic_store_n()/__atomic_load_n() on time_t values. On
riscv32, where time_t is 64-bit but there are no 64-bit atomic
instructions, these become __atomic_*_8 libcalls, and linking fails:

  ld.lld: error: undefined symbol: __atomic_store_8

Add a patch that checks in CMake whether atomic operations on a time_t
need libatomic and links hiawatha with it only in that case.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj 377c836373 rtorrent: Fix libatomic detection with optimized builds
The configure check for -latomic links a program that loads from a
local std::atomic<uint64_t>, which clang folds away at -O2. On riscv32
it therefore reports that libatomic is not needed, and linking rtorrent
fails:

  ld.lld: error: undefined symbol: __atomic_load_8

Add a patch that makes the test atomic global and modifies it with
fetch_add() so the check cannot be optimized away.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj ff67facd09 libtorrent: Fix libatomic detection with optimized builds
The configure check for -latomic links a program that loads from a
local std::atomic<uint64_t>, which clang folds away at -O2. On riscv32
it therefore reports that libatomic is not needed, and libtorrent.so is
left with undefined __atomic_fetch_add_8, __atomic_fetch_sub_8,
__atomic_load_8 and __atomic_store_8 references and no dependency on
libatomic.

Add a patch that makes the test atomic global and modifies it with
fetch_add() so the check cannot be optimized away.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj bd8d6d359e android-tools: Mark incompatible with riscv32
do_compile maps HOST_ARCH to the Android architecture and fails for
riscv32, which Android does not support:

  ERROR: Unsupported HOST_ARCH=riscv32

Mark the recipe incompatible with riscv32, as for powerpc, so it is
skipped instead of failing to build.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj 11b21ba2e8 bit7z: Avoid 64-bit atomics in BufferQueue
BufferQueue keeps its memory usage counter in a std::atomic<uint64_t>,
which riscv32 lowers to __atomic_*_8 libcalls, so programs linking the
static libbit7z, such as the ptest binaries, fail to link:

  ld.lld: error: undefined symbol: __atomic_fetch_add_8
  ld.lld: error: undefined symbol: __atomic_fetch_sub_8
  ld.lld: error: undefined symbol: __atomic_load_8

Add a patch that uses a std::size_t counter instead. It sums the sizes
of in-memory buffers, so it always fits, and the atomic is lock-free on
every target, so no libatomic is needed.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:02 -07:00
Khem Raj e8539731c1 ngtcp2: Fix example server build on 32-bit targets
The example server keeps the file size in a uint64_t and uses it as the
size of a std::span, which clang rejects as narrowing on targets with a
32-bit size_t, such as riscv32:

  examples/server.cc:236:54: error: non-constant-expression cannot be
  narrowed from type 'uint64_t' (aka 'unsigned long long') to
  'size_type' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]

Add a patch that stores the length as a size_t and rejects files too
large to map instead of truncating their size.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj e850841cda pgpool2: Define SIZEOF_LONG and SIZEOF_LONG_LONG
When cross compiling for a 32-bit target such as riscv32, configure
cannot test the long long snprintf format and builds the replacement
snprintf(), which fails because SIZEOF_LONG and SIZEOF_LONG_LONG are
never defined:

  snprintf.c:651:2: error: "cannot find integer type of the same size as size_t"

Add a patch that checks the size of long and long long in configure.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj 7dbeacb47c fio: Link with libatomic when 64-bit atomics need it
fio uses 64-bit C11 atomics, which riscv32 lowers to
__atomic_load_8/__atomic_store_8 libcalls, so linking fio fails:

  ld.lld: error: undefined symbol: __atomic_load_8
  ld.lld: error: undefined symbol: __atomic_store_8

Add a patch that makes configure check whether 64-bit atomics need
libatomic and add it to LIBS only in that case.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj b722da7727 poco: Fix libatomic detection with optimized builds
CheckAtomic.cmake tests whether libatomic is needed with a program that
loads from a local std::atomic. With -O2 clang folds the load away, so
the check passes on riscv32 even though 64-bit atomics need libatomic,
and linking fails later:

  ld.lld: error: undefined reference: __atomic_fetch_add_8
  ld.lld: error: undefined symbol: __atomic_load_8

Add a patch that makes the test programs use a global atomic with a
read-modify-write operation so they cannot be optimized away.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj b7813c8d2d rdma-core: Link libmana with libatomic when needed
libmana uses 64-bit C11 atomics, which riscv32 lowers to
__atomic_load_8/__atomic_store_8 libcalls, so linking libmana fails:

  ld.lld: error: undefined symbol: __atomic_load_8
  ld.lld: error: undefined symbol: __atomic_store_8

Add a patch that checks at configure time whether 64-bit atomics need
libatomic and links libmana with it only in that case.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj 3ca2a7bf7f rdma-core: upgrade 64.0 -> 65.0
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj 85eeead4e6 ntp: Use time_t for the stime() argument
ntp_set_tod() passes a long to stime(), which fails to build on 32-bit
targets with a 64-bit time_t, e.g. riscv32 with clang:

  libntp/machines.c:483:14: error: incompatible pointer types passing
  'long *' to parameter of type 'const time_t *'

Add a patch to use time_t unless the system declares stime() with a
long (DECL_STIME_1), so the argument matches the prototype in use on
every architecture.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:01 -07:00
Khem Raj a946b5311d castxml: upgrade 0.7.0 -> 0.8.0
Drop the LLVM/Clang 23 port backport, it is included in this release.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Marek Vasut 784c75a3a0 overlayfs-tools: Inhibit tests on configure
In case the overlayfs-tools are built using meson, a test triggers
during meson setup phase during do_configure task. The test invokes
"sudo", which may not be present on the build machine. Skip the test
at meson setup phase. Tests should be executed separately on demand
using "meson test" command instead, and invoking "sudo" and expecting
it to work during do_configure is unusual.

"
ERROR: overlayfs-tools-v2025.01-r0 do_configure: meson setup failed
...
| Run-time dependency musl-fts found: NO (tried pkgconfig)
| Library m found: YES
| Program test_cases/run_tests.py found: YES (/home/oe/build-some-target/tmp/work/arm64-distro-linux/overlayfs-tools/v2025.01/sources/overlayfs-tools-v2025.01/test_cases/run_tests.py)
|
| ../sources/overlayfs-tools-v2025.01/meson.build:94:0: ERROR: Program 'sudo' not found or not executable
|
| A full log can be found at /home/oe/build-some-target/tmp/work/arm64-distro-linux/overlayfs-tools/v2025.01/build/meson-logs/meson-log.txt
|
| Last 10 lines of meson-log.txt:
| Code:
| int main(void) { return 0; }
"

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Ricardo Salveti da61e01434 pahole: fix kernel BTF generation when OBJCOPY carries options
pahole 1.32 takes the whole value of LLVM_OBJCOPY as the objcopy program
name. Kernels up to v6.19, such as the 6.18 LTS, set it from $(OBJCOPY),
which ends with a blank in OE builds, so the kernel link fails when
generating BTF:

  btf_encoder__write_elf: failed to add .BTF section to '.tmp_vmlinux1'

Bring the fix submitted upstream, which splits the command into words.

Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Khem Raj cafddff7a7 python3-breathe: Fix ptests with docutils 0.23 and doxygen 1.18
docutils 0.23 serializes boolean attributes as "1"/"0" rather than
"True"/"False", which made almost every test_examples case fail; add a
patch that normalizes the value when comparing.

The class, cpp_function, group and headings examples compare against
models generated with doxygen 1.9.x and do not match doxygen 1.18
output, so deselect them in a custom run-ptest.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Khem Raj cd1bf9ee36 python3-fsspec: Fix runtime dependencies and install conftest for ptests
fsspec imports ctypes, asyncio, json, logging and threading, which are
not in python3-core, without ctypes "import fsspec" fails, which also
broke the python3-pyyaml-include ptests.

Install the top-level fsspec/conftest.py into the ptest dir, it
provides the "m" fixture and the autouse instance cache cleaner, and
without it most tests error out or fail.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Khem Raj 9379ce65ea python3-pandas: Add missing runtime dependency on python3-zoneinfo
pandas 3 imports zoneinfo, so without it "import pandas" fails with
ModuleNotFoundError, and later imports in the same interpreter fail on
the partially initialized module.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:54:00 -07:00
Khem Raj b2f9904639 python3-filelock: Install docs/how-to.rst for ptests
test_documented_cache_lock_name reads docs/how-to.rst relative to the
tests dir and fails with FileNotFoundError when it is not installed.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:53:59 -07:00
Khem Raj 47e9b831af python3-anyio: Add missing runtime dependency on typing-extensions
anyio 4.15 imports typing_extensions on python < 3.15, so importing
anyio on target fails with ModuleNotFoundError. This broke the
a2wsgi, pytest-httpx and uvicorn ptests.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-10-23 08:53:59 -07:00