DeepSeek总结的PostgreSQL部分版权

发布时间:2026/10/11 4:52:41

DeepSeek总结的PostgreSQL部分版权 部分版权https://thebuild.com/blog/portions-copyright/2026-10-096 分钟FOSSLaw, PostgreSQL2014 年 10 月一位开发者写信给 PostgreSQL 邮件列表提出了一个问题。他的雇主开源办公室要求先签署一份贡献者许可协议他才能贡献代码而他找不到 PostgreSQL 的。Tom Lane 回答说Postgres 工作没有这类协议。社区在十几年前就明确拒绝了这个想法。如果你的律师无法应付非正式社区这个概念我很抱歉但我们不会为了让她们满意而给自己背上文书负担。这就是为 PostgreSQL 贡献代码的整个法律机制。没有版权转让。没有 CLA。甚至没有 Linux 内核使用的 Signed-off-by 行在超过 65,000 次提交中它作为 trailer 只出现过一次而且那一次还是随着贡献者的补丁一起进来的。在上一篇文章中我说过在你阅读一个项目的许可证之前先阅读它的贡献者协议。PostgreSQL 没有什么可读的。4 月我称其结果是在偶然中成为永久。这篇文章要论证的是这个偶然是这个项目最好的地方。那是谁的名字代码树顶部的 COPYRIGHT 文件感谢两方“Portions Copyright © 1994, The Regents of the University of California”和“Portions Copyright © 1996-2026, PostgreSQL Global Development Group。”第一行是历史。POSTGRES 的实现于 1986 年在伯克利开始Andrew Yu 和 Jolly Chen 在 1994 年添加了一个 SQL 解释器结果以 Postgres95 发布并在 1996 年更名为 PostgreSQL。许可证文本是大学的其免责声明仍然只点名大学。第二行更奇怪。直到 2000 年 1 月COPYRIGHT 还只点名 Regents没有别人。那年 1 月 26 日Bruce Momjian 在每一个源文件的头部添加了“Portions Copyright © 1996-2000, PostgreSQL, Inc”。提交信息结尾是“Man, that’s a lot of files.”2001 年 1 月 24 日他把它们全部改为“PostgreSQL Global Development Group”此后声明一直如此。1996 年是事后加上去的而结束年份每年 1 月都会更新通常由 Bruce 来做。那么 PostgreSQL Global Development Group 是什么项目自己的开发者 FAQ 在解释为什么你不签署版权转让时回答了这个问题“甚至不可能把版权转让给 PGDG因为它不是一个法律实体。”新闻 FAQ 更直白。“哪家公司拥有 PostgreSQL”“没有。我们是一个由志愿者和公司组成的非法人协会他们在 PostgreSQL 许可证下共享代码。”世界上最广泛部署的数据库之一的版权声明点名了一个按其自己的说法不能被转让版权的团体。法律如何看待这件事这是描述不是法律建议。从所有权开始。根据 17 U.S.C. § 201版权“最初归属于作品的作者或作者们”如果作者是在工作范围内工作的雇员则雇主是作者。根据 § 204(a)所有权的转让“除非有书面的转让文书、或转让的备忘录或记录并由当事人签署否则无效。”没有人签署任何东西。因此每一位贡献者或者每一位贡献者的雇主仍然拥有他们所写的内容。开发者 FAQ 也同意“贡献者保留他们的版权。”项目收到的是非排他性许可证。法规对“版权所有权转让”的定义以“但不包括非排他性许可证”结尾因此不需要签署书面文件而第九巡回法院在 Effects Associates v. Cohen 案中裁定此类许可证“可以口头授予甚至可以由行为默示。”这里的行为是把补丁邮寄到公开列表。项目的归档政策说发送到 pgsql-hackers 等列表的源代码被视为提交“属于项目的 PostgreSQL 许可证范围”而关于提交补丁的 wiki 页面说通过发布补丁你授予“在 PostgreSQL 许可证下分发你的补丁的不可撤销权利”。Richard Fontana 将这种惯例命名为 inboundoutbound贡献进来的许可证与项目发布出去的许可证相同。内核的开发者原创证书是另一回事一种证明而不是许可证。贡献者证明“我有权在文件中指明的开源许可证下提交它。”PostgreSQL 甚至不要求这个。归档政策说“在发送消息之前请确保你有权与这些列表分享信息”而谁写了什么的记录就是归档本身。提交信息带有 Author: 和 Discussion: 行第二行链接到补丁被发布并争论的讨论串。诉讼律师可以找出一些可以挑剔的地方。Effects 案涉及应请求创作的作品而 wiki 把它的权利授予一个 wiki 自己说不是实体的团体。但看看这种安排产生了什么。项目对你的补丁的权利正是我对它的权利也是 Amazon 对它的权利PostgreSQL 许可证。没有人持有任何额外的东西。没有什么可买的最后一句话就是整个论点。在一个有 CLA 或转让的项目中管理者持有别人没有的东西以其他条款提供代码的权利。这个额外之物就是公司用来重新许可的东西也是收购方支付价格的很大一部分。上一篇文章中的每一次重新许可都有一家公司控制着代码、名称和发布流程。PostgreSQL 在任何地方都没有额外之物。把现有代码移到另一个许可证需要每一位所有者的同意三十年间个人、他们的雇主以及如今一些遗产。Jan Wieck 在 2004 年回顾了项目的长期论点“我们需要所有前贡献者的书面同意。”在同一个讨论串中Tom Lane 提供了另一半“我们当然可以选择把比如下周三之后所做的所有新工作放在不同许可证下。但只要原始代码的任何重要残余仍然存在这似乎就有点无意义。”旧代码无法移动而新代码将坐落在一个以宽松许可证授权的基座上任何人都可以在当天下午 fork 它。这也意味着没有原告。根据 § 501(b)只有“排他性权利的法律或受益所有人”才能起诉侵权而非排他性被许可人不拥有任何排他性权利。没有人能代表 PostgreSQL 整体执行 PostgreSQL 许可证。对于一个唯一条件只是保留声明的许可证来说这代价很小。也不存在一个有权力尝试重新许可的“我们”。核心团队有七名成员以及它在 2020 年描述的“一条不成文规则核心团队成员中为同一家公司工作的人不应超过 50%。”而且项目把自己这种无形状态视为已成定局。当一位贡献者在 2018 年询问如何提交受其雇主专利覆盖的代码时答案是项目不会接受它“鉴于社区无形的法律性质和现有的 Postgres 许可证措辞这两者在这里都不开放谈判。”确实有所有者的部分商标必须属于某个人。PostgreSQL 的商标属于 PostgreSQL Community Association of Canada“一个由 PostgreSQL 核心团队于 2011 年在加拿大注册的非营利组织用于持有和保护 Postgres 商标和域名。”项目的捐款通过 Software in the Public Interest 进行。两者都不拥有任何一行代码。商标也是 PostgreSQL 中有人试图夺取的那一部分。2021 年核心团队和该协会宣布一个西班牙非营利组织 Fundación PostgreSQL 在西班牙注册了“PostgreSQL”商标并在欧盟和美国申请了更多商标。到 2023 年 7 月西班牙法院已使其中两个无效。我不认为这是巧合。唯一有登记所有者的资产就是有人去争夺的那一个。代码没有登记所有者所以没有什么可注册、可收购或可依赖的。许可证页面说“没有计划更改 PostgreSQL 许可证或以不同许可证发布 PostgreSQL。”任何公司都可以写下这句话。PostgreSQL 是少数几个没有人有能力打破这句话的项目之一。我不是律师这不是法律建议。我通过 PGX Inc. 提供 PostgreSQL 咨询服务。相关因选择而宽松因偶然而永久维护者不是所有者分岔路径的花园
延伸阅读

更多相关文章

2026/10/11 4:52:41

Python操作Excel库选型指南:openpyxl、pandas、xlsxwriter实测对比

上个月接了个挺典型的需求:要把公司散落在十几个文件里的订单数据汇总成一张带格式的月报,还要保留原模板的表头样式。我第一反应是用 pandas 一把梭,结果被模板样式、合并单元格、数字格式这些细节磨了两天。后来重新把几个常用的操作Excel库…

2026/10/11 4:47:41

WorkBuddy_WorkBuddy概述17_深度研究与信息检索

深度研究与信息检索 摘要 在信息爆炸的时代,如何从海量数据中高效获取、筛选、整合有价值的信息,已经成为技术人员、产品经理、投资分析师乃至企业决策者的核心能力之一。本文将围绕"深度研究与信息检索"这一主题,系统讲解如何利用…

2026/10/11 5:47:44

KEGG通路交互式网络图绘制指南:KGML解析与Python实现

简介:面向生物信息学中KEGG通路可视化与交互分析需求,该资源提供了一套完整的KEGG Network Viewer项目源码,采用HTML、JavaScript与PHP构建,可直接部署为在线代谢途径查看器。工具实现了基于AP检测算法的蛋白质分类展示&#xff0…

2026/10/11 5:47:44

337.安卓刷机通关教程!Fastboot/Recovery 双模式底层原理 + 自动化脚本

摘要:本文从安卓系统启动链路出发,系统讲解Fastboot与Recovery两种刷机模式的底层原理、分区表结构、镜像文件格式,并结合真实维修案例给出可落地的ADB/Fastboot命令与Python自动化脚本。内容覆盖解锁引导、刷写分区、救砖恢复、Magisk Root、常见报错排查,适合具备基本命令…

2026/10/11 5:47:44

12nm 的芯片,它的ddr 和 cpu 是怎么规划位置的?

#灵感# 研究下存算一体芯片在 12nm(比如 TSMC 12FFC) FCBGA​ 的 SoC 里,CPU 和 DDR 不是“并排随便放”,而是按“数据流最短 出球最近 供电不炸”三件事一起定的。下面用一颗典型应用处理器/边缘 AI SoC 的 floorplan 逻辑给你…

2026/10/11 5:42:44

开源工具 claude-mem:给 Claude Code 装上持久化记忆层

最近在做 AI 辅助开发的时候,我遇到了一个特别典型的场景:上午刚和 Claude Code 敲定的重构方案,下午新开一个会话,它居然把上下文忘得一干二净,我只能把背景、约束、进度重新讲一遍。反复几次之后,我开始认…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