今年(2022)早些日子,有人在某开源社区提到一个很独特的许可证。
说这个许可证遇到点问题。
什么,许可证和哲学、死亡扯上关系?而且还遇到麻烦?
还有这种事?
当时很快我去看了一下这个许可证1。
这个许可证简称为SNTS许可证,作者是unbug。
unbug在自己的codelf项目2中使用了该许可证。
全文如下:
SAY NO TO SUICIDE PUBLIC LICENSE
Version 1.0, September 2019
Copyright (C) [year] [fullname]
Everyone is permitted to copy and distribute verbatim copies of this license document.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, MODIFICATION, AND DISTRIBUTION
1. You can do anything with the original copy, whenever, whatever, no limitation.
2. When you are in despair, just talk to someone you trust, someone you love. Getting help from your family, your friends, the police, the community, the public.
3. Keep yourself alive and say no to suicide.
在README里,还链接了unbug认可的中文翻译版:
SAY NO TO SUICIDE PUBLIC LICENSE
对自杀说不 开源协议
Version 1.0, 9 2017
Copyright (C) [year] [fullname]
Everyone is permitted to copy and distribute verbatim copies of this license document.
授权每个人可逐字逐句地复制与分发
TERMS AND CONDITIONS FOR USE, REPRODUCTION, MODIFICATION, AND DISTRIBUTION
使用、复制、修改、分发条款
1. You can do anything with the original copy, whenever, whatever, no limitation.
可对原版副本做任意修改
2. When you are in despair, just talk to someone you trust, someone you love. Getting help from your family, your friends, the police, the community, the public.
当你处于绝望中的时候,向你信任的人,你爱的人倾诉,向家庭、朋友、警察、社区、社会寻求帮助
3. Keep yourself alive and say no to suicide.
坚强地活下去,对自杀说不
他写这个许可证的动机,也放在README里面。
We've lost so many genius developers, who committed suicide, such as Aaron Hillel Swartz (November 8, 1986 – January 11, 2013).
As a developer, the community needs you, the world needs you, please keep yourself alive.
翻译过来就是:
我们已经失去了很多天才开发者,他们是自杀离世的,比如亚伦·希勒尔·斯沃茨(1986年11月8日-2013年1月11日)。
作为一个开发者,社区需要你,世界需要你,请你好好活着。
亚伦·希勒尔·斯沃茨,被人们尊称为“互联网之子”(The Internet's Own Boy)3,他是年少成名的计算机天才,是Reddit联合创始人,web py的设计者,RSS规格的作者。他致力于网络信息开放,认为学术论文应该免费开放,并因此大量下载MIT和JSTOR的论文而被指控,如果罪名成立,将受到最高35年监禁和100万美元罚款。2013年1月11日,该案处于认罪辩诉阶段,亚伦·斯沃茨在其纽约布鲁克林的寓所内自杀,年仅26岁。互联网上有很多文章4介绍他的事迹。
unbug的这个许可证是2017年9月10日提出的。
之后没有获得太多的关注。
直到2022年2月18日,一位德国小哥zeehio提出异议:
他的帖子5比较长,简约地说,大概说了这么两条:
1. 这个许可证并不是自由软件许可证
理由是:自由软件要求满足四大基本自由。
但这个许可证没有满足四大基本自由之一:
The freedom to run the program as you wish, for any purpose
自由软件并不会因为使用目的而限制人们。
但如果使用SNTS许可证,人们就不能这样使用该软件:使用该软件触发一个自杀装置。
2. 这会造成许可证增生(proliferation)
在FOSS(自由和开源软件)领域,许可证已经很多了,许可证越多,人们学习、选择以及考虑是否兼容的成本就会越大。
如果能用现有的许可证,尽量不要自己再做一个了。
unbug看到以后,回了条消息:
大意是说:“感谢您深入的思考,如果您能帮我改进就更好了,我理解从法律角度考虑此事是比较困难的,但这是我鼓励开发者‘对自杀说不’的方式。”
zeehio果然给出了明确的改进建议。
他进一步阐释SNTS的问题:由于没有任何强制要求,别人获取了用SNTS许可的软件以后,完全可以将该软件用其他许可证再次发布,那么,unbug所期望的“say no to suicide”就不会被传播下去。
所以,他建议两个选项:
1. 使用MIT
建议不要通过许可证的方式表达自己的呼吁,通过README或者其他方式表达可能更好。这种做法的好处是,不会造成许可证增生。
2. 将SNTS改为“带序言的MIT”
很多许可证会用序言表达观点,比如GPL就是如此。
虽然这也会造成许可证增生,但带来的不良后果是最小的。
比如改成这样:
Say No To Suicide License
Copyright
PREAMBLE
The copyright owners would like to raise awareness about the encourage you and everyone to seek help if you are in despair and talk to someone you trust, someone you love. Get help from your family, your friends, the police, the community, the public. Keep yourself alive and say no to suicide.
TERMS AND CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice, the preamble and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
注意,这个许可证,一方面是比MIT多了个序言(在序言中呼吁“对自杀说不”),另一方面,在使用条件中,也要求把序言保留。
unbug看到建议后,回了条消息:
大意是说:“谢谢您提醒了风险,我会和更多朋友讨论此事,看有没有最佳的选项。欢迎您继续给出观点。”
但后续并没有什么进展。
注:我和unbug联系过,他表示现阶段并没有精力去改进SNTS许可证。
在我看来,这个许可证的主要问题是:
从技术上讲:
1. SNTS没有以明确的文字提出使用条件。
不像MIT那样明确说“subject to the following conditions”,SNTS没有很明确说明什么是具体的条件,它的第2、3条更像是倡议。
如果第2、3条不是倡议而是条件,应该明确说这是SNTS第1条的例外。因为第1条说“你可以做任何事情,没有任何限制”。
所以我认为unbug的本意并非把这两条当作条件。
而且,如果把这两条作为条件,问题会更大。
2. 如果把第2、3条作为条件,使用SNTS的软件就既不是自由软件,也不是开源软件。
不是自由软件的原因,zeehio已经说了。
现在说明一下为什么不是开源软件:
根据OSI给出的开源软件的定义,OSD5要求不能歧视任何人,OSD6要求不能歧视任何领域。
而SNTS这种限制条件违背了OSD5,OSD6。
由此也可以看出,OSD是不带任何道德评价的。
3. SNTS的第1条过于宽泛,似乎版权都不要了。
SNTS第1条说使用者可以做任何事情,没有任何限制。那么,这相当于版权也不要了。
接收者在再次发布该软件时,可以不带版权信息,还可以不带作者写的那些反对自杀的信息,他可以什么都不带,也不违反SNTS。
这样看来,如果想传播“对自杀说不”的理念,德国小哥给出的“带序言的MIT”建议还是很中肯的。
这事发生在2022年2月,原本可以早点写下来的,后来一忙别的事,就放下来了。
最近想起来,把它记录一下。
https://github.com/unbug/snts
https://github.com/unbug/codelf
被美国政府逼死的26岁天才黑客—亚伦斯沃茨(https://baijiahao.baidu.com/s?id=1709864355892806847&wfr=spider&for=pc)
https://zh.wikipedia.org/wiki/亚伦·斯沃茨
德国小哥的帖子(https://github.com/unbug/snts/issues/5)