SQLite 的源码属于公共领域,任何人都可以把它用于任何目的。可要让这句话真的进入手机、浏览器、操作系统和应用,还需要什么?本期《原代码》从 SQLite 首页的承诺出发,沿着 D. Richard Hipp、Motorola、AOL、Mozilla、Symbian 与 Android,追踪一段代码怎样离开许可桌、进入别人的产品,又怎样把维护压力带回核心团队。
从一份可以放进别人 source tree 的 sqlite3.c,到保险柜里证明权利来源的纸:代码向外走得越远,进入官方主线的路反而越窄。
你可在官方网站 yuandaima.xyz 中查看本期逐字稿、证据引用关系和证据快照。
时间轴
两个大得失真的数字
故事的起点
许可桌被移开以后
数据库消失进产品
一份可以搬走的 C 文件
保险柜里的纸
任何目的,不是任何工作负载
本期资料
- [SQLite 首页](sqlite.org)
- [How SQLite Is Tested](sqlite.org)
- [Most Widely Deployed SQL Database Engine](sqlite.org)
- [SQLite Is Serverless](sqlite.org)
- [SQLite Copyright](sqlite.org)
- [SQLite Consortium](sqlite.org)
- [Appropriate Uses For SQLite](sqlite.org)
源码与工程记录
- [The SQLite Amalgamation](sqlite.org)
- [The Amalgamation Versus Canonical Sources](sqlite.org)
- [SQLite check-in 4e926efe2b:Disclaimed copyright](sqlite.org)
- [SQLite source repository README](sqlite.org)
- [Copyright Release for Contributions To SQLite](sqlite.org)
- [Why SQLite Does Not Use Git](sqlite.org)
- [Mozilla Bug 245745:use SQLite as the history backend](bugzilla.mozilla.org)
- [Mozilla Bug 261861:initial mozStorage interfaces](bugzilla.mozilla.org)
- [Mozilla Bug 266174:mozStorage-based history](bugzilla.mozilla.org)
- [Firefox Source Docs:Places](firefox-source-docs.mozilla.org)
- [AOSP platform/external/sqlite](android.googlesource.com)
- [AOSP SQLite upgrade workflow](android.googlesource.com)
访谈与历史原声来源
- [Changelog Interviews #201:Why SQLite succeeded as a database](changelog.com)
- [CoRecursive #066:The Untold Story of SQLite](corecursive.com)
说明与延伸阅读
- SQLite 项目方把部署规模描述为 billions and billions of copies,同时明确说精确数量无法取得。本期不把 copies 改写成可精确统计的设备装机量,也不把数据库文件数量与设备数量混为一谈。
- 本期提到的百分之百测试覆盖率,是当前官方文档所说的核心代码在实际部署配置下保持百分之百分支测试覆盖;它不表示 SQLite 从未有缺陷,也不表示历史上每个版本都达到同一口径。
- 公共领域承诺主要指 SQLite 核心源码和实际构建产物,不自动覆盖 SQLite 网站、商标、第三方扩展、下游补丁或本期引用的采访音频。
- free to everyone to use for any purpose 描述的是使用权,不表示 SQLite 适合每一种工作负载、免费提供支持,或允许任何人直接改变官方主线。
- Motorola、AOL 与 Symbian 的部分历史主要来自 Hipp 多年后的本人回忆;Mozilla 的同期 Bugzilla 记录、Firefox 文档与 AOSP 源码树承担的是可以独立核对的采用和维护节点。
- GitHub 上的 SQLite 仓库是从 Fossil canonical repository 单向导出的只读镜像。它不接收常见 GitHub pull request,但论坛、错误报告、合同需求和完成权利手续的正式贡献仍可以影响维护工作。

