I intend to sell a closed source software that depends on PostgreSQL (BSD-style license). Can I bundle PostgreSQL server in the package and install it with my software? Would it be also possible if I was using MySQL (GPL)?
views:
548answers:
4Yes and yes, as long as you respect the license requirements, e.g. if you only use standard interfaces (such as socket connections or the CLI) to interface with an open source project, you are not obligated to also make your code open source.
Basically, just because you are using open source software by forking a process or by making a socket connection, doesn't necessarily impose restrictions on your own source code if the use is taking place by using existing and unmodified abstract interfaces (non low level). So, the use has to be obviously decoupled. Usually, accessing internals in the same address space (linking, shared memory, IPC) is considered a form of very tight coupling however.
So, if on the other hand, you are linking binaries together (libraries), you would have to comply with the corresponding license requirements (i.e. making source code available if requested). Similarly, if you had to modify standard interfaces of these open source packages, you would also be obligated to share these modifications with your users, as well as the original project. Ideally, each modified package would be accompanied with complete source code, including all modifications.
Bundling open source software is merely a form of distributing it, a right that is explicitly granted to you, as long as you also ensure that your users are made aware of the corresponding license and also the fact that they can get the corresponding source code, too.
EDIT:Just to clarify regarding the comment, of course you should always consult legal professionals (lawyers) when making such decisions, however I stand by my above sentiments, also regarding GPL software (to quote the FSF GPL FAQ):
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 non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program. The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. 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.
Re none: such restrictions do not exist for PostgreSQL. Under the BSD license, you can use the software freely as long as you include the copyright notices as stipulated at http://www.postgresql.org/about/licence.
BSD is quite commerce friendly as far I know, GPL is a little tricky, gotta do some work to protect your Intellectual property from being infected with it.