I’m learning about the Eclipse Public License. According to Wikipedia, it “requires that anyone distributing the work grant every recipient a license to any patents that they might hold that cover the modifications they have made”. I don’t understand what “license to any patents” mean. Is it talking about how in viral licensing schemes there may be a restriction on what kind of licenses derivative works can have, and it’s explicitly saying that there is no such requirement in the Eclipse Public License?

Also this states EPL grants “patent rights from all contributors to use and make available the code”. I thought code can only be copyrighted, not patented?


A practical example of the difference between software and patent licenses is FFmpeg. FFmpeg has support for many audiovisual codecs, many of which are covered by software patents in some countries.

If you were to obtain a copy of the source code of FFmpeg and you were somewhere without software patents, like say Antarctica, then you could use it completely freely. But if you lived in the US, it would be a very different matter. As a private citizen you can generally use FFmpeg without any fear of reprisal, say by using VLC, but if you wanted to make the next competitor to YouTube, you can be sure that MPEG LA will send their lawyers to you to demand you pay up. This is not because of copyright infringement, there are no issues with that because FFmpeg is licensed under the LGPL/GPL, but because the person or website you obtained the software from does not own the patents and so cannot give you a license to them. If you live in the US you might be able to legally share the sourcecode to FFmpeg, but be unable to legally run it.

By licensing both the copyright and patents of WebM users can have confidence that they can use it safely, free from the threat of a patent infringement lawsuit. (Or at least theoretically - there's the chance that some company may try to claim that WebM does infringe on one of their patents. Patent's aren't fun!)


I thought code can only be copyrighted, not patented?

That would be the misunderstanding. It is more generally agreed that algorithms can't be patented, but (sadly) various jurisdictions allow patents on inventions implemented entirely in sofware to varying degrees, and similarly to varying degrees on business methods, if such are implemented in the distributed software.

The patent grant in the EPL makes it explicit that anyone who (a) receives code under the EPL, and (b) makes modifications which they either choose or are obliged to release to the community under the EPL, cannot later claim that any patents they hold that relate to their modifications permit them to prevent the EPL-licensed redistribution of those modifications.

GPLv3 s11 has comparable language, again to handle the issue with patent rights being used to frustrate license-granted freedoms. Until software patents are finally disavowed by legislatures, I feel we are likely to see more such language in the future.


Here is the skinny of how I understand patents and copyrights as a programmer:

  • copyright == how the code is written
  • patent == what the code does

Copyright is for the code itself as an expression of instructions "fixed on some tangible medium" say a file on disk or a piece of paper. This is about how the code is organized and written. Copyright protection is implicit in most cases.

Patents are for the ideas that this code may implement, literally what the code does. Patent protection is not implicit and requires to obtain a Patent from some government in most cases.

So, you could write a different program doing the same thing as another and not infringe copyright. But irrespective of how it is written you may infringe a patent that covers what it does.

You can license both if you own both.

Now getting back to you EPL question...

... when you grant a right to use code in an FLOSS license, my take is that you implicitly grant a license to any patent you may hold. The EPL and a few other licenses make this explicit to avoid any ambiguities.

If you distribute your code under the EPL and also have been granted a patent about what this code does then you also license this patent explicitly. Otherwise you would not be allowed to use the code at all.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.