强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

开源协议精讲 / 第五章:公共领域与极简许可

第五章:公共领域与极简许可

引言

有些开发者不想被任何许可证条款束缚——他们想让代码完全自由,不受任何限制。公共领域(Public Domain)和极简许可就满足了这种需求:将代码交给人类公共财产,任何人可以为任何目的使用它。

但这背后有复杂的法律问题:不同国家对"公共领域"的理解不同,放弃版权在某些法域甚至不被允许。


5.1 公共领域的概念

5.1.1 什么是公共领域?

公共领域(Public Domain)是指不受版权保护、任何人都可以自由使用的创作成果。

进入公共领域的常见方式:

方式说明
版权过期版权保护期限届满
版权放弃作者主动放弃版权
不可版权某些创作不受版权保护(如政府文件)
作者声明作者明确将作品放入公共领域

5.1.2 公共领域的法律效力

法域放弃版权的法律效力说明
美国✅ 有效可以主动放弃版权
英国⚠️ 存疑部分学者认为可以
德国❌ 不可版权不可放弃(人身权)
法国❌ 不可版权不可放弃
日本⚠️ 存疑法律不明确
中国大陆⚠️ 存疑实践中常见,但法律不明确

关键问题:在版权不可放弃的法域,“公共领域奉献"可能被解释为最宽泛的许可证授权。


5.2 Unlicense

5.2.1 概述

Unlicense 是最常用的公共领域奉献工具之一,试图在全球范围内将代码放入公共领域。

项目内容
SPDX 标识Unlicense
OSI 批准✅ 是
发布年份2010
使用项目约 200,000+ GitHub 仓库

5.2.2 许可证全文

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

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 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.

For more information, please see <https://unlicense.org/>

5.2.3 Unlicense 的双层结构

Unlicense 采用了精心设计的双层结构:

第一层:公共领域奉献
  "released into the public domain"
  → 尝试在法律上将代码放入公共领域

第二层:后备许可证
  "In jurisdictions that recognize copyright laws..."
  → 在不承认公共领域奉献的法域,提供最宽泛的许可

这种设计使 Unlicense 在全球范围内都有效。

5.2.4 与其他许可证的兼容性

Unlicense 代码可以与任何其他许可证的代码组合使用:

组合是否允许
Unlicense + MIT
Unlicense + GPL
Unlicense + Apache-2.0
Unlicense + AGPL

原因很简单:公共领域代码没有附加任何限制,不会引入兼容性问题。


5.3 CC0(Creative Commons Zero)

5.3.1 概述

CC0(Creative Commons Zero)是 Creative Commons 组织推出的公共领域奉献工具,比 Unlicense 更具法律严谨性。

项目内容
SPDX 标识CC0-1.0
OSI 批准❌ 未申请(但被广泛认可)
发布年份2009
使用项目SQLite、Node.js 生态、许多科学数据集

5.3.2 CC0 的三层法律结构

CC0 是目前法律设计最精巧的公共领域工具,采用三层结构:

┌─────────────────────────────────────────────────┐
│          第一层:公共领域奉献                       │
│  在承认公共领域奉献的法域,直接将作品放入公共领域      │
├─────────────────────────────────────────────────┤
│          第二层:后备许可证                         │
│  在不承认公共领域奉献的法域,授予尽可能宽泛的许可      │
├─────────────────────────────────────────────────┤
│          第三层:后备后备许可                       │
│  如果前两层都不适用,授予不可撤销的使用权             │
└─────────────────────────────────────────────────┘

5.3.3 CC0 vs Unlicense

维度CC0Unlicense
法律严谨性高(三层结构)中(双层结构)
OSI 批准
国际适用性极好
文本长度长(含法律文本)
科学数据✅ 首选不常用
软件代码
创意作品不适用

5.3.4 CC0 的注意事项

⚠️ CC0 的专利问题

CC0 明确不授予专利权。许可证文本中包含:

“No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.”

如果你的代码可能涉及专利,CC0 可能不是最佳选择。

⚠️ CC0 与道德权利

在某些法域(如法国、德国),作者拥有不可放弃的道德权利(Moral Rights),包括:

  • 署名权
  • 保护作品完整权

CC0 不影响这些道德权利。


5.4 WTFPL

5.4.1 概述

WTFPL(Do What The F*** You Want To Public License)是一个戏谑性的公共领域许可证。

项目内容
SPDX 标识WTFPL
OSI 批准❌ 未申请
发布年份2000
当前版本v2

5.4.2 许可证全文

           DO WHAT THE F*** YOU WANT TO PUBLIC LICENSE
                   Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <[email protected]>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

           DO WHAT THE F*** YOU WANT TO PUBLIC LICENSE
  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

 0. You just DO WHAT THE F*** YOU WANT TO.

5.4.3 WTFPL 的法律地位

维度分析
有效性⚠️ 存疑——未经法律检验
OSI 批准
企业使用❌ 不建议
缺少免责条款⚠️ 可能带来法律风险
缺少版权声明格式⚠️ 不规范

不建议使用:WTFPL 缺少标准的免责条款和版权声明格式,在商业环境中可能带来法律风险。建议使用 CC0 或 Unlicense 替代。


5.5 各国法律差异

