Skip to content

Build: Temporarily drop compiling for FreeBSD & OpenBSD; Optimize building list#5824

Open
KobeArthurScofield wants to merge 16 commits intoXTLS:mainfrom
KobeArthurScofield:rm-bsd
Open

Build: Temporarily drop compiling for FreeBSD & OpenBSD; Optimize building list#5824
KobeArthurScofield wants to merge 16 commits intoXTLS:mainfrom
KobeArthurScofield:rm-bsd

Conversation

@KobeArthurScofield
Copy link
Copy Markdown
Contributor

@KobeArthurScofield KobeArthurScofield commented Mar 18, 2026

该 PR 旨在改进构建流程并对长期不使用的系统及架构相关兼容性代码进行清理

  • 新增后备构建流程:该流程中的系统/架构组合仍会在代码发生变更时进行构建,但不会参与发版流程。
    • 该区域用于存放暂停正式构建状态及处于不受支持但有长尾问题的系统/架构组合;
    • 该流程用于在代码更改发生时提示相关的系统/架构组合是否能正常构建,但不一定会成为阻塞因素;
    • 该流程中构建的 assets 不包含 geodata ,以及特定系统或架构需要的附属内容;
    • 该流程构建出的 assets 可在 GitHub Actions 中下载,保存期限为 90 日。
  • 整理现有构建列表:
    • x86-64 及 AArch64 (ARM64/ARMv8) 将为主要支持架构;x86 将属于附带支持架构;
    • 重新整理附加系统/架构表;
    • 针对 macOS AArch64 指定最低指令集版本为 v8.4 (Apple M1);
    • 流程细节整理。
  • 清理针对 WASM、Illumos、JS、Solaris 等无法再正常构建内容的兼容标记。
  • 由于目前对 FreeBSD 及 OpenBSD 的支持人力不足,FreeBSD 及 OpenBSD 转入“众包维护”模式并移入后备构建:
    • 仅在发版时不进行构建,日常构建过程不受影响;
    • 仍然接受对 FreeBSD 及 OpenBSD 的支持代码的更新及改进;
    • 获得相对活跃的支持后将重新加入标准构建流程;
    • 获得 TUN 支持后将重新加入标准构建流程。

针对过时或老旧架构的重要提示

考虑到 32 位系统及 MIPS 相关系统式微,后续将在新的小版本 Go 发布时对构建表进行调整。
调整过程将受 Go 支持的影响或现实设备支持而发生变化。

时间 系统/架构组合 预期操作
待定 Windows 7, x86, x86-64 最后一版将为 Go 2 发布前,或 2028 年八月新的 Go 1.x 版本发布前,或受其它因素影响而提前结束(如使用率过低)。该节点取最早到来时间。
2027 年二月 Windows, x86 在新的 Go 小版本发布时移入后备构建,此后由 Go 上游决定
2027 年二月 Linux, ARMv5, ARMv6 在新的 Go 小版本发布时移除构建
2027 年二月 Linux, MIPS64 BE/LE 在新的 Go 小版本发布时移除构建
2027 年二月 Linux, MIPS32 BE/LE 在新的 Go 小版本发布时移入后备构建
待定 Linux, x86 由 Go 上游决定
待定 Linux, ARMv7 由 Go 上游决定

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 19, 2026

还有 macos-32 和 windows-32 是否有必要移除

v8a 加了些用到 CPU 新指令集的编译,可以加上

@Fangliding
Copy link
Copy Markdown
Member

我是觉得磕巴磕巴能跑起来最好就算了 反正这些东西都是分开放的也不会造成史山问题

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

macos-32 连 go 自己都早就不支持了,加进了排除表

windows-32 就是不知道会不会还有人在盒子或者老旧机器上面用(主流 gui 客户端基本在一两年前移除 32 位支持了),备选项是用 win7-32 来承接
印象中 win8 开始 64 位设备就很多了 不过 go 官方那边 windows x86-32 还是一级支持

至于 v8a 那个, 只能说复杂程度比 amd64 还离谱,amd64 只要不是骨灰级机器的话上 goamd64=v2 是没问题的,但是 arm64 在 windows 这边也就一年多前开始强制 cpu 至少 v8.1,macos 自家生态应该可以拉高一些,但是 linux 上面就是碎片的海洋可能拉个 v8.1 都会有爆炸的,安装脚本还不好分辨应该拿哪个版本,除非针对性编译不然没啥大用

