案例
wine-uwp:在修改版 Wine 上运行打包的 Windows 商店应用
扩展 Wine 11.17,使已签名的 MSIX 商店应用(主要目标为 Shapr3D)无需源码或符号即可在 Linux 上安装运行。约 49,000 行改动新增了 DirectComposition 实现、合成交换链和应用模型宿主;微软自己的 XAML 与应用模型 DLL 则在使用者机器上从 Windows 11 镜像中提取后原样运行。作者称大部分逆向工程和代码由 Claude 完成;各应用支持程度不一,由项目回归测试检查。
使用条件与局限
- README 的应用列表报告:Shapr3D 的草图、建模、菜单、云同步、登录及 STL/PDF 导出可用;Solitaire 可游玩;Media Player 能从自身界面播放音频;Calculator 完全可用;Feedback Hub 可交互;Camera 只能进入它自己的错误页面。Shapr3D for Linux(58d9173)将同一固定版本的 wine-uwp 打包为测试版 AppImage 和 Flatpak;它是非官方项目,与 Shapr3D 无关。
- 需要使用者自己的应用包(.msix 或 .msixbundle,或 Shapr3D 的 .appinstaller,安装程序据此下载约 1.8 GB),以及从微软免费的 Windows 11 评估版 ISO 或其他 Windows 11 镜像中提取的 Windows 组件。仓库和发布包均不含这些内容,提交钩子会拒绝 Windows 二进制文件。Shapr3D 还需要账号并通过浏览器登录。
- 构建时把仓库内的 wine/ 文件复制到 Wine 11.17 源码之上,再运行 autoreconf、带 --enable-archs=x86_64 的 configure 和 make;WinRT 替身组件使用 clang-cl 与 lld-link,针对 xwin 获取的 Windows SDK 头文件构建。Shapr3D for Linux 需要 glibc 2.38+ 的 64 位 Linux、可用的 Vulkan 驱动,安装期间约需 11 GB 空闲空间;其发布包用 flatpak-builder 在 freedesktop 25.08 SDK 中构建。
- regress.sh 要求 Calculator 与仓库中保存的基线逐像素一致,并要求其他应用能在私有 Xvfb 显示上启动;release.sh 的冒烟测试检查全新安装能否进入 Shapr3D 的首个界面。Findings 日志既记录修复,也记录失败的尝试。这些检查均为项目自报;本合集未构建 Wine,也未运行任何应用。
- 两个仓库都没有顶层许可证文件,GitHub 也未识别出许可证。仓库内的 Wine 文件带有 LGPL-2.1-or-later 声明,安装程序的 Cargo 清单也声明相同许可;替身组件和调查工具未声明许可证。提取的微软组件和商店应用各自保留条款,项目计划也指出,可分发的产品需要以净室方式替换这些组件。作者在 X 帖子中披露大量借助 Claude;未确立 REA 使用。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · designgears/wine-uwp · 修订 1cf79d0
- AGENTS.md GitHub · designgears/wine-uwp · 修订 1cf79d0
- docs/Plan.md GitHub · designgears/wine-uwp · 修订 1cf79d0
- docs/Findings-M4.md GitHub · designgears/wine-uwp · 修订 1cf79d0
- wine/README.md GitHub · designgears/wine-uwp · 修订 1cf79d0
- wine/BASE.txt GitHub · designgears/wine-uwp · 修订 1cf79d0
- wine/dlls/dcomp/composition.c GitHub · designgears/wine-uwp · 修订 1cf79d0
- regress.sh GitHub · designgears/wine-uwp · 修订 1cf79d0
- packaging/harvest/manifest.txt GitHub · designgears/wine-uwp · 修订 1cf79d0
- README.md GitHub · designgears/shapr3d-linux · 修订 58d9173
- .gitmodules GitHub · designgears/shapr3d-linux · 修订 58d9173
- installer/Cargo.toml GitHub · designgears/shapr3d-linux · 修订 58d9173
- https://x.com/DesignGears/status/2109530620321788301
- https://x.com/DesignGears/status/2109532140907921698