What Red Hat and Firestar agreed to
Those recent events, of course, are dominated by Sun's announcement that it had successfully challenged the Firestar patent; the US Patent and Trade Office (PTO) has officially rejected all of Firestar's claims. As your editor (along with numerous others) has said, this should not have been a particularly hard thing to do; the weakness of this particular patent was evident after even a cursory reading. So one might well wonder why Red Hat chose to pay the troll in this particular case.
And, incidentally, Red Hat did pay. Naturally enough, the specific payment terms have been removed from the agreement, but a payment was a part of the deal.
It is nice that Sun took a less compromising approach to this case, even though it was not named as a defendant. But Sun's success has not rendered this settlement moot, for a few reasons. To begin with, Firestar now has two months to fight the PTO decision and reinstate its patent. That looks like a difficult task, but, with the PTO, one never really knows. Second, the settlement does not cover just that one patent; it covers just about any patent that Firestar owns or will acquire in the next five years - though some of that coverage goes away in 2013. And, perhaps most importantly, Red Hat clearly sees this settlement as a template for the resolution of other patent suits which are certain to come in the future.
The settlement itself reads somewhat like a Pascal program; one must start toward the bottom and read it in reverse. Following that analogy, the main program can be found in section 5.2:
So, these patents have been licensed for any practical purpose to anybody who happens to be a Red Hat Community Member, as long as they are working with Red Hat Licensed Software. Well, almost any purpose; there is a small catch, as will be seen shortly. First, though, it is time to read the declarations toward the top of the settlement to see what those terms really mean. Who, exactly, is a Red Hat Community Member?
This definition is clearly quite comprehensive; anybody who makes use of the software is considered to be a Red Hat Community Member. Your editor is pondering offering for sale a line of "Proud Red Hat Community Member" T-Shirts at the next Debconf or OpenBSD hackfest. This is a club that we all get to join.
The other key term, though, is "Red Hat Licensed Product," because only such products are covered by the settlement. The definition of this product is simple:
Now, perhaps, we have moved away from Pascal programming and are stuck with the unenviable task of making sense of a convoluted Java class hierarchy. One of the subclasses, the definition of "Red Hat Product," is crucial:
So essentially, a Red Hat Product is anything developed or shipped by Red Hat under one of its trade names. So anything in Red Hat Enterprise Linux qualifies. The important thing that Red Hat didn't see fit to specify in its early PR is that anything in Fedora - also being software distributed under a Red Hat Brand - qualifies too. Since Fedora packages rather more software than RHEL does, that broadens the coverage of this agreement considerably.
Also important is the "any predecessor version" clause. Coverage under this agreement does not apply to just the specific, possibly patched version of a program shipped by Red Hat; anything which came before in that package's upstream is also part of the deal. And, incidentally, this coverage does not go away if Red Hat stops shipping a package; just one shipped version will do. The Red Hat Brand has become the magic touch which confers protection against Firestar patents onto any software it touches.
Thus far, we have coverage for Red Hat's packages and their predecessors upstream. What happens, though, if the upstream project continues to develop the software beyond the version shipped by Red Hat? That's where the "Red Hat Derivative Product" category comes in:
So the combination of "any predecessor version" and the definition of a Derivative Product means that the entire project is covered, from its first version through anything it will do in the future - though, once again, there's a catch. But, before we get to that, there is the third subclass: "Red Hat Combination Product." It refers to a grouping of something which is one of the two product types described above and something unrelated - an aggregation. The apparent intent is to cover situations like dynamic linking: an application which links to a covered library will, itself, be covered.
These definitions, too, appear to be quite broad. Just about anything which has been shipped by Red Hat, or which has even shared the same disk drive as something shipped by Red Hat qualifies. But, as has been mentioned before, there is one catch in the form of an excluded class of software:
(There is similar language for Combination Products as well). What this section is saying is that, if a derived product contains infringing code, that infringing code must have been part of the covered Red Hat product as well. In other words, outsiders cannot bless their particular patent infringement by grabbing enough code from some other project to create a derived product. One can see why this restriction was seen to be necessary; without it, any software (free or proprietary) could have easily been brought under the coverage umbrella. Instead, one must first convince Red Hat to distribute that software at least once.
Plenty of other legalese can be found in the agreement, of course; interested readers are encourage to read the whole thing. But the core of it is what's described above. Notably absent (unless it has been redacted from the payment section, which seems unlikely) is any discussion of what happens if the patent is held to be invalid. So, even if Sun is ultimately successful in its challenge (as seems likely), Red Hat will not be getting its money back under the terms of this agreement.
Red Hat's initial press release claimed that this settlement demonstrated
the company's commitment to standing up for the community in the face of
patent trolls, and stated that it would discourage any future such cases.
At this point it seems fairly evident that Sun has made a better show of
standing up for the community and discouraging future cases. What Red Hat
has done, though, is to show us how future patent problems could be
resolved in the absence of obvious prior art. If one must pay the troll,
one would do well to come out with an agreement like this one and, at
least, keep the troll away from the rest of the community. Whether patent
holders who actually have a legal leg to stand on will be willing to agree
to such a settlement remains to be seen; the nature of the game is such
that, unfortunately, we are likely to get an answer to that question sooner
or later.
Posted Jul 15, 2008 14:45 UTC (Tue)
by kripkenstein (guest, #43281)
[Link] (2 responses)
Posted Jul 15, 2008 14:51 UTC (Tue)
by corbet (editor, #1)
[Link] (1 responses)
So, yes, Red Hat's ownership of the Fedora trademark suffices; I confirmed this with Red Hat just to be sure. They agreed they should have been more clear about this aspect of the agreement at the initial announcement.
Posted Jul 15, 2008 15:44 UTC (Tue)
by kripkenstein (guest, #43281)
[Link]
Posted Jul 15, 2008 18:55 UTC (Tue)
by vmole (guest, #111)
[Link] (6 responses)
The settlement itself reads somewhat like a Pascal program; one must start toward the bottom and read it in reverse.
+1 for QOTW.
Posted Jul 15, 2008 19:19 UTC (Tue)
by darwish07 (guest, #49520)
[Link] (5 responses)
Posted Jul 15, 2008 19:30 UTC (Tue)
by vmole (guest, #111)
[Link] (4 responses)
Yeah, that's it exactly. Pascal didn't allow forward references/decarations/definitions, so you were basically forced into this style of coding.
Posted Jul 15, 2008 20:09 UTC (Tue)
by khim (subscriber, #9252)
[Link] (3 responses)
Pascal DOES have forward definitions. Always had. There are exactly ONE exception: main program goes to the end. All other procedures and functions can be moved around as you wish, but main program goes to the end - always.
Posted Jul 15, 2008 23:10 UTC (Tue)
by vmole (guest, #111)
[Link] (2 responses)
I freely admit my Pascal knowledge is long forgotten, but in my defense, I offer this quote from Brian Kernighan's Why Pascal is Not My Favorite Language: "Since the original Pascal was implemented with a one-pass compiler, the language believes strongly in declaration before use. In particular, procedures and functions must be declared (body and all) before they are used." I should have remembered also his note that there was a "forward" declaration, with some restrictions.
Posted Jul 18, 2008 0:48 UTC (Fri)
by giraffedata (guest, #1954)
[Link] (1 responses)
In both languages, you have to declare a subroutine before you can call it. If you don't want to fully define it, you at least need a prototype.
(It's the reason I always write C upside down -- I hate writing anything twice).
In Pascal, the custom is that if subroutine bar supports foo, you code bar inside foo. You can do that in C too, but it's nearly unheard of. If you do that, in either language, you must define bar before the procedural code of foo; to do otherwise would be like declaring variables at the bottom of a subroutine.
Pascal does have a "program" concept that C doesn't have (a C program is just a collection of zero or more peer subroutines; only the linker knows how to turn them into a program), which means at least one line of main code does have to go at the bottom of the main file of a program, even if you otherwise eschew the nested subroutine convention.
Posted Jul 18, 2008 11:20 UTC (Fri)
by nix (subscriber, #2304)
[Link]
Posted Jul 15, 2008 19:08 UTC (Tue)
by smoogen (subscriber, #97)
[Link] (4 responses)
Posted Jul 15, 2008 20:00 UTC (Tue)
by clugstj (subscriber, #4020)
[Link] (3 responses)
Posted Jul 15, 2008 20:18 UTC (Tue)
by smoogen (subscriber, #97)
[Link] (1 responses)
Posted Jul 16, 2008 16:43 UTC (Wed)
by clugstj (subscriber, #4020)
[Link]
Posted Jul 16, 2008 6:42 UTC (Wed)
by louie (guest, #3285)
[Link]
Posted Jul 17, 2008 17:25 UTC (Thu)
by sandmann (subscriber, #473)
[Link]
What Red Hat and Firestar agreed to
> The important thing that Red Hat didn't see fit to specify in its early PR is that anything
in Fedora - also being software distributed under a Red Hat Brand - qualifies too.
This is, I agree, extremely important. So I would like to make sure I understand it. Is Fedora
a "Red Hat Brand" because 'Fedora' is trademarked by Red Hat (which I believe it is)? Is just
owning a trademark enough to make it one of your brands? (It seems reasonable, but the law is
sometimes far from reasonable.)
If this is true, then it is very odd that Red Hat wouldn't mention it in the early press
release. Might be an oversight though.
The definition of a Red Hat Brand is:
Red Hat Brand
"Red Hat Brand" means a trademark, service mark, trade name, or brand owned, exclusively licensed, or controlled, now or in the future, by Red Hat.
Red Hat Brand
Thanks for the information, I am glad to hear that.
What Red Hat and Firestar agreed to
What Red Hat and Firestar agreed to
I did not work on Pascal before.
Does Mr. Corbet means something like below C program where lots of internal function code
exist and the main() is thrown at the end (where you have to scroll down till main() code to
understand the big picture) ?
Ex:
func1() {
// lots of code
}
func2() {
// lots of code
}
.
.
.
main() {
func2();
if () func3(0;
...
}
What Red Hat and Firestar agreed to
Looks like your Pascal knowleadge is lacking
Looks like your Pascal knowleadge is lacking
I think the difference between C and Pascal here isn't in the language definition; it's in the culture. C's culture is get-the-job-done and Pascal's is one of mathematical elegance.
Looks like your Pascal knowledge is lacking
Looks like your Pascal knowledge is lacking
Actually nested functions aren't valid in C. They're a GCC extension, and
while I might wish they were in the Standard (give us closures, too,
please!) they're not.
What Red Hat and Firestar agreed to
It would be interesting to see how much it cost to pay the troll, or to do all the legal work
for getting the prior art in the format that the PTO requires it to be for it to be
'considered'. You can't just give them news articles and papers or code.. you have to vet it,
get depositions, put in the legal framework, yada yada yada (its the reason that patent
lawyers charge quite a bit per hour.).
I wonder if you have to pay challenge fees (well if I was the PTO and trying to get my piece
of the pie off of this racket.. I would definately make sure there were fees).
What Red Hat and Firestar agreed to
A guess:
Firestar agreed to do this Red Hat deal because they knew Sun was in the process of
invalidating their lame patent(s) and decided to grab some cash before Sun's work became
public. So, now they get to use Red Hat's money to try to get their patent re-instated.
Why else would you give such liberal terms (unless it was quite a bit of money)?
What Red Hat and Firestar agreed to
Well Sun most likely invalidated one patent, while Red Hat got a suite of patents (Firestar
and similar companies buy up patents in the cubic truck-load). Getting all of the patents
invalidated would be very costly and prone to failure (most patents even with lots of prior
art get kept :(. ) ... which is how the patent protection mechanism works.
What Red Hat and Firestar agreed to
But having a high profile story in the media of one of your patents getting slapped down has
got to lower the value of the whole portfolio.
What Red Hat and Firestar agreed to
<i>Why else would you give such liberal terms...?</i>
As Red Hat pointed out when they first announced this, GPL gives them a nice negotiating stick
for this sort of thing. RH sits down at the negotiating table and says 'either go away, give
us these very liberal terms, or fight us to the death, since less liberal terms mean we have
to shut down our business.' If the troll does not want to fight to the death and does not want
to go away, they have to settle for these terms. Unusual, admittedly, but the only option RH
has and hence the only option an anti-RH troll has.
What Red Hat and Firestar agreed to
Red Hat was the target of a lawsuit, which means trying to get the patent invalidated, as
opposed to paying the troll, is risky. The troll would be less likely to settle if Red Hat
were also trying to invalidate the patent at the same time.
Attacking a patent from multiple sides at the same time is valuable. Sun invalidating the
patent, even though there were not the target of a lawsuit, in effect helping out a
competitor, is a strong message to the trolls that they will be fighting not just one company,
but all companies affected by patent trolls. Hopefully this point does not get lost in the PR
noise.