GPL Licensed code as separate process We are going to use a GPL licensed application as separate process inside a docker. So here's how it works: Main app ships to client, it doesn't have any GPL code. Does have lots of things and manages lots of Docker images. Our app CAN download and launch custom made Docker images (special purpose, we maintain docker images and they are custom built). All other docker images we have, does not include any GPL code. Inside just one of the docker images a server software with GPL license will be running all the time, that's the main server software in that particular docker image (as-is) Can we do this in our commercial app without having to publish our source code? Basically we maintain and create the docker image, but that's not main part of our software and its completely optional and users can choose to download that docker image and run it if they want to. GPL code is not blended into our main app, its totally separate and its inside docker image. Imagine being Amazon and maintaining list of VM images you build and letting your clients download and launch instances of VM images you built that contain many GPL licensed applications.
Yes you can. What you do is called mere aggregation. Your app and the GPL container run isolated and do not share memory space: they are clearly separate programs vs parts of one program, so your app does not get infected by GPL.
According to US law, the GPL is a license, not a contract. This means it is valid without consideration, it also means if you are in violation of the license, then you are committing copyright infringement, instead of being in breach of a contract. In Germany, the GPL is a contract. And that's fine, because German law doesn't require consideration for a contract to be valid. It's interesting in that the GPL license doesn't require you to state whether you agree to the license/contract or not. But if you don't agree to the contract then there is no contract, and you have no right to use the software.
You're not going to find an OSI-approved or FSF-approved license that meets your needs because these licenses comply with the OSI definition or FSF definition of open-source software, and your requirements don't. Looking at your requirements, it looks like you want a license where users can modify the software and use it for private use, but cannot use it for commercial use. I ran a search on TL;DR Legal to see what licenses match. There are some one-off licenses that appear to be written by individuals or groups or written by companies that explicitly call out a particular software package. One appears to be a modification of the Apache License. I wouldn't recommend simply using one of these without not only reading them thoroughly yourself, but also consulting a lawyer - just because they started with a license that is trusted doesn't mean that a change they made didn't cause problems if it were to be challenged. For a project hosted on GitHub, it doesn't need to be open-source. You can upload a project that is all rights reserved, but by using GitHub, you do need to allow others to view and fork your repository. However, I wouldn't expect many outside contributors. Why should I give you my hard work if you're just going to turn around and make money on it? That's essentially free labor. I'm not aware of any listing of vetted licenses that are designed for commercial use of software, like how the OSI and FSF maintain lists of licenses. There is a Binpress license generator, but again, it's not a vetted license. How much stake you put into license generator or some random license you find on the Internet is up to you and the level of risk that you find acceptable. If you want to make money on your open-source software, you may want to rethink your approach. In my experience, I've usually seen dual licensing achieve this. One license is a custom written commercial license while the other is a very strong copyleft license, like GPL or AGPL (depending on how you intend your software to be used), which forces companies to also open-source their software if they use yours. It doesn't explicitly prevent commercial usage, but many companies will either look for an alternative that has a more permissive license or purchase the commercial license to prevent their software from being required to be open-source as well. You may also be interested in questions on Open Source about how to monetize open-source projects. There are options out there - selling support and maintenance or related services or selling additional documentation or examples. Under this model, all of your software is free and open source under any of the well-known open-source software licenses, but you make money supporting users of the software.
You seem to assume that copyrights require paperwork such as registration. This is wrong, copyright is automatic. And it prevents the downloader from making the sort of change that you suggest. In fact, it prevents the downloader from using your template at all. The only reason the downloader can use that template is because you've granted him a specific license to ignore some copyright rules, but the default remains. And you did not grant the right to alter the template to free users.
It's possible that CAD has a separate licence from the authors of ABC that allows them to produce a closed source copy. If not, they have no right to distribute CAD. However two wrongs don't make a right, and so you don't get to violate the copyright of CAD.* Unfortunately, unless you are one of the authors of ABC, you have no standing to sue the authors of CAD. You can only notify the authors of ABC and hope they do. If the authors of ABC don't have the resources to pursue the matter, you may be out of luck. That's one of the reasons the FSF gets copyright assignments for their projects. * It turns out that this is a much more debateable issue than I first thought. Some courts have held that an unauthorized derivative work is not copyrightable.
This answer is limited to United States law. The situation in other countries is definitely different. Under United States law, the owner of a lawfully made copy of a copyrighted work has, as a right of the physical possession of that work, the right to the work's ordinary use. Licenses grant you additional rights such as the right to make derivative works, the right to make copies beyond what's needed for ordinary use, and so on. A pure license doesn't ask for anything in return, it just gives you new rights. Those rights may be conditional, but the conditions are just things you have to do to get new rights. They're not conditions imposed on any existing rights you had. A contract is an agreement between two parties. Both parties must agree to a contract for the contract to be enforceable. Contracts can take away rights you otherwise have. You don't need a license or contract to use a copyrighted work if you lawfully possess a copy of that work. Say you download a copy of a work covered by the GPL. You can refuse to accept the GPL license and you can still use that work. Why? Because no law prohibits you from doing so and there is no civil cause of action for using a lawful copy of a work under US law. But now say you want to give a copy of that work to your friend. This is illegal under US law because 17 USC 106 restrict that right to the copyright holder and there's no applicable exception since that's not part of the ordinary use. For a work covered by the GPL, the license offers to give you that right, a right you wouldn't otherwise have. It imposes conditions on you that are specifically in exchange for the grant of the new right. If you do accept the GPL, it functions as a contract. You got in exchange a right you didn't have before and if you don't comply with the GPL's terms, you don't have the copyright holder's permission to exercise those rights which is required under the law. By contrast, a click-through or EULA takes effect when you agree to it and such agreement is a condition for using the software. That's a pure contract and usually doesn't give you any rights you wouldn't have in the absence of such an agreement other than the use of the software.
The idea for an app is not subject to copyright. Only the artifacts of the app itself (sourcecode, images, texts, sounds, etc.) can be. So if one only copies the idea and creates their own version of all the other assets, then they are not violating copyright. However, in some cases, ideas can be subject to patents. But patents on software are tricky. First of all, only new ideas can be patented. When a supposed new idea was already published before, then that's called &quot;prior art&quot; and you can not patent it. Then getting a patent means a lot of investment in money and time (which is very different from copyright which you get automatically the moment you make something copyright-worthy). So not everything that could theoretically be patented gets patented. And then, many jurisdictions do not recognize software patents at all, and those which do have different limits on what is and is not patentable when it comes to software. This means patents are rarely a concern when copying the app idea of someone else, but not never. And another possible concern is the third pillar of intellectual property: Trademarks. This protects the name of the app. Trademark law oversimplified forbids to create a competing product with a name which might confuse customers. So if you created StevesSuperCoolAppForCoolPeople and I create StevesSuperCoolAppForCoolPeople - Simplified Edition, then I would be violating your trademark, because my product name sounds as if it was your product, when it is in fact an unrelated product with a similar purpose.
The creator of the software doesn't provide any warranty. If you feel confident in the quality of the software, nothing stops you from providing a warranty. If the software doesn't meet your guarantees, you will have to pay out because you provided the warranty, depending on the terms. Not the creator of the software because they explicitly didn't provide any warranty. If that's what you want to do, go ahead. I wouldn't. You don't have to republish under the BSD license, which you wouldn't. You must attach the license terms, which clarifies the role of the original creators, and that they don't give a warranty. Doing this allows you to copy the software. It doesn't mean you can't provide a warranty.