bsd许可证和gpl许可证
A great many developers, myself included, believe that it is important to spend at least some time contributing to open-source software projects. These projects will hopefully be licensed (if you haven’t got a license on your open-source project, you’re doing it wrong), to ensure that your contributions are used in the way you (or the project maintainer) wants them to be used.
许多开发人员(包括我自己在内)都认为,花一些时间为开源软件项目做贡献很重要。 这些项目有望获得许可(如果您的开源项目没有许可证,那就错了),以确保您的贡献以您(或项目维护者)希望的方式使用使用。
This means that when you create your pet open-source project (at the minute, mine is Minimalog), one of the first things you’ll want to do is determine which open-source license you want to use.
这意味着,当您创建宠物开放源代码项目(目前,我的代码是Minimalog )时,要做的第一件事就是确定要使用的开放源代码许可证。
This will be your first problem. According to a quick count, Wikipedia lists more than 42 licenses in their comparison page. This is an overwhelming quantity of choice!
这将是您的第一个问题。 根据快速计数, 维基百科在其比较页面中列出了42个以上的许可证。 这是压倒性的选择!
Never fear. In the next five minutes, I’ll do my best to distill these choices down to something more palatable. This is going to be absurdly reductionist, and so I recommend doing more research on your own if you remain unsure.
从不畏惧。 在接下来的五分钟内,我将尽力将这些选择提炼为更可口的东西。 这将是荒谬的还原论,因此,如果您不确定,我建议您自己进行更多研究。
非入门者 (The Non-Starters)
Right off the bat we can get rid of quite a few licenses. It is always safest to use the more widely-used licenses. In part, this is because they have been widely tested, both in terms of getting other people to comply with them and in court (such as in Germany not once but twice ). More importantly, developers who care about licenses will tend to get wary around licenses with which they are unfamiliar.
马上,我们可以摆脱很多许可证。 使用更广泛使用的许可证始终是最安全的。 在某种程度上,这是因为它们已经得到了广泛的测试,无论是在使其他人遵守它们还是在法庭上(例如在德国, 不是一次而是两次 )。 更重要的是,关心许可证的开发人员会趋于警惕自己不熟悉的许可证。
The licenses seen most often are the following: the Apache license, the BSD license, the GPL (GNU General Public License), the LGPL (GNU Lesser General Public License), and the MIT license. Of these licenses, the Apache license is seen pretty infrequently outside of Apache Software Foundation software. This is obviously not an indictment of the license itself, but it means developers will be less familiar with it. For that reason, I would only use the Apache license if I was absolutely sure I wanted it and nothing else.
最常见的许可证如下: Apache许可证 , BSD许可证 , GPL (GNU通用公共许可证), LGPL (GNU较小通用公共许可证)和MIT许可证 。 在这些许可证中,很少在Apache Software Foundation软件之外看到Apache许可证。 这显然不是对许可证本身的起诉,但是这意味着开发人员将对此不太熟悉。 因此,只有在绝对确定要使用Apache许可证的情况下,我才使用Apache许可证。
Of the remaining four licenses, two of them (BSD and MIT) are considered to be ‘permissive’, with the GPL and LGPL being called ‘copyleft’ licenses. To understand the difference, we will go briefly into what each term means.
在其余的四个许可证中,其中两个(BSD和MIT)被视为“许可”,GPL和LGPL被称为“ copyleft”许可证。 为了理解差异,我们将简要介绍每个术语的含义。
The ‘permissive’ licenses are likely to be what a layperson thinks of when (or indeed if) they think about open-source software. These licenses require almost no effort to comply with. To comply with these licenses, the person or organisation using the code simply has to reproduce the license and copyright notice. Otherwise, they may do as they wish with the code, including bundling it up and selling it as-is.
“许可”许可证可能是外行在何时(或实际上)是否在考虑开源软件时所想到的。 这些许可证几乎不需要任何努力就可以遵守。 为了遵守这些许可证,使用该代码的个人或组织只需复制许可证和版权声明。 否则,他们可能会随心所欲地使用代码,包括将其捆绑并按原样出售。
In contrast, the GPL is a ‘copyleft’ license. This is a much more complicated idea. To begin to understand it, it helps to know that the GPL is written and maintained by the Free Software Foundation (whose website is unexpectedly ugly). The FSF is an organisation started by Richard Stallman, who is notoriously wacky (I mean it, take a look at his Wikiquote page sometime) when it comes to Free Software. The entire purpose of this license is to make it impossible for someone who uses the code to make changes that they do not then make available freely and openly.
相反,GPL是“ copyleft”许可。 这是一个复杂得多的想法。 要开始理解它,有助于了解GPL由自由软件基金会 (其网站出奇的丑陋)编写和维护。 FSF是由Richard Stallman创立的组织,在自由软件领域,Richard Stallman臭名昭著(我的意思是,有时候看一下他的Wikiquote页面 )。 该许可证的全部目的是使使用该代码的人无法进行更改,而他们后来又不能自由开放地使用它们。
As an example, if Minimalog was licensed under the GPL, you would not be free to make changes to it, release it in a binary and sell it as “Steve’s Superawesome Superblog Software”, no matter how much you liked the alliteration, unless you also released your changed software under the same license. More dramatically, the GPL is also viral. If I release a software library licensed under the GPL (for example, if I had written libdvdcss, and I do wish I had), you download the source and build it into a dynamic library (such as a .dll
or .so
) which you then link against your own proprietary code in order to use, guess what? The FSF argues that your work counts as a ‘derivative work’, which means that you also need to release it under the GPL.
例如,如果Minimalog是根据GPL许可的,则无论您多么喜欢这种说法,除非您愿意,否则您将不能随意对其进行更改,将其以二进制形式发布并以“ Steve的超棒超级博客软件”出售。还以相同的许可证发布了更改的软件。 更重要的是,GPL也具有病毒性。 如果我发布了根据GPL许可的软件库(例如,如果我编写了libdvdcss ,并且确实希望拥有),则可以下载源并将其构建到动态库(例如.dll
或.so
)中,您然后链接到您自己的专有代码以便使用,您猜怎么着? FSF认为您的作品算作“衍生作品”,这意味着您还需要根据GPL发布作品。
Now, it’s not actually that dramatic. The FSF also provides the LGPL, which as far as I can tell exists to solve this one use case. A library provided under the LGPL can be linked against without forcing your work to use the LGPL as well.
现在,它实际上并不那么引人注目。 FSF还提供了LGPL,据我所知,存在解决该用例的问题。 可以链接LGPL提供的库,而无需强迫您也使用LGPL。
伦理道德问题 (Ethical Issues)
It’s clear that there’s a question of ethics involved in this choice. Stallman and the FSF do not want to be considered part of the ‘Open Source Software’ movement, as they think that open-source is not enough: software must also be free as in freedom. Whether I agree or disagree with this perspective is a subject for another time.
显然,这种选择涉及道德问题。 Stallman和FSF不想被视为“开源软件”运动的一部分,因为他们认为开源还不够:软件还必须像自由一样自由。 我是否同意这种观点是另一回事。
The only ethical choice I’m going to consider is this one: do you want other people to be able to profit from the use of your code, or not? The permissive licenses allow people almost limitless ability to use your code as they please, including incorporating it directly into proprietary software. The GPL does not.
我要考虑的唯一的道德选择是:您是否希望其他人能够从使用代码中获利? 许可许可证使人们几乎可以无限地使用您的代码,包括将其直接合并到专有软件中。 GPL没有。
社区 (Communities)
Interestingly, a bit of a divide in license choice has begun to appear in the software community. If you sit and browse through an open-source repository storage, such as GitHub, or Bitbucket, or Google Code, or Sourceforge, you’ll find that desktop developers tend to favour the GPL, while web developers tend to favour MIT/BSD.
有趣的是,许可证选择方面的分歧已经开始出现在软件社区中。 如果您坐下来浏览诸如GitHub,Bitbucket,Google Code或Sourceforge之类的开源存储库,您会发现台式机开发人员倾向于GPL,而Web开发人员倾向于MIT / BSD。
Obviously, this is a wild generalisation: the BSD UNIXes, for instance, clearly use the BSD license, despite being operating systems. However, in general, the more of the code is part of a web backend, the more likely it’s licensed permissively. Consider some of the big desktop projects: the GNU tools are GPL (obviously), the Linux kernel is GPL, VLC is GPL, and MySQL is GPL(ish). Then, consider some of the big web tools: nginx is BSD(ish), Ruby on Rails is MIT, Django is BSD, Twitter Bootstrap is Apache (which is permissive), and jQuery is either GPL or MIT (which means, functionally, it’s MIT). This shows a pretty major divide between the two camps.
显然,这是一个疯狂的概括:例如,尽管是操作系统,但BSD UNIX仍明显使用BSD许可证。 但是,总的来说,代码越多是Web后端的一部分,就越有可能获得许可。 考虑一些大型桌面项目:GNU工具是GPL(显然),Linux内核是GPL,VLC是GPL,而MySQL是GPL(ish)。 然后,考虑一些大型网络工具:nginx是BSD(ish),Ruby on Rails是MIT,Django是BSD,Twitter Bootstrap是Apache(允许),而jQuery是GPL或MIT(从功能上讲,是MIT)。 这表明两个阵营之间存在很大的分歧。
This is likely to be a cultural divide. Web developers seem to me to be part of an entrepreneurial culture that lives and breathes around the idea of creating ‘startups’. This is all well and good, but it means that these developers want to be able to wrap their tools into their proprietary software stacks if possible. As an example, if Ruby on Rails was licensed under the GPL, it is reasonably likely that any Rails web app would need to be licensed under the GPL as well, which means you could download and launch Twitter or GitHub yourself with minimal effort. This is unlikely to be in the interests of those two organisations, or any other startup that wants to rapidly expand.
这很可能是文化差异。 在我看来,网络开发人员似乎是一种创业文化的一部分,这种文化围绕着创建“初创企业”的思想生活和呼吸。 这一切都很好,但这意味着这些开发人员希望能够在可能的情况下将其工具包装到其专有软件堆栈中。 例如,如果Ruby on Rails是根据GPL许可的,那么任何Rails Web应用程序也都需要根据GPL许可,这意味着您可以轻松地下载和启动Twitter或GitHub。 这不太可能符合这两个组织或任何其他想要Swift扩张的初创公司的利益。
如何选择 (How To Choose)
翻译自: https://www.pybloggers.com/2012/05/the-gpl-vs-the-mit-license-which-license-to-use/
bsd许可证和gpl许可证