PYTHON SOFTWARE FOUNDATION | Benevity Causes
Mục lục bài viết
About This Cause
Introduction
“The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of the international community of Python programmers.”
The Python Software Foundation (PSF) is the non-profit legal entity that holds and protects the intellectual property rights behind Python, keeping it free and open for all to use. The PSF also contributes to the Python community by underwriting or sponsoring conferences, funding grants and special projects, and leading volunteer efforts.
Everyone that programs with Python should know at least a little about the PSF, especially how the Python license and trademarks work. While this may seem boring to many programmers, there is much that an aware Python users base can do to help protect Python, and keep the community behind Python vital and productive.
Organization
The PSF was formed in 2001 as a non-profit corporation in the state of Delaware, USA. Although it was formed in the US, the PSF’s mission is world-wide, extending to wherever there are Python programmers. Its membership is international, including individuals that have played a significant role in the Python community and companies that sponsor the PSF because they have an investment in Python. Both individual and sponsor members have voting rights in the organization and thus are selected based on their ability to take part in the PSF’s stewardship role. It is the existing members that vote to accept new individual and sponsor members to the organization.
The officers and board of directors of the PSF take care of most of the day-to-day business of running the organization. The board of directors is voted in by the members and the officers are appointed by the board. Some of the officers are paid a small salary since their work requires constant availability and many hundreds of hours of effort per year. The other officers and directors are unpaid volunteers. Currently, we have officers and board members in the US, Canada and Germany.
The board of directors meets monthly, via IRC, and the PSF members meet once a year in person at the North American PyCon conference. Members that cannot be present in person at the annual meeting can vote by ballot submitted ahead of time or by proxy (assigning their vote to someone they trust).
More information, including the membership roster and public records, is available at http://python.org/psf
Financial Overview
The PSF is funded from a variety of sources. For example, in 2006 a total of $168K in revenues came from: Individual donors (13%), PSF sponsor fees (17%), PyCon registration and PyCon sponsor fees (51%), participation in the Google Summer of Code program (14%), and interest on investments and other minor sources (5%).
In 2006 the PSF spent $158K total, for: PyCon 2006 related expenses (67%), funded grants (13%), the advocacy special project (10%), payroll for officers (5%), and other expenses such as bank charges, legal fees, and insurance (5%).
The PSF’s assets currently stand at about $310K. A healthy balance enables the foundation to take on the financial risk of underwriting PyCon each year, and provides a reserve for any unexpected expenses, legal or otherwise.
The PSF has obtained the status of 501(c)3 non-profit, which makes contributions from individuals deductible from US federal taxes. The PSF is not yet officially registered as a non-profit in other countries. However, in many cases, donations and sponsor fees paid by a business are also pre-tax, but this depends on local rules.
Licensing
Python is licensed under a “stack” of open source licenses, which represent its history as an open source project under the sponsorship of a number of different organizations. The topmost license on this stack is the PSF License (http://opensource.org/licenses/PythonSoftFoundation.php). Everything added to Python since version 2.0.1 is covered by the PSF License, while some older portions of the code are covered by the older licenses lower down on the stack.
For most users, the details of the license stack are irrelevant. All of the licenses grant permission to use, modify, and redistribute the code in an non-restrictive way. However, it is a good idea to have a basic understanding of how the licensing works, how it relates to copyright ownership, and what factors make an open source release legally valid.
In fact, the PSF does not directly own the copyright to any of the Python source code. The copyrights are retained by the organizations and individuals that contributed the code. The PSF obtains its rights through licensing. An important concern here is that the licensing was made by those that had a legal right to do so, in other words by the original authors or copyright holders of the code.
The legal history of the code in Python is thus defined in two ways:
(1) In the earlier days of Python, employee contracts and related law ensured that the organizations that released Python under the various licenses had the rights to the code that was added in each release. The open source licenses used by those organizations granted all the necessary rights to the world in general, which of course includes the PSF. The only significant right the PSF does not have to this code is to re-license it. This is the reason for the continued existence of the older licenses in the license stack. Since some of the organizations involved no longer exist, it is unlikely that the PSF could obtain relicensing rights in the future. Thus, the older licenses cannot be removed from the license stack.
(2) For newer contributions, including all those since the PSF License was introduced, the PSF obtains the necessary rights to the code first from the author through a contribution agreement. The author licenses the code to the PSF under one of several specially selected open source licenses and simultaneously signs an agreement that gives the PSF the right to relicense the code without restriction. The code is then re-licensed under the PSF License.
The initial licenses that accompany the contribution currently can be either the Academic Free License version 2.1 or the Apache License version 2.0. These were selected because they contain a patent clause and avoid unnecessary restrictions on the licensee.
The important thing to note here is that the PSF can demonstrate that Python contains only code licensed to it by organizations and individuals that had the necessary rights to the code in order to make that license legally valid. Python’s case is further strengthened by the existence of an intact revision control record that dates back to its very beginning, and extensive email and other records that help to establish when and by whom the code was developed. This body of evidence makes any legal claim against Python’s open source status difficult and very unlikely to succeed.
For more information, see the PSF License FAQ:
http://wiki.python.org/moin/PythonSoftwareFoundationLicenseFaq
Trademarks
The PSF also holds and protects the trademarks behind the Python programming language. This includes the “Python” name, when used in the domain of programming languages, and also the Python logos. “Python” is a registered trademark in the US, while the logos have not yet been registered.
There is much confusion about the nature and purpose of trademarks, and they are often incorrectly viewed as incompatible with open source. This is simply not true. Trademarks are another way to help keep Python free and open for all to use, and protecting the trademarks helps to prevent confusion about the nature and purpose of Python.
For example, if an entirely different programming language were named “Python” or even “Python Plus”, it could cause considerable confusion, making life more difficult for the developers and users of either language. Any other Pythons should be the same programming language, within reason, even if they implement the language differently as do IronPython and Stackless Python.
Similarly, the Python logos must refer only to the Python programming language and they should not be modified in any way (color, font, shape, etc.) as this can cause confusion. It dilutes the “brand” that helps to make Python distinctive and identifiable to the user (the “consumer”).
In fact, trademarks are intended primarily as a way to protect the consumer, and the burden of keeping the trademark clear of confusion falls to the trademark owner. Because of this, the PSF has no choice but to defend the Python related trademarks. Failing to do so would mean that we lose rights to the marks and would be unable to prevent use of the name for another programming language, or misleading uses such as those that obscure the fact that Python is open source.
Because Python is free and open, our enforcement of the trademarks is indeed mostly about avoiding confusion and not at all about holding the trademarks close as would be done with some proprietary marks. We want the trademarks to be used as widely as possible. This includes also the unaltered logos, which are often used to indicate suitability for Python or implementation in Python.
One important and useful idea that applies to trademarks in general is the notion of “nominative use” of the trademark. A trademark can always be used to name the trademarked entity itself so long as the use does not imply some special relationship with the trademark holder. Thus, the word “Python” can be used anywhere to refer to Python without asking the PSF for permission, regardless of whether or not the use is commercial.
The PSF has extended the idea of nominative use also to the unaltered Python logos, making it possible to use the logos in most contexts without any special permission. Again, we want the trademarks to be used widely.
For details, see the PSF Trademark Policy:
http://www.python.org/psf/trademarks/