Open sihuan opened 2 years ago
请问可以提供 Linux 构建吗,或者是否有计划开源代码呢
我的天,不是还在内部测试吗.jpg
刚花了一些时间编写了 Linux 构建脚本,从 v1.1.0-rc.3 以后的每次更新都会构建 Linux 版本,但我目前没有在 Linux 中测试的条件,且之前的版本是以在 Windows 中运行为前提编写的,所以 Linux 版本的体验预计不会太好。
可以下载并解压swarm-linux.zip
,给swarm-core.linux
和swarm-ng.linux
赋予执行权限后依次运行。如果无法运行,swarm-core.linux
其实是 node.js + nexe 构建的,而swarm-ng.linux
其实是 sciter 的 scapp
,这个信息也许可以帮助两位调试,也欢迎到 Issues 里提交反馈。
近期不会开源,开源的时间点预计在功能稳定且普及率高于旧版后(虽然这种实现根本藏不住源代码
swarm-linux.zip
中附带的 swarm-ng.linux
是一个 32 位的二进制:
$ file ./swarm-ng.linux
./swarm-ng.linux: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=75f602712f11f266bc35a37cc11b421f27d1fe67, stripped
尝试在 32 位环境运行,似乎没有自动加载 scapp.zip
。手动加载 scapp.zip
可以正常启动,但是 Peer Management 有段错误的情况:
$ ./swarm-ng.linux -
Gtk-Message: 09:30:50.549: Failed to load module "colorreload-gtk-module"
Gtk-Message: 09:30:50.549: Failed to load module "window-decorations-gtk-module"
core spawn failed
websocket open
websocket open
Unhandled rejection:SyntaxError: unexpected token: '<'
at https://api.github.com/repos/evshiron/swarm-ng-build/releases:2
at json (native)
at <anonymous> (file:///home/hachi/Downloads/swarm/scapp.zip/components/Updater.js)
zsh: segmentation fault (core dumped) ./swarm-ng.linux -
swarm-core.linux
重命名为 swarm-core
后可以被 swarm-ng
正常调用,但不能随 swarm-ng
的关闭而退出。
感谢测试与反馈。
今天发现 sciter 在 Ubuntu 18.04 上无法工作(链接了更新的 glibc),临时在虚拟机里安装 Ubuntu 20.04 并做了一些修复。
Peer Management 和 Updater 在 Linux 版本中将被临时禁用,直到修复工作完成。
在 v1.1.0-rc.5 中进行了如下修改:
scapp
替换为 x64 架构,不再进行 x86 构建swarm-ng
时启动 swarm-core
,关闭 swarm-ng
窗口时停止 swarm-core
操作系统: ArchLinux,内核版本 6.0.1.arch2-1 swarm-ng 版本:v1.1.0-rc.3/swarm-linux.zip
解压缩 swarm-linux.zip
,检查可执行权限,swarm-core.linux
和 swarm-ng.linux
均有可执行权限
步骤:
./swarm-core.linux
启动 swarm-core./swarm-ng-linux
启动 swarm-ng-linux预期结果: swarm-core 和 swarm-ng 均能正常启动,swarm-ng 界面正常显示
实际结果:
$ ./swarm-core.linux
gateway connected
listen on http://127.0.0.1:61919
$ ./swarm-ng.linux
Gtk-Message: 20:01:05.722: Failed to load module "colorreload-gtk-module"
Gtk-Message: 20:01:05.722: Failed to load module "window-decorations-gtk-module"
白屏,无法使用。
步骤与测试1一致,将 swarm-ng 启动命令替换为 ./swarm-ng.linux -
启动后手动选择 scapp.zip
加载。
实际结果:
$ ./swarm-core.linux
gateway connected
listen on http://127.0.0.1:61919
client connected
client connected
$ ./swarm-ng.linux -
Gtk-Message: 20:09:42.874: Failed to load module "colorreload-gtk-module"
Gtk-Message: 20:09:42.874: Failed to load module "window-decorations-gtk-module"
core spawn failed
websocket open
websocket open
Unhandled rejection:SyntaxError: unexpected token: '<'
at https://api.github.com/repos/evshiron/swarm-ng-build/releases:2
at json (native)
at <anonymous> (file:///home/sihuan/Downloads/test/swarm-linux/scapp.zip/components/Updater.js)
Update Servers 和 Open Relay 工作正常,Peer Management 会出现段错误:
[1] 7040 segmentation fault (core dumped) ./swarm-ng.linux -
步骤:
swarm-core.linux
重命名为 swarm-core
./swarm-ng.linux -
启动 swarm-ngscapp.zip
加载实际结果: 终端输出:
$ ./swarm-ng.linux -
Gtk-Message: 20:15:10.085: Failed to load module "colorreload-gtk-module"
Gtk-Message: 20:15:10.085: Failed to load module "window-decorations-gtk-module"
websocket failed
websocket failed
websocket closed
websocket closed
gateway connected
listen on http://127.0.0.1:61919
client connected
client connected
websocket open
websocket open
Unhandled rejection:SyntaxError: unexpected token: '<'
at https://api.github.com/repos/evshiron/swarm-ng-build/releases:2
at json (native)
at <anonymous> (file:///home/sihuan/Downloads/test/swarm-linux/scapp.zip/components/Updater.js)
Update Servers 和 Open Relay 工作正常,Peer Management 会出现段错误。
点击 Peer Management 报错退出或者点击窗口叉号正常退出后,swarm-core
仍在运行:
$ lsof -i :61919
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
swarm-cor 7506 sihuan 21u IPv4 80978 0t0 TCP localhost:61919 (LISTEN)
这时再使用启动 swarm-ng 会报端口占用错误,但能正常使用:
events.js:292
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use 127.0.0.1:61919
at Server.setupListenHandle [as _listen2] (net.js:1318:16)
at listenInCluster (net.js:1366:12)
at doListen (net.js:1503:7)
at processTicksAndRejections (internal/process/task_queues.js:81:21)
Emitted 'error' event on WebSocketServer instance at:
at Server.emit (events.js:327:22)
at emitErrorNT (net.js:1345:8)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '127.0.0.1',
port: 61919
}
swarm-ng 版本:v1.1.0-rc.5/swarm-linux.zip
准备:
解压缩 swarm-linux.zip
,检查可执行权限,swarm-core
和 swarm-ng
均有可执行权限
步骤:
./swarm-ng
实际结果: 终端输出:
$ ./swarm-ng
gateway connected
listen on http://127.0.0.1:61919
[1] 8704 segmentation fault (core dumped) ./swarm-ng
直接报段错误退出了,但是可以观察到 swarm-core 被正常启动且 swarm-ng 由于段错误退出后并未退出:
$ ./swarm-ng
gateway connected
listen on http://127.0.0.1:61919
[1] 8704 segmentation fault (core dumped) ./swarm-ng
$ lsof -i :61919
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
swarm-cor 8707 sihuan 21u IPv4 86707 0t0 TCP localhost:61919 (LISTEN)
OS: Archlinux Kernel: 5.15.73-2-lts DE: Plasma 5.26.0 (Xorg)
遇到玄学问题。本来下载 v1.1.0-rc.5 ,无论是 swarm-core
的自启动和停止,还是界面所有的功能,都是完全正常运行的。随后滚系统, Archlinux 更新了内核和图形驱动后, swarm-ng
再起不能, swarm-core
还是正常的。另外从官网页面下载的 Sciter 也是同样的报错,似乎是 Sciter 本身的问题?
$ ./swarm-ng
gateway connected
listen on http://127.0.0.1:61919
zsh: segmentation fault (core dumped) ./swarm-ng
OS: Ubuntu 22.04.1 LTS Kernel: 5.15.0-50-generic DE: GNOME (Wayland)
吐核。从官网页面下载的 Sciter 也是同样的报错。
$ ./swarm-ng
websocket failed
websocket closed
(swarm-ng:4607): Gdk-WARNING **: 22:16:47.851: ../../../../../gdk/x11/gdkwindow-x11.c:5653 drawable is not a native X11 window
段错误 (核心已转储)
gateway connected
listen on http://127.0.0.1:61919
之前 shitama 的 qt 和 swarm 的 rs gtk 跨平台效果都挺好的🙈 现在是想尝试一下前端技术嘛。
查了一下, Windows 11 应该是预装了 webview2 的。不知道旧版本的 Windows 安装这个麻烦不麻烦)
我这边平时是在 macOS 和 Windows 10 上进行开发和调试,macOS 这边也经常吐核,但是重新运行一般不会再次发生。
今天在 Ubuntu 20.04 上调试,打开 Peer Management 绘制异常,中转和复制地址正常,关闭窗口时会吐核,但是
swarm-core
在此之前会被关闭。现在收到两位详尽的测试反馈,感觉 sciter 在对 Linux 的支持上还存在许多变数,我在开发时也总会遇到莫名其妙的坑。在考虑更换到 webview 或是 wry 甚至 tauri 上,但它们在 Windows 上需要确保 WebView2 的安装,感觉又不那么开箱即用。
Archlinux 这里的情况是稳定吐核w 。关闭窗口时吐核之前也有出现,还有奇怪的 vkEnumeratePhysicalDevices failed: -3
。这里 scapp
是官网页面下的二进制。
$ ./scapp
core spawn failed
vkEnumeratePhysicalDevices failed: -3
websocket open
websocket open
Unhandled rejection:[object Response(https://api.github.com/repos/evshiron/swarm-ng-build/releases)]
#69d2e7
vkEnumeratePhysicalDevices failed: -3
websocket open
#69d2e7
vkEnumeratePhysicalDevices failed: -3
websocket open
#69d2e7
vkEnumeratePhysicalDevices failed: -3
websocket open
websocket closed
pure virtual method called
terminate called without an active exception
zsh: IOT instruction (core dumped) ./scapp
又用 gdb 瞅了瞅我这吐核时候的情况,似乎是 n 卡驱动的锅?
另外重新查看了之前在 Ubuntu 上的报错 https://github.com/evshiron/swarm-ng-build/issues/1#issuecomment-1279090490 ,意识到可能是 Wayland 的问题,果然用 Xorg 启动 Gnome 桌面环境就可以正常运行了。
另外在 Debian11 也测试了一下,同样如果是 Wayland + Gnome 会得到之前在 Ubuntu 上相同的错误,改为 Xorg + Gnome 一切正常。
能正常运行的 Debian11 环境如下:
OS: Debian bullseye Kernel: 5.10.0-18-amd64 DE: GNOME 3.38.6 (Xorg)
能正常运行的 Ubuntu 环境如下:
OS: Ubuntu 22.04.1 LTS Kernel: 5.15.0-50-generic DE: GNOME (Xorg)
请问可以提供 Linux 构建吗,或者是否有计划开源代码呢🙈