Commit Graph

37487 Commits (master)

Author SHA1 Message Date
Austin Lane 0616b9d7f7 python-platformio: update to v6.2.0
tested with meshtasticd (dependent) compile

Signed-off-by: Austin Lane <vidplace7@gmail.com>
2026-09-17 20:45:34 +03:00
Michael Pfeifroth f601e632e7 modemmanager: fix custom initial EPS bearer username
The custom initial EPS bearer code uses init_username, which agrees
with the documented UCI option. However, the option was registered
and read as init_user, so init_username was discarded before the
custom EPS bearer settings were passed to mmcli.

Register and read the option consistently as init_username.

Signed-off-by: Michael Pfeifroth <micpf@westermo.com>
2026-09-17 16:54:35 +02:00
Wei-Ting Yang baac45838d swanmon: add version check override
Add a version check override script that verifies swanmon displays its
usage information, since swanmon does not provide version information.

Remove redundant test.sh.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-17 16:53:20 +02:00
Wei-Ting Yang c9d3faee51 swanmon: update to Git HEAD (2026-04-23)
c0e2e3c28293 swanmon: replace glib queue with json_stack
40bcc77fc83c CMakeLists: remove setting empty link flags
52901f35daff query: fix wrong include
25a0c1719225 cmake: bump cmake minimum up to 3.13
f6aa6b659d11 README: update documentation
b2d1ec4e546f main: fully initialize terminating NULL command

Remove the no longer needed glib2 dependency.
Drop the superseded 001-cmake4.patch.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-17 16:53:20 +02:00
Josef Schlehofer 9c7f2f0429 CONTRIBUTING: document what a patch has to look like
Three things are expected of a patch under <package>/patches/ and none of
them were written down for contributors.

The header has to be git am compatible, with the From/From:/Date:/Subject:
lines, which the formality check enforces. The body has to say where the
change stands with respect to upstream, so a later maintainer can tell a
backport that a version bump makes redundant from a cross-compile fix that
has to stay. And the diff has to come from the buildroot's refresh target,
which invokes quilt with -p ab --no-index --no-timestamps and
QUILT_DIFF_OPTS=-p; a git diff carries index lines and timestamps and lacks
the function name in the hunk headers, so it gets sent back even when it
applies.

Write all three down, and say what each quilt option is for rather than
just naming the command, so the reason survives the next time someone
wonders whether the timestamps matter.

llm-review-rules.md already tells the review bot about the refresh target
and the upstream reference. That file is the bot's instructions and it
points contributors here, so this is where the requirement belongs.

Signed-off-by: Josef Schlehofer <pepe@bloodkings.eu>
2026-09-17 10:03:50 +02:00
Austin Lane 8c29bd78ac vscode: exclude .patch files from trimTrailingWhitespace
Editing .patch files containing unmodified newlines
(represented by a single space) in vscode results in a dirty patch
as these spaces are stripped.

Set trimTrailingWhitespace = false for diff-language files (.patch)

Signed-off-by: Austin Lane <vidplace7@gmail.com>
2026-09-17 07:21:56 +02:00
Dirk Brenken 93a34793be
shunt: update to 0.1.8
- new per-policy `domain_file` list: domain patterns from a file, one
  per line, for community-maintained lists too large for UCI. Entries
  are learned by snoop only, never polled
- a bare name lives under /tmp/shunt (tmpfs, no flash wear), an
  absolute path is taken as given; a missing file is an issue, not a
  fatal error, the policy stays rendered with empty sets
- new `shunt refresh` (ubus method `refresh`): re-reads the files and
  swaps the matcher in place, no restart, learned addresses stay
- matcher: regex fast path, 4x faster on 100k patterns
- routes and rules are written over rtnetlink via ucode-mod-rtnl
  instead of one `ip` process per command; route.uc renders the
  netlink operations, the new src/rt.uc applies them and reads the
  verdict from rtnl.error()
- `rp_filter_manage` writes /proc/sys directly, `nft` is the last
  remaining child process
- `+ip` dropped from DEPENDS
- README update

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Dirk Brenken <dev@brenken.org>
2026-09-16 19:29:17 +02:00
Wei-Ting Yang 6fd88543e2 bash: update to 5.3 patch level 20
- Accommodate macOS dynamic pipe sizing, avoiding hangs.
- Modify the readline redisplay code to use a buffer offset instead of
  the physical prompt length in a multibyte locale to determine whether
  to reprint the prompt from column 0 because the cursor is before the
  last invisible character in the prompt string.
- Fix readline crash with a prompt that exceeds 256 wrapped lines.
  Fix readline redisplay code to print the entire prompt if the first
  few characters are identical but part of a terminal escape sequence
  and the prompt needs to be redrawn.
- Work around systems including bytes between 128 and 255 in the
  isalpha(3) set, which causes bash to potentially include them in
  identifier names.
- If readline handles a SIGWINCH and updates its idea of the screen
  dimensions, it needs to recompute the columns where the prompt wraps
  lines every time, not just when the screen width decreases.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-16 18:53:00 +03:00
Daniel Golle 763e45c890 ustreamer: use ATOMIC64_DEPENDS
ustreamer and ustreamer-dump import 64-bit atomics from libatomic where
the compiler cannot inline them, but the build links the library on
every architecture. ATOMIC64_DEPENDS restricts the dependency to the
targets that need it; --as-needed drops the unused library elsewhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle e2dd1dc19d udpspeeder: drop libatomic dependency
The binary links nothing from libatomic on any architecture, so the
dependency is unnecessary.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle a4700ccda3 sysrepo: use ATOMIC64_DEPENDS
sysrepo-plugind imports 64-bit atomics from libatomic where the
compiler cannot inline them, but the CMake build links the library on
every architecture. ATOMIC64_DEPENDS restricts the dependency to the
targets that need it; --as-needed drops the unused library elsewhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 3156347f41 srt: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 435792539d ruby: use ATOMIC64_DEPENDS
The open-coded architecture list pulls libatomic onto ARMv6K and ARMv7
targets although they inline 64-bit atomics, and still names the
removed arc architecture. ATOMIC64_DEPENDS covers exactly the targets
that need it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle cc100f7a59 rtorrent: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 80d3aabb68 python3: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle b20484d843 php8: drop libatomic dependency
PHP's configure script probes __atomic_exchange_1 as an external
function on riscv64, which only resolves against libatomic, and so
links the library although no binary references an atomic symbol.
The riscv64-only dependency and linker flag paper over that. Link
with --as-needed so the unused library is dropped and remove both;
mips and riscv64 builds import no atomic symbols.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 8c5df29a88 openal-soft: drop libatomic dependency
The CMake build links libatomic on targets without inline 64-bit
atomics, but libopenal imports no symbol from it. Link with --as-needed
so the unused library is dropped and remove the dependency.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle b1d91158c2 nfdump: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle e99ffadc69 netatalk: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 06ded6eaa6 nanomq: use ATOMIC64_DEPENDS
The daemon imports 64-bit atomics from libatomic where the compiler
cannot inline them, but the CMake build links the library on every
architecture. ATOMIC64_DEPENDS restricts the dependency to the targets
that need it; --as-needed drops the unused library elsewhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle c5fd093c3d libopen62541: drop libatomic dependency
The library links nothing from libatomic on any architecture, so the
dependency is unnecessary.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 30cfcf3ea3 knot: drop libatomic dependency
None of the binaries links libatomic on any architecture, so the
dependency is unnecessary.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle 4b24b41e7a gstreamer1: use ATOMIC64_DEPENDS
The open-coded architecture list pulls libatomic onto ARMv6K and ARMv7
targets although they inline 64-bit atomics. ATOMIC64_DEPENDS covers
exactly the targets that need it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle d3b00edee4 gnutls: drop libatomic dependency
The libraries link nothing from libatomic on any architecture, so the
dependency is unnecessary.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle d6f50e42d3 gnunet: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Daniel Golle b8c4efa23a bind: use ATOMIC64_DEPENDS
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-16 16:35:19 +01:00
Qingfang Deng 854113b40e ovpn-dco: update to 7.2.0.2026082800
Update to the latest version.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
2026-09-16 14:36:17 +03:00
Qingfang Deng 6edb4a44c7 openvpn: update to 2.7.7
Update to the latest version.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
2026-09-16 14:36:17 +03:00
Mirko Vogt 87456bddf4 ffmpeg: change PKG_MAINTAINER
- removing Ted Hess as maintainer per request by himself
 - removing Ian Leonard as maintainer per request by himself
 - adding myself (Mirko Vogt) as maintainer
 - adding Daniel Golle as maintainer

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
Mirko Vogt e1a07d05b9 ffmpeg: add V4L2 hardware decoding patches from LibreELEC
V4L2 Request API hwaccels for stateless decoders such as Allwinner
cedrus, exporting DRM_PRIME frames, and a V4L2 M2M deinterlace filter
driving mem2mem deinterlacers such as Allwinner's sun8i-di on DRM_PRIME
frames. The hwaccels introduce the v4l2-request and libudev configure
options.

Add the FFMPEG_V4L2_REQUEST option (pulls libdrm and libudev) to the
libffmpeg menu, keep both new configure options explicitly off in the
common block like the other autodetected ones, and re-add the
*_v4l2request hwaccels under manual component selection.

Patches:
  120-v4l2-request-01 to -13: carried over from LibreELEC
    (packages/multimedia/ffmpeg/patches/v4l2-request/0001-v4l2-request.patch
    as of LibreELEC commit 79de202a10), one file per patch of the series:
    01 avutil/hwcontext: Add hwdevice type for V4L2 Request API
       (Jonas Karlman)
    02 avutil/hwcontext_v4l2request: Probe for a capable media and
       video device (Jonas Karlman)
    03 avcodec: Add common V4L2 Request API code (Jonas Karlman)
    04 avcodec/v4l2request: Add common decode support for hwaccels
       (Jonas Karlman)
    05 avcodec: Add V4L2 Request API mpeg2 hwaccel (Jonas Karlman)
    06 avcodec/h264dec: add ref_pic_marking and pic_order_cnt bit_size
       to slice context (Boris Brezillon)
    07 avcodec: Add V4L2 Request API h264 hwaccel (Jernej Skrabec)
    08 avcodec: Add V4L2 Request API hevc hwaccel (Jernej Skrabec)
    09 avcodec: Add V4L2 Request API vp8 hwaccel (Boris Brezillon)
    10 avcodec: Add V4L2 Request API vp9 hwaccel (Boris Brezillon)
    11 avcodec: Add V4L2 Request API av1 hwaccel (Jonas Karlman)
    12 avutil/hwcontext_v4l2request: Add support for AFBC_16X16_SPLIT
       pix fmts (Jernej Skrabec)
    13 avutil/hwcontext_v4l2request: Add support for BROADCOM_SAND128
       pix fmts (Jonas Karlman)
    Co-developed by Alex Bee, Benjamin Gaignard and Ezequiel Garcia.
  140-vf-deinterlace-v4l2m2m: carried over from LibreELEC
    (packages/multimedia/ffmpeg/patches/vf-deinterlace-v4l2m2m/0001-vf-deinterlace-v4l2m2m.patch
    as of LibreELEC commit 9ef6c9c6f7; Jernej Skrabec): adds the
    deinterlace_v4l2m2m filter

Headers unchanged, hunks refreshed with quilt; the patched tree is
identical to the one LibreELEC's files produce.

LibreELEC's v4l2-drmprime patch (stateful M2M decoders) is not carried:
it needs a rebase for FFmpeg 9 which LibreELEC has not done either.

The V4L2 Request API series is under review upstream as:
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20847
The patches here are taken from LibreELEC, though,
as that's the set that Kodi is built and tested against,
incl. some platform specific fixes.

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
Mirko Vogt 83f634c4b3 ffmpeg: add LibreELEC's Kodi compatibility patches
Patches:
  110-libdav1d-get-format: carried over from LibreELEC (Lukas Rusak):
    adds a get_format callback to the libdav1d decoder so Kodi's
    hardware-first, software-fallback decoder setup initialises
    multithreaded software decoding properly; without effect until the
    libdav1d option is enabled
  111-swscale-yuv2rgb-no-warning: carried over from LibreELEC
    (Christian Hewitt): removes the warning swscale logs on every
    context initialisation without an accelerated colourspace
    conversion

LibreELEC keeps both in one file
(packages/multimedia/ffmpeg/patches/libreelec/0001-libreelec.patch as
of LibreELEC commit 5d54b2dd82); they are split here so each keeps its
own header. Headers unchanged, hunks refreshed with quilt; the patched
tree is identical to the one LibreELEC's file produces.

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
Mirko Vogt 87a92bf189 ffmpeg: re-add libpostproc as a source plugin
Upstream dropped libpostproc in 8.0; Kodi still requires it.