bsd 的话主要还是用的人少(虽然 freebsd 用的人更多,也许可以留着),维护性只能是有人提再等有缘人修的那种,也挺尴尬的就是 netbsd 和 dragonfly 在有 wireguard 之后就没它俩的事了

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 19, 2026

原来 macos-32 早没了,那没事了,windows-32 也先留着吧,本来想的是针对性编译一下 v8a 的新指令集,以后再看吧

FreeBSD 和 OpenBSD 的话我感觉能用这俩系统的都是骨灰级发烧友吧,但没见有多少 PR,啥时候有人 PR 了 TUN 再考虑吧

@KobeArthurScofield KobeArthurScofield marked this pull request as ready for review March 19, 2026 11:01
@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

KobeArthurScofield commented Mar 19, 2026

那 BSD 是保留兼容代码但是不进行发版时一起编译,还是保持现在这样,还是完全不动(不移除)?

ARM v8a 的话给 windows 和 macos 上 v8.x 应该还是有戏的,这个也要不要

先把保留兼容代码但不编译和 v8a 加针对编译上了

@KobeArthurScofield KobeArthurScofield changed the title Build: Remove FreeBSD & OpenBSD Build: Drop compiling for FreeBSD & OpenBSD & Linux on IBM Z; Optimize building list Mar 19, 2026
@KobeArthurScofield

This comment was marked as outdated.

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 21, 2026

freebsd 和 openbsd 保留兼容代码和 friendly-name,仅移除构建过程(需用户手动编译),用于后续加回(如果太久无维护基本也接近荒废清理)

那就先这样吧,如果通过移除构建而吸引到了更多的维护者再把构建加回去

移除 linux s390x (IBM Z) 构建

这个感觉可以留着?

macos 为 arm64 v8.4 (m1 能跑起来就没问题)

测试过了吗

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

移除 linux s390x (IBM Z) 构建

这个感觉可以留着?

能买或者租 IBM z 系主机来用的似乎也不太可能在机器上跑这个,但是真用起来也可以编译

macos 为 arm64 v8.4 (m1 能跑起来就没问题)

测试过了吗

根据 https://github.com/llvm/llvm-project/blob/1f9c54a15a87f72ca45fb47ec006d1eae63f4eb0/llvm/unittests/TargetParser/TargetParserTest.cpp#L1141 来看设置成 v8.4 是没问题的,有小白鼠能跑起来反馈最好

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 21, 2026

Linux s390x 留着吧,Windows arm64 非常小众改成 v8.1 意义不大,还是改回去吧

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

windows arm64 至少能上的机器配置一般芯片也不会 v8.0 倒是 除了在 wp 硬件上强上 windows arm64 的 老一点的 arm64 surface 好像都有 v8.1 还是 v8.2 来着 反正加不加问题也不大

@xujiegb
Copy link
Copy Markdown

xujiegb commented Mar 21, 2026

  • freebsd

FreeBSD不至于移除吧,刚刚接触就

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

KobeArthurScofield commented Mar 21, 2026

FreeBSD不至于移除吧,刚刚接触就

  1. 只暂停构建,兼容代码什么的都留着
  2. 不阻止自己编译(Go 搭建环境和编译还算简单的)
  3. 有兼容性相关的 PR 提过来没问题会合并进来
  4. 有能活跃维护相关代码的 BSD 用户贡献的话恢复构建
  5. 能解决 BSD 上的 TUN 的话绝对恢复构建
  6. 暂停构建的原因是主要维护没有会 BSD 的,提 issue 只能有缘人

@KobeArthurScofield KobeArthurScofield changed the title Build: Drop compiling for FreeBSD & OpenBSD & Linux on IBM Z; Optimize building list Build: Temporarily drop compiling for FreeBSD & OpenBSD; Optimize building list Mar 21, 2026
@KobeArthurScofield

This comment was marked as outdated.

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 22, 2026

由于仍然保留了 FreeBSD & OpenBSD 的兼容性代码,和 #5786 会存在些 conflicts,放下个版本吧

@RPRX
Copy link
Copy Markdown
Member

RPRX commented Mar 23, 2026

@KobeArthurScofield rebase,今天的版本仍构建 BSD 吧,下个版本再移除,可以把无关 BSD 的部分拆出另一个 PR 先合并

@KobeArthurScofield
Copy link
Copy Markdown
Contributor Author

done

这几天版本稳定了再合吧避免一些尴尬的问题

没问题就更新 PR 描述了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants