资讯动态

ReactOS 中基于 WINE 的 DLL 功能不正确时,补丁该提交给 ReactOS 还是 WINE?

发布时间:2026/9/15 11:28:29 来源:尧图企业网站定制
ReactOS 中基于 WINE 的 DLL 功能不正确时补丁该提交给 ReactOS 还是 WINE【免费下载链接】reactosA free Windows-compatible Operating System项目地址: https://gitcode.com/GitHub_Trending/re/reactos在 ReactOS 里修 bug 时经常会碰到一种情况出问题的函数来自 WINE 的移植代码ReactOS 的用户态部分几乎全部基于 WINE见 README.md 中的说明。这时补丁到底只发给 ReactOS还是要同时发给 WINE不能拍脑袋决定。media/doc/WINESYNC.txt 给出了明确的判断规则CONTRIBUTING.md 则规定了提交侧的渠道和要求。本文按“先定位、再查上游、后提交”的顺序说明这条路径。第一步确认问题代码是否属于 WINE 移植代码WINESYNC.txt开头给出的原始规则是如果发现 ReactOS 中某个功能未正确实现、且其代码基于 WINE 源based on WINE sources就去查最新的 WINE 源文档原文写的是 check the latest Winehq CVS看那里是否已经修复。判断“是否属于 WINE 移植代码”不需要凭感觉直接查 media/doc/WINESYNC.txt。该文件自称是 ReactOS 源码树中与 WINE 共享代码位置的完整参考按类别列出了共享的构建工具如sdk/tools/widl、sdk/tools/unicode共享头文件如sdk/include/psdk/rpcproxy.h共享库涵盖dll/directx/wine/*d3d9、ddraw、quartz 等和大量dll/win32/*crypt32、ole32、urlmon 等共享程序如base/applications/cmdutils/wmic、base/applications/notepad部分文件级别的移植记录例如dll/win32/kernel32/wine/actctx.c、sdk/lib/crt/wine/heap.c、win32ss/user/user32/controls/edit.c等。每条记录后面带有同步状态注释常见三种标记dll/win32/crypt32 # Synced to Wine-10.0 dll/win32/shell32 # Forked at Wine-20071011 dll/win32/iphlpapi # Out of sync另外media/doc/3rd Party Files.txt 开头也指明“Files synced with Wine can be found in /media/doc/WINESYNC.txt”即 WINE 同步清单统一以WINESYNC.txt为准。如果你在列表里找不到你改动的路径文档也要求你把缺失的条目补充进去If you find something is missing from this documentation please add it。第二步查 WINE 上游后按两条分支决定提交对象确认代码属于 WINE 移植范围后按WINESYNC.txt的规则分两种情况WINE 上游已经修复补丁只提交给 ReactOS文档指定的地址是ros-devreactos.orgWINE 上游尚未修复补丁同时发给wine-patcheswinehq.com和ros-devreactos.org两边。CONTRIBUTING.md 中关于修 bug 的注记给出了同方向的总规则涉及 Wine、BtrFS 等第三方代码的补丁应发送给对应项目的上游upstream细节参见media/doc下的相关文件。汇总成判断表情形补丁去向基于 WINE 的代码且最新 WINE 源中已有修复ros-devreactos.org基于 WINE 的代码最新 WINE 源中未修复wine-patcheswinehq.com和ros-devreactos.org两边都发非 WINE 移植的 ReactOS 自有代码按 CONTRIBUTING.md 走 ReactOS 常规渠道ReactOS 一侧的提交渠道与要求WINESYNC.txt写于早期指定的是邮件列表ros-devreactos.org。当前仓库的 CONTRIBUTING.md 说明自迁移到 GitHub 后Pull Request 是优先的提交方式Pull request is a preferred way to submit your work补丁patch形式仍然接受。因此发给 ReactOS 的修复若走 PR 渠道需同时满足该文档列出的要求使用真实姓名和真实邮箱不接受匿名代码贡献提交前需确认自己未接触 Microsoft Windows 源码文档中的法律声明提交信息可套用仓库自带的 commit 模板git config commit.template .gitmessage一个提交只包含与当前问题相关的改动保持小而聚焦提交前先搜索是否已有相似的 pull request 或 issue有则在已有条目上评论而不是重开如有关联的 issue 编号在描述中注明。不要盲目同步Forked 与 Out of sync 条目WINESYNC.txt里不少条目并不在持续同步直接拿 WINE 新版本覆盖是不对的。例如dll/directx/wine/dsoundForked at Wine-1.3.29注释明确说明更新版本依赖 NT6 的 mmdevapi在 ReactOS 未转向 Vista 目标之前继续同步没有意义the further syncing makes no sense until were retargeted to Vista or newerdll/win32/iphlpapi、dll/win32/msvcrt20、dll/win32/msvcrt40标记为Out of syncdll/win32/setupapi、dll/win32/shell32、win32ss/user/user32/windows/menu.c等标记为Forked部分带分叉点版本。遇到这类条目先看文件注释里的分叉原因再决定补丁策略而不是默认“去 WINE 抄最新实现”。最后一条容易漏掉的收尾动作WINESYNC.txt开头要求“Update this file when you port/sync a dll/program from WINE”。也就是说无论你的修复是只进 ReactOS 还是同时进 WINE 上游只要这次改动涉及从 WINE 移植或同步代码都应更新该文件里的同步状态记录若你发现清单漏了某个共享路径也一并补上。整条路径可以概括为在WINESYNC.txt中确认代码归属与同步状态 → 查 WINE 上游是否已修复 → 已修复只发ros-devreactos.org未修复两边都发 → ReactOS 侧优先走 Pull Request 并满足 CONTRIBUTING.md 的作者与提交规范 → 更新WINESYNC.txt的同步记录。【免费下载链接】reactosA free Windows-compatible Operating System项目地址: https://gitcode.com/GitHub_Trending/re/reactos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价