全屏滑条统一路径+对比色(112/115) + 字体索引+查列表+丢失降级(113) + 文档刷新(114) + svcd CLI文档+mips-repo拆bins/mpk(116)
This commit is contained in:
1 parent
b75ecce5de
commit
19a001f007
22 files changed
+666
-129
No files matched your search
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# build.sh — 交叉编译 Apple mDNSResponder 的 POSIX 精简变体 SAResponder(mipsel-linux-muslsf,静态)
|
||||
#
|
||||
# 目标架构 : mipsel (MIPS32r2 little-endian), musl, 静态链接, 无 glibc 依赖
|
||||
# 交叉编译器: zig (目标 mips-linux-musl / mipsel-linux-musleabi),由 ~/Project/R3ProII/.tools/zig-mipsel-cc 包装
|
||||
# 产物 : bin/mdnsd = SAResponder (mDNSResponderPosix) —— 本脚本构建,无 UDS/IPC 的精简响应器
|
||||
# bin/mdnsd.bin = 完整 mdnsd 守护进程(上一轮产物,作为对照保留,需重编译见文件尾注释)
|
||||
# 用途 : MeowOS (R3 Pro II) 板载 mDNS 响应器,回应 .local 查询
|
||||
#
|
||||
# 用法 : ./build.sh # 默认构建 SAResponder → bin/mdnsd
|
||||
#
|
||||
# 可复现性 : 源码按固定 commit SHA 下载(codeload sha 方式),产物大小/校验值稳定。
|
||||
set -euo pipefail
|
||||
|
||||
REPO_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
BIN_DIR="$REPO_DIR/bin"
|
||||
WORK="$REPO_DIR/.build"
|
||||
|
||||
# ---- 工具链(本机实际路径;zig-mipsel-cc 内部也用 $HOME/Project/R3ProII/.tools)----
|
||||
ZIGCC="${ZIGCC:-$HOME/Project/R3ProII/.tools/zig-mipsel-cc}"
|
||||
|
||||
# ---- 固定源码版本:apple-oss-distributions/mDNSResponder 2881.0.25 ----
|
||||
MDNS_SHA="${MDNS_SHA:-d4658af3f5f291311c6aee4210aa6d39bda82bbe}"
|
||||
MDNS_VER="${MDNS_VER:-2881.0.25}"
|
||||
TARBALL_URL="https://codeload.github.com/apple-oss-distributions/mDNSResponder/tar.gz/${MDNS_SHA}"
|
||||
TARBALL="$WORK/mDNSResponder-${MDNS_VER}.tar.gz"
|
||||
SRCDIR="$WORK/src"
|
||||
|
||||
mkdir -p "$BIN_DIR" "$WORK"
|
||||
|
||||
echo "==> [1/4] 获取源码 mDNSResponder-$MDNS_VER (commit ${MDNS_SHA:0:12})"
|
||||
if [ ! -f "$TARBALL" ]; then
|
||||
curl -fsSL --retry 4 --retry-all-errors -o "$TARBALL" "$TARBALL_URL"
|
||||
fi
|
||||
gzip -t "$TARBALL" >/dev/null 2>&1 || { echo "错误: 源码包校验失败"; exit 1; }
|
||||
rm -rf "$SRCDIR"
|
||||
mkdir -p "$SRCDIR"
|
||||
tar xzf "$TARBALL" -C "$SRCDIR" --strip-components=1
|
||||
|
||||
echo "==> [2/4] 交叉编译 SAResponder (zig: mipsel-linux-musleabi, -Os -static, tls=no)"
|
||||
cd "$SRCDIR/mDNSPosix"
|
||||
# 说明:
|
||||
# - os=linux : 选定 Linux 平台分支 (CFLAGS_OS)
|
||||
# - tls=no : 关闭 TLS 支持,避免链接 mbedtls (嵌入式设备不需要)
|
||||
# - CC/LD=$ZIGCC : 强制 zig 交叉编译器,不用宿主 gcc
|
||||
# - CFLAGS="-Os -static" : -Os 体积优化 + 静态链接;-Wno-date-time 关掉 zig/clang
|
||||
# 默认的 -Werror -Wdate-time (源码用了 __DATE__/__TIME__ 宏)
|
||||
# - LINKOPTS="-s" : 链接时直接 strip 符号表 + 调试信息,产出部署版。
|
||||
# 注意 SAResponder 的链接规则里没有 $(STRIP) $@ 这一行,
|
||||
# 唯一的 strip 来源就是这个 -s(勿依赖 STRIP=true)
|
||||
# - SAResponder 目标 : 无 UDS/IPC 的独立响应器,产物 build/prod/mDNSResponderPosix
|
||||
make os=linux tls=no \
|
||||
CC="$ZIGCC" CFLAGS="-Os -static -Wno-date-time" \
|
||||
LD="$ZIGCC" LINKOPTS="-s" STRIP=true SAResponder
|
||||
|
||||
echo "==> [3/4] 放置产物 $BIN_DIR/mdnsd (SAResponder)"
|
||||
install -m 755 build/prod/mDNSResponderPosix "$BIN_DIR/mdnsd"
|
||||
|
||||
echo "==> [4/4] 校验"
|
||||
file "$BIN_DIR/mdnsd"
|
||||
echo "--- 体积 (静态部署版, strip 后) ---"
|
||||
ls -l "$BIN_DIR/mdnsd"
|
||||
echo "字节数: $(stat -c %s "$BIN_DIR/mdnsd")"
|
||||
echo "MD5 : $(md5sum "$BIN_DIR/mdnsd" | cut -d' ' -f1)"
|
||||
echo "构建完成: $BIN_DIR/mdnsd"
|
||||
echo
|
||||
echo "提示: bin/mdnsd.bin 为上一轮的完整 mdnsd 守护进程(1,018,144 B, md5 fcb0a8ae5ad5696253a6ec56b3e585e6),"
|
||||
echo " 仅作对照保留。如需重编译完整 mdnsd 放到 mdnsd.bin,改目标为 Daemon 即可:"
|
||||
echo " make os=linux tls=no CC=\"\$ZIGCC\" CFLAGS=\"-Os -static -Wno-date-time\" LD=\"\$ZIGCC\" LINKOPTS=\"-s\" Daemon"
|
||||
echo " install -m 755 build/prod/mdnsd \"$BIN_DIR/mdnsd.bin\""
|
||||
Reference in new issue
Block a user