我总是对许可证感到困惑,我又读了一遍,但我肯定有人已经理解了这一点,也许能够更清楚地解释它。
我试图让我的公司使用geodjango,而作为一个典型的大型企业公司,他们不想开放最终项目的源代码。因此反对碰任何印着"GPL“的东西。
使用推荐的postgresql查看geodjango堆栈,许可证如下:
Django - BSD许可证
Postgresql - BSD许可证
PostGIS - GPL
GEOS - LGPL
PROJ.4 - MIT许可证
GDAL - MIT/X许可证
psycopg2 - GPL
维基百科在gpl上的条目如下:
许多最常见的免费软件许可证,如原始的MIT/X许可证、BSD许可证(目前的3条条款形式)和LGPL,都是“GPL兼容的”。也就是说,它们的代码可以与GPL下的程序组合在一起,而不存在冲突(新的组合将GPL应用于整个程序)。
从维基百科的GPL条目,“兼容性和多重许可”:http://en.wikipedia.org/wiki/Gpl
是否使用带有geodjango的psycopg2 2/PostGIS组件,使最终的项目获得GPL许可证?如果是的话,还有什么可供选择的?
更新
psycopg2有一个子句来具体说明如何应用GPL,谢谢Pi象限。
发布于 2009-07-14 16:39:29
免责声明:以下是我的意见,而不是法律咨询
一般来说,在您的GeoDjango项目中使用psycopg2 2/PostGIS并不会使它受制于GPLv2。我将谈论PostGIS,因为其他人已经解决了这个问题,因为它与psycopg2有关。
与它使用的其他地理空间库不同,GeoDjango不“链接”到PostGIS。PostgreSQL是链接到PostGIS库(liblwgeom.so)的内容,在执行过程中公开了大量的SQL函数。GeoDjango调用SQL函数并使用它们的输出来完成它所做的事情。让我们检查一下GPLv2的术语0:
本许可证适用于任何程序或其他作品,其中载有版权持有人所发布的通知,说明它可以根据本通用公共许可证的条款分发。下面的“程序”是指任何此类程序或作品,而“基于程序的作品”是指程序或版权法规定的任何派生作品:即载有程序或其一部分的作品,要么逐字,要么修改和/或翻译成另一种语言。 ..。 除复制、分发和修改以外的活动不在本许可证范围之内;它们不在其范围之内。运行该程序的行为不受限制,只有在其内容构成以该方案为基础的工作(独立于通过运行该程序所做的工作)时,该方案的输出才能得到涵盖。这是否正确取决于该方案的工作。
因为GeoDjango只是运行PostGIS (通过调用它的公共SQL函数),而PostGIS的输出是地理空间数据和/或数值(不是基于PostGIS的源代码),所以在我看来,显然GeoDjango (或用它构建的应用程序)没有被GPL覆盖,因为它没有复制、修改、分发或者是GPL代码的派生工作。
注意,我刚开始说的是“一般”。如果您正在分发您的GeoDjango应用程序(包括psycopg2和PostGIS ),那么您的代码可能受制于GPL。对于web应用程序来说,这通常不是一个问题,因为代码几乎从来没有分发给其他人,比如传统的收缩包装软件。代码正在您的服务器上运行,您分发的唯一东西是将程序(例如,HTML)输出给用户(侧栏:这就是为什么我避免使用GPL许可的JavaScript库,比如瘟疫)。这就是谷歌如何保留他们修改过的Linux内核,因为他们的修改永远不会离开Google的服务器。
底线:如果您实际上是在向最终用户销售/分发GeoDjango应用程序(他们获得了应用程序的副本),则不要包括GPL许可的先决条件,以避免触发专有代码上的许可要求。换句话说,在站点上安装这些库,这样就不会被认为是在用封闭源代码应用程序“分发”GPL源代码/对象代码。
发布于 2009-07-13 05:53:53
你可以直接问GeoDjango的创始人贾斯汀·布朗恩( Justin )。他还是一名专门从事知识产权的律师。
http://djangopeople.net/jbronn/
发布于 2009-07-13 05:09:12
前卫:你需要问一下你公司的律师。我们当中很少有人有资格回答。另一种选择是向每个项目的业主询问哪些是可以接受的用途,哪些是不可接受的用途。
这样,您的项目的许可只会受到其派生的作品的许可的影响。这方面的一个很好的测试是,假定的起源功可以很容易地替代替代物。
PostGIS是gpl,但事实证明,geodjango支持MySQL和Oracle。如果这些其他数据库可以为您的项目工作,即使这会导致一些轻微的功能损失,(“查询很慢!?”),您可能还好。因为psycopg2是您与PostgreSQL的接口,那么如果您替换了另一个db,那么您也在用psycopg2代替其他的东西。
另一方面,您的项目可能与Django紧密集成。幸运的是,BSD许可证允许您创建派生作品,只要您遵循一些相当友好的要求。
https://stackoverflow.com/questions/1117764
复制相似问题