The OP didn't ask what objections someone might have to using OSS in a corporate environment; just if it were allowed for GPL software which, of course, it obviously is. It might be better to ask these as separate questions and let them all get thorough answers, then perhaps make a meta post linking all of them if such is desired. Show 8 more comments.
From GPLv3 : 9. Acceptance Not Required for Having Copies. Nevertheless, each party is explicitly granted permission to run the code by GPLv3: 2. Basic Permissions. This is because the GPL includes some ambiguous parts that may be in clear violation to the OpenSource rules. There are still some people that interpret the GPL in a way that is incompatible to the OpenSource definition, so be careful with claims about the GPL that are too restrictive.
Unfortunately, the related information has been removed from the OpenSource. This is mainly section 0 where it tries to install claims that cannot be legally in a license. You may try archive. Hi, the part about using the output of the program is still unclear to me! If my program now uses the API of the GPL licensed program to get some data, and then uses that data for other calculations.
Am I allowed to sell the final output of my web based application? Unless the program is quine -like, I'd say that it isn't. Selling the output is thus allowable. Show 2 more comments. For example, in this answer , Tomasz states: However be aware that if you or the company ever make changes to the software and want to distribute it, it must be distributed with full source code, on the same license terms as the original software.
Of course, this now means you have all the hassles of maintaining a private fork. But presumably if someone in your organization were to leak the source code of a modified version of a GPL product, you wouldn't be able to prevent other organizations from using it?
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 Once someone not in your employ has a copy, does the GPL give them the right to use it or not?
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. Add a comment. You are free to use the software for any purpose.
Martijn Martijn 8, 28 28 silver badges 57 57 bronze badges. The 2nd paragraph is confusing. It suggests something about all of your software that you release. More pithily: binaries are optional, source is not. Nagora Nagora 1 1 bronze badge.
Free-Software is about freedom. As Open-Source-Software is not about the source. I know this is confusing, you will have to read the definitions. Try again. No, actually, don't bother. This is a random periodic reminder to be nice: meta. The freedom to study how the program works, and change it so it does your computing as you wish freedom 1. Access to the source code is a precondition for this. The freedom to redistribute copies so you can help your neighbor freedom 2. The freedom to distribute copies of your modified versions to others freedom 3.
By doing this you can give the whole community a chance to benefit from your changes. The Spooniest The Spooniest 1 1 silver badge 1 1 bronze badge. Sign up or log in Sign up using Google.
Sign up using Facebook. Sign up using Email and Password. Post as a guest Name. Writing the code takes effort. One should get paid for writing the code not copying the program. To make a living writing those kinds of apps, you can either:. The first option is much more difficult, if not impossible. For servers.. The standard "PC"..
You keep claiming that it is impossible to sell Free Software commercially. To contradict that harsh claim, a single very successful example would be enough. Everyone who could compile programs could just do these adjustments and have - and sell - the Pro-Version. But the price was reasonable, you got a steady stream of updates, and by buying from them you had the security that the software you got was trustworthy, because they had a good and well-known track record.
Many people gladly paid a monthly fee for that. There are more examples, but Limewire sticks out, because it actually managed to outcompete Bearshare - proprietary software intended to fulfill the same role.
View all of our apps Your Cart Contact Us. Web Apps Since Is your website boring? Kick it up a notch. Encodable apps easily drop into your website to make it modern, fun, and interactive, with features like file uploads, user accounts, paid subscriptions, protected pages, live chat, visitor logging, mailing lists, and more.
Can I still charge a fee for my application? Mar 14, at pm by Kev :. Mar 14, at pm by Anthony :. May 4, at am by LogicMan :. May 5, at am by Anthony :. Jun 27, at pm by Stephen Dewey :. Jun 29, at am by Thom Wetzel :. Jan 4, at pm by Maciej :. Mar 26, at am by empraptor :.
Mar 26, at pm by Anthony :. May 23, at am by Greg :. May 23, at pm by AnthonyDiSante :. Quoting Greg: I think Jun 2, at am by JeanNoel :. Jun 24, at am by Anoop :. Aug 14, at am by cjs :. Curt Sampson cjs cynic. Aug 23, at pm by paul :. Sep 7, at am by DanHeeks :. Sep 8, at am by BerlinBrown :. Yea, it is a little nutty. Like why even answer the first question, "Can you sell the software" Why sell it if your new code is now under the GPL?
Sep 16, at am by DY :. Jun 2, at am by Max :. I hope this helps. Jun 2, at pm by AnthonyDiSante :. Quoting Max: GPL is probably the most commercially unfriendly of them all Yes, exactly, which is why their statements about commercial usage are so ridiculous. Jun 3, at am by Max :. Quoting Wikipedia: Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and that manufacturers of consumer-facing hardware allow user modifications to their hardware.
Jun 4, at am by AnthonyDiSante :. Quoting Max: Can you copy, modify and sell it? Quoting Max: Please note, "or with minimal restrictions only to ensure that further recipients can also do these things". Nov 19, at am by Tim :. Apr 14, at am by Federico :. Apr 14, at am by AnthonyDiSante :.
Sep 17, at am by Arunav :. Oct 23, at am by Marc :. Dec 12, at pm by leth :. So thus commercial faif software should be contracted to be written not to be copied. Makes sense. Or she is allowed to hire a developer to do that for her.
She is also allowed to replace your ads with her ads and then to sell her customised version for money. You sold her the software, but the GPL says that she is allowed to change it or to hire someone to change it for her, and to resell her version if she wants.
If you depend on GPL software and include it in a way that it becomes a part of your program e. There could be some exceptions to this, for example if you distribute multiple independent programs together. To find out if this applies, see the GPL Section 5 where it talks about "aggregates". You can use any GPL-licensed software for any purpose you like - on he condition that you follow the license. This means you even have permission to use it in scams and software of dubious usage and moral standing, too.
In my understanding, on Android the term "module" usually refers to what commonly is referred to as library and not just an independent programme which you rely on and communicate with, but could do without.
Thus the licenses of those must be taken into account. Following the license means that you use the GPL or compatible license for your complete software, too. Thus no part can be kept proprietary. That means among others to make available the sources in a similar manner as the binaries and at no additional costs, and to make users aware of their rights.
Of course it doesn't mean you have to share your api keys, but you should then provide a reasonable example setup which also compiles easily. Sign up to join this community. The GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so.
You can charge people a fee to get a copy from you. You can't require people to pay you when they get a copy from someone else. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee.
For example, someone could pay your fee, and then put her copy on a web site for the general public. The GPL says that anyone who receives a copy from you has the right to redistribute copies, modified or not.
You are not allowed to distribute the work on any more restrictive basis. If the violation involves GPL-covered code that has some other copyright holder, please inform that copyright holder, just as you would for any other kind of violation of the GPL. Thus, anyone who receives a copy of your version from you has the right to redistribute copies modified or not of that version.
You may not distribute any version of the work on a more restrictive basis. For instance, you can accept a contract to develop changes and agree not to release your changes until the client says ok. You can also release your changes to the client under the GPL, but agree not to release them to anyone else unless the client says ok.
The GPL would give the client the right to redistribute your version. In this scenario, the client will probably choose not to exercise that right, but does have the right. You can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name assuming you are the copyright holder. The GPL requires all copies to carry an appropriate copyright notice. No, this is not permitted under the terms of the GPL.
While we recognize that proper citation is an important part of academic publications, citation cannot be added as an additional requirement to the GPL. Requiring citation in research papers which made use of GPLed software goes beyond what would be an acceptable additional requirement under section 7 b of GPLv3, and therefore would be considered an additional restriction under Section 7 of the GPL. And copyright law does not allow you to place such a requirement on the output of software , regardless of whether it is licensed under the terms of the GPL or some other license.
Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what their rights are. It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.
The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.
Without such a statement, it's not entirely clear that the permissions in the license really apply to any particular source file. An explicit statement saying that eliminates all doubt.
A file containing just a license, without a statement that certain other files are covered by that license, resembles a file containing just a subroutine which is never called from anywhere else. The resemblance is not perfect: lawyers and courts might apply common sense and conclude that you must have put the copy of the GNU GPL there because you wanted to license the code that way.
Or they might not. Why leave an uncertainty? This statement should be in each source file. A clear statement in the program's README file is legally sufficient as long as that accompanies the code , but it is easy for them to get separated.
Why take a risk of uncertainty about your code's license? You should put a notice at the start of each source file, stating what license it carries, in order to avoid risk of the code's getting disconnected from its license. That other context may not show what the file's license is.
It may appear to have some other license, or no license at all which would make the code nonfree. Adding a copyright notice and a license notice at the start of each source file is easy and makes such confusion unlikely. If a whole software package contains very little code—less than lines is the benchmark we use—you may as well use a lax permissive license for it, rather than a copyleft license like the GNU GPL.
Unless, that is, the code is specially important. We recommend the Apache License 2. They will not make a substantial fractional change in the size of a software package unless the package itself is quite small.
In order to combine two programs or substantial parts of them into a larger work, you need to have permission to use both programs in this way. If the two programs' licenses permit this, they are compatible. If there is no way to satisfy both licenses at once, they are incompatible. For some licenses, the way in which the combination is made may affect whether they are compatible—for instance, they may allow linking two modules together, but not allow merging their code into one module.
If you just want to install two separate programs in the same system, it is not necessary that their licenses be compatible, because this does not combine them into a larger work. The other license is compatible with the GPL if it permits this too. GPLv3 is compatible with more licenses than GPLv2: it allows you to make combinations with code that has specific kinds of additional requirements that are not in GPLv3 itself. Section 7 has more information about this, including the list of additional requirements that are permitted.
If you do this, your program won't be fully usable in a free environment. If your program depends on a nonfree library to do a certain job, it cannot do that job in the Free World. If it depends on a nonfree library to run at all, it cannot be part of a free operating system such as GNU; it is entirely off limits to the Free World. So please consider: can you find a way to get the job done without using this library?
Can you write a free replacement for that library? If the program is already written using the nonfree library, perhaps it is too late to change the decision. You may as well release the program as it stands, rather than not release it. But please mention in the README that the need for the nonfree library is a drawback, and suggest the task of changing the program so that it does the same job without the nonfree library.
Please suggest that anyone who thinks of doing substantial further work on the program first free it from dependence on the nonfree library.
Note that there may also be legal issues with combining certain nonfree libraries with GPL-covered free software. Both versions of the GPL have an exception to their copyleft, commonly called the system library exception.
If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.
If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. In either case, you should put this text in each file to which you are granting this permission. Only the copyright holders for the program can legally release their software under these terms. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception.
But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.
When other people modify the program, they do not have to make the same exception for their code—it is their choice whether to do so.
If the libraries you intend to link with are nonfree, please also see the section on writing Free Software which uses nonfree libraries. If you're using GPLv3, you can accomplish this goal by granting an additional permission under section 7.
The following license notice will do that. You must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves. If you modify this Program, or any covered work, by linking or combining it with [name of library] or a modified version of that library , containing parts covered by the terms of [name of library's license] , the licensors of this Program grant you additional permission to convey the resulting work.
If you're using GPLv2, you can provide your own exception to the license's terms. Again, you must replace all the text in brackets with text that is appropriate for your program. Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. In addition, as a special exception, the copyright holders of [name of your program] give you permission to combine [name of your program] with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of [name of library] under the [name of library's license] or modified versions of such code, with unchanged license.
Note that people who make modified versions of [name of your program] are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. Under the Berne Convention, everything written is automatically copyrighted from whenever it is put in fixed form.
However, registering the copyright in the US is a very good idea. It will give you more clout in dealing with an infringer in the US. The case when someone else might possibly claim the copyright is if you are an employee or student; then the employer or the school might claim you did the job for them and that the copyright belongs to them. Whether they would have a valid claim would depend on circumstances such as the laws of the place where you live, and on your employment contract and what sort of work you do.
It is best to consult a lawyer if there is any possible doubt. If you think that the employer or school might have a claim, you can resolve the problem clearly by getting a copyright disclaimer signed by a suitably authorized officer of the company or school. Your immediate boss or a professor is usually NOT authorized to sign such a disclaimer.
Many universities nowadays try to raise funds by restricting the use of the knowledge and information they develop, in effect behaving little different from commercial businesses. If you see any chance that your school might refuse to allow your program to be released as free software, it is best to raise the issue at the earliest possible stage. The closer the program is to working usefully, the more temptation the administration might feel to take it from you and finish it without you.
At an earlier stage, you have more leverage. But the copyright holder for a program can release it under several different licenses in parallel. The license that comes in your copy, assuming it was put in by the copyright holder and that you got the copy legitimately, is the license that applies to your copy.
To release a nonfree program is always ethically tainted, but legally there is no obstacle to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times. Strictly speaking, the GPL is a license from the developer for others to use, distribute and change the program. However, if the developer does something that would violate the GPL if done by someone else, the developer will surely lose moral standing in the community.
No, because the public already has the right to use the program under the GPL, and this right cannot be withdrawn. Yes, because the copyright on the editors and tools does not cover the code you write.
Using them does not place any restrictions, legally, on the license you use for your code. Some programs copy parts of themselves into the output for technical reasons—for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.
As it happens, Bison can also be used to develop nonfree programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction.
We made the decision because there were other tools comparable to Bison which already permitted use for nonfree programs. Yes, you do. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.
If the program is written by US federal government employees in the course of their employment, it is in the public domain, which means it is not copyrighted. It can still be free software , however; a public domain program is free. However, when a US federal government agency uses contractors to develop software, that is a different situation.
GNU Ada was developed in this way. Or the contract can assign the copyright to the government agency, which can then release the software under the GNU GPL. If the improvements are written by US government employees in the course of their employment, then the improvements are in the public domain.
There is no problem in this situation. If the US government uses contractors to do the job, then the improvements themselves can be GPL-covered. Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. On the other hand, if you yourself convey the executable LGPLed library along with your application, whether linked with statically or dynamically, you must also convey the library's sources, in one of the ways for which the LGPL provides.
In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert her own data, the copyright on the output belongs to her, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.
So the only way you have a say in the use of the output is if substantial parts of the output are copied more or less from text in your program. For instance, part of the output of Bison see above would be covered by the GNU GPL, if we had not made an exception in this specific case.
You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.
The output of a program is not, in general, covered by the copyright on the code of the program. So the license of the code of the program does not apply to the output, whether you pipe it into a file, make a screenshot, screencast, or video. Programs that output audio, such as video games, would also fit into this exception. However, fair use may still apply. So your module has to be available for use under the GPL.
But you can give additional permission for the use of your code. The license list page gives a partial list of GPL-compatible licenses. Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination.
The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL.
When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data interpreted program , any way you like, and there are no requirements about licensing that data to anyone.
So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them.
These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to link dynamically with these specific libraries , then it too needs to be released in a GPL-compatible way. Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes.
These libraries and the programs that call them are always dynamically linked together. A consequence is that if you choose to use GPLed Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.
You may link your program to these libraries, and distribute the compiled program to others. That means that you don't need to worry about including their source code with the program's Corresponding Source. GPLv2 provides a similar exception in section 3. You may not distribute these libraries in compiled DLL form with the program. To prevent unscrupulous distributors from trying to use the System Library exception as a loophole, the GPL says that libraries can only qualify as System Libraries as long as they're not distributed with the program itself.
If you distribute the DLLs with the program, they won't be eligible for this exception anymore; then the only way to comply with the GPL would be to provide their source code, which you are unable to do.
It is possible to write free programs that only run on Windows, but it is not a good idea. Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program.
Section 6 of GPLv2 states:. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. GPLv3 says something similar in section The advertising clause provides just such a further restriction, and thus is GPL-incompatible. It depends on how the main program invokes its plug-ins.
If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program.
A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program. If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins.
Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking. Please see this question for determining when plug-ins and a main program are considered a single combined program and when they are considered separate works. If the main program and the plugins are a single combined program then this means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way.
A main program that is separate from its plug-ins makes no requirements for the plug-ins. Please see this question for determining when plug-ins and a main program are considered a single combined program and when they are considered separate programs. If they form a single combined program this means that combination of the GPL-covered plug-in with the nonfree main program would violate the GPL.
However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the nonfree main program.
See also the question I am writing free software that uses a nonfree library. If they form a single combined program then the main program must be released under the GPL or a GPL-compatible free software license, and the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.
However, if they are separate works then the license of the plug-in makes no requirements about the main program. Not exactly. It means you must release your program under a license compatible with the GPL more precisely, compatible with one or more GPL versions accepted by all the rest of the code in the combination that you link.
The combination itself is then available under those GPL versions. You can ask, but most authors will stand firm and say no. The idea of the GPL is that if you want to include our code in your program, your program must also be free software. It is supposed to put pressure on you to release your program in a way that makes it part of our community. Does distributing a nonfree driver meant to link with Linux violate the GPL?
0コメント