阿里云开年Hi购季

[翻译]ffmpeg官网关于射手播放器违反GPL协议讨论之中文版

2009年12月19日 08:10 次阅读 稿源: 条评论
感谢玛格丽特苏的投递
新闻来源:marguerite.su; ffmpeg
射手播放器举报QQ影音违反GPL协议之后,立刻就有牛人举报射手自己也不干净。从而引发了ffmpeg官网的一场讨论。不爱看英文?这里有中文版。原文如下:
抬头声明:

1.本人离开Windows环境三年有余,对射手播放器和QQ影音仅仅停留在听过名字的阶段,无任何个人偏好。
2.本人openSUSE下所用播放器均为packman打包,没有编译过源码(编译不来),职业也并非码农,对软件的态度是好用就行,不管盗版正版,因此对ffmpeg不感冒,相反觉得繁琐。
3.本人家教甚严,大学才开始上网,错过了人手一个QQ号码的黄金年代,第一个IM是msn,因此对腾讯品牌无任何忠诚度。
4.本人系上外毕业,具有在非中文环境工作之能力,并没用过任何射手网的字幕产品。
5.本人与yegle在推上为following/follower之关系,曾拒绝其数次勾引,其亦曾对本人恶语相向,相关可查推特记录。对其持谨慎态度。

故本人为独立第三方,胸中所学足以应付下文之翻译,本人翻译可视为原文替代。
PS:本人性别为女,请干净评论。无论是你的人身攻击,还是我的,都是好说不好听。

下面是译文:


争端:射手播放器违反GPL协议

msg8357 作者:yegle

射手播放器是中国用户很多的一款播放器。它声明它发布在GPLv2协议下并且使用了部分ffmpeg代码,但是该播放器发行版本中有部分包格式没有提供源码。

主页:http://splayer.org
协议:http://trac.splayer.org/browser/svplayer/License.txt
包文件:http://trac.splayer.org/browser/svplayer/lib

msg8361 作者:freevpn

开源的人们,请对QQplayer公平一点。你们不能把QQplayer加到耻辱柱上,这是不公正的。你们是开源的,所以我们可以无偿且随意的使用它。

msg8363 作者:diego

“开源的人们,请对QQplayer公平一点。你们不能把QQplayer加到耻辱柱上,这是不公正的。”

——QQplayer和射手播放器怎么相关了?

“你们是开源的,所以我们可以无偿且随意的使用它。”

——自己看协议去。

msg8364 作者 yegle

更多信息:

我检查了这里:

文件:http://trac.splayer.org/browser/svplayer/lib/libavcodec_gcc.lib( 修改版本号:961)

然后运行:strings libavcodec_gcc.lib | grep libavcodec

结果是:

FFmpeg v%d.%d.%d / libavcodec build: %d

libavcodec/vc1dec.c

libavcodec/ratecontrol.c

Xvid ratecontrol requires libavcodec compiled with Xvid support.

libavcodec/ratecontrol.c

Xvid ratecontrol requires libavcodec compiled with Xvid support.

libavcodec/x86/dsputil_yasm.asm

libavcodec/x86/fft_mmx.asm

libavcodec/x86/h264_deblock_sse2.asm

libavcodec/x86/h264_idct_sse2.asm

libavcodec/x86/x86util.asm

这个文件是用包格式发布的,没有源码提供。好丢脸呀!

msg8366 作者:Tomasen

嗨,我是射手播放器的作者。

我朋友刚发消息告诉我这个链接,所以我来这里好好解释下。

