2010-08-28

关于 Debian 的一些事实

昨天在 SHLUG 的每月聚会上, 和朋友聊起 Debian, 是 Debian Developer (简称为 DD), 当时另外一位 developer zigo 也在 (法国人,定居中国), 就跟大家介绍了 Debian 的一些工作方式, 发现大家对 Debian 还是有误解和不理解。现整理如下

  • Debian 是纯社区支持的发行版,没有一个公司主导, 这个与 Ubuntu, Fedora 不一致
  • Debian 没有需要付薪水员工, 一个也没有
  • Debian 后面与钱有关的组织叫 SPI, 一般是有事的时候才开始募钱, 所以收支少的时候一个月就 1000 美金左右,多的时候大概是几万美金(比如每年的 DebConf), DD 可以加入他们的列表,每月有一份账单, openoffice, postgresql 的钱似乎也归他们管,所以也能看到他们的账单,他们的账单比 Debian 还要小。
  • Debian 的领导人每年选举一次, 每个DD把候选人进行排序, 如果其中一人严格优于其他候选人,那么他就当选,否则重选, 比如 2010 年的选举: http://www.debian.org/vote/2010/vote_001
  • 尽管领导人每年一选,但具体执行事务的人不需要进行选举,也很少更换
  • Debian 的大部分事务都是动议,反对制, 也就是说你有一个想法, 就把想法发到邮件列表,没人反对你就可以做了,有人有意见,就大家讨论,达成一致你就可以实施了。
  • 对于一些有重大分歧的, 可以使用 General Resolution, 提出几个方案,大家再来投票, 比如以前的 GFDL 是否满足 DFSG, 是否引入 DM 等。
  • Debian 的沟通方式以 email 为主, IRC 为辅, 甚至报告 bug 也是通过 email, 对 email 方式不熟的话还是通过 reportbug 或者 reportbug-ng
  • 一个软件包需要进入 Debian, 只需要通过一个 DD 的同意即可, 另有一个小组(叫 ftp-master) 负责检查软件的 license 是否干净。
  • 申请 DD 的流程很长, 中位值时间大概是 10 个月, 我花了一年多。
  • 中国的 DD 总共 7 个(包括 zigo), 但其中一个帐号被锁, 可以通过 http://db.debian.org/ 查询
  • 现在有八百多 DD, 但上次Debian Leader 选举只有不到 400 人参加

2010-08-15

我们赶上了自由软件运动的尾巴

个人观点,仅供参考。

自由软件运动: 其实目的已经达成

自由软件运动最初的目标是为了建立一个 UNIX 复制品(clone)。这个复制品不能有版权问题, 同时也能让用户自由地使用,修改和分发。现在仔细看看, 这个目标其实已经达成, 甚至比当初设想的更多, 现在不仅有了 Linux 内核和GNU 工具, 甚至还有 GNOME, KDE 这样的桌面环境,openoffice 这样的办公套件, 可以用来吸引更多的用户。

GPL: 目的还是手段?

GPL协议是自由软件运动的一个重要组成部分。但相比于GPL协议, BSD, Apache 这类的协议给了用户更大的权利, 那么当初为什么自由软件运动会选择这种不太自由的协议呢?

个人觉得采用 GPL 是为了更快地实现自由软件运动这个目标, 也就是说GPL本身只是手段而不是目的。比如你用 GPL 协议写了一些漂亮的库(比如 libreadline), 如果开发者基于这个库写了一些软件,那么他的软件也会以 GPL 发布, 丰富了自由软件仓库。如果你用 GPL 写了一个软件, 其他开发者修改这个软件后, 再发布时也只能用 GPL 发布, 这保证了任何对软件的改进都可以回馈给原始项目, 这样可以加快改善软件质量。

但 GPL 限制了软件的使用, 特别是对于库来讲, 你无法使用 GPL 的库来开发私有软件, 所以又有了 LGPL 协议, 放松了对链接的限制, 但对软件的改进仍然保证能被回馈给原始项目。

诚然, GPL 协议对加快实现自由软件运动的目标起了很大的作用,但在这个目标已经达成的情况下, GPL 的劣势就逐渐显露出来了。


宽松的协议更易推广

现在GNU/Linux最大的用途还是在企业应用领域, 而在GPL在这个领域实在是很难推广。在这个领域里,尽管大家的协议都尽量做到与GPL兼容, 但采用GPL的少之又少, 我看到的只有 openjdk, mysql 这两个采用的是 GPL with linking exception, 其实加上 linking exception 后,这个协议就跟 LGPL 类似了(甚至更宽松)。 Ruby 是双 license, 其中一个是 GPL, 另一个 Ruby License 则非常宽松。我用过的一些其他技术,比如 ROR (MIT license), Django(BSD), Spring(Apache), Lucene(Apache), Scala(BSD), Erlang (MPL), Hadoop(Apache), ... 都没有采用 GPL, 应当都有推广会受限的考虑。

非企业应用领域, 对于普通程序, GPL 仍然有一定优势(比如保护开发者的心血不被掠夺), 但用在库上面, GPL 已经被视为一个不友好的协议。志愿者也会开发一些更宽松协议的替代品, 比如 libreadline, 现在已经有了 BSD 协议的 editline 库。opencc项目创建时,跟开发者聊起重造轮子的动机时,也提到 cconv 是 GPL 协议分发, 会给其他开发者造成困扰。

GPL 协议的另一个问题是没有回头路可走, 你如果在一个开源项目开始时使用 GPL 协议, 后来发现部分代码可以独立出来,作为一个库使用。这个时候你会发现对库重新设定授权协议(比如迁移到更宽松的LGPL)也是一个很麻烦的工作, 因为你需要取得所有贡献者的许可, 而某些贡献者可能已经联系不上了。


画饼充饥

以前一直有一个讨论, 自由软件作者如何养活自己这个问题。也出现过一些建议,包括技术支持, 捐赠, ...。技术支持对于已经流行起来了的框架软件是合适的,甚至也能挣不少钱(比如 spring), 但对于中小软件来说,这就是个笑话。对于捐赠, 也许 vim 是唯一的一个成功案例。从现实来看找一份稳定的工作, 然后在业余时间搞自由软件仍然是最方便也最大众的解决方案。这个也造成,如果一个自由软件没有公司支持, 那么就会出现推进能力不足,无法把控进度的问题。Debian 每次发行都会跳票,也很这个有很大关系,这也成就了 Ubuntu 现在的地位。


FSF: 其实作用不大

自由软件基金会(Free Software Foundation, FSF) 最早的作用是在 GPL 协议被侵犯时, 帮忙打官司的。但从现在来看, 敢于公然侵犯 GPL 的案例少之又少(中国不少, 但他又不来打官司)。FSF 要求旗下软件(比如gcc, emacs, ...)的开发者把版权转让给 FSF, 这也冒犯了部分开发者。最近推行的一些活动, 比如反对 DRM, 反对 Windows 7, 反对 Microsoft Office 格式标准化, 这类活动不仅没有得到社区的一致支持, 也没有取得成效, 大家对 FSF 难免有些失望。其他方面的推广工作就更少了, 比如 GNU Guile 其实也不算成功。


RMS: 光环渐消

RMS 对自由软件的定义有一套个人的标准, 因为这个标准, 跟很多社区吵过架,比如 BSD, Mono, ... 也跟 Linus 在 GPLv3 的问题上吵过。这些都降低了 RMS 的号召力。而对 SaaS 这类运动的攻击, 则把他自己推到了一个保守主义的位置。RMS 的观点似乎停留在了互联网之前的时代, 他的演讲, 演讲后的拜神活动都有那个时代的影子。 RMS 不再是那个引领潮流的人。


浪潮已经转移

现在其实也是一个软件业大转型的时期, 不仅有 智能手机, 平板, Web 这种新型的终端,也有 Android OS, iOS, Chromium OS 这种新型操作系统的设计理念, Scala, erlang 这种面对新挑战的语言,还有 Django, ROR 这类的 web 快速开发框架。大量的 Geek 们正在这些领域展现自己的聪明和才智,而这些似乎都不再与 RMS, FSF, 自由软件运动相关了。

自由软件软件运动目标已经达成, GPL 已经完成他的历史使命。即使没有 GPL 的保护, 现有的 GNU/Linux 也不会被摧毁。如果自由软件运动不能提出更有号召力的方向, 那么只会慢慢消失, 其实消失也不是坏事。