Say a developer has developed a library for their closed-sourced commercial application. Since they want to give back to the open source community, they publish this library under, say, the GPL, but continue to use it in their own application. Since they hold the copyright, that's fine.Now, a user of the GPL version finds a bug, fixes it and submits a patch to the original developer. As I understand it, to use this bugfix in their closed-source application, the developer needs to have permission from the submitter. If the submitter refuses, the developer has to find another way to fix the bug in the closed-source version.But what if the bugfix itself is really trivial? Like properly initializing a variable or checking for a null pointer? Something that any half-competent programmer can find and fix in a matter of minutes, given an error description? Is the patch for this still protected by copyright? Or can the original developer implement the identical fix in their closed-source application without consent of the submitter?Note: This really is a hypothetical scenario, not one of those my 'friend' has this problem questions
Open Source, Copyright and Trivial Bugfixes
open source;licensing
Caveat: I am not a lawyer!Updated: Trivial bugfixes are likely not subject to copyright. See Michael Shaw's answer, which I believe to be more accurate than what I originally said, for more information.However, even given that, this situation is less than ideal:This may be fairly clear for your contrived example, which posits a change that is trivial, as opposed to adding significant functionality.  However, in real life it is going to be a judgment call as to when that is the case. You will be left in a copyright gray area.Ideally, you want to just incorporate the updated file in your program; you don't want to add your own code, even if it is trivial.  It just duplicates work unnecessarily.Now there will be two versions of the file: yours and the open-source one.  This just makes a mess if you want to later release updated versions of your code to the community.Conclusion: The Gnu Public License specifically restricts use of the code in closed-source programs.  Thus, releasing your code under the GPL amounts to deliberately creating a fork of your code that can't be incorporated back into the original program.  This doesn't make a lot of sense.You would be better served by releasing your code under a more permissive license, such as one of the BSD licenses or the Artistic License.  These licenses allow the code to be included in closed-source software without additional permission.  Usually any further development by the community will occur under the same license you used, so you will be able to incorporate any changes that are made (minor or significant) into your software.Technically, someone could decide to update your code and then release it under the GPL, but they would have to actively make that choice.  It wouldn't be the default position.  And in doing so, they would be cutting off their release from any updates you make, so it probably wouldn't be beneficial for them (given that it is your software, you will likely be doing more development on it than anyone else).