开发者生态
evening
我拒绝让 SPICE 消亡
2026-09-12
1 阅读
约9分钟阅读
Nefarius
字号:
Spice VD Agent for Windows 社区维护的 SPICE Windows 来宾代理。该存储库是已废弃的 freedesktop.org Spice/win32/vd_agent 项目的公共镜像。规范下载在 GitHub Releases 上实时进行。该代理提供: 无需抓取指针的客户端鼠标模式 与客户端匹配的桌面分辨率 剪贴板共享(文本和图像) 将文件传输到来宾中 在每个会话中启动 vdagent.exe 的 Windows 服务 (spice-agent) 状态 Red Hat 不再维护上游 SPICE。此分支使 Windows 代理能够为当前来宾构建和发布,尤其是 Linux 上的 Windows 11 VM。该树已包含 d7405ee ( vdagent/desktop_layout.cpp ) 中的多 GPU 鼠标修复:当真正的 GPU 与 SPICE 显示设备并排通过时,代理不再丢失鼠标移动。许可证和出处 该代理是 GPL-2.0-或更高版本。请参阅每个源文件中的复制和版权标头。原始版权归 Red Hat, Inc. 和其他上游作者所有。该分支不主张 Red Hat 或 SPICE 商标。固定的构建时子模块(不要随意碰撞):子模块提交上游香料协议ce0c4211e6f16c66477934cc42e70fa0988ca7f0 https://gitlab.freedesktop.org/spice/spice-protocol SPICE-COMMON 05c0c26839e88e6d0cc5452f49c40e38543c8f97 https://gitlab.freedesktop.org/spice/spice-common 子模块 URL 使用 HTTPS。 MSI 升级保留历史 WiX UpgradeCode ( 7eb9b146-db04-42d7-a8ba-71fc8ced7eed )。相关产品在 InstallValidate 之后、安装事务开始之前被删除,因此共享组件将被重新复制,而不是通过旧包的卸载而被删除。因为wixl不读取PE版本资源,所以File表显式获取RC_FILEVERSION;使其与 VS_VERSION_INFO 中的四个字段相同。 x64 安装程序仍然仅将 vdagent.exe 和 vdservice.exe 发送到 C:\Program Files\SPICE agent\bin 。克隆 git clone --recursive https://github.com/nefarius/vd_agent.git cd vd_agent 如果您已经在没有子模块的情况下克隆: git submodule update --init --recursive 创建镜像后,freedesktop GitLab 远程将保留为上游。使用以下方式获取: git fetch upper 本地构建 (MSYS2 UCRT64) Autotools + MinGW-w64 UCRT64 路径是生成安装程序的受支持方式。 CMake + MSVC 仍然可用于本地开发,但不会构建 MSI。先决条件 MSYS2 UCRT64 shell( C:\msys64\ucrt64.exe 或 MSYSTEM=UCRT64 ) 从 UCRT64 shell 的存储库根目录中: bash msys2/install.sh autoreconf -i bash msys2/build.sh builducrt64 bash msys2/package.sh builducrt64 install.sh 拉取 autotools 、 autoconf-archive 、 UCRT64 工具链、msitools ( wixl ) 和 ImageMagick (测试)。 PNG 剪贴板转换使用 Windows Vista 及更高版本附带的 Windows 成像组件。 build.sh 配置、编译 vdagent.exe / vdservice.exe ,并运行 test-png 、 test-log 和 test-shell 。然后 package.sh 调用 make msi 并写入: builducrt64/spice-vdagent-x64-.msi 版本字符串来自 git 通过 build-aux/git-version-gen 进行描述。发布标签必须类似于 v0.11.0(小改动),以便“程序和功能”准确显示该标签。未标记的构建添加自最后一个标记以来的提交计数(例如 v0.11.0 加上 83 次提交变为 0.11.0.83- )。如果该计数加上 --with-buildid 达到 256,则配置失败,因为这会与下一个微版本冲突。要签署本地构建,请在 package.sh 之前签署两个可执行文件,然后签署 MSI。可选的 MSVC 构建 git 子模块更新 -- init -- 递归 cmake -S 。 -B build64 -A x64 cmake --build build64 --config Release cmake --build build64 --config Release --目标检查 CI 并发布 GitHub Actions (.github/workflows/build.yml) 在 windows-2022 上构建 x64 UCRT64 MSI。事件签名 发布 拉取请求/主推送 跳过工作流程工件 仅 vdagent-win-x64 标签 v* 必需 签名 MSI + SHA-256、工件镜像、GitHub 发布签名使用 SignRelay,因此证书永远不会登陆运行器。该流程与 DsHidMini 匹配: 构建并测试未签名的二进制文件 在 v* 标签上,对 vdagent.exe 和 vdservice.exe 进行适当的签名 将这些二进制文件中的 MSI 打包 签名 MSI 验证 Authenticode ( Get-AuthenticodeSignature Status = Valid ) 写入 .sha256 上传 vdagent-win-x64 并在标签上通知 AppVeyorArtifactsReceiver 将 MSI 和校验和附加到 GitHub 版本SignRelay 复合操作固定为提交 39ccbe0cef16a383237130380a5aef8db040d5d0 。 CLI 需要运行器上有 .NET 10(带有 10.0.x 的 actions/setup-dotnet )。存储库设置 在 nefarius/vd_agent 上创建这些内容(设置 → 秘密和变量): 名称 种类 用途 SIGN_RELAY_SERVER 变量中继基本 URL,例如 https://signrelay.api.nefarius.systems/ SIGN_RELAY_CI_TOKEN 秘密 CI 承载令牌(服务器上的 SignRelay__CiToken) WEBHOOK_URL 秘
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