Files
mond/init.sh
T
wangdefa 596ffc1567
CI / validate (push) Successful in 5s
CI / build (amd64) (push) Successful in 3m38s
CI / build (arm64) (push) Successful in 8m39s
Release / build (amd64) (push) Successful in 3m35s
Release / build (arm64) (push) Successful in 8m58s
Release / release (push) Successful in 42s
feat: 重构 CI/CD 流水线,拆分为独立的构建和发布流程,更新相关文档和脚本
- 新增 .gitea/workflows/ci.yml,包含版本校验、构建和冒烟测试
- 新增 .gitea/workflows/release.yml,处理 tag 发布,上传包到仓库并创建 Release
- 更新 README.md 和 CLAUDE.md,描述新的 CI/CD 流程和版本号约定
- 修改 init.sh,增加对关键锚点的检查,确保源码结构一致性
- 更新 Dockerfile,使用 OpenSSL 3.0.21 和 unbound 1.25.1,确保与 Monero 版本一致
- 更新 build-deb.sh 示例,反映最新版本号
- 新增 VERSION 文件,统一版本管理
2026-08-07 09:51:47 +08:00

87 lines
4.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
set -eu
require_pattern() {
pattern=$1
file=$2
grep -Fq -- "$pattern" "$file" || {
echo "Required patch anchor not found in $file: $pattern" >&2
exit 1
}
}
require_pattern 'project(monero)' CMakeLists.txt
require_pattern 'OUTPUT_NAME "monerod"' src/daemon/CMakeLists.txt
require_pattern '${monero_SOURCE_DIR}' cmake/CheckLinkerFlag.cmake
require_pattern 'DEF_MONERO_VERSION' src/version.cpp.in
require_pattern 'DEF_MONERO_RELEASE_NAME "Fluorine Fermi"' src/version.cpp.in
require_pattern 'add_linker_flag_if_supported("-pie" LD_SECURITY_FLAGS)' CMakeLists.txt
require_pattern 'set(STATIC_FLAGS "-static-libgcc -static-libstdc++")' CMakeLists.txt
# Modify the CMakeLists.txt and source files to change the project name from "monero" to "mond"
# 1. Modify main CMakeLists.txt - Change project name
sed -i 's/project(monero)/project(mond)/' CMakeLists.txt
# 2. Modify daemon CMakeLists.txt - Change output binary name
sed -i 's/OUTPUT_NAME "monerod"/OUTPUT_NAME "mond"/' src/daemon/CMakeLists.txt
# 2.5. Modify cmake/CheckLinkerFlag.cmake - Fix source directory variable
sed -i 's/\${monero_SOURCE_DIR}/\${CMAKE_SOURCE_DIR}/' cmake/CheckLinkerFlag.cmake
# 3. Modify version.cpp.in - Change all MONERO to MOND
sed -i 's/DEF_MONERO_VERSION_TAG/DEF_MOND_VERSION_TAG/g' src/version.cpp.in
sed -i 's/DEF_MONERO_VERSION/DEF_MOND_VERSION/g' src/version.cpp.in
sed -i 's/DEF_MONERO_RELEASE_NAME/DEF_MOND_RELEASE_NAME/g' src/version.cpp.in
sed -i 's/DEF_MONERO_VERSION_FULL/DEF_MOND_VERSION_FULL/g' src/version.cpp.in
sed -i 's/DEF_MONERO_VERSION_IS_RELEASE/DEF_MOND_VERSION_IS_RELEASE/g' src/version.cpp.in
sed -i 's/MONERO_VERSION_TAG/MOND_VERSION_TAG/g' src/version.cpp.in
sed -i 's/MONERO_VERSION/MOND_VERSION/g' src/version.cpp.in
sed -i 's/MONERO_RELEASE_NAME/MOND_RELEASE_NAME/g' src/version.cpp.in
sed -i 's/MONERO_VERSION_FULL/MOND_VERSION_FULL/g' src/version.cpp.in
sed -i 's/MONERO_VERSION_IS_RELEASE/MOND_VERSION_IS_RELEASE/g' src/version.cpp.in
sed -i 's/"Fluorine Fermi"/"Mond"/' src/version.cpp.in
# 4. Modify version.h - Change all MONERO to MOND
sed -i 's/MONERO_VERSION_TAG/MOND_VERSION_TAG/g' src/version.h
sed -i 's/MONERO_VERSION/MOND_VERSION/g' src/version.h
sed -i 's/MONERO_RELEASE_NAME/MOND_RELEASE_NAME/g' src/version.h
sed -i 's/MONERO_VERSION_FULL/MOND_VERSION_FULL/g' src/version.h
sed -i 's/MONERO_VERSION_IS_RELEASE/MOND_VERSION_IS_RELEASE/g' src/version.h
# 5. Modify all source files that reference MONERO_VERSION
find src -type f \( -name "*.cpp" -o -name "*.h" -o -name "*.inl" \) -exec sed -i 's/MONERO_VERSION/MOND_VERSION/g' {} \;
find src -type f \( -name "*.cpp" -o -name "*.h" -o -name "*.inl" \) -exec sed -i 's/MONERO_RELEASE_NAME/MOND_RELEASE_NAME/g' {} \;
# 6. Modify display strings - Change "Monero" to "Mond" in user-facing messages
sed -i 's/"Monero '"'"'/"Mond '"'"'/g' src/daemon/main.cpp
sed -i 's/"Monero '"'"'/"Mond '"'"'/g' src/daemon/command_server.cpp
sed -i 's/"Monero '"'"'/"Mond '"'"'/g' src/daemon/executor.cpp
sed -i 's/"Monero '"'"'/"Mond '"'"'/g' src/simplewallet/simplewallet.cpp
sed -i 's/"Monero '"'"'/"Mond '"'"'/g' src/wallet/wallet_args.cpp
find src/blockchain_utilities -type f -name "*.cpp" -exec sed -i 's/"Monero '"'"'/"Mond '"'"'/g' {} \;
find src/debug_utilities -type f -name "*.cpp" -exec sed -i 's/"Monero '"'"'/"Mond '"'"'/g' {} \;
find src/gen_ssl_cert -type f -name "*.cpp" -exec sed -i 's/"Monero '"'"'/"Mond '"'"'/g' {} \;
find tests -type f -name "*.cpp" -exec sed -i 's/"Monero '"'"'/"Mond '"'"'/g' {} \;
# 7. Remove copyright notices (optional - comment out if you want to keep them)
# Uncomment the following lines if you want to remove Monero Project copyright
# find . -type f \( -name "*.cpp" -o -name "*.h" \) -exec sed -i '/Copyright.*The Monero Project/d' {} \;
# 8. musl fully-static patch(配合 docker/Dockerfile,产出无 interpreter、零外部依赖的 static-pie)
# monero 官方"不支持 fully static":STATIC=ON 在 Linux 仅给 -static-libgcc/-static-libstdc++,且强制 -pie。
# 去掉 -pie(否则强制动态 PIE/带 musl interpreter,无法跨发行版)
sed -i 's|add_linker_flag_if_supported("-pie" LD_SECURITY_FLAGS)|# -pie removed for fully-static|' CMakeLists.txt
# Linux STATIC_FLAGS 从 -static-libgcc/-static-libstdc++ 改真 -static
sed -i 's|set(STATIC_FLAGS "-static-libgcc -static-libstdc++")|set(STATIC_FLAGS "-static")|' CMakeLists.txt
require_pattern 'project(mond)' CMakeLists.txt
require_pattern 'OUTPUT_NAME "mond"' src/daemon/CMakeLists.txt
require_pattern 'DEF_MOND_VERSION' src/version.cpp.in
require_pattern '# -pie removed for fully-static' CMakeLists.txt
require_pattern 'set(STATIC_FLAGS "-static")' CMakeLists.txt
echo "Project successfully modified from Monero to Mond!"
echo "Binary output name: mond"
echo "Project name: mond"