Accidentally a few weeks ago I've implemented a logic into my MIT licensed public library, which has been patented by someone else some years ago. That library isn't only about that patented logic - it's only a small part. But days ago I've found the patent during research, and now I'd like to ensure that I'm not breaking any law.
I develop that library as a private individual, but it may be used in a commercial environment also. Now I've updated my README to include a warning to be aware of the patent. Per default the developer must explicit make a special configuration to use the library in the patented way, but it offers everything to go. Anyway, I've documented the detailed steps how to configure and use the library in the way, which would definitely break the patent (including the warning), when being sold, or distributed, or hosted ("as a Service") from a business like that.
As I know the patent should only touch commercial/business usages, but not private use. So I actually feel safe for the moment, but I still have a little headache because in fact I license partial patented material with MIT. Some questions that came around:
- Am I doing it right? Is a warning in the documentation (README) enough?
- Is MIT the right (safe) choice, or should I overthink to switch to another license?
- Does the MIT licensing affect the patent holders rights in any way?
- Would it change anything, if I'd transfer my license to a business which continues developing the library (using the MIT license also)?
UPDATE: After I accepted the answer I have to add that in the particular case of patent US10402172B1 (I didn't ask explicitly for that) things are a bit more complicated: I've created code which aggregates multiple RNGs (entropy sources) into one random data stream, and also makes it easy to distribute that stream over a network in the way (all ways) that is being described in the patent. Aggregating multiple RNGs (or entropy sources) is a common practice since decades already, so this can't be patented in 2019. But distributing the resulting random data in form of a "Random/Entropy as a Service" (R/EaaS) API or application over a network can, it seems. This isn't implemented in my library, but simplified a lot by just using my library. For this case a warning not to do in the specified way seems to be enough, since my library doesn't contain code to exhaust the patent, finally, but it needs only one more simple step to ~~breaking a law~~ (<- forget that) stepping into a patent trap. If this would be a problem, publishing a programming language would be a problem also, because it can be used to break patents easily - let's keep the church in the village (let's not exaggerate things)...
In the general question about including patented logic into an Open Source library, the accepted answer is correct.