Can you sell modified open source




















Would it be legal for me to profit from it? I am not sure what information would be relevant to this so if I have missed some relevant info, please tell me what additional information is required to determine this. You are allowed to sell open source software for any amount you like. You are allowed to charge reasonable cost for supplying the source code. You are not allowed to charge anything for the license. And of course modified open source software may only distributed with an open source license.

Generally yes. The concept of 'free software' is almost identical Open Source, and one of the four fundamental freedoms is the freedom to run the software for any purpose. That includes seeking profit. Yes, you can use open source software commercially. All Open Source software can be used for commercial purpose; the Open Source Definition guarantees this.

You can even sell Open Source software. However, note that commercial is not the same as proprietary. If you receive software under an Open Source license, you can always use that software for commercial purposes, but that doesn't always mean you can place further restrictions on people who receive the software from you.

In particular, copyleft -style Open Source licenses require that, in at least some cases, when you distribute the software, you must do so under the same license you received it under. When using code from a copyleft license, the question then becomes whether you need to share your derivative source code.

This depends on which copyleft license was used and what your program is doing with the code, as some licenses have what is known as the SaaS loophole which would allow you to use copyleft code server side without needing to release your code.

Sign up to join this community. This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication exec, pipes, rpc, function calls within a shared address space, etc. If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

No, the analysis of whether they are a single work or an aggregate is unchanged by the involvement of containers. Our lawyers have told us that to be in the best position to enforce the GPL in court against violators, we should keep the copyright status of the program as simple as possible.

We do this by asking each contributor to either assign the copyright on contributions to the FSF, or disclaim copyright on contributions.

We also ask individual contributors to get copyright disclaimers from their employers if any so that we can be sure those employers won't claim to own the contributions. Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL.

So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain. If you want to make an effort to enforce the GPL on your program, it is probably a good idea for you to follow a similar policy. It is possible to make modified versions of the GPL, but it tends to have practical consequences. You can legally use the GPL terms possibly modified in another license provided that you call your license by another name and do not include the GPL preamble, and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU though the actual procedure you describe may be similar.

For this purpose we would want to check the actual license requirements to see if we approve of them. Although we will not raise legal objections to your making a modified license in this way, we hope you will think twice and not do it. Such a modified license is almost certainly incompatible with the GNU GPL , and that incompatibility blocks useful combinations of modules.

The mere proliferation of different free software licenses is a burden in and of itself. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL. These requirements are the condition for including the GPL-covered code you received in a program of your own. The GPL defines this as the preferred form of the work for making changes in it.

However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL. See this article for details. It works as designed, intended, and expected. Nothing required Y to agree to any other license for its code. Therefore, X must get Y's permission before releasing that code under another license.

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.

When you create a new project on GitHub, you are given the option to select a license. Including one of the licenses mentioned above will make your GitHub project open source. For example, as your project grows it adds dependencies or users, or your company changes strategies, any of which could require or want a different license. Also, if you neglected to license your project from the start, adding a license is effectively the same as changing licenses.

Determining license compatibility and compliance and who holds copyright can get complicated and confusing very quickly. Switching to a new but compatible license for new releases and contributions is different from relicensing all existing contributions.

Involve your legal team at the first hint of any desire to change licenses. All the more reason to choose and use an appropriate license for your project from its inception! But if your current license is not permissive e. You can add or change to whatever license you or your company wants to. Otherwise there may be other copyright holders that you need agreement from in order to change licenses. Who are they? People who have commits in your project is a good place to start. What to do?

It depends. For a relatively small and young project, it may be feasible to get all existing contributors to agree to a license change in an issue or pull request. For large and long-lived projects, you may have to seek out many contributors and even their heirs.

Mozilla took years to relicense Firefox, Thunderbird, and related software. Alternatively, you can have contributors agree in advance via an additional contributor agreement — see below to certain license changes under certain conditions, beyond those allowed by your existing open source license.

This shifts the complexity of changing licenses a bit. Probably not. For the vast majority of open source projects, an open source license implicitly serves as both the inbound from contributors and outbound to other contributors and users license.

An additional contributor agreement — often called a Contributor License Agreement CLA — can create administrative work for project maintainers. How much work an agreement adds depends on the project and implementation.

A simple agreement might require that contributors confirm, with a click, that they have the rights necessary to contribute under the project open source license. Some situations where you may want to consider an additional contributor agreement for your project include:. If you do need to use an additional contributor agreement with your project, consider using an integration such as CLA assistant to minimize contributor distraction.

Your company should easily give you permission, and maybe already has through an employee-friendly IP agreement or a company policy. If not, you and they are in luck! Your legal team should be eager to work with you to figure this stuff out.

Some things to think about:. That starts with choosing a license that works with the third party open source licenses see above.



0コメント

  • 1000 / 1000