情况是这样的:我是中国唯一的开源播放器项目的管理员和项目经理。很显然的,我不是QQ影音的粉丝。就在今天,我发表了一篇公众陈述反对QQ影音, 要求QQ影音开源并且停止对GPL协议的侵犯。(你可以用谷歌翻译查看我的博客:http://blog.splayer.org/)

看上去似乎是一些QQ影音的粉丝来…好吧,我不想说那个词。

在库文件夹里,大部分文件都是为了想要给其他下载代码的程序员制造方便的(这样他们就不用再gcc,cygwin了),源码在/svplayer /src/filter/transform/mpcvideodec/ffmpeg,还有部分cygwin的库文件(这又明显了)。(注1)

我本人不是GPL的专家,我竭尽所能遵循GPL协议,同时与那些根本不尊重开源社区的公司斗争以求生存。(注2)与此同时我还是射手播放器的母项目 –MPCHC的一员。要是我有任何遗漏的东西他们会理解的。如果ffmpeg有任何问题,你始终可以私下里通过邮件联系我 (tomasen@gmail.com)。

msg8367 作者:yegle

@Tomasen

恕我无礼,但我不是QQ影音的粉丝,因为我根本就不用Windows。我和QQ影音的东家腾讯也没有任何瓜葛。

“我对协议知道的不多”不是违反协议的借口。开源也不仅仅是提供源代码。

你可以看下 争端 1519, 在这里:

http://roundup.ffmpeg.org/roundup/ffmepg/issue1519

QQ影音确实有提供它修改版本的ffmpeg软体的源码在这里:

http://dl_dir.qq.com/invc/qqplayer/qmp_ffmpeg.zip

但这和QQ影音违反了ffmpeg协议的事实并不冲突。

msg8373 作者:xslidian

把QQ影音加入到耻辱柱上显然是公正的,但是轮到射手播放器我们就得考虑点其他的了。

据我所知,射手播放器是中国大陆唯一持续开发中的播放器,这促使我,一个围观的,看一眼它的源代码。我可以看出它的大部分点子,这些点子中的大部分让我觉得它会变成一个好的开源项目。

我还不是射手播放器的用户或者粉丝,但是我希望FFMPEG团队在坐实它的耻辱之前,可以给射手播放器一个机会来重制它的声明(我还没有在它的官网上看到任何合规声明)。

msg8379 作者:yegle

我不得不说Tomasen和射手播放器的态度惹毛我了。

射手播放器只是声明它是GPL的,但是实际上它没有做过一件GPL的事。

它打包了没有源代码的包文件。

它违规在它的安装文件中打包了CoreAVC解码器。(自己试试安装文件吧。http://shooter.cn/svplayer/index.en.html)。

它声明:“部分代码不公开是因为我们不想其他人照搬它。”(谷歌翻译后的链接:http://

www.shooter.cn/wiki/

%E5%B0%84%E6%89%8B%E6%92%AD%E6%94%BE%E5%99%A8%E5%BC%80%E5%8F%91%E6

%8C%87%E5%8D%97#.E4.B8.BA.E4.BB.80.E4.B9.88.E4.B8.80.E4.BA.9B.E9.A

1.B9.E7.9B.AE.E5.8F.AA.E6.9C.89.E7.B1.BB.E5.BA.93.E4.BD.86.E6.B2.A

1.E6.9C.89.E6.BA.90.E7.A0.81)

所以依据它的声明,射手播放器不是GPL的。这就是我的观点,一个非GPL的软件(或者你可以叫它商业软件?)可能使用了你们GPL协议下的代码,违反了协议。

msg8381 作者:Tomasen

我又来了。

这个项目的一部分,有些库文件是我们自己创作的,并没有依赖或参考任何GPL代码。

开始的时候,我确实开放了所有源代码,包括那些我们自己写的模块。但是之后某个jxxx过来复制了整个源码树,改了名字和标签就声明说是他们的原 创。所以我决定稍微保护一下,停止向公众分发由我自己写的,没有依赖和参考GPL代码的小模块。耍个把戏这样其他人就不能简单的不适用协议就复制它。我觉 得我这把戏就像Zend对PHP做的那样。

安装文件确实包括了coreavc作为给用户提供便利的一个选项(并且因为这里每个其他的播放器都打包了它,我必须让项目存活。)。我自己不想这么做的。而且一旦让我找到提升h264解码效果的方法,就有计划在下一系列的版本中替换或者移除它。(注3)

还有,我必须再次承认我不是GPL专家。那些法律条款对我来说太难理解了。只要让我懂,我就会在可能的情况下多做痛悔(原文如此,怀疑为贡献),并且尽力开放给开源社区。欢迎任何告诉我该做什么和不该做什么的建议。(注4)

我个人不喜欢公开争辩。花时间和怒气。如果ffmpeg团队想要深入调查这次事件,我希望你能邮件联系我。我会竭尽全力的配合你们的工作。ffmpeg是个伟大的项目,我发自内心的尊重着它。

msg8382 作者:roozhou

要是你不能遵循协议的每一个条款,那么请不要声明你的软件发布在GPL协议之下。阅读理解GPL协议是你的责任。

相比射手播放器,还有更jxxx的人侵犯FFMPEG。但是FFMPEG的人就“稍微保护一下,停止向公众分发一些小模块”?从来没有!

显而易见的,没有FFmpeg和其他专属/开源的解码器,射手播放器不能播放任何文件。没人会同情你的,因为你用它赚钱,与此同时其他开发者免费的开发着ffmpeg。

msg8383 作者:bhcdss

射手播放器声明遵循GPL协议,所以必须提供全部源代码。

msg838 作者:Tomasen

看起来像是好多人没有精准地读过代码就来发电了。

首先,永不分发给公众的模块,不是基于或修改至任何GPL代码。

看来我需要花费更多时间阅读GPL。所以我这么做了,用来求证我对GPL的理解。我认为这部分模块可以看成是部分满足“合作”条款。它是“合作”中的非GPL部分。

参考至:http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#TOCGPLModuleLicense

——如果我附加了一个模块到遵循GPL协议的程序,我必须使用GPL作为我模块的发布协议吗?

——GPL说整个合作程序必须发布在GPL协议之下。所以你的模块必须在GPL协议下可用。

自己看看吧,我的模块在GPL协议下可用。虽然我并没有声明过模块的协议。我并没有禁止复制和使用这些模块。(注5)

还有呀,我赚什么钱了,啊?我想知道知道。

msg8387 作者:yegle

@Tomasen

看来你真的去看GPLv2的FAQ了。那么你就应该知道你没有用GPL兼容协议来发布你所谓的“模块”。

好吧,你是怎么定义“我程序的一个模块”的?看起来似乎你想当然的觉得你可以把你程序的随便什么部分都叫模块啦?

我以为,一个模块是一个程序的可选部分,意思是我在编译的时候不需要这些包文件,或者即使是我删除了相关的dll文件,我的程序虽然丢失了一些特性,但还是可以工作的。

如果我错了请指正。

msg8389 作者:diego

“开始的时候,我确实开放了所有源代码,包括那些我们自己写的模块。但是之后某个jxxx过来复制了整个源码树,改了名字和标签就声明说是他们的原创。”

这侵犯了版权。正确的反应是把那个人告上法庭。因为你的版权受到侵犯就来侵犯我们的,这显然不是正确的反应。

“还有,我必须再次承认我不是GPL专家。那些法律条款对我来说太难理解了。”

那我把协议回回锅,化成一句简单的英文:

你必须发布所有的源代码。

你发布所有的源代码了么?很显然你没有。

所以你违反了协议。得了吧。

msg8391 作者:Tomasen

好吧,我会让我的朋友们帮助确认下的,如果确实是这样的话。

但是我还有问题:GPL不禁止使用闭源库(例如:unrar.dll和没有发布在GPL协议下的ape库),对不?

所以如果我的模块不是项目的一部分,即使它是闭源的,我还是可以使用它,对不?

另外,我当然可以让射手播放器没有那些模块也能编译,就加几个flag呗。事实上那个模块只是提供字幕匹配服务的插件,并不影响播放器的。

msg8393 作者:Tomasen

好了。

请弄清我上面说的。我迫不及待的想要开放一切,包括我自有的模块,如果我有能力把任何盗版者告上法庭的话。但是很不幸,我不能,我的律师朋友告诉 我,在中国如果想要起诉任何版权侵犯,我必须是版权的所有者或者所有者的代表。在GPL这个例子中,我不能在法庭上证明我是所有者,我没有资格上诉。

不管了,咨询过一些朋友之后。我下面要做这些事。如果有遗漏请告诉我。

首先,我会把这个模块从目前的项目中移除。(不影响程序运行和功能。)

接着,我会将这个模块作为一个独立的程序发布,在不同的协议下。

这行得通么?

msg8394 作者:yegle

@Tomasen

这对于射手播放器未来的开发是个好消息。

事实上你可以看看射手播放器是怎么处理额外的外部解码器的。

msg8395 作者:windywinter

如果你剥离了那个模块,在法庭上证明你是它的所有者会相对容易一些。

还有不要忘了停止分发每一个以前版本的把那个模块作为整个程序一部分的射手播放器,因为它们仍旧是侵犯GPL协议的。

msg8396 作者Tomasen

好吧,终究我还是给自己少找点麻烦。

我刚刚开放了这些模块中的隐藏代码到SVN。不多。

我想在我构思出这个模块之前,这样更彻底一点。(注6)

msg8397 作者:diego

“但是我还有问题:GPL不禁止使用闭源库(例如:unrar.dll和没有发布在GPL协议下的ape库),对不?”

错。

“所以如果我的模块不是项目的一部分,即使它是闭源的,我还是可以使用它,对不?”

不对。

我再给你重复一遍我关于GPL的简单解释:

你必须开放全部源代码。

唯一可能需要澄清的是:

你必须在GPL协议下开放全部源代码。

这是多简单的句子啊。你不能理解它是因为你在把简单事情复杂化。“全部”意味着每一行源代码,而不是“有例外列表的全部”。

现在扪心自问一个简单问题:你发布 射手播放器的全部源代码了吗?如果答案是没有,那么你就违反协议了。

msg8398 作者:diego

“请弄清我上面说的。我迫不及待的想要开放一切,包括我自有的模块,如果我有能力把任何盗版者告上法庭的话。但是很不幸,我不能,我的律师朋友告诉 我,在中国如果想要起诉任何版权侵犯,我必须是版权的所有者或者所有者的代表。在GPL这个例子中,我不能在法庭上证明我是所有者,我没有资格上诉。”

你是你自己代码的版权所有人,所以你可以上诉。

msg8400 作者:Tomasen

顶,服务器怠机弄丢我回复了。

好了,我省掉自己好多麻烦了。现在我们写的每一行代码都可以通过SVN得到了。

还是基本概念理解。

根据:

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

——如果一个发布在GPL协议下的程序使用插件,插件的协议要求是怎样的?

——这取决于程序是如何调用插件的。如果插件是调用一个新进程的,那么插件是独立程序,所以主程序的协议管不到插件。

如果程序动态链接插件,并且他们对彼此有功能性请求,且共享数据结构,我们认为他们组成了一个程序,这个程序必须被看上是主程序和插件的一个扩展。 这就意味着插件必须发布在GPL协议或者GPL兼容的自由软件协议下,如果这些插件同主程序一起分发,那么GPL协议必须被遵守。

如果程序动态链接插件,但是相互之间的通信局限在通过一些选项调用插件的主要功能,并且等待插件响应,这是一个边缘的例子。

同样还有:

——如果我附加了一个模块到遵循GPL协议的程序,我必须使用GPL作为我模块的发布协议吗?

——GPL说整个合作程序必须发布在GPL协议之下。所以你的模块必须在GPL协议下可用。但是你可以附加应用你代码的许可条款。你可以,如果你想的话,把你的协议发布在比GPL还要宽松的协议之下,当然你的协议必须与GPL兼容。协议列表页给出了部分GPL兼容协议。

这难道不是说你可以共用GPL和闭源的源码库/插件?

“但是我还有问题:GPL不禁止使用闭源库(例如:unrar.dll和没有发布在GPL协议下的ape库),对不?”

错。

“所以如果我的模块不是项目的一部分,即使它是闭源的,我还是可以使用它,对不?”

不对。

msg8402 作者:diego

“这难道不是说你可以共用GPL和闭源的源码库/插件?”

不是。

我第三遍给你重复这个简化版本的GPL:

你必须发布所有源代码。

这简单的不得了。请停止用一些你根本不能理解的细节来混淆你自己。

注:

1,作为译者,我不解他明显在哪里。

2,和这件事有关系嘛?我不懂的都笑了。宾语都不对。

3,“一旦…就有计划…”,八字没一撇也拿出来说。

4,等你懂的时候微软都该开源了。

5,不给下载还不算禁止?就好像把人关监狱了,不给你钥匙,我没不让你出去啊。lol

6,前面一口咬定那是你的模块,好吧,是你还没构思出来的模块。那前面是什么我也不知道。
腾讯云

活动入口:

腾讯云 - 热销云产品年付3折起

对文章打分

[翻译]ffmpeg官网关于射手播放器违反GPL协议讨论之中文版

2 (4%)
已有 条意见
阿里云

    最新资讯

    加载中...

    今日最热

    加载中...

    热门评论

      Top 10

      招聘


      Advertisment ad adsense googles cpro.baidu.com
      created by ceallan