You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library or any work based on the Library , you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
Each time you redistribute the Library or any work based on the Library , the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
If, as a consequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues , conditions are imposed on you whether by court order, agreement or otherwise that contradict the conditions of this License, they do not excuse you from the conditions of this License.
If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. In such case, this License incorporates the limitation as if written in the body of this License.
Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number.
If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.
If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change.
You can do so by permitting redistribution under these terms or, alternatively, under the terms of the ordinary General Public License. To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
You should also get your employer if you work as a programmer or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.
For over 20 years the Open Source Initiative OSI has worked to raise awareness and adoption of open source software, and build bridges between open source communities of practice.
As a global non-profit , the OSI champions software freedom in society through education, collaboration, and infrastructure, stewarding the Open Source Definition OSD , and preventing abuse of the ideals and ethos inherent to the open source movement. Open source software is made by many people and distributed under an OSD-compliant license which grants all the rights to use, study, change, and share the software in modified and unmodified form.
You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a nonfree system, it would have the effect of making the GPL-covered software nonfree too. A system incorporating a GPL-covered program is an extended version of that program.
This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make. However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.
The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing. If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly.
The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear. But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.
The fact that proprietary module A communicates with GPL-covered module C only through Xlicensed module B is legally irrelevant; what matters is the fact that module C is included in the whole. The exception is meant to allow people to distribute programs compiled with GCC under terms of their choice, even when parts of these libraries are included in the executable as part of the compilation process. There are two reasons for this. First, a general one. If we permitted company A to make a proprietary file, and company B to distribute GPL-covered software linked with that file, the effect would be to make a hole in the GPL big enough to drive a truck through.
This would be carte blanche for withholding the source code for all sorts of modifications and extensions to GPL-covered software. Giving all users access to the source code is one of our main goals, so this consequence is definitely something we want to avoid. More concretely, the versions of the programs linked with the Money Guzzler libraries would not really be free software as we understand the term—they would not come with full source code that enables users to change and recompile the program.
If the license of module Q permits you to give permission for that, then it is GPL-compatible. Otherwise, it is not GPL-compatible. If the license for Q says in no uncertain terms that you must do certain things not compatible with the GPL when you redistribute Q on its own, then it does not permit you to distribute Q under the GPL.
So you cannot link or combine P with Q. The whole point of the GPL is that all modified versions must be free software —which means, in particular, that the source code of the modified version is available to the users. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too.
The exception for the case where you received a written offer for source code is quite limited. Version 3 of the GPL allows this; see option 6 b for the full details. Under version 2, you're certainly free to offer source via FTP, and most users will get it from there. However, if any of them would rather get the source on physical media by mail, you are required to provide that.
Yes, you can. The offer must be open to everyone who has a copy of the binary that it accompanies. This is why the GPL says your friend must give you a copy of the offer along with a copy of the binary—so you can take advantage of it. Section 6 d allows this. However, you must provide clear instructions people can follow to obtain the source, and you must take care to make sure that the source remains available for as long as you distribute the object code. No, you must supply the source code that corresponds to the binary.
Corresponding source means the source from which users can rebuild the same binary. Part of the idea of free software is that users should have access to the source code for the programs they use. Those using your version should have access to the source code for your version. A major goal of the GPL is to build up the Free World by making sure that improvement to a free program are themselves free.
This is a well-meaning request, but this method of providing the source doesn't really do the job. A user that wants the source a year from now may be unable to get the proper version from another site at that time. The standard distribution site may have a newer version, but the same diffs probably won't work with that version. If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well. The easiest way to do this would be to publish them on the same server, but if you'd like, you can alternatively provide instructions for getting the source from another server, or even a version control system.
No matter what you do, the source should be just as easy to access as the object code, though. This is all specified in section 6 d of GPLv3. The sources you provide must correspond exactly to the binaries. In particular, you must make sure they are for the same version of the program—not an older version and not a newer version.
You don't have to make sure of this. As long as you make the source and binaries available so that the users can see what's available and take what they want, you have done what is required of you. It is up to the user whether to download the source. Our requirements for redistributors are intended to make sure the users can get the source code, not to force users to download the source code even if they don't want it.
Complete corresponding source means the source that the binaries were made from, but that does not imply your tools must be able to make a binary that is an exact hash of the binary you are distributing. In some cases it could be nearly impossible to build a binary from source with an exact hash of the binary being distributed — consider the following examples: a system might put timestamps in binaries; or the program might have been built against a different even unreleased compiler version.
The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources. Compare this to a situation where the web site contains or links to separate GPLed programs that are distributed to the user when they visit the web site often written in JavaScript , but other languages are used as well.
In this situation the source code for the programs being distributed must be released to the user under the terms of the GPL. The GNU Affero GPL requires that modified versions of the software offer all users interacting with it over a computer network an opportunity to receive the source. What the company is doing falls under that meaning, so the company must release the modified source code.
No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders. However, when the organization transfers copies to other organizations or individuals, that is distribution.
In particular, providing copies to contractors for use off-site is distribution. If the version has been released elsewhere, then the thief probably does have the right to make copies and redistribute them under the GPL, but if the thief is imprisoned for stealing the CD, they may have to wait until their release before doing so.
If the version in question is unpublished and considered by a company to be its trade secret, then publishing it may be a violation of trade secret law, depending on other circumstances. The GPL does not change that. If the company tried to release its version and still treat it as a trade secret, that would violate the GPL, but if the company hasn't released this version, no such violation has occurred.
The company has violated the GPL and will have to cease distribution of that program. Note how this differs from the theft case above; the company does not intentionally distribute a copy when a copy is stolen, so in that case the company has not violated the GPL. But it is making two contradictory statements about what you can do with that program: that you can redistribute it, and that you can't.
It would make sense to demand clarification of the terms for use of that program before you accept a copy.
Using the Lesser GPL for any particular library constitutes a retreat for free software. It means we partially abandon the attempt to defend the users' freedom, and some of the requirements to share what is built on top of GPL-covered software. In themselves, those are changes for the worse. Sometimes a localized retreat is a good strategy. Sometimes, using the LGPL for a library might lead to wider use of that library, and thus to more improvement for it, wider support for free software, and so on.
This could be good for free software if it happens to a large extent. But how much will this happen?
We can only speculate. But this is not feasible. Once we use the LGPL for a particular library, changing back would be difficult. So we decide which license to use for each library on a case-by-case basis. There is a long explanation of how we judge the question. Maximizing the number of users is not our aim. Rather, we are trying to give the crucial freedoms to as many users as possible. In general, proprietary software projects hinder rather than help the cause of freedom.
We do occasionally make license exceptions to assist a project which is producing free software under a license other than the GPL. However, we have to see a good reason why this will advance the cause of free software. We also do sometimes change the distribution terms of a package, when that seems clearly the right way to serve the cause of free software; but we are very cautious about this, so you will have to show us very convincing reasons. From time to time, at intervals of years, we change the GPL—sometimes to clarify it, sometimes to permit certain kinds of use not previously permitted, and sometimes to tighten up a requirement.
The last two changes were in and If each program lacked the indirect pointer, we would be forced to discuss the change at length with numerous copyright holders, which would be a virtual impossibility.
In practice, the chance of having uniform distribution terms for GNU software would be nil. If the new GPL version gives additional permission, that permission will be available immediately to all the users of the program. But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 3.
If a tighter requirement in a new version of the GPL need not be obeyed for existing software, how is it useful? Then users will have to follow the tighter requirements in GPL version 4, for subsequent versions of the program. However, developers are not obligated to do this; developers can continue allowing use of the previous version of the GPL, if that is their preference. The reason you shouldn't do that is that it could result some day in withdrawing automatically some permissions that the users previously had.
At that time, people could have used it under GPLv2. Some users may not even have known about GPL version 3—but they would have been required to use it.
They could have violated the program's license unintentionally just because they did not get the news. That's a bad way to treat people. We think it is wrong to take back permissions already granted, except due to a violation. If your freedom could be revoked, then it isn't really freedom. Thus, if you get a copy of a program version under one version of a license, you should always have the rights granted by that version of the license. The GPL was designed for programs; it contains lots of complex clauses that are crucial for programs, but that would be cumbersome and unnecessary for a book or manual.
Meanwhile, the GFDL has clauses that help publishers of free manuals make a profit from selling copies—cover texts, for instance. The special rules for Endorsements sections make it possible to use the GFDL for an official standard. Using the GFDL, we permit changes in the text of a manual that covers its technical topic. It is important to be able to change the technical parts, because people who change a program ought to change the documentation to correspond.
The freedom to do this is an ethical imperative. Our manuals also include sections that state our political position about free software.
Font licensing is a complex issue which needs serious consideration. The following license exception is experimental but approved for general use. We welcome suggestions on this subject—please see this this explanatory essay and write to licensing gnu. To use this exception, add this text to the license notice of each file in the package to the extent possible , at the end of the text that says the file is distributed under the GNU GPL:. As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
Templates are minor enough that it is not worth using copyleft to protect them. It is normally harmless to use copyleft on minor works, but templates are a special case, because they are combined with data provided by users of the application and the combination is distributed. So, we recommend that you license your templates under simple permissive terms. Some templates make calls into JavaScript functions. Since Javascript is often non-trivial, it is worth copylefting. A line needs to be drawn between the JavaScript copylefted , and the user code usually under incompatible terms.
As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL.
If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. Which programs you used to edit the source code, or to compile it, or study it, or record it, usually makes no difference for issues concerning the licensing of that source code. However, if you link nonfree libraries with the source code, that would be an issue you need to deal with. It would be useful to have translations of the GPL into languages other than English.
People have even written translations and sent them to us. But we have not dared to approve them as officially valid. That carries a risk so great we do not dare accept it. A legal document is in some ways like a program. Translating it is like translating a program from one language and operating system to another. Only a lawyer skilled in both languages can do it—and even then, there is a risk of introducing a bug.
If we were to approve, officially, a translation of the GPL, we would be giving everyone permission to do whatever the translation says they can do. If it is a completely accurate translation, that is fine. But if there is an error in the translation, the results could be a disaster which we could not fix. If a program has a bug, we can release a new version, and eventually the old version will more or less disappear.
But once we have given everyone permission to act according to a particular translation, we have no way of taking back that permission if we find, later on, that it had a bug. Helpful people sometimes offer to do the work of translation for us. If the problem were a matter of finding someone to do the work, this would solve it.
But the actual problem is the risk of error, and offering to do the work does not avoid the risk. We could not possibly authorize a translation written by a non-lawyer.
Therefore, for the time being, we are not approving translations of the GPL as globally valid and binding. Instead, we are doing two things:. Referring people to unofficial translations.
This means that we permit people to write translations of the GPL, but we don't approve them as legally valid and binding. An unapproved translation has no legal force, and it should say so explicitly.
It should be marked as follows:. To be completely sure of what is permitted, refer to the original GPL in English. But the unapproved translation can serve as a hint for how to understand the English GPL. For many users, that is sufficient. However, businesses using GNU software in commercial activity, and people doing public ftp distribution, should need to check the real English GPL to make sure of what it permits.
We are considering the idea of publishing translations which are officially valid only for one country. This way, if there is a mistake, it will be limited to that country, and the damage will not be too great.
It will still take considerable expertise and effort from a sympathetic and capable lawyer to make a translation, so we cannot promise any such translations soon. When the interpreter just interprets a language, the answer is yes.
The interpreted program, to the interpreter, is just data; the GPL doesn't restrict what tools you process the program with. The JNI or Java Native Interface is an example of such a facility; libraries that are accessed in this way are linked dynamically with the Java programs that call them. So if these facilities are released under a GPL-incompatible license, the situation is like linking in any other way with a GPL-incompatible library.
Which implies that:. Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. They either are the copyright holders, or are connected with the copyright holders. Learn more about reporting GPL violations. Subclassing is creating a derivative work.
In general, the answer is no—this is not a legal requirement. In specific, the answer depends on which libraries you want to use and what their licenses are.
These libraries can be used in nonfree programs; but in the case of the Lesser GPL, it does have some requirements you must follow. But these are normally the more specialized libraries, and you would not have had anything much like them on another platform, so you probably won't find yourself wanting to use these libraries for simple porting.
Of course, your software is not a contribution to our community if it is not free, and people who value their freedom will refuse to use it. Only people willing to give up their freedom will use your software, which means that it will effectively function as an inducement for people to lose their freedom. If you hope some day to look back on your career and feel that it has contributed to the growth of a good and free society, you need to make your software free. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility other than as an argument passed when the facility is invoked , then you may convey a copy of the modified version:.
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates ten or fewer lines in length , you do both of the following:.
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:.
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:.
0コメント