Commit Graph

12 Commits

Author SHA1 Message Date
594dfb2e7d fix: 使用 Ubuntu 20.04 和官方 depends 系统实现静态链接
All checks were successful
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 25s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 37s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Successful in 17m29s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Successful in 21m6s
Build and Release Mond / release (push) Has been skipped
关键问题修复:
- Ubuntu 22.04 的 GCC 11.4 与 Boost 1.69 不兼容
- Ubuntu 20.04 的 GCC 9.x 与 Boost 1.69 完全兼容

核心改进:
1. 基础镜像从 ubuntu:22.04 改为 ubuntu:20.04
2. 使用官方 Dockerfile 的 depends 系统方法
3. 构建产物路径对齐官方:build/TARGET/release/bin/mond
4. 支持 amd64 和 arm64 架构
2025-12-15 13:20:39 +08:00
eaf6286543 fix: Ubuntu 采用官方 release-static 方法实现纯静态链接
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 25s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 38s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 2m1s
Build and Release Mond / release (push) Has been cancelled
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Has been cancelled
- 移除 depends 系统,避免 Boost 1.69/GCC 11.4 兼容性问题
- 采用官方 Makefile 中的 release-static target 配置
- 参考 Alpine 成功经验添加 -DSTACK_TRACE=OFF
- 简化构建流程,提高可维护性

参考:.source/Makefile:93-95, .source/README.md:459-484
2025-12-15 13:18:28 +08:00
999024051f fix: 使用 Monero depends 系统实现完全静态链接
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 26s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 38s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 6m39s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 8m37s
Build and Release Mond / release (push) Has been skipped
- 添加 depends 系统所需的构建工具(autoconf, automake, libtool 等)
- 在构建前先使用 contrib/depends 系统编译所有依赖的静态版本
- 使用 toolchain.cmake 确保链接到 depends 构建的静态库
- 支持 amd64 和 arm64 两种架构
- 最终镜像改回 FROM scratch,产生完全独立的可执行文件

Monero 的 depends 系统会从源代码编译所有依赖库(boost、openssl、
zeromq、unbound、libevent、nettle、gmp 等)的静态版本,解决了
系统包管理器中静态库缺失或版本不匹配的问题。

生成的二进制文件可以在任何 Linux 系统上独立运行,无需安装依赖。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:57:23 +08:00
faecae69a9 fix: 添加遗漏的 Ubuntu 运行时依赖
All checks were successful
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 25s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 37s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Successful in 48s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Successful in 1m12s
Build and Release Mond / release (push) Has been skipped
添加了完整的 Boost 库运行时依赖:
- libboost-date-time1.74.0
- libboost-locale1.74.0
- libboost-regex1.74.0
- libprotobuf23
- libudev1
- ca-certificates

解决 "error while loading shared libraries" 错误

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:50:46 +08:00
08982e482b fix: Ubuntu 改用动态链接以避免复杂的静态链接依赖
All checks were successful
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 26s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 39s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Successful in 44s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Successful in 1m2s
Build and Release Mond / release (push) Has been skipped
- 移除 -DSTATIC=ON,使用动态链接
- 最终镜像从 scratch 改为 ubuntu:22.04
- 添加所有必需的运行时依赖库

静态链接 Ubuntu 上的 libunbound 需要手动构建多个依赖库(libevent、
nettle、gmp、hogweed),过于复杂且不稳定。动态链接是更实用的方案。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:48:01 +08:00
0947d13b9c fix: 使用 Monero 的 release-static 目标构建 Ubuntu 版本
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 25s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 38s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 1m50s
Build and Release Mond / release (push) Has been cancelled
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Has been cancelled
- 移除手动添加的静态库依赖(libevent-dev, nettle-dev, libgmp-dev)
- 改用 make release-static 目标,它会自动处理所有依赖
- 简化构建流程,避免手动管理静态链接依赖

