python app 发布:一种避免冲撞 授权协议 的办法

  Kivy中文编程指南:授权协议 - 《Kivy 1.9.2 中文开发文档帮助手册教程》 - 极客文档  

避免二进制文件

有一种方法也许能够避免这种很狗很麻烦的授权协议什么的鬼东西,就是不用任何第三方的鬼扯玩意来构建你的应用。你可以用 Python 来自己创立一个模块,在其中的 __main__.py都只有你自己的代码,而 setup.py 列出需要的依赖包

这样你依然可以发布你的应用—就是你的代码,然后你就不用管任何其他的授权协议了。不过这样就更像是搭配使用,而不太算是发布程序了。这时候满足各种授权的依赖关系,转移到你的程序的用户身上,他们需要自行搞定运行环境来使用这个模块。如果你比较关心自己的用户,建议你还是花点时间来阅读一下可能导致的后果

<< 这类存在协议风险的 app,对于大型公司来说,即使 app 采用开源免费的 MIT 协议;但是为了避免可能存在的协议风险,这类 app 就算是摆在它们的面前,它们自己也不敢使用吧?况且还有产品的服务问题。

Am I bound by the license of a library that is used in my project but is not distributed with it?

I want to publish a small open source project on GitHub. I'd like to release it with either MIT or Apache license.

The project has unit tests that use JUnit library. JUnit is released with the Eclipse Public License v1.0. JUnit is not distributed in the project - it is downloaded and used at build time by Maven, the build tool.

Am I bound by the license of a library that is used in the project but is not distributed with it? If I am, can I use a library released with the Eclipse Public License in MIT or Apache licensed projects?

My own thoughts (the most pessimistic scenario)

As the unit tests use JUnit, the project is a derivative work of JUnit, even though JUnit is not distributed with it. Distributing the project automatically means distributing JUnit.

The Eclipse Public License (the JUnit's license) says:

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that … its license agreement:

There is a list of four requirements here that sound trivial but which, perhaps, are not fully addressed in the MIT and Apache licenses (disclaiming all warranties, excluding any liability, a statement about additional provisions, a statement about availability of the source code).

So, the Eclipse Public License may not be compatible with the MIT and Apache licenses, and I may not be able to use JUnit.

Share

Improve this question

Follow

edited Apr 2, 2014 at 6:27

asked Mar 31, 2014 at 7:08

Alexey

1,05311 gold badge1010 silver badges1111 bronze badges

  • Using JUnit doesn't make the project using it a derivative.

    – Oliver Weiler

    Commented Apr 2, 2014 at 8:42
  • 1

    One thing I try to do when not sure is look for examples. In this case, many Apache projects use JUnit and they are distributed under the ASL. For instance, unit tests in the Hadoop project use JUnit.

    – jzonthemtn

    Commented Jan 14, 2016 at 18:07
  • A related discussion: Using code under Apache 2.0 License in my program using MIT License

    – blong

    Commented Feb 22, 2017 at 18:10

Add a comment

1 Answer

Sorted by:

5

As a general rule, if you don't distribute someone else's code you are not obliged by any of its licence terms when you distribute your own. The liability comes at the point where the code is actually merged.

Assume that A writes and distributes code for B to use, and that A's program uses code written by C but A does not distribute any of it. Then the liability for compliance with C's licence falls with B, the user, at the point where A's code is merged with C's. B would need to be warned of this liability.

Sorry if that's complicated, but it's not easy to explain clearly. The point is that copyright law is mostly about copying (distribution) and not so much about using (consuming).

As I tell people repeatedly, if you make no money out of it and harm no-one then just do your best and don't worry too much. If you make money out of your product or services and/or if you may cause damage to someone, you must take competent legal advice. That won't protect you, but it will warn you of the risks and perhaps how to mitigate them.

Re your other question, it seems to me that Apache and MIT would be compatible with a work released under EPL but not necessarily vice versa. Neither of them fits with GPL but may fit with LGPL in some circumstances. Mixed licences are indeed a royal pain.

Share

Improve this answer

Follow

answered Mar 31, 2014 at 12:45

david.pfx

8,15722 gold badges2222 silver badges4545 bronze badges

  • Thanks for the explanation! It sounds reasonable to me. I'll wait a bit longer, and then will accept the answer if nobody offers a different opinion.

    – Alexey

    Commented Mar 31, 2014 at 22:08
  • There is a thing that I don't understand here. Let's say the code distributed by C is a library released with GPL or any other copyleft license (hypothetically). Flowing the logic of your example, A can develop a commercially-licensed piece of software which uses this GPL library provided B will download the library and build the software themselves. Downloading libraries and building an application can be an easy task with dependency management/build tools like Maven. Is it a flow in copyleft licenses? Or is there something else that I do not understand?

    – Alexey

    Commented Apr 1, 2014 at 0:05
  • @Alexey: Downloading and building applications is typically not restricted by OSS licences. As I said the main restrictions are on distribution, not usage.

    – david.pfx

    Commented Apr 1, 2014 at 0:42

Add a comment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值