关于这件事,前两天写了点东西想澄清一些事。后来觉得,表面上的事实没什么价值,所以删了。我在考虑这件事的后续,有没有可能产生积极的影响。
首先,怒气的来源很容易理解:长久以来,大公司在开源的投入上,相比于它从开源项目获取的收益来说,接近于0。大众有朴素的正义:索取和付出应该成正比。一旦双方有了冲突,大众毫不犹豫站在开源项目的一边。
但是传统自由软件精神的牛逼之处在于:它是真的不求回报,对普通用户成立,对大公司也成立。
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
不需要你给钱,不需要你出人,“to make sure the software is free for all its users”。
让我们回到具体事件。Google的某个项目组用AI找bug提bug,FFmpeg twitter运营怼Google只提bug不出力。从外界来看,这是FFmpeg与Google之间的冲突。但事实上,FFmpeg这边只是一个运营者的个人观点,Google那边是一个项目组做的事。FFmpeg项目组内部的矛盾冲突太复杂,一个个人怎么在twitter代表FFmpeg发言就不解释了。
其他开发者有不同的意见。
16:19 <*****> https://thenewstack.io/ffmpeg-to-google-fund-us-or-stop-sending-bugs/ <-- From quickly reading over it I believe the article is not entirely accurate
16:21 <*****> also i think neither our line of arguments via twitter nor the one from the articale is particularly right
16:29 <*****> it's great if anyone finds real security bugs in open source code (doesn't matter where the bug is in libxml2 or in lavc SANM decoder or in the linux kernel or...). that is **real** in a way that you can repro the problem or concisely show it is in the code.
16:30 <*****> the important things happen after that. what do you do after you find the bug? if you report it non-publically to the company/maintainers that's a good first step
16:34 <*****> in the case of open source, what you do after reporting and seeing no fix should be judged carefully. i mean in that case you can also help or fix the problem yourself and submit it. if you go for just full disclosure than it can easily hit many users (e.g. in case of ffmpeg, it can fireback for say google itself)
16:39 <#####> imho, main problem of ffmpeg is that it consist of many separate codec implementations, often obscure and unamintained
16:40 <#####> the "attack surface" is wide and hard to keep clean
16:40 <#####> unlike in smaller projects, which are more focused on a single task
就事论事,目前还没看到除了twitter运营以外,其他反对Google提bug的开发者。值得商榷的是安全bug的公开事件、处理方式。
Michael Niedermayer,FFmpeg的前leader(现在卸任了,FFmpeg当前没有leader,但仍是事实上的leader),直接挑明了不同观点,还暴露了运营者的名字,估计又要吵架。

Michael修复了2700多个Google oss fuzz提的issue。说Google只提bug不出钱出力,容易让人误以为FFmpeg项目里没人处理安全bug。
让我们站远一点来看这个问题。
“索取和付出应该成正比”的朴素正义没问题,公司只索取不付出的做法从开源协议的原则上来说也没问题。当一个公司不论出于何种目的(KPI?宣传?),通过提bug的方式做贡献的时候,却被舆论逼迫为开源项目做更多投入,它以及其他公司会本能的躲避、与开源做切割,避免陷入更多麻烦。
对公司领导层、法务来说,沾染开源等于沾染病毒,容易陷入法律风险和舆论危机,用舆论逼迫他们做什么等于强化他们的这种观念。
道德绑架只能绑得住有道德的人,良心不安前提是有良心。
不要把公司当成一个人,有个性,有善恶道德观。除了微型企业老板一个人包干,其他的企业是一堆人一堆意志的集合体。逼迫一个公司给开源做投入容易适得其反,我认为行得通的路线是divide and conquer,让更多人,包括大公司的员工,以及基层到中层的管理,理解开源,认同开源。
我要开始道德绑架了:
- 如果你是大厂基层员工,让你作为开源项目的人力投入,你愿意干吗?大厂的基本规则是,不挣钱的项目地位低,不挣钱的员工绩效差。
- 如果你是大厂基层或中层管理,你愿意划个人出去做开源项目吗?你能给上面汇报开源投入的合理性和收益吗?难,很难。
上层管理对开源的认知,某CTO跟我说的一段话可见一斑:(当开源社区)其他人说我们哪里哪里做的不好的时候,你就说我们哪里哪里做的好。他把开源社区当成贴吧的口水战。
开源之路从上到下走不通的,需要群众路线。有钱捧个钱场,没钱捧个人场。个体户小公司遇到困难找社区,社区解决了问题给个咖啡钱就成。

