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
- 新增 .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 文件,统一版本管理
87 lines
4.7 KiB
Bash
Executable File
87 lines
4.7 KiB
Bash
Executable File
#!/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"
|