Fedora and OpenH264
Did we ever mention that software patents are a serious pain for free-software projects? The usual problem is in trying to avoid them and, thus, the lawyers, lawsuits, and other exciting trappings of the patent-war landscape. But, even when the danger fades for a particular patent due to a seemingly open-source-friendly licensing arrangement, there may still be hiccups. Fedora has recently "resolved" a problem with the BSD-licensed H.264 video codec that Cisco announced in October 2013—by disabling its automatic installation.
Cisco has generously offered its OpenH264 codec for the heavily patented (and strongly enforced) H.264 video format without passing on the MPEG Licensing Authority (MPEG-LA) fees. That effectively makes the codec have zero cost if it is obtained from Cisco. Taking the source and building your own version of the codec doesn't convey the waiver of the patent licensing fee.
There is already an open-source H.264 codec in FFmpeg (and the Libav fork), but some distributions (like Fedora) don't ship it due to patent concerns. The OpenH264 project looks like a way around that problem, but the fact that it must be distributed by Cisco causes problems of its own.
For Mozilla, which was looking for non-patent-encumbered way to ship an H.264 codec with Firefox, using OpenH264 made perfect sense. So it integrated a way for Firefox 33 to automatically download and install the codec from Cisco. Doing so enabled Firefox Hello, which is a video chat feature using WebRTC that will even work between different browsers (e.g. Firefox and Chrome/Chromium).
The problem for Fedora is that downloading semi-random binaries from the internet and installing them where they will be executed based on content from elsewhere on the net could be seen as a potential attack vector. Even if there is nothing malicious about the binary (and there is no evidence that there is), it is not the way that most Linux distributions deliver software to their users. For Fedora, at least, it violates the packaging policy to install a binary that is not built in the distribution's infrastructure.
Florian Weimer filed a bug toward
the end of October, noting that in addition to the build issue there were
two problems with the license that Cisco
provides: it is not presented to the user correctly in Firefox, but the
bigger problem is that it has a restriction on the use of the codec (only
allowing "USES IN WHICH IT DOES NOT RECEIVE REMUNERATION
",
which is an element of the MPEG-LA license). It is not exactly clear how
the restriction should be interpreted, especially given that the OpenH264 FAQ explicitly says
that Cisco competitors can use the codec in their products. Perhaps
MPEG-LA believes that the purchasers of those products cannot use them for
money-making enterprises?
The immediate problem for Fedora, though, was to stop Firefox from downloading and installing the codec binary. A Fedora Engineering Steering Committee (FESCo) ticket was filed around the same time as the packaging bug. At its November 12 meeting, FESCo decided to request that the Fedora Firefox-package maintainers disable the auto-download feature. That has since been done, though there was a misstep along the way and no update that disables the auto-download has been released to Fedora users.
There is a Fedora wiki page with instructions for those who would like to manually install the codec. It will not auto-update (as Firefox does), though, so users will need to be vigilant about updating when Cisco releases security alerts for OpenH264 (though the most recent is said not to affect Firefox).
Even though OpenH264 is, indeed, open, there is no way for a distribution (or anyone else) to determine that the binary downloaded corresponds to the source code provided. This is a general problem and is part of why distributions tend to build all of the packages they ship—or provide ways for users to build their own. Beyond just Fedora, Gentoo and Debian are also working on the Firefox auto-download problem.
Longer term, Christian Schaller is working with Cisco on a way to build OpenH264 on Fedora's infrastructure and provide a way for Firefox on Fedora to auto-download that version from Cisco. Presumably, if that works out, other distributions can also take advantage of it. There is some possibility that the Firefox trademark restrictions could rear their head if distributions head down that path, but there is a belief that Mozilla will not force Fedora to go the Iceweasel route.
It is likely an irritating situation for all involved. There may be a reasonable resolution at some point along the lines of what Schaller reported, but it still means extra hoops for Linux distributions (and Cisco) simply so that those distributions can ensure that their users are getting the code that they expect. It's open source, so that should be easy, but patents—once again—get in the way.
[ Thanks to Scott Dowdle for giving us a heads-up about this issue. ]
