The patch bumps the Linux kernel to version 6.18.56 and U-Boot to
version 2026.10.
Tested on beaglebone black.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
gcc 15 defaults to the C23 standard, where bool, true and false are
keywords. The am33x-cm3 code base defines them in its own stddef.h,
so the build fails with:
src/include/stddef.h:18:15: error: 'bool' cannot be defined via 'typedef'
18 | typedef _Bool bool;
| ^~~~
src/include/stddef.h:19:8: error: cannot use keyword 'false' as enumeration constant
19 | enum { false, true };
| ^~~~~
The upstream project has not received any commit since 2018 and none
of its branches fix this issue, so rather than carrying a patch that
cannot be submitted to an active upstream, force the GNU C11 standard
in the .mk file.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
tqftpserv is a TFTP server over QRTR: the modem of Qualcomm SoCs fetches
files from Linux through it, e.g. the WLAN firmware (wlanmdsp.mbn) on
SoCs whose WLAN firmware runs on the modem. Files are looked up next to
the remoteproc firmware under /lib/firmware; xz and zstd compressed
files are handled when those libraries are enabled.
The systemd units are installed only with systemd as init; a sysv init
script is provided otherwise.
The patch defines _GNU_SOURCE in translate.c, which calls asprintf():
uClibc-ng declares it only then, so the build failed there (test-pkg,
bootlin-armv5-uclibc). Submitted upstream as well.
Tested on an Arduino UNO Q (Qualcomm QRB2210): the modem fetches
wlanmdsp.mbn through it and the ath10k WLAN interface comes up.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
rmtfs serves the EFS partitions of the modem of Qualcomm SoCs (modemst1,
modemst2, fsg, fsc) over QRTR and the rmtfs shared memory; without it
the modem firmware stalls during its boot.
The tarball ships the QMI encoders pre-generated, so the qmic code
generator is not needed; the .c/.h files are touched before the build
so make does not try to regenerate them. The sysv init script starts
the daemon with -P (EFS partitions by GPT label) and skips when there is
no rmtfs shared memory; RMTFS_ARGS can be overridden in
/etc/default/rmtfs (e.g. -s to let rmtfs start the modem). With systemd
the upstream unit and udev rule are installed.
Tested on an Arduino UNO Q (Qualcomm QRB2210): with sysv init the modem
boots, its EFS is served from the modemst1/modemst2/fsg partitions and
its WLAN firmware comes up.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Userspace for the Qualcomm IPC Router (QRTR), the transport between
Linux and the remote processors of Qualcomm SoCs: libqrtr plus the
qrtr-cfg and qrtr-lookup tools. rmtfs and tqftpserv, which the modem
needs to boot, are built on it.
The name service has been part of the kernel since Linux 5.7, so the
userspace qrtr-ns daemon (and its systemd unit) is not built.
lib/qmi.c, built into libqrtr, carries its own BSD-3-Clause notice
(The Linux Foundation, Linaro), so it is listed as a license file next
to LICENSE. The GPL-2.0 SPDX tags in the tree are on CI scripts only.
Tested on an Arduino UNO Q (Qualcomm QRB2210): qrtr-lookup lists the
modem's services after it boots.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
iperf3 3.22 added a new "goto errreturn" to decrypt_rsa_message(), on
a code path that is common to all OpenSSL versions, but the
errreturn label is only defined when OPENSSL_VERSION_MAJOR >= 3.
LibreSSL does not define OPENSSL_VERSION_MAJOR, so the build fails
with:
iperf_auth.c: In function 'decrypt_rsa_message':
iperf_auth.c:343:9: error: label 'errreturn' used but not defined
343 | goto errreturn; /* or: return 0; — never read more than output_buffer_len bytes */
| ^~~~
Backport the upstream commit that defines the label unconditionally.
This issue has been present since commit cb129a641b ("package/iperf3:
security bump version to 3.22"), as the broken code first appeared in
iperf 3.22. That commit is not part of any release nor of any
maintenance branch yet, so only master is affected, but this fix
should go along with the 3.22 bump if it gets backported.
Fixes:
https://autobuild.buildroot.org/results/6ed8f60f56f7fcd11eaa1ba160837275b8113e1a
Fixes: cb129a641b ("package/iperf3: security bump version to 3.22")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Since version 2.4, dovecot's configure defaults to --with-lua=auto and
picks up any Lua found through pkg-config, as long as it is >= 5.1 and
not 5.2. However, src/lib-lua/dlua-iostream.c, also new in 2.4, uses
luaL_Stream, luaL_tolstring() and luaL_fileresult(), which only exist
since Lua 5.2 and are not covered by dovecot's compat layer, so the
build fails when Lua 5.1 happens to be built before dovecot:
dlua-iostream.c:16:28: error: field 'stream' has incomplete type
dlua-iostream.c:68:24: error: implicit declaration of function 'luaL_tolstring'; did you mean 'lua_tolstring'? [-Wimplicit-function-declaration]
Handle Lua explicitly: enable it, and add the missing dependency, only
with Lua 5.3/5.4, and pass --without-lua otherwise, which also covers
LuaJIT as it only provides the Lua 5.1 API. This also makes the build
reproducible, as Lua is no longer picked up depending on build order.
This issue has been present since commit 894cbeddaf
("package/dovecot{-pigeonhole}: security bump version to 2.4.5"), as
dovecot 2.3 only enabled Lua when explicitly requested. That commit is
not part of any release yet.
Fixes:
https://autobuild.buildroot.org/results/e4cf30f6ca8b18ac010755bf13fc1d5e92eda575
Fixes: 894cbeddaf ("package/dovecot{-pigeonhole}: security bump version to 2.4.5")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
SDL3_net is the small cross-platform networking library for SDL3,
providing TCP and UDP sockets and hostname resolution.
Samples are not built and the man pages are not installed: the samples
are demo programs that are never installed, and Buildroot removes
/usr/share/man from the target anyway.
Built with CMake, like sdl3 itself, rather than with the autotools setup
the SDL2 counterpart uses.
Signed-off-by: Alsey Coleman Miller <alseycmiller@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Switch to the uv-build build backend.
Skip dependency checks to ignore the upper version bound on uv-build.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Switch to the uv-build build backend.
Skip dependency checks to ignore the upper version bound on uv-build.
Update license hash due to copyright year update:
02408d0024
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Building fmlib, either on PowerPC or ARM64 against an upstream kernel
will fail to build as the kernel modules include fm_ioctls.h, which
doesn't exist upstream. fmlib will only build with NXP-provided Linux
kernel sources. This commit mentions this in the Config.in help text.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
The fmlib package contains kernel modules that can only build with
NXP-provided kernel sources, as they need the fm_ioctls.h header which
doesn't exist upstream. Therefore, there is absolutely no chance for
fmlib to build in our autobuilders as they will always build upstream
Linux kernel source code.
This commit updates genrandconfig to ensure that we don't generate a
configuration that includes fmlib. This requires also disabling fmc,
which selects fmlib.
Fixes: https://autobuild.buildroot.net/results/7fb2b2808c4f122e08ca217f34c4d56a2b1bfcc0/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
The line:
configlines.remove('BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y')
would fail with:
Traceback (most recent call last):
File "/home/thomas/projets/buildroot/./utils/genrandconfig", line 650, in <module>
ret = asyncio.run(gen_config(args))
File "/usr/lib64/python3.14/asyncio/runners.py", line 205, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "/usr/lib64/python3.14/asyncio/runners.py", line 128, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib64/python3.14/asyncio/base_events.py", line 720, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/home/thomas/projets/buildroot/./utils/genrandconfig", line 556, in gen_config
if await fixup_config(sysinfo, configfile):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thomas/projets/buildroot/./utils/genrandconfig", line 255, in fixup_config
configlines.remove('BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y')
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: list.remove(x): x not in list
because all configlines end with a newline, so this needs to be fixed
to:
configlines.remove('BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y\n')
Fixes: b07d21ab98 ("utils/genrandconfig: handle BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
BR2_PACKAGE_PODMAN selects BR2_PACKAGE_SHADOW, but forgot to propagate
its !BR2_STATIC_LIBS dependency. This commit fixes this inconsistency.
We also propagate it to the only reverse dependency of podman, which
is mender-update-modules.
Fixes: ebbaac08e3 ("package/podman: new package")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
BR2_PACKAGE_PODMAN has:
select BR2_PACKAGE_RUNC if !BR2_PACKAGE_CRUN
but forgot to propagate the
BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS dependency from
BR2_PACKAGE_RUNC.
Propagating this dependency requires a bit more care than usual, due
to the ability to use crun as an alternative to runc.
We also propagate it to the only reverse dependency of podman, which
is mender-update-modules.
Fixes: ebbaac08e3 ("package/podman: new package")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
BR2_PACKAGE_MENDER_UPDATE_MODULES_RPM selects BR2_PACKAGE_RPM without
replicating its BR2_USE_MMU dependency.
BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU selects BR2_PACKAGE_SWUPDATE
without replicating its BR2_USE_MMU dependency.
This commit fixes that by properly propagating the missing
dependencies. There is in practice no functional change:
BR2_PACKAGE_MENDER_UPDATE_MODULES depends on
BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS and go is only supported on
MMU-capable CPU architectures. But since there is no formal
relationship between BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS and
BR2_USE_MMU, automatic validation cannot infer that
BR2_PACKAGE_MENDER_UPDATE_MODULES cannot be selected on !MMU systems.
Fixes: a474642fdc ("package/mender-update-modules: new package")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
net-snmp can be built with --enable-read-only, which removes all SET
support from the agent. For a device that is only ever polled this is
a stronger guarantee than withholding write access through VACM, since
a mistake in the access control configuration can no longer result in a
writable agent.
The client applications are unaffected. Default off, so existing
configurations build as before.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add the host-python-coherent-licensed build dependency.
Update license hash due to generated license text:
9a81db3c77
Add the python-typer-slim runtime dependency.
Drop the no longer required python-autocommand dependency.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Commit d7ccf54d7f ("package/uboot-tools:
fix target FIT signature support") changed how options for FIT support
are written to include/generated/autoconf.h, removing the
unconditional "echo" call (possibly with empty arguments) that existed
before. Because of this, include/generated/autoconf.h was not created
when U-Boot was built without FIT support, making the build fail
because of the missing header. Add a "touch" to ensure the file is
always created.
Fixes: d7ccf54d7f ("package/uboot-tools: fix target FIT signature support")
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add a simple test case that imports the module and does a simple
compress decompress routine.
Signed-off-by: Flaviu Nistor <flaviu.nistor@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Even if there is a 0.7.3 on Pypi, there is no 0.7.3 release on the
project homepage, hence the bump to 0.7.2.
The important change is that since 0.7.0, python-snappy uses
python-cramjam instead of nsappy.
Signed-off-by: Flaviu Nistor <flaviu.nistor@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
When running tests depending on entropy pool being ready on armv7 (eg:
test_openscap.py, which runs the 'oscap' binary, which tries to get
random bytes, even with simple commands), the test may fail on timeout
due to the entropy pool not being ready; this is confirmed by the test
being blocked until "crng init done" line appears in the kernel logs.
A solution could be to just increase the test timeout to a value large
enough to make sure that the entropy pool will be ready in most cases,
but it may be hard to find a value that fits all use cases, and all
tests depending on entropy being ready would deserve the same fix.
Another solution is to replicate what commit 7acb32dabb
("support/testing: add builtin armv5 kernel 4.19 with entropy") did: it
added the virtio-rng-pci argument to allow the guest machine to use host
entropy. The armv7 kernel used for testing seems to be built with the
relevant virtio configuration to allow a similar pass-through, so pass
virtio-rng-device to armv7 kernel when running tests.
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The LGPL v2.1 license file was edit in upstream commit 4225417da2 [1],
which is included in ffmpeg 7.0, and Buildroot commit b68bde5643 [2]
bumped to that version, which made ffmpeg-legal-info fail.
Fixes: b68bde5643
[1] 4225417da2 ("all: apply linter fixes")
4225417da2
[2] b68bde5643 ("package/ffmpeg: bump version to 7.0.3")
b68bde5643
Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
ncftp still ships a configure script generated with autoconf 2.13, which
determines whether it is cross compiling by simply trying to run a
trivial program built with $CC, instead of looking at --host/--build.
That heuristic breaks when the build machine is able to execute the
binaries produced by the cross compiler, which is typically the case
when building for x86/x86-64 on an x86-64 machine:
checking whether the C compiler (...) is a cross-compiler... no
configure then takes the AC_TRY_RUN path for the remaining tests. Those
tests link against the target libraries but are executed on the build
machine, so they fail as soon as more than the bare C library is
involved. The most visible victim is the curses detection, which links
the test program against the target libncurses and then runs it:
checking for curses library headers... checking for ncurses.h... yes
checking for curses.h... yes
checking for curses library... no
With no curses library, ncftpbookmarks is silently dropped from the
build and installation later fails with:
install: cannot stat '.../build/ncftp-3.3.0/bin/ncftpbookmarks': No such file or directory
Other checks are mis-detected the same way, e.g. the 64-bit integral
type checks, which end up breaking the build itself:
checking how to scan a 64-bit integral type... cannot scan
io_get.c:763:96: error: expected ')' before 'PRINTF_LONG_LONG'
So add a patch making the generated configure script follow what
autoconf has been doing since 2.50, and consider the build cross
compilation as soon as --host is given and differs from --build,
regardless of whether the produced binaries happen to be runnable.
Regenerating configure instead is not an option: the macros in
autoconf_local/aclocal.m4 rely on autoconf 2.13 internals (AC_LANG used
as a value, AC_FD_CC, __oline__, ...) and upstream generates configure
with a patched autoconf 2.13 (see autoconf_local/acgeneral-2.13.m4.patch
and acspecific-2.13.m4.patch). A modern autoconf fails with:
configure.in:53: error: AC_LANG: unknown language:
This regression was introduced by commit
f8bc271115 ("package/ncftp: bump to
version 3.2.9"). Before it, a pre-configure hook regenerated configure
with autoconf precisely because the bundled script "doesn't detect
cross-compilation correctly". With 3.2.9 that regeneration started to
fail, so the hook was dropped, which brought the broken detection back.
That commit left the host-autoconf dependency behind though, so drop it
now.
The issue is present since 2025.05, and in 2025.02.x since 2025.02.1,
where the 3.2.9 bump was backported as commit
6b0e4d82c3.
Fixes:
https://autobuild.buildroot.org/results/ab25f98d7ab8b397e2aa4f87af9cf1d814f3d6cc/
Fixes: f8bc271115 ("package/ncftp: bump to version 3.2.9")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>