-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a Windows 7 build #3530
Add a Windows 7 build #3530
Conversation
looks well. The only question is how we name it. |
Thanks! Do we want to re-release.. |
|
Try updating to Service Pack 1 (SP1) and then give it another try? |
It is recommended to refer to the Mihomo project for naming release version files. |
Xray-windows-go121-64.zip |
现在是会把 go.mod 中的 version 改成 go 1.21.4?这样没有问题
@test5uninstall 测一下 https://github.com/XTLS/Xray-core/actions/runs/9914586816
Xray-win7-64.zip 和 Xray-win7-32.zip 即可,简单直观,重点是不会下载错,用 Win7 的会下载它们,不用 Win7 的会绕开它们 Xray 的 releases 都是 friendly-filenames,所以会写 macos 而不是 darwin,会写 32 而不是 386,就是追求直观 而 Xray-windows-64-compatible 或 Xray-windows-go121-64 显然都不够 friendly,用 Windows 的看了都迷糊,不知道下哪个
|
昨天晚上我也研究了一下 action会自动读取gomod里的版本来安装go 剩下就是把改版本号的操作整合到matrix build里 |
其实还可以找一下有没有 patch 了最新版 Golang 以支持 Win7 的项目,可以用这个 Go 来替代 1.21.4,Meta 好像有 @wwqgtxx |
To GL_OUT_OF_MEMORY:我觉得 Win7 是最后一个“干净”的 Windows,如果可以我都想用, To 风扇滑翔翼:可以, |
|
|
如果可以跑的话差不多可以合了 |
|
盲猜是改了 go.mod 中的 version 后没 commit 就有了 -dirty,不过 commit 的话 id 会变,特意忽略 -dirty 好像也没必要,就留着吧 |
或者我们把 go.mod 中的 version 改回 1.21,就不用 go mod edit 了,应该还可以避免不小心用了新版 Go 特性导致 1.21 编译不了 |
|
|
@mmmray Xray-win7-64 不可用,报错。 |
@test5uninstall @lxhao61 @dashabiguard 是 Win7 SP1 吗?安装的最新系统补丁是什么时候发布的? 因为 kernel32.dll 一般只有在系统更新的时候才会更改,而且这个 DLL 真的坏了的话系统是没法用的。 所以能探明能用的条件最好,用 go 1.20 要动的地方还是稍微多了点。 |
@KobeArthurScofield 是 win7 SP1,且无更新。 |
Windows7 available build → Windows7 with golang 1.21.4 helpdesk |
有那种味道了 不过之前 win7 不能用的 issue 都是 1.8.7 (go 1.21.5) 才冒出来的,1.8.6 (go 1.21.4) 和更早的倒是没见着。 |
问题依旧,还是一样报错。 |
|
1.21.5 和之后用到了 Win7 没有的 API 必然会炸,所以只能指定使用小版本号。 |
可以参考一下v2fly那边的go.mod |
试试看最新版和1.21.4版能不能都编译成功
|
或者执行一下go mod tidy |
It's not correct to specify The lowest version without major build issues is About I think the recent changes should just be reverted, then the PR can be merged. |
你们理解错了,不是编译炸了,毕竟以我对 Go 的经验,这样改是可以用 Go 1.21+ 的任意版本编译的,是 test 炸了:
就是说需要修改 test.yml 来绕过这个限制 @mmmray |
Then we are seeing different things. Is my development environment wrong? On this branch, I get:
and this:
It seems after downgrading gvisor, the compilation will be fine. I believe that the |
win7毕竟已经这么老了 构建里发一个1.21.4的能用的差不多就可以了 个人觉得没必要再改这改那了 这有的人甚至都没有win7物理机还得开虚拟机 |
|
研究透了,这个与用哪个版本的 Go 编译无关,而是有这个 gvisor 在时 go.mod 中的 version 不能写 1.21,只能写 1.21.1+ 如果写 1.21,Go 会要求先 go mod tidy,也就是降级 gvisor 以兼容 1.21.0,然后才允许你编译,即使你编译用且只用 1.21.1+ 比如 version 写 1.21 时 builds 全是“-dirty”,就是自动 go mod tidy 了,而 test 的行为则是报错,让你先 go mod tidy 而 version 写 1.21.4 时不需要先 go mod tidy,所以 builds 全不带“dirty”,且 test 也是正常的,所以 |
Yes! That's what I'm saying! 😆 Golang 1.22 interprets So what should be done then? Do you want to downgrade gvisor? I would prefer |
这个gvisor当时升上来就费了不少事 降下去也费事 |
“所以
改这改那一是为了追求优雅,二是为了确保“构建里发一个1.21.4的能用的差不多就可以了” 如果不改 version,写 1.22+,会不小心用到 1.21.4 没有的特性,根据新发现的东西,也会导致依赖升级到不支持 1.21.4 的版本 目前先这样吧,但长久之计是 #3530 (comment) ,@test5uninstall 你用几天你的版本的 Xray 看看有没有什么问题 |
使用修改后的go1.22.5编译Xray,编译过程一切顺利,看起来效果很好,目前看来没有发生任何错误。 |
我还是很怀疑对win7的兼容能保持多久 |
Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
Relevant discussions:
Important point:
TODO: