写点什么

没见过这么荒谬的开源要求!20 多年老牌软件仅开源一个月就删除了全部代码

  • 2024-10-18
    北京
  • 本文字数:3536 字

    阅读完需:约 12 分钟

大小:1.52M时长:08:52
没见过这么荒谬的开源要求!20多年老牌软件仅开源一个月就删除了全部代码

在将源代码上传至 GitHub 仅一个月后,WinAmp 的所有方突然删除了整个 repo。其中相当一部分源代码恐怕并非由其贡献,但同样“惨遭毒手”。

 

此前,Winamp 播放器兑现了今年 5 月的承诺,于 2024 年 9 月 24 日正式在 GitHub 上发布了 Windows 版本的源代码。该源代码主要用 C++ 编写,并附带有关于库依赖项和构建工具的信息。一经开源便在 GitHub 上引发了强烈的社区反响,在短时间内获得了数千次 fork。

 

但如今,整个仓库已彻底消失。

 

时代变了,老牌软件想借“开源”的力量寻求新生

 

Winamp,这款诞生于 1997 年的媒体播放器,在 MP3 风靡的年代迅速走红,对于 40 岁左右的程序员来说,它一定不陌生。

 


Winamp 以简单易用、功能强大著称,可定制的界面、丰富的音频格式支持、炫酷的视觉效果和皮肤系统深受用户喜爱。此外,Winamp 还支持在线收听广播和播客,为用户提供了更多选择。

 

然而,随着 Nullsoft 被 AOL 收购,Winamp 的开发逐渐停滞,并于 2013 年正式停产。这一消息让众多忠实用户感到惋惜。

 

在 Winamp 即将关闭之际,澳大利亚墨尔本的开发者 Peter Zawacki 发起了一场声势浩大的请愿活动。他呼吁 AOL 能够继续开发 Winamp,或者将它的源代码开源,让广大开发者接力维护。Zawacki 在请愿书中写道:“Winamp 是有史以来最好的媒体播放器,没有任何一款软件能完全取代它。”

 

为了挽救 Winamp,许多程序员自发加入了这场请愿活动。他们希望能够让 Winamp 继续存在,并将其交到热爱它的用户手中。然而,AOL 对此一直保持沉默,没有给出任何回应。这不禁让人感到失望。

 

2014 年,Radionomy 接手了 Winamp 项目,试图重振这款经典播放器,但无奈市场风向已变,音乐流媒体服务逐渐占据了主流。已经过时的不光是以点对点的形式下载 MP3,还包括 WinAmp 的 Web 版播放器和配套的移动版应用。而且 Winamp 的开发一直断断续续,重大更新也很少。 

 

2023 年,WinAmp 的所有方 Llama Group 重新推出了这款曾备受推崇的 Windows 媒体播放器。

 


Winamp 5.9 Final

 

此时,他们终于想起来还有“开源”这一回事儿了: 2024 年 5 月,他们宣布 Llama 将在当年晚些时候发布项目源代码。之后依照承诺于 9 月完成了源代码发布,同时开源的还有旗下多款其他产品。

 

GitHub 页面写道:“它的开发速度减慢了,但现在,它的源代码对社区开放,允许开发人员改进和现代化播放器以满足当前用户的需求。”

 

在此之前,Llama Group 还曾发布了另一项声明,其中详细介绍了对 Winamp 的“重新构想”,将其重新定位为创作者的音乐流媒体平台,但这一举措似乎没有取得很好的效果,考虑到在同一领域有 Spotify 和 Apple Music 等巨头竞争对手,这并不奇怪。

 

开放代码,但不开源

 

不过在此番将代码仓库删除之前,整个源代码发布过程并不顺利。初始版本附有自定义的许可证,即 WinAmp 协作许可证(WCL)的 1.0 版本,其中包含以下条件:

 

  • 不得分发修改版本:您不得以源代码或二进制形式分发修改版本的软件。

  • 不得分叉:您不得创建、维护或分发软件的分叉版本。

  • 官方分发:只有官方仓库的维护者才被允许分发软件及其修改版本。

 

而且,其他项目也不能使用 Winamp 名称。任何发布 Winamp 修改版本的人都可能面临 Llama Group 的法律行动。Winamp 的首席执行官 Alexandre Saboundjian 明确表示:“Winamp 将保持对软件的所有权,并将决定官方版本的创新内容。”

 

以 Mozilla Firefox 为例,它对商标的保护与 Winamp 类似,但对代码的开放程度更高。Firefox 的代码基于较为宽松的 Mozilla 公共许可证,开发者可以自由地创建修改版本。不过,为了保护品牌形象,他们不能将修改后的版本称为“Firefox”。正因如此,Debian Linux 上的 Firefox 曾被改名为“Iceweasel”。

 

对比 Mozilla,Llama Group 不仅不允许人们在其他项目中使用 Winamp 名称或 Winamp 代码,并且它保留对贡献给核心项目的任何工作的完全所有权。部分 GitHub 用户很快指出(包含在代码仓库的评论当中,如今也被一并删除),上述要求有违 GitHub 服务条款。Hackaday 网站也提到,这样的协议要求表明其并不是真正的开源,Llama Group 的目的仅仅是为了免费获取开发资源,以维护自己的 Winamp 应用程序。

 

最初参与项目的联合开发者 Justin Frankel 同样对此表达了质疑态度:“哪怕我对项目还有点想法,也会被许可条款给扼杀掉。这么荒谬的开源要求我还是第一次见。”

 

开放源代码不等于开源,尽管他们似乎在努力用“开放源代码(opening up its source code)”等短语来暗示这一点。技术分析师 Steven J. Vaughan-Nichols 指出,这可能是一种开放清洗(Open washing)的“伪开源”行为。之所以这样做,是因为如今“开源”对开发者和买家来说都很有吸引力。此外,在欧盟,被认为是开源的软件可以利用最近通过的《网络韧性法案》(CRA),该法案保护开源开发免受繁重的法规约束。

 

很难讲这份“禁令”到底能不能执行到位。另外,上传的源代码中还掺杂一些 GPL 2 的源代码,也让 WCL 做出的开放性限制变得毫无意义。

源代码发布也是一团糟

 

以 WinAmp 协作许可证(WCL)“开源”的 1.0 版本仅适用于 Windows 版本。Mac、Android 和 iOS 版本将继续保持完全的专有性质。虽然源代码附带编译信息,但需要特定版本的 Visual Studio 2019 才能构建。

 

代码仓库里还有其他好东西,有些甚至有着共同的传承。例如,WinAmp 的原作者 Nullsoft 还开发过其他工具,比如早期音频流媒体服务 Shoutcast,其最终成为 AOL 中的一部分。

 

GitHub 上公布的 WinAmp 源代码还包括 Shoutcast 分布式网站音频服务器(DNAS)的服务器代码副本。

 

在我们看来,该公司应该不是故意要分享这些代码的,毕竟 Llama Group 并不具备发布权。作为 Radionomy 的一部分,该公司已经在 2022 年连带业务将其出售给了 Azerion。尽管之前也曾尝试删除,但最终发现不太可行,因此只能作罢(信源来自项目评论,但现在也已被删除)。

 

仓库中还有一些英特尔和微软的源代码,且在删除之前就已经注明。总而言之,WinAmp 开源项目其实相当杂乱,堪称是软件领域的潘多拉魔盒。而且跟魔盒一样,一旦开启就无法被再次关闭。

 


该公司在动手删除前对此作出了回应,在 1.0.1 版本中对 WCL 加以修改,调整为允许分叉但阻止分发修改之后的版本。由于 WinAmp 许可证已被修改为允许分叉,因此该代码在短时间内就被分叉了好几千次。

 

秉持着“黑粉也是粉”的原则,WinAmp 此番开源虽然搞得不太漂亮,但至少还是为这款老旧的 Windows 应用程序吸引到了大量新关注。

 

不过从实用主义的角度来看,许可证中的诸多限制导致项目开源缺乏现实意义。作为一个典型案例,这也说明了为什么开源运动声势浩大,但仍有不少企业拒绝加入。毕竟面向大众市场的传统专有软件项目往往会包含来自其他厂商的大量代码成果,而且多数是为了实现互操作性。清理代码仓库以实现开源发布是一项相当艰巨的任务,而且要把代码交给别人之后,项目本身对公司很可能不再有任何商业价值。既然如此,又何必花大价钱耗费员工精力来清理原有代码呢?

 

而如果老员工们不再参与,那情况只会更糟。之前提到的联合开发者 Frankel 还创建了文件共享应用程序 Gnutella,并早在 20 多年前就离开了公司。他随后成立了 Cockos,并打造出 Reaper 数字音频工作站。

 

总而言之,这是个没有简单答案的问题。也许一部分捐者可以为程序员们提供法律赔偿,也许会有程序员愿意自愿提供清理服务,包括甄别并处理那些可能引发法律纠纷的代码内容。

 

总之 WinAmp 的开源之旅值得大家关注和学习,可能这些代码所有者对“开源”的真正含义缺乏一些理解,从他们并不完全开放的许可协议以及种种代码泄露事件就可以看出来。他们最终放弃了“不允许分叉”的规定,但显然没有预料到会引发如此强烈的反应。这不禁让人怀疑,这是否是出于商业目的的一次炒作?或者,他们只是对开源的理解存在偏差?无论如何,这个事件为我们提供了一个观察开源生态的有趣案例。

 

参考链接:

https://www.howtogeek.com/winamp-source-code-release/

https://www.theregister.com/2024/10/16/opensourcing_of_winamp_goes_badly/

https://www.theregister.com/2013/11/26/petition_to_save_winamp/

https://hackaday.com/2024/09/24/winamp-releases-source-code-but-is-it-really-open/

https://www.xda-developers.com/winamp-source-code-available-open-source/

https://www.zdnet.com/home-and-office/home-entertainment/winamp-is-not-going-open-source-heres-what-it-is-doing-and-why/

https://hackaday.com/2024/09/24/winamp-releases-source-code-but-is-it-really-open/

https://www.bleepingcomputer.com/news/software/winamp-releases-source-code-asks-for-help-modernizing-the-player/

https://opensourcewatch.beehiiv.com/p/winamp-opens-its-code-but-it-doesn-t-open-source-its-code

 

2024-10-18 10:0010237

评论

发布
暂无评论
发现更多内容

翻译:《实用的Python编程》01_02_Hello_world

codists

Python

手摸手Go 深入剖析sync.Pool

Leo叔叔

Go Concurrency Patterns sync.pool Go 语言

书画装裱物料与选择参考

boshi

业余爱好 七日更

浅谈性能优化

跳蚤

LeetCode 数据库刷题 - 1179. 重新格式化部门表

小马哥

七日更 二月春节不断更

LeetCode 数据库刷题 - 596. 超过5名学生的课

小马哥

七日更 二月春节不断更

Elasticsearch query string 分词

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

备战春招/秋招,开源社区系统 Echo,基于目前主流 Java Web 技术栈,并提供详细的开发文档和配套教程

飞天小牛肉

Java 开源 后端 springboot 2月春节不断更

千行百业中的我们,数字山河间的中国速度

脑极体

并发编程系列:线上问题定位

程序员架构进阶

Java 并发 问题排查 七日更 2月春节不断更

并发编程系列:阻塞队列的实现原理

程序员架构进阶

jdk 阻塞队列 七日更 28天写作 2月春节不断更

gradle中的build script详解

程序那些事

maven Gradle 程序那些事 构建脚本 构建程序

12周架构

FreeOcean

hadoop mapreduce YARN

职场心得

时间是一个人最好的证明

职场

写一个用例(第四周)

mas

Elasticsearch 分词器

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

定投,积沙成塔的财富增长方式

boshi

理财 七日更

第四周作业

Ashley.

第四周笔记

Ashley.

前端冲刺必备指南-this/call/apply/bind(万字长文)

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

聊聊金钱

熊斌

2月春节不断更

为您收录的操作系统系列 - 进程管理(加餐)

鲁米

线程 进程 同步 生产者与消费者

【LeetCode】找到所有数组中消失的数字Java题解

Albert

算法 LeetCode 2月春节不断更

日记 2021年2月13日(周六)

Changing Lin

2月春节不断更

日记 2021年2月12日(周五)

Changing Lin

2月春节不断更

8. ㊙ Python 集合三板斧,滚雪球学 Python

梦想橡皮擦

Python 2月春节不断更 python入门

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

跳蚤

Python优化机制:常量折叠

Python猫

Python

这段时间学习机器学习的感受

Nydia

【STM32】5分钟了解STM32的串口通信

AXYZdong

硬件 stm32 2月春节不断更

《我们脑中挥之不去的问题》- 卓克科普(1)

石云升

读书笔记 科普 2月春节不断更

没见过这么荒谬的开源要求!20多年老牌软件仅开源一个月就删除了全部代码_开源_Tina_InfoQ精选文章