[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash] gstreamer plugin

From: John Gilmore
Subject: Re: [Gnash] gstreamer plugin
Date: Wed, 26 Jul 2006 09:52:11 -0700

> This is quite a good summary:

Thank you for that pointer.  It gives definitive answers to many
questions.  Of course, it doesn't ask and answer *all* of the
questions we're interested in.  It's mostly focused on proprietary
binary plugins, which isn't what I'm talking about.  I'm talking about
GPL or LGPL code that implements algorithms that are (likely) patented
in the US and/or other countries.  See below.

> "We are not prepared to issue and irrevocable, free patent license to 
> GPL and LGPL software using our patents."
> This means MP3 will never be free software compatible.
> ...
> The only long-term solution is to lobby Macromedia to include Vorbis 
> support into a future open Flash standard.

No!  MP3 will be free software compatible as soon as those patents
expire.  One of the beautiful things about patents is that they only
last 15 to 20 years (as compared to copyrights, which exist for 70 or
90 years or more).  Many patents useful to free software have already
expired, such as the RSA and Diffie-Hellman patents.  The long-term
solution will be to do whatever we want, less than 20 years from now.

Each of the relevant patents expires at a particular different time.
If one or more of the patents expires later than the rest, it may also
be possible to write or rewrite an MP3 decoder so that it avoids that
particular patented technique.  E.g. some of the patents only apply to
methods for encoding, so decoders don't violate them.  Some other
patents may well cover one way to decode, but there may be another way
to decode which is less efficient but not patented.  (Or we may invent
a more efficient way, which is also not patented.)

Apple's TrueType font patents were worked around in this way for the
FreeType library.  The details are here:

I don't know of anyone who's tried to do this with an MP3 encoder, or
an MP3 decoder, but we shouldn't rule out this path before checking
whether it is viable.  We should determine the earliest date on which
a non-patent-encumbered MP3 decoder could be made.  With that
information in hand, Gnash (and other projects) can make a much better
decision about how we support MP3.

> "We do allow non-commercial use of our patents.  However, the GPL and 
> LGPL software allow onward distribution that can easily be non-commercial."
> In other words, the minute we interpret your free software project as 
> commercial, we'll take legal action.

I think their intent is clear:

  *  They distinguish between "commercial" and "non-commercial".
  *  Our software is free to be used either way; we don't require one
     or the other.

Therefore, people who derive revenue from selling or using our
software are expected to pay for a patent license.  People who derive
no revenue from distributing or using our software are NOT expected to
pay for a patent license.

> For example, the Linux magazine that I edit has a free DVD or CD on the 
> cover each month. Clearly, the cover disc is part of the value of the 
> magazine for readers - so is that commercial distribution?

If you make money from publishing the magazine (either by selling ads,
or by selling the magazine to its readers), it's commercial.  Red Hat
and other commercial Linux distributors are commercial distributors,
too, and would have to pay for the patents.

But Debian, which doesn't charge money for distributions, nor sell
ads, would not have to pay.  Fedora, similarly.  FSF, similarly, would
not have to pay.

That's my theory; shoot more holes in it if you like.

> But then you'd be infringing the GPL, because the patent licence almost 
> certainly won't be GPL compatible. This is why Fluendo have signed the 
> MP3 deal, then based their system around an LGPL media player (Totem) 
> and binary plugins.

"GPL compatible" is not a yes-no concept.  Potential GPL incompatability
because of patents differs from potential GPL incompatability related
to copyrights, for example.  And in GPL3, which is in development, a lot
of work is going into expanding GPL compatibility.  Even if what we decide
to do doesn't work in GPL2, it may work in GPL3.

Fluendo chose one (relatively bizarre) path through this thicket.
I'll go into more detail on their path after I have a chat with them
about some of the details.  But this is not the only way to license an
MP3 decoder.  It's just the way that Fluendo chose, for their own
business reasons, to do it.  Libmad chose another way, for example.

> But then you'd be infringing the GPL, because the patent licence almost 
> certainly won't be GPL compatible.

That's apparently not true.  As the GStreamer page you pointed me to

Q: There are a lot of GPL- or LGPL-licensed libraries that handle
   media codecs which have patents.  Take mad, an mp3 decoding library,
   as an example.  It is licensed under the GPL.  In countries where
   patents are valid, does this invalidate the GPL license for this

A: The mere existence of a patent which might read on the program does
   not change anything.  However, if a court judgement or other
   agreement prevents you from distributing libmad under GPL terms,
   you can not distribute it at all.

   The GPL and LGPL say (sections 7 and 11): "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 Library at all."

Q: So let's say there is a court judgement.  Does this mean that the
   GPL license is invalid for the project everywhere, or only in the
   countries where it conflicts with the applicable patents?

A: The GPL operates on a per-action, not per-program basis.  That is,
   if you are in a country which has software patents, and a court
   tells you that you cannot distribute (say) libmad in source code
   form, then you cannot distribute libmad at all.  This doesn't affect
   anyone else.

        John Gilmore

reply via email to

[Prev in Thread] Current Thread [Next in Thread]