Conversation
|
docker 版本的 console 之前一直不显示 build 这样的话就自动被解决了呗 |
|
之前加上 buildvcs=false 原因也不是省空间(那么一点作用不大,不如清理陈旧代码来得多),主要是考虑到在 VCS 信息源丢失/损坏或者各种奇奇怪怪的原因无法获得的时候至少不会太影响可重复构建;再者是考虑到有可能会出现偶发性的局部发版故障,只有一两个需要补发的情况下补包时对仓库的修改会导致提交 hash 变化的问题(可以通过硬性指定拉取代码的 hash 解决)。 这几个好办的话那么加回来问题似乎也不大。 |
buildvcs 只要命令行有git而且git目录没被剥掉就能正常工作 现在的构建脚本是用命令手动提取hash手动补进去不也是需要这俩 还是说验证可重复构建的时候手动把版本号写进去 这看起来也很淦 其实无论哪个方法都不很影响可重复构建验证 步骤稍有不同而已 没有啥合规性指标要求必须满足啥啥啥要求才算可重复构建了 能达到证明没脏东西的最终目的就行了
没看明白 buildvcs 就是反馈build 时仓库的状态 当前的hash是什么它就绝对是什么 包括仓库中存在未提交变更时的-dirty后缀我都加进去了 |
|
|
VCS 源(例如 vcs=git) 以上只有在有代码版本控制信息的时候才会嵌入
局部补 release 的时候不慎引用了错的提交会导致 VCS 信息变化,因为改 actions 文件也会影响仓库代码记录,要保持一致的话要在 checkout 的时候指定提交 |
|
想起来了,这个 vcs 挺烦的就,补个 release 都不好补,维持现状吧,@KobeArthurScofield 你觉得呢 |
|
比起 Windows 版本加图标(已被毙)和要不要嵌 WinTUN 的话,VCS 信息问题倒是不那么大,但是前提是用 Git 拉代码,以及补 release 的时候手动指定提交(Actions 只管继续编译就行问题不大,现在流程不涉及代码修改也没有 Makefile 搞事了) 如果遇到了那种点右上角直接下载代码包编译的出来说文件校验不一样那才头大,因为这种情况完全没有 VCS 信息,有没有问题要用十六进制编辑器对比才知道(结果发现二进制里面就多了 VCS 信息别的一点没动) 两种都行吧,all okay,不过我觉得 Docker 确实比较需要这个(这种一般也没人哔哔可重复构建吧) |
我记得要在release再补一两个patch的时候不是重新跑一遍action就行了?不会在 .github 下面的action文件制造提交吧 编译出来里面嵌入的hash也是patch之后的代码 |
|
主要是自编译可以自动嵌的话方便追踪版本 因为没makefile大多数时候测试build也就一行go build还写个脚本计算一下hash再手动注入太麻烦了 |
|
首先这个 其次我觉得 Go 默认就应该做到在任何环境下编译出来的 binary 都是一样的而不应泄露任何编译环境信息,尤其是不默认 trimpath 就很傻逼,试想一下你电脑的 username 是“zhangsan”,你放在桌面默认 go build 一下再传到网上直接就给你实名认证了 所以我从第一次编译 v2ray 开始就带了 -trimpath,但 vcs 我是不知道的,
CGO_ENABLED=0 go build -o xray -trimpath -buildvcs=false -ldflags="-s -w -buildid=" -v ./main |
|
那要是不改构建命令呢 只改 core.go 启动时候的输出 buildvcs=false 了就输出一个custom或者手动注入 有就显示 |
|
|
现在这样如果没有 buildvcs=false (编译者编译了数据进去) 还是会custom 因为没人去调用vcs数据 |
这样好点,之前不知道 Custom 多少年了而且还内嵌了很长一段时间的 VCS |
|
理解你的意思了,你是想说可以改成没检测到
|
|
简单来说就是那个custom可以尽量不显示之类的 显示个hash比显示custom好点 |
|
想法是美好的但是真不咋实用,如果让用户自己改代码编译然后贴日志那他也会学去 |
|
话说如果 |
|
算了我想了下读 vcs 的代码可以留着就当打个样吧, |
|
|
|
模块带路径好像是C字头语言传下来的 我记得之前反编译游戏的时候可以在模块路径看到作者网名 |
|
|
包读不出来的,指定这个就没内嵌 vcs 信息 现有流程是编译时把 Custom 换成指定字符,这样编译出来的 build 变量内容就是指定的内容直接显示在那里
|
|
|
请问R佬第三方编译并分发核心违反 MPL-2.0 吗?如果违规的话我会删除我的项目中对核心的分发。 |
根据 MPL-2.0 的要求,分发 Xray-fork 的 binary 需要公开源代码且以 MPL-2.0 或 GPL 授权,如果只是 import Xray 则没有该项要求 |
把之前的 buildvcs=flase 加回来(实测它省下的地方不到1kb 没有意义)
直接使用vcs信息展示build信息 不再需要手动git调整