Skip to content

prplmesh-stock: add package#30071

Open
krotname wants to merge 3 commits into
openwrt:masterfrom
krotname:agent/add-prplmesh-stock
Open

prplmesh-stock: add package#30071
krotname wants to merge 3 commits into
openwrt:masterfrom
krotname:agent/add-prplmesh-stock

Conversation

@krotname

@krotname krotname commented Jul 21, 2026

Copy link
Copy Markdown

📦 Package Details

Maintainer: @krotname

Description:
Adds prplMesh 6.0.1 controller and agent support for stock OpenWrt. The
package keeps the installed hostapd/wpad stack and uses UCI, ubus and nl80211.

The stock-platform changes are under upstream review in
prplMesh MR !1.
The MR contains the
stock OpenWrt UCI/nl80211 support,
Wi-Fi profile hardening,
and the
controller error-exit fix.


🧪 Run Testing Details

  • OpenWrt Version: 25.12.5
  • OpenWrt Target/Subtarget: mediatek/mt7622 (aarch64_cortex-a53)
  • OpenWrt Device: Xiaomi Redmi Router AX6S

Validation:

  • clean SDK package build: PASS
  • make package/prplmesh-stock/refresh V=s: unchanged
  • patch series applies with git am to prplMesh 6.0.1 and current master
  • generated APK integrity check: PASS
  • deployed 6.0.1 variant validated with the existing wpad and two
    Ethernet-connected EasyMesh agents
  • OpenWrt multi-architecture CI passed on the previous head; the latest run
    is queued behind the repository-admin approval required for fork workflows

Current limits:

  • the upstream fork pipeline cannot start its jobs because no matching
    prplMesh runners are available to the fork
  • current prplMesh master was patch-apply tested, not compiled by the
    unavailable upstream runner
  • the package is disabled by default and needs device-specific UCI interface
    mapping before it is enabled

✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

If your PR contains a patch:

  • It can be applied using git am
  • It has been refreshed to avoid offsets, fuzzes, etc., using
    make package/prplmesh-stock/refresh V=s
  • It is structured in a way that it is potentially upstreamable

Upstream review:

Add prplMesh 6.0.1 controller and agent support for stock OpenWrt.
The package keeps the installed hostapd/wpad stack and uses the existing
UCI, ubus and nl80211 control plane.

The stock-platform patch series is submitted upstream as:
https://gitlab.com/kreout/prplMesh/-/merge_requests/1

Tested on OpenWrt 25.12.5 mediatek/mt7622 with two Ethernet-connected
EasyMesh agents. The clean SDK package build and APK integrity check pass.

Signed-off-by: Andrei Ovcharenko <a@krot.name>
@krotname
krotname force-pushed the agent/add-prplmesh-stock branch from 7eae958 to e33f272 Compare July 21, 2026 20:55

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 new commit; 1 inline issue flagged. The OpenWrt packaging (Makefile deps libnl-core/libnl-genl/libnl-route etc. all resolve, init/config look consistent) is fine; the flagged issue is in the bundled upstream patch. CI on the head commit is still pending, so nothing to ground CI-side.


Generated by Claude Code

Comment thread net/prplmesh-stock/patches/100-stock-platform.patch Outdated
@krotname
krotname force-pushed the agent/add-prplmesh-stock branch 2 times, most recently from cc7506b to 365abdd Compare July 22, 2026 08:05
Install the host PyYAML package required by the TLVF generator.

Return a non-zero status when controller transport setup fails.

Signed-off-by: Andrei Ovcharenko <a@krot.name>
Add the warning override through EXTRA_CXXFLAGS. Passing CMAKE_CXX_FLAGS
on the cmake command line replaces target optimization and hardening flags
initialized from the CXXFLAGS environment.

OpenWrt CMake integration:
https://github.com/openwrt/openwrt/blob/master/include/cmake.mk

Signed-off-by: Andrei Ovcharenko <a@krot.name>
@krotname
krotname force-pushed the agent/add-prplmesh-stock branch from 67aff22 to 737a174 Compare July 22, 2026 13:09
@krotname
krotname marked this pull request as ready for review July 22, 2026 13:12

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 new commits; no new issues found.


Generated by Claude Code

Comment on lines +11 to +22
HOSTAPD_SOURCE_DATE:=2025.08.26
HOSTAPD_SOURCE_VERSION:=ca266cc24d8705eb1a2a0857ad326e48b1408b20
HOSTAPD_SOURCE:=hostapd-$(HOSTAPD_SOURCE_DATE)~$(call version_abbrev,$(HOSTAPD_SOURCE_VERSION)).tar.zst
HOSTAPD_SOURCE_URL:=https://w1.fi/hostap.git
HOSTAPD_SOURCE_PROTO:=git
HOSTAPD_MIRROR_HASH:=59ac677093f524ff98588abd9f33805a336a6e929d6814222f0d784c854f2343
HOSTAPD_BUILD_ROOT:=$(BUILD_DIR)/$(PKG_NAME)-hostapd-source
HOSTAPD_BUILD_DIR:=$(HOSTAPD_BUILD_ROOT)/hostapd-$(HOSTAPD_SOURCE_DATE)~$(call version_abbrev,$(HOSTAPD_SOURCE_VERSION))
HOSTAPD_OPENWRT_CTRL_PATCH:=$(CURDIR)/files/610-hostapd_cli_ujail_permission.patch
HOSTAPD_WPA_CTRL_HASHER:=$(STAGING_DIR_HOST)/bin/mkhash
HOSTAPD_WPA_CTRL_RAW_SHA256:=482839d354b9c53e19e6a766ff5be054980607dd94e53efee9762dbda40f0f26
HOSTAPD_WPA_CTRL_PATCHED_SHA256:=ad925b710901b3f2f2188afdab5a7f181913e48b159a824c30e0c19d2acd53fa

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have strong concerns regarding bundling/vendoring a custom, frozen copy of hostapd inside this package. As we can see, the version used here is already old and missing critical security fixes that are present in the core OpenWrt repo (see hostapd commits), where it is actively updated.

Additionally, it introduces unnecessary custom variables that shouldn't be there and just make the code harder to maintain.

Could you please consider another solution that fits your needs while reusing the system hostapd?

Comment on lines +113 to +116
$(CP) $(PKG_INSTALL_DIR)/opt/prplmesh/bin $(1)/opt/prplmesh/
$(CP) $(PKG_INSTALL_DIR)/opt/prplmesh/scripts $(1)/opt/prplmesh/
$(CP) $(PKG_INSTALL_DIR)/opt/prplmesh/share $(1)/opt/prplmesh/
$(CP) $(PKG_INSTALL_DIR)/opt/prplmesh/config $(1)/opt/prplmesh/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Installing binaries and scripts into /opt/prplmesh goes against OpenWrt packaging standards.

Comment on lines +58 to +59
prplMesh controller and agent build for stock OpenWrt. It uses the existing
hostapd control sockets and never replaces the installed wpad.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Uses existing things, but it is using own custom copy of hostapd. :-)

Comment on lines +1 to +5
From 398cbb76fa88f2d5dcc05b0ecc24ced1bbcad9ca Mon Sep 17 00:00:00 2001
From: Mark Mentovai <mark@moxienet.com>
Date: Tue, 23 Nov 2021 12:28:55 -0500
Subject: [PATCH] hostapd: allow hostapd under ujail to communicate with
hostapd_cli

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants