从Python应用程序调用GPL代码 [英] Calling GPL code from a Python application

查看:74
本文介绍了从Python应用程序调用GPL代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,


在我看来,Python最大的特色之一是

解释器可以用来整合各种各样的

软件包通过动态链接它们。到目前为止,这种方法对我们来说非常成功,但现在我将

纳入许可噩梦。


一些图书馆我们使用SWIG包装是在GPL下,但是我们分发的

应用程序不是(主要是因为我们被资助机构要求我们跟踪用户,因此要求

有人从我们的网站下载源代码。


关于GPL和动态链接的谷歌搜索提供了相同的

数字页面上说GPL

代码动态链接到非GPL应用程序是允许的,因为最终用户是b $ b来创建派生作品,因为页面说的相反! br />
所以有人知道该怎么做吗?

我想得到答案的第二个问题是,是否要做

os.system('''GPLapp'')"如果我发布了执行os.system调用和GPLapp程序的Python代码,那么违反了GPL吗?


感谢您提供任何意见。


请回复 sa****@scripps.edu


-


--------------------------------- --------------------------------------

o

/ Michel F. Sanner博士斯克里普斯研究所

o分子生物学系副教授

\ 10550 North Torrey Pines Road

o电话。 (858)784-2341 La Jolla,CA 92037

/ Fax。 (858)784-2860

o sa****@scripps.edu http://www.scripps.edu/~sanner

- -------------------------------------------------- -------------------

Hello,

One of the greatest feature of Python in my opinion is the way the
interpreter can be used to integrate a wide variety of
software packages by dynamically linking them. This approach has been
extremely successful for us so far but now I run
into a license nightmare.

Some the libraries we wrapped using SWIG are under GPL but the
applications we are distributing are not (mainly because
we are asked by funding agencies to keep track of users and hence ask
people to download the source from our site).

A google search about GPL and dynamic linking came up with an equal
number of pages saying that dynamic linking of GPL
code into non GPL applications is allowed as it is the end user who
cretes the derived work, as pages saying the opposite !
So does anyone know what to do about this ?

The second question I would like to get an answer for is whether doing
an "os.system(''GPLapp'')" violates GPL if I ship
my Python code that does the os.system call and the GPLapp program ?

Thanks for any input.

Please reply to sa****@scripps.edu

--

-----------------------------------------------------------------------
o
/ Michel F. Sanner Ph.D. The Scripps Research Institute
o Associate Professor Department of Molecular Biology
\ 10550 North Torrey Pines Road
o Tel. (858) 784-2341 La Jolla, CA 92037
/ Fax. (858) 784-2860
o sa****@scripps.edu http://www.scripps.edu/~sanner
-----------------------------------------------------------------------

推荐答案

Michel Sanner写道:
Michel Sanner wrote:
关于GPL和动态链接的谷歌搜索提出了相同的页面数量,表示允许将GPL
代码动态链接到非GPL应用程序,因为它是最终用户
克服了衍生作品,正如相反的页面所说的那样!
那么有谁知道如何处理这个问题?
A google search about GPL and dynamic linking came up with an equal
number of pages saying that dynamic linking of GPL
code into non GPL applications is allowed as it is the end user who
cretes the derived work, as pages saying the opposite !
So does anyone know what to do about this ?




FSF的立场(以及它''' s律师)认为这是非法的,因为你正在创建一个派生词,因此动态链接不符合GPL兼容许可证的应用程序

对GPL的工作是非法的由GPL领导的图书馆的工作由

usin直接在您的运行时环境中(即在相同的

过程中)。这就是LGPL(较小的或库GPL)的用途,其中
明确允许封闭源(以及其他)包链接到

LGPL引导的库。


如果你通过os.system()调用扩展程序,你就不会创建一个

派生的工作,因为生成的程序可能有运行时

依赖于GPL主导的程序,但两者都不共享运行时

环境(它们是单独的进程,因此你还没有创建

a派生的GPL主导图书馆的作品。


请注意,我从未使用过你必须GPL你的申请这个词。以上,

,但是说你的应用程序属于与GPL兼容的许可证是至关重要的。请参阅FSF,了解更多有关哪些许可证与
兼容的信息(例如,最现代的BSD衍生产品)。


--- Heiko。



The stance the FSF (and it''s lawyers) take on this is that it is illegal to
dynamically link applications that are not under a GPL-compatible license
to GPL works, as you are creating a derived work of the GPL-led library by
using it directly in your runtime environment (that is in the same
process). That''s what the LGPL (the lesser or library GPL) is for, which
explicitly permits closed source (amongst other) packages to link to
LGPL-led libraries.

If you call the extension program by os.system(), you are not creating a
derived work, though, as the resulting program might have a runtime
dependency on the GPL-led program, but both never share a runtime
environment (they are seperate processes, and as such you have not created
a derived work of the GPL-led library).

Note that I did never used the term "you must GPL your application" above,
but rather said that it is paramount that your application is under a
GPL-compatible license. See the FSF for more details on what licenses are
compatible (most modern BSD-derived are, e.g.).

--- Heiko.


Michel Sanner< sa **** @ scripps.edu>写道:
Michel Sanner <sa****@scripps.edu> writes:
关于GPL和动态链接的谷歌搜索提出了相同数量的页面,表示允许将GPL
代码动态链接到非GPL应用程序中,因为它是
创建派生作品的最终用户,正如相反的页面!那么有人知道该怎么做吗?
A google search about GPL and dynamic linking came up with an equal
number of pages saying that dynamic linking of GPL
code into non GPL applications is allowed as it is the end user who
cretes the derived work, as pages saying the opposite ! So does anyone
know what to do about this ?




根据FSF,GPL不允许这样做。其他一些

用户有不同意见。实际的合法性最终可能需要由法院决定。现在还没有这样的决定。


当然,如果GPL'代码'的作者可以使用什么'

完成后,无论哪种方式都很好(即最坏的情况下,作者的

权限与GPL授予的权限分开存在)。

In另一种情况,你要问的是

非GPL作者(通常是专有代码开发者)在多大程度上挫败

的意愿GPL'代码'的作者并没有采用GPL精神做事。

由于专有代码开发人员通常使用版权系统

以避免拥有自己的如果被挫败,他们无权同意他们想要解释GPL以阻止其他作者的愿望。最好问一下GPL精神是什么,并采取行动,而不是积极地探究其确切的合法价值

边界。



According to the FSF, it is not permitted under the GPL. Some other
users have a differing opinion. The actual legality may eventually
have to be decided by a court; right now no such decision exists.

Of course, in the case where the GPL''d code''s author is ok with what''s
being done, it''s fine either way (i.e. at worst, the author''s
permission exists separately from the permissions granted by the GPL).
In the other case, you''re asking to what extent it''s legal for the
non-GPL author (typically a proprietary code developer) to thwart the
wishes of the GPL''d code''s author and do things not in the GPL spirit.
Since proprietary code developers generally use the copyright system
to avoid having their own wishes thwarted, they''re not entitled to
very much sympathy in their desires to construe the GPL to thwart the
wishes of other authors. It''s preferable to ask what the GPL spirit
is and act that way, than to aggressively probe its exact legal
boundaries.


Michel Sanner< sa **** @ scripps.edu>写道:
Michel Sanner <sa****@scripps.edu> writes:
在我看来,Python的一个最大特点就是可以通过动态链接来解释各种软件包的方式。到目前为止,这种方法对我们来说非常成功,但现在我已经进入了许可证的噩梦。


一般来说这是一个很好的反对IP的论据,但这是另一个

问题。

google搜索GPL和动态链接提供了相同数量的页面,表示允许将GPL
代码动态链接到非GPL应用程序中,因为最终用户将创建派生的工作,如页面说的相反!那么有谁知道该怎么办?


是的。询问版权所有者。


找出*肯定的唯一方法*无论许可是否允许

是做某事,被起诉,并得到一个法官

告诉你是否违反了许可证。不同的评委

可能会给你不同的答案。


这一过程中的关键一步就是被起诉。版权所有者

必须这样做,所以你需要他们的合作。当然,如果他们不认为你要做什么是违反了

许可证,他们可能不愿意起诉你,在这种情况下你出去了

的运气。


如果你想要一个关于你是否会赢得这样一个的意见

诉讼,请问你信任的律师。


如果你想知道作者的意图,那就是GPL所涵盖的图书馆

会感染它们与之相关联的程序,无论是动态还是静态动态。图书馆(现在是较小的)GPL是为了允许程序与LGPL的图书馆

链接而不会感染程序而创建的。如果有问题的图书馆在LGPL下发布了

,那么GPL的作者说你可以使用它。否则,

他们说没有。但请参阅以上关于评委,版权

持有人和律师的段落。

我想得到答案的第二个问题是,是否要做
。使用os.system( '' GPLapp '')"如果我发布了执行os.system调用和GPLapp程序的Python代码,那么会违反GPL吗?
One of the greatest feature of Python in my opinion is the way the
interpreter can be used to integrate a wide variety of
software packages by dynamically linking them. This approach has been
extremely successful for us so far but now I run
into a license nightmare.
Which is a good argument against IP in general, but that''s another
issue.
A google search about GPL and dynamic linking came up with an equal
number of pages saying that dynamic linking of GPL
code into non GPL applications is allowed as it is the end user who
cretes the derived work, as pages saying the opposite ! So does anyone
know what to do about this ?
Yes. Ask the holders of the copyright.

The only way to find out *for sure* whether or not a license allows
something is to do that something, get sued about it, and get a judge
to tell you whether or not you violated the license. Different judges
may well give you different answers.

A critical step in that process is getting sued. The copyright holders
have to do that, so you''ll need their cooperation for this. Of course,
if they don''t think what you''re going to do is a violation of the
license, they may not be willing to sue you, in which case you''re out
of luck.

If you want an opinion about whether or not you would win such a
lawsuit, ask a lawyer you trust.

If you want to know the intent of the authors, that is that libraries
covered by the GPL would infect programs they are linked with, whether
it''s dynamically or statically. The Library (now Lesser) GPL was
created to to allow programs to be linked with LGPL''ed libraries
without infecting the program. If the library in question was released
under the LGPL, the authors of the GPL say you can use it. Otherwise,
they say not. But see the above paragraphs about judges, copyright
holders and lawyers.
The second question I would like to get an answer for is whether doing
an "os.system(''GPLapp'')" violates GPL if I ship
my Python code that does the os.system call and the GPLapp program ?




我很确定不会这样做违反GPL。但IANAL,所以...


< mike

-

Mike Meyer< mw*@mired.org> ; http://www.mired.org/home/mwm/

独立的WWW / Perforce / FreeBSD / Unix顾问,电子邮件以获取更多信息。



I''m pretty sure that doesn''t violate the GPL. But IANAL, so...

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.


这篇关于从Python应用程序调用GPL代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