Python geodjango+;PostGIS=GPL?

Python geodjango+;PostGIS=GPL?,python,django,licensing,Python,Django,Licensing,我总是对许可证感到困惑,我正在重新阅读,但我确信有人已经理解了这一点,并且可能能够更清楚地解释它 我正试图让我的公司使用geodjango,作为一家典型的大型企业公司,他们不想开放由此产生的项目的源代码。因此反对触摸任何印有“GPL”字样的东西 查看带有推荐postgresql的geodjango堆栈,许可证包括: Django-BSD许可证 Postgresql-BSD许可证 PostGIS-GPL GEOS-LGPL 项目4-麻省理工学院许可证 GDAL-MIT/X许可证 psycopg2-

我总是对许可证感到困惑,我正在重新阅读,但我确信有人已经理解了这一点,并且可能能够更清楚地解释它

我正试图让我的公司使用geodjango,作为一家典型的大型企业公司,他们不想开放由此产生的项目的源代码。因此反对触摸任何印有“GPL”字样的东西

查看带有推荐postgresql的geodjango堆栈,许可证包括:

Django-BSD许可证

Postgresql-BSD许可证

PostGIS-GPL

GEOS-LGPL

项目4-麻省理工学院许可证

GDAL-MIT/X许可证

psycopg2-GPL

gpl上的维基百科条目说:

许多最常见的自由软件许可证,如原始的MIT/X许可证 BSD许可证(当前的3条款形式)和LGPL是“GPL兼容”的。那个 也就是说,他们的代码可以在GPL下与一个程序组合而不发生冲突(新的 组合将使GPL应用于整个系统)

来自维基百科的GPL条目“兼容性和多重许可”:

在geodjango中使用psycopg2/PostGIS组件是否会使最终项目的许可证成为GPL? 如果是,有哪些替代方案

更新


psycopg2有一个条款专门说明GPL是如何应用的,谢谢Piquard。

前言:你需要向你公司的律师询问这一点。我们中很少有人有资格回答。另一种选择是询问这些项目的业主,哪些是可接受的用途,哪些是不可接受的用途

顺便说一句,项目的许可证只受其衍生作品的许可证的影响。对此的一个很好的检验是,假设的原始工作可以多么容易地被替代

PostGIS是gpl,但事实证明,geodjango支持MySQL和Oracle。如果这些其他数据库可以为您的项目工作,即使这会导致一些功能的轻微损失(“查询太慢了!?”),您也可以。因为psycopg2是您与PostgreSQL的接口,所以如果您替换另一个db,那么您也将用psycopg2替换其他数据库


另一方面,您的项目可能会与Django紧密集成。幸运的是,BSD许可证允许您创建衍生作品,只要您遵循一些相当友好的要求

你可以直接问《大地詹戈》的创作者贾斯汀·布隆。他还是一名专门研究知识产权的律师


关于psycopg2,情况似乎很清楚。从其文件:

请注意,选择GPL是为了避免基于 psycopg代码。在专有产品中使用psycopg(甚至捆绑) 使用专有产品的psycopg)可以,只要:

  • 仅使用提供的API从Python调用psycopg (即没有与C代码链接,也没有基于C代码的C模块);及

  • 遵守GPL的所有其他要点(您提供一份副本 psycopg2的源代码,等等。)


  • 免责声明:以下是我的意见,并非法律建议——请咨询持照律师

    通常,在GeoDjango项目中使用psycopg2/PostGIS不会使其受制于GPLv2。我将谈论PostGIS,因为其他人已经解决了与psycopg2相关的问题

    与它使用的其他地理空间库不同,GeoDjango不“链接”到PostGIS。PostgreSQL是链接到PostGIS库(
    liblwgeom.so
    )的东西,在这个过程中,它公开了大量的SQL函数。GeoDjango调用SQL函数并使用它们的输出来完成它的工作。让我们检查GPLv2的第0项:

    本许可证适用于任何程序 或包含通知的其他作品 由版权所有者放置,说明 可根据条款进行分发 本通用公共许可证的有效期。这个 下文中的“计划”指任何此类计划 计划或工作,以及“基于 “计划”是指计划 或任何受版权保护的衍生作品 罗:也就是说,一部包含 程序或其中的一部分 逐字或经修改和/或 翻译成另一种语言

    复制以外的活动, 分配和修改不受限制 本许可证所涵盖的范围;他们是 超出其范围。奔跑的行为 该程序不受限制,并且 包括程序的输出 仅当其内容构成作品时 基于程序(独立于 通过运行 程序)。这是否属实取决于 关于程序的功能

    因为GeoDjango只是运行PostGIS(通过调用其公共SQL API函数),PostGIS的输出是地理空间数据和/或数值(不是基于PostGIS的源代码),所以我很清楚GeoDjango(或使用它构建的应用程序)不在GPL的范围内,因为它没有复制、修改、分发,也不是GPL代码的派生作品

    注意,我在开头说了“一般”。如果您正在分发GeoDjango应用程序,包括psycopg2和PostGIS,那么您的代码可能受GPL的约束。对于web应用程序来说,这通常不是问题,因为代码几乎从未像传统的收缩包装软件那样分发给其他人。代码在您的服务器上运行,您分发的唯一内容就是向用户输出程序(例如HTML)(侧栏:这就是为什么我避免使用GPL许可的JavaScript库,如瘟疫)。这就是谷歌如何将经过大量修改的Linux内核留给自己,因为他们的修改永远不会离开谷歌的服务器

    底线:如果你真的在销售/分销