2012/2/29 Ma Xiaojun <[email protected]>:
> 感覺這一點最微妙了……世界上真有辦法確定一個人有沒有看過mfc的代碼?

我想应该没有.
但是, 理论上有一种方法可以规避这类法律风险.

首先, 开发者实现一个stub的mfc42.dll,什么函数都没有
然后, 用户使用wine, 某个程序因为缺少某个mfc42.dll的函数而崩溃, 于是用户向wine报bug
接着, wine开发者根据msdn文档等资料,有针对性地实现用户的bug中提到的函数
接下来, 用户重新测试, 继续报bug, 开发者继续针对性地实现某个或某些函数

在这个过程中, api的正确性并不是通过比较原版ms mfc的代码来确认, 而是通过现实世界
中依赖该api的程序是否正常运行来检验.

在这个过程中, git的代码提交记录和bugzilla的追踪历史共同见证了mfc42是如何一点点
被实现的. 除非很偶然, 不然一个开发者实现一个api的代码不会跟另一个开发者完全一样.

只要wine mfc的代码和ms mfc的代码不完全一样, 就会出现这样的局面:

wine开发者没有办法绝对证明自己没看过ms mfc的代码, 但任何想告wine侵权的人也没有
证据可以证明wine开发者看过ms mfc的代码. 根据无罪推断, 再加上git和bugzilla的有利
记录, 可以认为wine这么做是不会有法律风险的.

这里也可以说一下我一再强调要给wine报bug的其中一个原因:
如果一个函数没有已知的程序调用到, 那么wine是不会去实现的. 所以如果用户不报bug,
wine就不会进步了.

顺便可以说一下, wine项目要求每个开发者都用实名, 是为了保证每个人为自己的代码负责,
如果有哪个开发者偷偷做了违法的事情, 那么一旦被发现他的代码一定会被清除.

-- 
Regards,
Qian Hong

-
Sent from Ubuntu
http://www.ubuntu.com/
-- 
ubuntu-zh mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh

回复