[Asterisk-Dev] Some notes about software patents and the GPL
stsltdtyo at yahoo.co.jp
Thu Jul 29 23:36:00 MST 2004
Like anybody else, I don't wish to feed any trolls here,
so I won't respond to any of the posts of a certain
individual any further.
However, since the general public often has misperceptions
about patents, I would like to give the readers of the
list a bit of background on what software patents mean for
GPLed software, because it would seem important in any
event. For those of you who are already familiar with the
subject, just skip this post, or better still, read it and
post any comments or corrections if you wish.
I am not a patent lawyer, but I do have some background in
patents, having worked on some for a few years.
There is a common misperception amongst software
developers that patented algorithms may be used as long as
one is careful enough to circumvent the traps surrounding
the legality of re-engineering.
However, the issue of whether or not reengineering is
permissible has absolutely no relevance to patents. If a
patent holder has a patent for an algorithm, then that
algorithm cannot be used by anyone else without express
permission by the patent holder. Not only can the
algorithm not be used, but any code that does anything
which resembles *any* of the claims in the patent cannot
Even if you never knew about the patent and the algorithm,
even if you re-invented the algorithm all on your own,
using nothing but your own skill, blood, sweat and tears,
without using any material or input from anyone else, then
under patent law, you are nevertheless prohibited from
using that algorithm and any code based on it for the
duration of the patent in any jurisdiction where the
patent is valid.
The question of where you got the idea or knowledge from
is irrelevant. The only thing that is relevant to a patent
is prior art. If you used only material that was publicly
known *before* the patent was first filed (so called
priority date) and the outcome was obvious from that
earlier material, then you may be able to get the patent
or at least parts of it revoked, because it shouldn't have
been granted in the first place. However, if you invented
something in the silence of your study without publishing
anything and somebody else invents the same thing *after*
yourself but files a patent *before* you publish or file a
patent, then you are prohibited to use your invention.
This may not sound fair, but that's the way it is.
This means, for example, that you cannot create your own
G.729 codec, regardless of how you would go about it,
because the G.729 codec is based on a patented algorithm.
If the outcome of whatever you do is a G.729 codec you
require a license from the G.729 patent holder, regardless
of who wrote the code.
Still there are folks who believe they can come up with a
different algorithm that produces the same end result. In
most cases this is very unlikely to yield an invention
that is not ecumbered by the original patent. It may
qualify as a patentable improvement over the original
patent, but it is unlikely to be free of encumbrance, and
thus, in order to use it, it will again require a license
from the original patent holder. It does not provide a way
to circumvent the patent.
The reason for this is the way in which patents are
drafted. Each patent must have a general description and a
number of claims. It is these claims which are used to
determine whether or not something falls under the patent.
The claims however are worded in a descriptive way, they
are not like mathematical formulas. A good patent attorney
will design the patent in such a way that the claims
represent various layers of protection going from broad to
specific. For example,
Claim 1: claimed is a method and apparatus to trap a
rodent using a container and an entrapment device.
Claim 2: claimed as in claim 1, where said container is
comprised of a wireframe with an opening and said
entrapment device is a door covering and uncovering said
opening in said wireframe by use of a lever.
Claim 3: claimed as in claim 2, where said lever is ...
and then there will be alternative embodiments
Claim 42: claimed as in claim 1, where said container is
a wooden box ...
etc etc etc
Each of these claims stands on its own. You only have to
fall under a single claim and your stuff is encumbered by
The courts never get to look at the mathematical formulas
that a patented algorithm is based on to determine
encumbrance. The way in which patent offices and courts
will assess whether an invention falls under a patent is
by verifying whether *any* of the properties of the
invention in question matches *any* of the claims of the
patent in question.
In other words and as a generalisation, if it walks and
talks like a duck, then it is *deemed* to be a duck.
The only defense against a competitor's patent (other than
challenging the patent in court) is to design a product
that works differently, which in the world of software
often means incompatibility. So, to stay with the example
of the G.729 codec, an example of a product that counters
the G.729 codec is the ILBC codec. It works differently,
using a completely different algorithm, but it can achieve
the same or similar performance and thus replace g.729 for
the purpose of application. However, the two are
incompatible as a result. G.729 cannot talk to ILBC and
vice versa. To stay compatible with G.729, there is no way
around licensing the G.729 codec from the G.729 patent
In order for any code that uses patented algorithms to be
licensed under the GPL, the patent must be blanket
licensed royalty free to everyone by the patent holder.
The GPL is very explicit in demanding that code which
falls under a patent that is not blanket licensed royalty
free to everyone must not be GPLed at all. The GPL
expressly excludes the release of such code under the GPL.
From the GPL's Preamble:
"Finally, any free program is threatened constantly by
software patents. We wish to avoid the danger that
redistributors of a free program will individually obtain
patent licenses, in effect making the program proprietary.
To prevent this, we have made it clear that any patent
must be licensed for everyone's free use or not licensed
and further in paragraph 7:
"If you cannot distribute so as to satisfy simultaneously
your obligations under this License and any other
pertinent obligations, then as a consequence you may not
distribute the Program at all. Fore example, if a patent
license would not permit royalty-free redistribution of
the Program by all those who receive copies directly or
indirectly through you, then the only way you could
satisfy both it and this License would be to refrain
entirely from distribution of the Program."
In other words, Asterisk linked to code that uses the
G.729 algorithm cannot be distributed under the GPL,
a) the G.729 patent holders grant blanket license for
everyone to use their patented algorithm royalty free; OR
b) the rights holder(s) of Asterisk grant special
permission to anyone who purchased a license from the
G.729 rights holders to link to such code.
Now, if somebody was to write their own G.729 codec, then
anybody who wants to use it would still need a license
from the G.729 patent holders and special permission from
the Asterisk rights holder(s) to link to that alternative
G.729 codec. It doesn't matter how the code came about and
whether it is code written and released by the patent
holder or by somebody else. All that matters is that the
code is encumbered by the patent.
The GPL explicitly forbids the redistribution of so
modified code as shown in the quotations from the GPL
above. Such redistribution requires special permission
outside of the GPL.
This is one of the reasons why companies like Digium and
MySQL have released their code not only under the GPL,
but separately under a conventional license.
It is common practise and it's not like anybody is doing
this without legal council, nor should they. I can't speak
for Digium nor do I have knowlegde of Digium's internal
affairs, but I am absolutely confident that they have done
their homework and hired a lawyer to tell them what to do
and what to avoid.
Last but not least, I hope that everybody who didn't know
this already before has by now realised what a powerful
instrument a patent is.
This is precisely why there is such a concern in the open
source movement about software patents.
I am not firmly taking a position either way on this here,
but I strongly encourage anybody to read up on this stuff,
keep up to date, form their own opinion and get involved.
This is an issue which is probably too important to be
left entirely in the hands lobbyists and bureaucrats.
There is nothing wroing with patents in principle. Patents
are a bargain between the public interest and inventors.
The inventor is granted a monopoly on his invention for a
limited time in return for his invention to become public
domain for eternity after his monopoly has run out. Also
part of the bargain is that patent specifications are
published for anyone to see even before they are granted
and regardless of whether or not they are going to be
The public does not therefore grant patents as a kind of
compensation for work well done, nor should there be any
such entitlements. The public's only concern is to give an
incentive to inventors to go public and not keep their
inventions secret. The sole reason for the patent system
is to enrich the public domain with knowledge.
In other words, if the spirit of open source software
catches on in such a way that one day it becomes a natural
thing for everyone to disclose their discoveries, then the
patent system will at that point become obsolete because
the patent bargain will then not be required any further
as an incentive for inventors to disclose.
For now, however, we still need the patent system, which
is not to say that the system was not in need of reform or
at least improvements.
One of the main problems is the sheer amount of patent
applications causing the patent offices worldwide to be
totally overwhelmed and unable to properly examine. As a
result, there are more and more patents granted that
didn't actually meet the requirements of novelty and
The trouble with software patents is that the boundaries
between novel and not novel, obvious and non-obvious
become so blurred that it is extremely difficult, if not
impossible to determine whether a patent should really be
granted or not.
Interestingly, the situation with software patents is not
entirely unlike the situaion with mathematical formulas.
Mathematical formulas are considered too broad as a claim
to be admitted and they are categorically excluded from
I guess this means a reasonable precedence in favour of
those who say that software should receive the same
treatment and be categorically excluded from
Whatever one's view on this issue may be, one thing cannot
be dismissed and that is the fact that software patents
will further increase the volume and thus the workload of
already overwhelmed patent offices which will lead to even
more unreasonable applications slipping through
Maybe what is needed is an "anti-patent office", an
authority with a mandate to track down bad patents and get
Sunrise Telephone Systems Ltd
9F Shibuya Daikyo Bldg., 1-13-5 Shibuya, Shibuya-ku, Tokyo, Japan
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE
More information about the asterisk-dev