The --enable/--disable-postproc option the patch re-introduces is set
explicitly: on together with GPL in libffmpeg, off in libffmpeg-mini.

Patches:
  100-postproc: carried over from LibreELEC (Matthias Reichl's rebase
    of Michael Niedermayer's libpostproc source plugin;
    packages/multimedia/ffmpeg/patches/postproc/0001-postproc.patch as
    of LibreELEC commit 5f03a122f8): re-adds libpostproc as a source
    plugin

Header unchanged, hunks refreshed with quilt; the patched tree is
identical to the one LibreELEC's file produces.

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
Mirko Vogt 7852102303 ffmpeg: update to 9.0.1
Rework the package while bumping from 6.1.4.

Variants: libffmpeg is the configurable build (menu "FFmpeg
configuration"; the defaults give a full-featured build), libffmpeg-mini
a fixed small decoder set for playback-only consumers; the two conflict.
The former -full, -custom and -audio-dec variants are folded into
libffmpeg: its menu carries the per-codec/format/protocol selection the
custom variant had, controlled by a "manual component selection"
option that is off by default. libffmpeg provides libffmpeg-full and
libffmpeg-audio-dec as transitional aliases for consumers not yet
updated. libffmpeg-mini no longer provides the libffmpeg virtual
package: its fixed set is too small for the in-tree consumers of that
name (mpd, minidlna), which need the default build; it is for consumers
that depend on it explicitly.

 * deterministic configure: --disable-autodetect plus an explicit
   --disable baseline for everything configure would pick up from the
   environment; each optional library/hwaccel is one config symbol
   driving both the conditional DEPENDS and the configure flag
 * menu: licence, size/speed, programs, hwaccels (libdrm, V4L2 M2M,
   VA-API), TLS backend (default mbedTLS, OpenWrt's default TLS
   library), external libraries, system libraries, component selection.
   Defaults follow what in-tree consumers need: libopus, LAME (shine
   on soft-float) and libx264 on; fdk-aac only for a nonfree, non-GPL
   build. The ALSA input device is dropped (no in-tree consumer).
   libdav1d (FFmpeg has no native software AV1 decoder) and VA-API are
   prepared but commented out until the dav1d and libva packages exist
   in the feeds.
 * BUILD_PATENTED: vvc (H.266) is added to the patented component lists
   next to h264, hevc and vc1; FFmpeg 9 builds its native VVC decoder,
   parser, muxer and demuxer by default and H.266 is licensed through
   the same patent pools as HEVC.

Build fixes for 9.0.1 are part of this commit; feature patches from
LibreELEC and the options they introduce follow in separate commits.

Patches:
  010-pkgconfig: kept unchanged: expresses libdir and includedir
    relative to ${prefix} in the generated .pc files
  020-libavcodec-fix-Wint-conversion-in-vulkan,
  030-avformat-file-guard-fd_dup-by-FD_PROTOCOL-or-PIPE_PR,
  040-vulkan_decode-fix-the-print-format-of-VkDeviceSize,
  050-avcodec-dct-Make-declarations-and-definitions-match,
  060-avutil-tx-fix-GCC-memset-warning,
  080-avcodec-pcm-bluray-dvd-Use-correct-pointer-types-on-,
  090-avcodec-tiff-Suppress-unused-variable-warnings,
  100-avcodec-tableprint_vlc-Unbreak-hardcoded-tables,
  120-avfilter-af_channelsplit-fix-mixed-declaration-and-c:
    dropped: merged upstream
  070-avformat-rawdec-guard-by-CONFIG_DATA_DEMUXER: dropped: only
    silenced an unused-function warning in builds without the data
    demuxer
  160-libavdevice-v4l2-libv4l2-posix-ioctl: new: libv4l2.h only
    declares v4l2_ioctl() with the POSIX "int request" signature when
    the consumer defines a feature macro first; FFmpeg detects that
    signature (HAVE_IOCTL_POSIX) but never tells the header, and GCC 14
    turns the resulting pointer-type mismatch into an error. Define
    both macro spellings (v4l-utils <= 1.30 and >= 1.32). Same approach
    as q66's posix-ioctl.patch in Chimera Linux, also carried by Alpine,
    which defines one of the two names per copy
  170-tls_mbedtls-build-without-version-module: new: OpenWrt's mbedtls
    package disables MBEDTLS_VERSION_C, so mbedtls_version_get_number()
    is not declared; fall back to the compile-time MBEDTLS_VERSION_NUMBER
  180-mips-cabac-no-mips16: re-added: restores the MIPS16 guard for the
    MIPS CABAC inline assembly from Rosen Penev's 030-h264-mips.patch
    (2020), dropped by the 6.1.2 update
  190-configure-hevcparse-select-hevc_sei: new: configure's hevcparse
    component does not select hevc_sei although hevc/parse.c needs it;
    without BUILD_PATENTED the HEVC decoder and parser that used to pull
    it in are off while the default-enabled dovi_split bitstream filter
    still needs hevcparse, leaving ff_hevc_decode_nal_sei undefined

The explicit GPL option and the explicit libdrm dependency follow
Daniel Golle's 7.1.4 update proposal of this package, which was superseded
by this PR/update.

Assisted-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-15 22:40:22 +02:00
Daniel Golle d2a2e7b8dc rtorrent: stop discarding the target build flags
CONFIGURE_VARS is assigned rather than appended to, which discards the
default from package-defaults.mk: the cross compiler settings and the
CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS the build system passes. The
client is configured with autoconf's own -g -O2 and built for the
toolchain's default architecture instead, without the target CPU flags,
the hardening flags and -ffile-prefix-map.

Fixes: 6d9d871660 ("rtorrent: update to 0.15.3")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-15 18:08:44 +01:00
Daniel Golle ae34d29eb6 libtorrent: stop discarding the target build flags
CONFIGURE_VARS is assigned rather than appended to, which discards the
default from package-defaults.mk: the cross compiler settings and the
CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS the build system passes. The
library is configured with autoconf's own -g -O2 and built for the
toolchain's default architecture instead, without the target CPU flags,
the hardening flags and -ffile-prefix-map. On x86/geode that also costs
the 64-bit atomics: at the default -march=i486 the compiler cannot
inline them and emits __atomic_load_8 and __atomic_store_8 calls, so
every binary linking the static library needs libatomic.

Fixes: 13a058bed6 ("libtorrent: update to 0.15.3")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-15 18:08:12 +01:00
Vladimir Ulrich 36c4c3f9d0 zoneinfo: update to 2026d release
Package version and file hashes changed.

Signed-off-by: Vladimir Ulrich <admin@evl.su>
2026-09-15 18:06:36 +02:00
Miroslav Lichvar 85c59cc1cc chrony: fix uci leapsecmode option
Fixes #30518.

Signed-off-by: Miroslav Lichvar <mlichvar0@gmail.com>
2026-09-15 11:18:36 +02:00
Martin Johansson 0a781352d2 umurmur: update to 0.5.0
Changelog: https://github.com/umurmur/umurmur/blob/master/CHANGELOG.md

Signed-off-by: Martin Johansson <martin@fatbob.nu>
2026-09-14 23:30:02 +02:00
Mirko Vogt 74fbbb485a pulseaudio: detect intl and iconv through meson dependency objects
The build probes for dgettext and iconv_open with bare symbol checks,
which succeed against libc even when a standalone GNU libintl or
libiconv is on the include path. Their headers redirect the calls to
libintl_* and libiconv_* symbols, so the objects then need -lintl,
which the Makefile supplied through TARGET_LDFLAGS for every link,
and the standalone libiconv was bypassed through LIBICONV_PLUG.

Add the two patches from upstream merge request 877, which switch the
probes to meson's intl and iconv dependency objects. These compile a
test including the header, so they fall back to linking the library
exactly when the header requires it. With BUILD_NLS this links
libintl-full and libiconv-full where they are used; without it, the
libc implementations are used as before. The second patch makes the
libm link conditional in the same way. Drop the -lintl workaround.

Patches taken from merge request currently under review upstream:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/877

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-14 17:46:54 +02:00
Mirko Vogt 7d479353dd pulseaudio: switch to git snapshot
The last release, 17.0, dates from January 2024. Master has since
accumulated fixes not available in any release, among them the SAP
port byte order in module-rtp-recv, an out-of-bounds access in
stream_get_timing_info_callback, multichannel processing in
module-echo-cancel and several JSON UTF-8 handling fixes. Switch to
the current master head.

The snapshot tarball carries neither a .git directory nor the
.tarball-version file of a release tarball, so git-version-gen has no
source for the version string and meson would fail parsing the empty
result. Write .tarball-version in Build/Prepare from the last release
tag reachable from the snapshot plus the abbreviated commit, so the
library version and the libpulsecommon file name derive from 17.0 as
the build's own git describe would.

Keep PKG_VERSION at 17.0 instead of the date-derived default, so the
package version matches what the libraries and binaries report, the
CI version check finds it in the --version output, and a later switch
back to a release tarball still sorts as an upgrade. PKG_SOURCE_DATE
and PKG_SOURCE_VERSION identify the snapshot, and the repacked tarball
carries both in its name so that a later snapshot does not collide with
this one in the download directory and on the source mirror.

Upstream turned the doxygen and tests options into feature options;
pass disabled instead of false. Normalise the indentation of the last
three MESON_ARGS entries while touching them.

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-14 17:46:54 +02:00
Mirko Vogt 77492a6b4e pulseaudio: split out libpulse client library
Move the PulseAudio client libraries into a separate libpulse package,
so a client can depend on just the client library instead of pulling
in the whole daemon. Upstream ships three libraries whose names do not
make the split obvious: libpulse and libpulse-simple are the client
API, libpulsecommon is a private library shared by client and server,
and libpulsecore is the server core used only by the daemon and its
modules. libpulse, libpulse-simple and libpulsecommon go into the new
package; libpulsecore, libpulsedsp and the module helper libraries stay
with pulseaudio-daemon, which now depends on libpulse. The iconv and
gettext users (pulse/utf8.c and pulsecore/i18n.c) are part of
libpulsecommon, so libpulse carries the ICONV_DEPENDS and INTL_DEPENDS
itself.

Enable D-Bus support in both variants, not just the avahi one. D-Bus
support adds the pa_dbus_* and rtkit helpers to libpulsecommon, which
the daemon and its modules link against and which now ships in
libpulse. Since a single libpulse package serves both variants, it has
to be built the same way in both, or the avahi daemon would end up with
a libpulsecommon lacking those symbols. Unconditional D-Bus support is
the simplest way to achieve that; the price is that pure clients now
pull in libdbus.

Two follow-on changes: the D-Bus policy file, previously installed by
the avahi variant only, is now installed by both daemon variants. The
daemon also declares its own libdbus dependency, independent of
libpulse, because libpulsecore links libdbus directly.

Signed-off-by: Mirko Vogt <mirko-openwrt@nanl.de>
2026-09-14 17:46:54 +02:00
Daniel Golle ee2e26b639 comrade: update to 0.2.2
Since 0.2.0 comrade uses 64-bit atomics and its CMake links libatomic
where the compiler cannot inline them; depend on it through
ATOMIC64_DEPENDS under the same condition.

Upstream changes:
https://github.com/dangowrt/comrade/compare/v0.1.17...v0.2.2

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-14 11:56:06 +01:00
Andrei Ovcharenko 1bb94b900f prplmesh: add package
Add the prplMesh 6.0.1 EasyMesh controller and agent for stock OpenWrt.
The package keeps the installed hostapd/wpad stack and drives it over
the existing UCI, ubus, nl80211 and hostapd control sockets.

The hostapd control interface client is a small self-contained
implementation added by patch 120, so no hostapd source tree is
downloaded, bundled or duplicated at build time and the system hostapd
stays the only hostapd. Binaries install under /usr/libexec/prplmesh,
read-only data under /usr/share/prplmesh, shared libraries under
/usr/lib, configuration under /etc/config/prplmesh. Of the prplOS
helper scripts only prplmesh_utils.sh is installed: patch 161 teaches
its platform guard stock OpenWrt and the init's daily log roller
invokes it; the other helpers stay uninstalled. Its option parsing
needs util-linux getopt (the busybox applet is off by default), hence
the getopt dependency.
At build time prplMesh generates its IEEE 1905 / EasyMesh TLV classes
from YAML definitions with its own Python generator, hence the host
Python and PyYAML build dependencies.

Stock builds run without NBAPI, so the controller skips the
CurrentOperatingClassProfile data-model cleanup for radios without a
data model path, and legacy vendor diagnostic measurements default to
off while standard EasyMesh metrics stay enabled. The controller also
registers radios that appear only in Topology Responses: some stock
agents never run WSC onboarding for a band (Wi-Fi 7 units and their
6 GHz radio), and such radios, their BSSes and their clients stayed
invisible otherwise. Agents in turn import clients that are already
associated when the agent starts: patch 150 walks hostapd's
STA-FIRST/STA-NEXT list on the nl80211 AP and monitor HALs and
reconciles the result every 60 seconds, so stations that associated
while the agent was down appear without waiting for a reassociation,
and stale entries are disconnected only after a cleanly enumerated
sweep. The init preflights every binary the selected management mode
needs before registering any procd instance, and the example
credentials ship empty so an enabled but unconfigured service fails
validation loudly instead of deploying a published passphrase.
A test-version.sh verifies the installed version from the shipped
version file instead of probing daemons, and a test.sh checks the
shipped log levels and the roll-helper install.

Production log levels default to error, info, warning and fatal for
file and syslog output of both daemons. Log retention is enforced by
the upstream roll helper (its platform guard now accepts openwrt):
the init prunes previous-boot logs once per boot before the daemons
come up (a /var/run stamp keeps procd reload triggers, which re-enter
start_service with the daemons live, from re-rolling their logs) and
a procd-supervised roller repeats the roll daily; an image stripped
of the helper runs without rotation instead of refusing to start.
Link-metrics reporting no longer warns about wireless-capable radios
deliberately not used for backhaul.

An earlier revision of this integration, differing only in the wpa_ctrl
client origin and the install prefix, runs on OpenWrt 25.12.5
mediatek/mt7622 with two Ethernet-connected EasyMesh agents.

Ref: https://gitlab.com/prpl-foundation/prplmesh/prplMesh
Ref: https://gitlab.com/kreout/prpl-mesh-mercusys/-/merge_requests/1
Signed-off-by: Andrei Ovcharenko <a@krot.name>
2026-09-14 11:45:49 +03:00
Tawhidul Islam 462e6ceda8 dnsproxy: update to 0.84.2
Update dnsproxy to upstream version 0.84.2.

Release notes:
- Updated Go to 1.26.8
- Fixed DoQ 0-RTT opcode handling

Signed-off-by: Tawhidul Islam <fahadsart.bd2@gmail.com>
2026-09-14 16:29:17 +08:00
Atanas Vladimirov fecb5f2cba hcxdumptool: pass TARGET_LDFLAGS and restore -std=gnu99
Command-line CFLAGS overrides upstream's CFLAGS += -std=gnu99.
Pass TARGET_LDFLAGS for OpenWrt PIE/RELRO, and keep -lpcap which that
override would otherwise drop.

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00
Atanas Vladimirov 18a4b21bde hcxtools: pass TARGET_LDFLAGS and restore -std=gnu99
Command-line CFLAGS overrides upstream's CFLAGS += -std=gnu99.
Without TARGET_LDFLAGS the tools also skip OpenWrt PIE/RELRO link flags.

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00
Atanas Vladimirov 099288e6fb hcxtools: update to version 7.1.2
Match hcxdumptool 7.1.2.
Use the upstream Makefile instead of meson, whose version is still 6.3.2.
Add hcxpottool and drop unused libpcap.

Full changelog here:
https://raw.githubusercontent.com/ZerBea/hcxtools/refs/tags/7.1.2/changelog

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00
Atanas Vladimirov ec542feed4 hcxdumptool: build hcxdumptool target only
Leaving hcxnmealog out is intentional.
It is the GPS/wardriving helper that was split out of hcxdumptool in
6.3.5. It needs a GPS receiver (USB NMEA device such as /dev/ttyACM0,
or gpsd wrapping one) and is not used for the usual handshake/PMKID
capture on a stationary router.

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00
Atanas Vladimirov 5f26abefab hcxdumptool: drop unused libopenssl dependency
Nothing in 7.1.2 links OpenSSL and it was already unused in 6.3.4
as well.

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00
Atanas Vladimirov 59412cc5b0 hcxdumptool: update to version 7.1.2
Full changelog here:
https://raw.githubusercontent.com/ZerBea/hcxdumptool/refs/tags/7.1.2/changelog

Signed-off-by: Atanas Vladimirov <vladimirov.atanas@gmail.com>
2026-09-14 07:14:47 +03:00