🛸 Sync 2026-08-28 05:40:13
Merge-upstream / merge (push) Canceled after 0s

This commit is contained in:
github-actions[bot]
2026-08-28 05:40:13 +08:00
parent 92e53e5990
commit 1820377713
3 changed files with 115 additions and 47 deletions
+3 -3
View File
@@ -15,12 +15,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-wwand
PKG_RELEASE:=6
PKG_RELEASE:=7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/luci-app-wwand.git
PKG_SOURCE_VERSION:=a716b595603f2b1bc01d71be199c63bacc1ba9fc
PKG_SOURCE_DATE:=2026-08-25
PKG_SOURCE_VERSION:=8dab3e346939ddc633f86e36b4b30365f62d74e0
PKG_SOURCE_DATE:=2026-08-27
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only
+52
View File
@@ -0,0 +1,52 @@
#
# Copyright (C) 2026 jjm2473@gmail.com
#
# This is free software, licensed under the GNU General Public License v3.
#
include $(TOPDIR)/rules.mk
MISE_ARCH_x86_64:=x64
MISE_ARCH_aarch64:=arm64
MISE_ARCH:=$(MISE_ARCH_$(ARCH))
MISE_HASH_x86_64:=3832f39c325e343f81fe3d92b2447c5d1a5eea1bc85092bb7b6c25806222647e
MISE_HASH_aarch64:=06186cfbfe947049b21d58575fb0ea800cc26ed1375f20f4b678cb3a9d679437
PKG_NAME:=mise
PKG_VERSION:=2026.8.14
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION)-linux-$(MISE_ARCH)-musl.tar.gz
PKG_SOURCE_URL:=https://github.com/jdx/mise/releases/download/v$(PKG_VERSION)/
PKG_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Utilities
TITLE:=mise - polyglot tool version manager
DEPENDS:=@(x86_64||aarch64)
URL:=https://mise.jdx.dev
endef
define Package/$(PKG_NAME)/description
mise manages development tool versions, environment variables, and tasks.
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/mise $(1)/usr/bin/mise
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
+60 -44
View File
@@ -13,15 +13,28 @@
# wwand-esim - eSIM management (DEPENDS wwand-qmi + wwand-lpac)
# A typical QMI router installs `wwand-qmi` (which pulls in `wwand`); add
# `wwand-mbim` / `wwand-ncm` for those modems, `wwand-mhi` for a PCIe/MHI modem.
# The ucode tree ships as SOURCE by default. It can be precompiled to bytecode
# (repo-root CMakeLists.txt, alongside wwand_io.so) via CONFIG_WWAND_UCODE_
# PRECOMPILE, but that is opt-in and only sound when ucode and wwand are built
# in the SAME tree: bytecode carries a format version (UCODE_BYTECODE_VERSION,
# ucode's include/ucode/vm.h) that an interpreter upgraded past it refuses to
# load, and no package relation can express that coupling — it is independent
# of libucode's PKG_ABI_VERSION/SONAME, so an ABI-versioned dependency does not
# capture it either. In a feed, where ucode is upgraded on its own, that is a
# coupling we must not create.
# The ucode tree ships PRECOMPILED to bytecode (repo-root CMakeLists.txt,
# alongside wwand_io.so). `CONFIG_WWAND_UCODE_SOURCE` opts out and ships the
# readable sources instead — the same polarity the wwand repo's CMakeLists.txt
# and files/wwand.init already assume.
#
# The polarity matters beyond taste. It used to be an opt-in
# (WWAND_UCODE_PRECOMPILE, default n), which meant the desired outcome depended
# on a symbol SURVIVING defconfig — and in a per-package SDK build it does not:
# defconfig dropped it together with the CONFIG_PACKAGE_wwand it depends on, and
# the build then shipped source while reporting success. As an opt-out, a
# dropped symbol lands on the default we want, so the failure mode is gone.
#
# KNOWN COUPLING, accepted deliberately: bytecode carries a format version
# (UCODE_BYTECODE_VERSION, ucode's include/ucode/vm.h) that an interpreter
# upgraded past it refuses to load, and no package relation can express that —
# it is independent of libucode's PKG_ABI_VERSION/SONAME, so an ABI-versioned
# dependency does not capture it either. Upgrading ucode alone can therefore
# leave the daemon unable to start. That is not silent: files/wwand.init
# recognises "Bytecode version mismatch" / "Invalid file magic" and refuses with
# an explanatory line instead of respawning forever. The remedy is to reinstall
# wwand built against the running ucode, or to build with
# CONFIG_WWAND_UCODE_SOURCE.
#
# NOTE: the split needs the ucode source that lazy-loads every backend
# (qmi_lazy.uc + the backend-neutral daemon). Bump PKG_SOURCE_VERSION (and
@@ -30,26 +43,24 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=wwand
PKG_RELEASE:=10
PKG_RELEASE:=11
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
PKG_SOURCE_VERSION:=648283c23470d602459ce2c54a60adf9109370da
PKG_SOURCE_DATE:=2026-08-26
PKG_SOURCE_VERSION:=fc013f140d423867b993c6026fd435ec750cbb91
PKG_SOURCE_DATE:=2026-08-27
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only
PKG_MAINTAINER:=
# host ucode is the bytecode compiler, needed ONLY on the opt-in precompile
# path — so a default build does not pay for a host ucode nothing consumes.
#
# SYMBOL:pkg, not $(if $(CONFIG_...),...): Build-Depends is emitted by the
# metadata scan, which runs with DUMP=1, and rules.mk skips $(TOPDIR)/.config in
# that case — a $(if ...) wrapper is always empty there and would drop the
# dependency unconditionally, leaving the opt-in to silently fall back to
# source. package-metadata.pl builds the conditional from the prefix instead.
PKG_BUILD_DEPENDS:=WWAND_UCODE_PRECOMPILE:ucode/host
# host ucode is the bytecode compiler, and it is now needed on the DEFAULT path,
# so the dependency is unconditional. It was `WWAND_UCODE_PRECOMPILE:ucode/host`
# — a conditional that could only ever be as reliable as the symbol behind it,
# and when the symbol went missing the compiler went with it and cmake fell back
# to shipping source. A build that opts out with CONFIG_WWAND_UCODE_SOURCE pays
# for a host ucode it does not use; that is the cheaper mistake by far.
PKG_BUILD_DEPENDS:=ucode/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
@@ -65,12 +76,11 @@ CMAKE_BINARY_SUBDIR:=build
CMAKE_OPTIONS += \
-DUCODE_COMPILER=$(STAGING_DIR_HOSTPKG)/bin/ucode \
-DUCODE_PRECOMPILE=$(if $(CONFIG_WWAND_UCODE_PRECOMPILE),ON,OFF)
-DUCODE_PRECOMPILE=$(if $(CONFIG_WWAND_UCODE_SOURCE),OFF,ON)
# every install section takes the ucode tree from here: the bytecode output of
# the plain sources, or the cmake bytecode output when CONFIG_WWAND_UCODE_
# PRECOMPILE is set.
WWAND_UCODE=$(if $(CONFIG_WWAND_UCODE_PRECOMPILE),$(CMAKE_BINARY_DIR)/ucode/wwand,$(PKG_BUILD_DIR)/src-ucode)
# every install section takes the ucode tree from here: the cmake bytecode
# output, or the plain sources when CONFIG_WWAND_UCODE_SOURCE opts out.
WWAND_UCODE=$(if $(CONFIG_WWAND_UCODE_SOURCE),$(PKG_BUILD_DIR)/src-ucode,$(CMAKE_BINARY_DIR)/ucode/wwand)
UCDIR:=/usr/share/ucode/wwand
@@ -89,30 +99,34 @@ WWAND_BASE_CODEC:=arfcn_bands.uc hex.uc qmux.uc tlv.uc
WWAND_BASE_SCHEMA:=ctl.uc dms.uc dsd.uc loc.uc loc_lazy.uc merge.uc nas.uc rat.uc \
uim.uc wda.uc wds.uc wms.uc wms_lazy.uc
# DEVELOPERS: leave CONFIG_WWAND_UCODE_PRECOMPILE off (the default)
# to ship readable .uc source instead of bytecode — for editing modules live
# under /usr/share/ucode/wwand and for source-line tracebacks; bytecode
# tracebacks report offsets only.
PKG_CONFIG_DEPENDS:=CONFIG_WWAND_UCODE_PRECOMPILE
# DEVELOPERS: set CONFIG_WWAND_UCODE_SOURCE to ship readable .uc source
# instead of bytecode — for editing modules live under /usr/share/ucode/wwand
# and for source-line tracebacks; bytecode tracebacks report offsets only.
PKG_CONFIG_DEPENDS:=CONFIG_WWAND_UCODE_SOURCE
define Package/wwand/config
config WWAND_UCODE_PRECOMPILE
bool "Precompile the ucode tree to bytecode"
config WWAND_UCODE_SOURCE
bool "Ship the ucode tree as source instead of bytecode"
depends on PACKAGE_wwand
default n
help
Compile the ucode tree to bytecode instead of shipping the
readable sources. The daemon then starts without a parse step
(measured 41 ms -> 5 ms for the core imports on x86; more on a
router CPU).
By default the ucode tree is compiled to bytecode, so the daemon
starts without a parse step (measured 41 ms -> 5 ms for the core
imports on x86; more on a router CPU). Enable this to ship the
readable sources instead: modules can then be edited in place
under /usr/share/ucode/wwand and tracebacks name source lines
rather than bytecode offsets.
Only enable this when ucode and wwand come from the SAME build
tree, e.g. a self-built image. Bytecode carries a format version
that an interpreter upgraded past it refuses to load, and nothing
in the package metadata can express that dependency, so a plain
package upgrade of ucode would leave the daemon unable to start.
The init script detects exactly that case and refuses with an
explanatory log line rather than respawning forever.
Note that bytecode carries a format version that an interpreter
upgraded past it refuses to load, and nothing in the package
metadata can express that dependency — so upgrading ucode alone
can leave the daemon unable to start. The init script detects
exactly that case and refuses with an explanatory log line rather
than respawning forever; the remedy is to reinstall wwand built
against the running ucode, or to enable this option.
A build whose host ucode cannot emit bytecode does not fail: the
cmake capability probe falls back to shipping source on its own.
endef
# ---------------------------------------------------------------------------
@@ -255,6 +269,8 @@ define Package/wwand-mbim/install
$(INSTALL_DATA) $(WWAND_UCODE)/mbim_client.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/qmi_over_mbim.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/mbim_lazy.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/atcmd_mbim.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/atcmd_mbim_lazy.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/codec/mbim.uc $(1)$(UCDIR)/codec/
$(INSTALL_DATA) $(WWAND_UCODE)/codec/mbim_schema/*.uc $(1)$(UCDIR)/codec/mbim_schema/
endef