5.5.1 版权放弃的国际比较

                    版权可放弃吗?
                    ├── 是 → 使用 Unlicense/CC0
                    │        美国、英国、澳大利亚...
                    │
                    ├── 不确定 → 使用 CC0(三层保护)
                    │           中国、日本、韩国...
                    │
                    └── 否 → 不能真正放入公共领域
                             德国、法国、意大利...
                             → 使用最宽泛的许可证(如 MIT)

5.5.2 特殊法域分析

美国:

  • 公共领域奉献被广泛认可
  • CC0 和 Unlicense 都有法律效力
  • 政府作品自动进入公共领域

欧盟(德国为例):

  • 版权(Urheberrecht)不可转让、不可放弃
  • 但可以授予无限许可
  • CC0 的后备条款在这种法域生效

中国:

  • 法律未明确规定版权放弃
  • 实践中广泛使用 CC0
  • 一般被视为有效的许可声明

日本:

  • 类似德国,版权不可完全放弃
  • CC0 的后备条款适用
  • 著作権放棄的有效性存疑

5.5.3 推荐策略

目标法域推荐工具理由
仅美国CC0 或 Unlicense法律效力明确
全球(包括大陆法系)CC0三层结构最安全
全球(软件项目)MIT法律确定性最高
科学数据CC0学术界首选

5.6 公共领域的实际应用

5.6.1 SQLite 的选择

SQLite 是最著名的使用公共领域奉献的软件项目:

项目信息
名称SQLite
许可证Public Domain(通过 CC0 实现)
使用量全球数十亿设备
理由最大限度的使用自由

SQLite 作者 D. Richard Hipp 的解释:

“我们选择公共领域奉献是因为我们希望 SQLite 能在任何地方被任何人使用,没有任何限制。包括嵌入到商业产品中,不需要任何归属声明。”

5.6.2 科学数据与 CC0

在科学数据领域,CC0 是事实标准:

  • Figshare:学术数据共享平台推荐 CC0
  • Zenodo:CERN 运营的数据仓库支持 CC0
  • Dryad:科学数据仓库首选 CC0

原因:科学数据需要最大化的可重用性,任何归属要求都会阻碍数据整合和再分析。

5.6.3 Node.js 生态中的 CC0

许多 Node.js 包使用 CC0:

# 在 npm 中搜索 CC0 包
npm search --license=CC0-1.0

5.7 公共领域的风险与注意事项

5.7.1 风险清单

风险严重性缓解措施
法律效力不确定使用 CC0(三层保护)
缺少免责条款使用 CC0 或 Unlicense(含免责)
专利问题如涉及专利,使用 Apache 2.0
道德权利在大陆法系国家注明放弃意愿
企业合规提供 CC0 声明作为法律依据

5.7.2 何时不应使用公共领域奉献

  • ❌ 涉及专利的发明
  • ❌ 需要强制署名的场景
  • ❌ 企业核心知识产权
  • ❌ 法律要求特定许可证格式的场景

5.7.3 何时适合使用公共领域奉献

  • ✅ 工具和辅助代码
  • ✅ 示例代码和教程
  • ✅ 科学数据和数据集
  • ✅ 算法实现
  • ✅ 测试数据和 mock 数据
  • ✅ 你希望被最广泛使用的代码

5.8 与开源许可证的关系

5.8.1 OSI 的立场

OSI 批准了 Unlicense 为开源许可证,但未批准 CC0(因 CC0 未申请)。

注意:OSI 批准不等于法律效力,未批准也不等于无效。

5.8.2 FSF 的立场

FSF 认为:

“将软件放入公共领域是将其变为自由软件的一种方式。但我们通常建议使用 copyleft 许可证,因为 copyleft 保护所有用户的自由。”

FSF 建议:

  • 如果想放入公共领域 → 使用 CC0
  • 如果想保护自由 → 使用 GPL

5.8.3 公共领域代码与 GPL 的混合

公共领域代码可以与任何许可证的代码混合:

公共领域代码(CC0) + GPL 代码 = 可以以 GPL 发布

原因:公共领域代码没有附加任何限制,GPL 的传染性仍然适用于组合作品中的 GPL 部分。


5.9 本章小结

工具适用场景法律严谨性OSI 批准
CC0科学数据、通用代码极高❌(未申请)
Unlicense通用软件代码中高
WTFPL个人项目
MIT(替代方案)需要法律确定性

选型建议:

  1. 需要最大法律保护 → CC0
  2. 纯软件项目 → Unlicense
  3. 法律效力存疑 → MIT(退而求其次)
  4. 企业环境 → 避免公共领域,使用 MIT 或 Apache 2.0

扩展阅读

  1. CC0 全文:https://creativecommons.org/publicdomain/zero/1.0/legalcode
  2. Unlicense 官网:https://unlicense.org/
  3. Creative Commons - CC0 常见问题:https://creativecommons.org/faq/#cc0
  4. SQLite 版权说明:https://www.sqlite.org/copyright.html
  5. SPDX - CC0:https://spdx.org/licenses/CC0-1.0
  6. Open Data Commons - PDDL:http://opendatacommons.org/licenses/pddl/

上一章:弱 Copyleft 许可证 下一章:知识共享协议