One of the biggest problems with GPL is that while it gives significant rights to the end user (the ability to demand you give them a copy of the source code for your entire software), it actually takes away rights YOU have as a programmer (if you want to sell software and keep your source code a trade secret, well you are so out of luck). For example if my program (EXE file) depends on a library (DLL file) that is GPL, then I am required to attach the GPL license to my software as well. This means, not only will I be required to give access to the source code of the external library (not a big deal), but also required to give access to the source code of my own software (completely unacceptable to be FORCED to give away a trade secret).
I understand why the GPL was invented. It was invented by people who were angry at commercial software developers who wouldn't let them see their source code, so they decided to protest by creating the GPL, and encourage hobby programmers to use it with software and libraries they wrote. The problem is now a lot of hobby programmers have used GPL to license software EXEs (makes sense) and also with libraries (DLLs) they wrote (something which is an abomination, as no DLL should ever use GPL, because it infects every single other piece of software that uses that DLL file). As a result, this attempt to compensate for commercial software's anti-copying licenses, has ended up OVERCOMPENSATING. This overcompensation for proprietary licenses has in effect created an entire set of libraries that are UNUSABLE in commercial applications. Technically, you can still put the software up for sale even if it's covered by GPL (due to the software using a GPL licensed DLL file), but NOBODY is going to buy it. They will all just download your source code and compile their own copy for free. You would be LUCKY if even ONE PERSON bought your software.
And this brings me to the exact topic specified in the title if this thread. Is there a loophole I can use, as a programmer, to keep the source code of my software's EXE file a trade secret, even if it uses a GPL licensed DLL file? For example, can I create my own wrapper DLL file that is linked to the GPL licensed DLL, and then have my actual software (EXE file) link directly ONLY to my wrapper DLL? In so doing, I would be required divulge both the code of the GPL licensed DLL and also the wrapper DLL, but would I also be required to divulge the source code of my EXE in such cases? What if I provided the 3 files as separate download links on my web page (one for the EXE, behind a pay wall of course as I'd be selling this, one freely accessible link for the wrapper DLL, and one freely accessible link for the GPL licensed DLL), or even only provided only links to my EXE (behind a pay wall) and wrapper DLL (free download), while telling users of my software to download the GPL licensed DLL from the official website for that DLL (and providing no direct links to the GPL licensed DLL from my own website), and then simply provide instructions to the user to copy all the DLL files into the same folder as the EXE file before running the program? Would any of these methods prevent me from being legally obligated to divulge the trade secret source code in my EXE file?
I understand why the GPL was invented. It was invented by people who were angry at commercial software developers who wouldn't let them see their source code, so they decided to protest by creating the GPL, and encourage hobby programmers to use it with software and libraries they wrote. The problem is now a lot of hobby programmers have used GPL to license software EXEs (makes sense) and also with libraries (DLLs) they wrote (something which is an abomination, as no DLL should ever use GPL, because it infects every single other piece of software that uses that DLL file). As a result, this attempt to compensate for commercial software's anti-copying licenses, has ended up OVERCOMPENSATING. This overcompensation for proprietary licenses has in effect created an entire set of libraries that are UNUSABLE in commercial applications. Technically, you can still put the software up for sale even if it's covered by GPL (due to the software using a GPL licensed DLL file), but NOBODY is going to buy it. They will all just download your source code and compile their own copy for free. You would be LUCKY if even ONE PERSON bought your software.
And this brings me to the exact topic specified in the title if this thread. Is there a loophole I can use, as a programmer, to keep the source code of my software's EXE file a trade secret, even if it uses a GPL licensed DLL file? For example, can I create my own wrapper DLL file that is linked to the GPL licensed DLL, and then have my actual software (EXE file) link directly ONLY to my wrapper DLL? In so doing, I would be required divulge both the code of the GPL licensed DLL and also the wrapper DLL, but would I also be required to divulge the source code of my EXE in such cases? What if I provided the 3 files as separate download links on my web page (one for the EXE, behind a pay wall of course as I'd be selling this, one freely accessible link for the wrapper DLL, and one freely accessible link for the GPL licensed DLL), or even only provided only links to my EXE (behind a pay wall) and wrapper DLL (free download), while telling users of my software to download the GPL licensed DLL from the official website for that DLL (and providing no direct links to the GPL licensed DLL from my own website), and then simply provide instructions to the user to copy all the DLL files into the same folder as the EXE file before running the program? Would any of these methods prevent me from being legally obligated to divulge the trade secret source code in my EXE file?