Monero 的 release-static 目标使用 contrib/depends 系统
自动下载并编译所有必需库的静态版本,解决 libunbound 依赖问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:43:12 +08:00
2544d5f41b fix: 修正 Ubuntu nettle 包名
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 25s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 37s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 5m11s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 6m29s
Build and Release Mond / release (push) Has been skipped
- 将 libnettle-dev 改为 nettle-dev
- Ubuntu 22.04 使用 nettle-dev 作为包名

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:29:14 +08:00
72fc96f67e fix: 修复静态链接依赖和 Alpine execinfo 兼容性问题
Some checks failed
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 29s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 38s
Build and Release Mond / build-and-test (amd64, alpine) (push) Successful in 2m48s
Build and Release Mond / build-and-test (arm64, alpine) (push) Successful in 7m0s
Build and Release Mond / release (push) Has been skipped
- Ubuntu: 添加静态链接所需的依赖包 (libevent-dev, libnettle-dev, libgmp-dev)
  解决 libunbound.a 引用的 event_*, nettle_*, __gmpz_* 未定义错误
- Alpine: 移除不存在的 libexecinfo-dev 包
- Alpine: 添加 -DSTACK_TRACE=OFF 禁用 stack trace 功能
  解决 musl libc 不支持 execinfo.h 的兼容性问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 12:24:54 +08:00
9c9cd35349 fix: 修复 Ubuntu 运行时依赖和 Alpine 编译错误
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Failing after 23s
Build and Release Mond / build-and-test (amd64, alpine) (push) Failing after 31s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 2m3s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 4m39s
Build and Release Mond / release (push) Has been skipped
- docker/Dockerfile.ubuntu: 添加 -DSTATIC=ON 参数启用静态链接
  解决了 scratch 镜像中缺少动态库 (libboost_chrono.so) 的运行时错误

- docker/Dockerfile.alpine: 添加 libexecinfo-dev 包
  解决了 musl libc 缺少 execinfo.h 头文件的编译错误

修复平台:
- Ubuntu (amd64/arm64) - 运行时依赖问题
- Alpine (amd64/arm64) - execinfo.h 编译错误
2025-12-15 12:15:47 +08:00
677230616c fix: 修复所有平台的 Docker 构建错误
Some checks failed
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Successful in 2m35s
Build and Release Mond / build-and-test (amd64, alpine) (push) Failing after 2m47s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Successful in 8m16s
Build and Release Mond / build-and-test (arm64, alpine) (push) Failing after 9m44s
Build and Release Mond / release (push) Has been skipped
- init.sh: 修复版本宏替换规则,为所有 sed 命令添加全局替换标志 (/g)
  解决了 Ubuntu 平台上 'DEF_MONERO_VERSION' 未定义的编译错误

- docker/Dockerfile.alpine: 添加所有必需的 Boost 组件包
  解决了 Alpine 平台上 CMake 找不到 Boost 组件的配置错误

修复平台:
- Alpine Linux (amd64/arm64) - Boost 组件缺失问题
- Ubuntu (amd64/arm64) - 版本宏定义错误
2025-12-15 11:58:30 +08:00
62e25d2b1c fix: 修复 CMake CheckLinkerFlag 路径问题
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Failing after 31s
Build and Release Mond / build-and-test (amd64, alpine) (push) Failing after 36s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 1m32s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 3m46s
Build and Release Mond / release (push) Has been skipped
- 在 init.sh 中添加对 cmake/CheckLinkerFlag.cmake 的修复
- 将 ${monero_SOURCE_DIR} 替换为 ${CMAKE_SOURCE_DIR}
- 解决 CI 构建中找不到 CheckLinkerFlag.c 的问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 11:24:01 +08:00
2493344eba 首次提交
Some checks failed
Build and Release Mond / build-and-test (arm64, alpine) (push) Failing after 1m3s
Build and Release Mond / build-and-test (amd64, alpine) (push) Failing after 1m39s
Build and Release Mond / build-and-test (arm64, ubuntu) (push) Failing after 2m24s
Build and Release Mond / build-and-test (amd64, ubuntu) (push) Failing after 3m2s
Build and Release Mond / release (push) Has been skipped
2025-12-15 11:15:14 +08:00