At my previous job I was responsible for building and maintaining a library in their ecosystem. The project is mature in the sense that no major new features are being implemented. It is still maintained, which means that bugs are fixed and every now and then minor enhancements are made. To give a sense of the maturity: the project has some 30k sloc, and currently about 100 lines are changed per month. These small changes do require relatively much work (a couple of hours a week, even when you have written almost the entire code base).
The company has no expertise to maintain this project, and I see they are now introducing new bugs and failing to fix existing bugs. Because I use this library in other projects I expect to have to continue to maintain it at least in the near future. I don't want my previous employer to benefit commercially from this work, for two reasons: (1) to not provide free labour on principle; (2) to motivate them to train somebody to eventually maintain the library themselves.
The project is licensed under a 2-clause BSD license. My old employer has several projects under such a license, and earns money from (subscriptions to) some closed-source projects. These projects are only available to a few clients, who receive the source code. You can imagine something like the Blackboard educational software business scheme, but on a smaller scale, and clients are responsible for their own instances.
My idea is to fork the project and provide it under a GPL 3.0 license. I understand that all code written before the fork will then also still be available under the original BSD license, but code committed after the fork should only be available under GPL 3.0. The idea is that if the company would want to use my fork, they are making a derivative that also would have to be licensed under GPL 3.0 (at least under the FSF's understanding of derivative works). They will not want to open source their application, so they cannot use my fork. My concerns with this are:
If I make my changes of 100 lines a month under GPL 3.0, the company may look at that, and implement the same patches with some minor changes (e.g. replace a
for
with awhile
) under their 2-clause BSD license. This is the easy way out, because the major job is to figure out what needs to be changed, not how to write it down. Am I in any way protected from this happening? Do I have some kind of intellectual property on the change that extends beyond the exact implementation to the ideas behind it?The company distributes their software only to selected clients (and I am not one of them). Would they in that situation still be required to open source their application to the general public? And how would one go about proving that they use my fork / requesting their source?
Are these concerns valid? Are there better ways to solve this problem?