So I have this super sweet library I'm working on. Let's say I release it into the wild under GPL. In tandem I'm working on a commercial piece of software, and I'd like to use this library in it.Since I made the library in the first place (even though I made it GPL), is it safe to assume I can use it in the commerical app?Now that it's released as GPL, lets say some people make some awesome updates to it. Their work is also under GPL. Therefore I cannot include their changes in my commercial app, unless I wanted to make my commerical app GPL as well (which I don't). In that scenario, the safest thing to do would be to use my library as it was originally released when it was 100% my own code.Is the above correct? If so, would releasing my library under LGPL be a better idea so I can re-incorporate changes to it into my commercial app since I'll just be linking to the DLL?Edit after Thomas' answer:To add a bit about the dual licensing option, it does open up the world of being able to commercially sell my library. On the other hand, I really want to bring in other developers to improve it (if they want), which kind mucks up the commercial licensing aspect. What is more important? For me, I'd rather have a better library than make a couple bucks off of it (it's not THAT impressive), so Thomas' point about going with LGPL is perfect. That allows me to both solicit assistance, and to take advantage of other contributors I can simply link to the DLL inside of having the original code baked into my solution file. The important bit is that I can use this improved code in my main commercial app and I won't worry about commercializing a subset of it (this library).
I released my project under GPL. Can I still use it in my commercial app?
licensing;gpl
Yes, you can release the portions that you own (in this case, the library before modifications were made by other contributors) under one or more other licenses. Those other licenses could be anything that you want, from other open source licenses to specific licenses to other people or organizations.If you are producing a library that is meant to be linked to, then releasing it under the LGPL would probably be better. It would ensure that modifications to your library remain open and free, while letting people link to the library in closed-source applications.It's easiest to make licensing decisions before you release the software to the public, and definitely before other people have contributed. Once other people contribute, you can't simply change the license on someone else's work.