[Harmony-Review] Feedback

Allison Randal allison at lohutok.net
Fri Apr 29 00:21:07 UTC 2011

On 04/27/2011 09:58 PM, Scott James Remnant wrote:
> On Wed, Apr 27, 2011 at 9:01 PM, Allison Randal <allison at lohutok.net
> <mailto:allison at lohutok.net>> wrote:
>     Evil Company takes control of Canonical, and sets on a path that's
>     harmful to Upstart. There are any number of ways Evil Company could do
>     this, from pursuing development the existing contributors consider a bad
>     technical direction for the project, to embarking on business models the
>     existing contributors find morally objectionable, to entirely refusing
>     to update or distribute Upstart. (See Mambo and Joomla! for an example.)
> Those are the least concerning things that Evil Company can do; Evil
> Company can do far more to scupper the project thanks to Harmony.

What specific things?

>     What can the contributors do? The first bit: Under either license or
>     assignment, the contributors have the right to take their contributions
>     and establish a new project (call it Startup) under any license they
>     choose. If the contributors are unified in this action, they're going to
>     carry a large body of the code away, possibly even all of it. If the
>     contributors disagree on whether to leave the old project, then Startup
>     will have control over a smaller body of code. I find it appealing that
>     each contributor casts their vote on what to do, using the code that
>     they wrote. That code is their stake in the project.
> Since Upstart has been developed under the previous Canonical Copyright
> Assignment agreement, the only contributor is Canonical. Given our
> scenario involves Canonical being purchased by Evil Company, the Evil
> Company would now be a primary Contributor.
> We can therefore assume Evil Company won't deal; and thus the majority
> of the code is stuck under the old license.

True in this case that the company owns the copyright and the
contributors don't, but (and it's a big BUT), the contributors have a
broadly open license back to do whatever they want with their
contributions. They don't need ownership, they have a license that's
even more relaxed than the BSD. They can carry their contributions to a
new project, and release it under whatever license they choose.

> And this the same scenario with or without Harmony.

Indeed it is. One thing Canonical's current contributor agreement got
right is granting the contributor back a broad license to their
contributions. It's not as clear or well-defined as in Harmony, but it's
enough for the purposes in this scenario.

>     The third bit: Evil Company can't escape the reciprocity, because the
>     Harmony agreements guarantee (section 6.2) that Canonical can't give
>     Evil Company the rights they got from the Harmony agreements unless Evil
>     Company agrees in writing to respect all the terms of the Harmony
>     agreement.
> I don't agree it says that at all. If that's what it's supposed to say
> (it's one of Harmony's more impenetrable clauses) then it needs rewording.

Okay, noted.

lines 267-269

Try rewording this to make the obligations of the third party clearer.

The core of it is this sentence:

Either party may assign the rights and obligations under the Agreement
to any third party if the third party agrees, as a condition of the
assignment, in writing to abide by the rights and obligations in the

a.k.a. The project or contributor can only hand over their rights, if
the new party agrees in writing to the obligations.

>     No one acquires a patent through contributions, all they acquire is a
>     license to a patent.
> An incredibly wide and crazy license.

The license is exactly enough to allow using, modifying, and
distributing the contribution with the work. If it were narrower, it
wouldn't make it possible to accept the contribution. If it were wider,
it would touch on the contributor's other patents that aren't relevant
to the contribution, and that would make a number of contributors who
own patents very uncomfortable.

>     The fundamental problem is that software patents are a really, really,
>     really bad idea. When Harmony and other FLOSS contributor agreements and
>     licenses handle patents, we're not fooling ourselves into thinking that
>     we can fix software patents this way. All we're doing is partially
>     defusing the bomb, creating an ecosystem where, as much as possible,
>     contributors, projects, and users can work without fear of software
>     patents.
> I disagree, I think Harmony is actually constructing a potential bomb by
> licensing all of the rights into one basket that is much easier for a
> patent troll to acquire.

Hmmmm... it doesn't actually work that way.

First, the companies that are typically referred to as "patent trolls"
own a lot of patents and look for big companies they can litigate
against to get paid lots of money for a patent license. Buying one of
those companies instead of making them pay for a patent license wouldn't
make any sense, it directly undermines the troll's source of income.

But, let's say there is some Evil Company with a lot of patents, but
with a business model other than the classic "patent troll". Maybe they
really ship software and the patents are just a sideline. We'll call
this hypothetical company "Initech" (makers of TPS Reporting software).
Initech buys Canonical for some business reason other than Ubuntu: i.e.
they don't plan on offering support contracts for Ubuntu, or funding
Ubuntu development. Or, perhaps Initech just takes an irrational dislike
to Upstart and decides to kill it, while otherwise continuing to run a
profitable business around Ubuntu. Their motivations aren't really
important (I'm struggling to find any that make sense), but let's look
at 3 hypothetical scenarios:

1) Upstart was developed as a purely proprietary internal project.

2) Upstart was developed with no contributor agreement, and released
under GPLv2.

3) Upstart was developed with a Harmony contributor agreement, and
released under GPLv2.

The first is the worst for Upstart. Initech has all the source code and
no one else does. Initech can kill it, no one has any recourse. And if
Initech holds patents around Upstart, they can actively litigate against
anyone who tries to duplicate the functionality.

The second is better for Upstart, at least the code is available under a
FLOSS license, so the contributors can fork and keep developing. The
contributors will own some contributions, but it's likely that other
parts were developed under some employment contract and so are legally
owned by Initech or another company. Initech has no legally binding
relationship with the contributors. If Initech holds patents around
Upstart, they can actively litigate against anyone who tries to continue
working on it.

The third is the best for Upstart. It's mostly the same as the second,
but Initech is also legally bound to respect the obligations of the
Harmony agreements with all the contributors.

Harmony agreements don't make the situation worse, they only make the
relationship between the contributor and the project clearer, and
establish some rights and responsibilities for both.

>     99.99...% of contributors to FLOSS projects don't own patents, so the
>     patent license doesn't apply to them.
> Really? Because last time I looked the majority of contributions to
> FLOSS projects were corporations like Google, Red Hat, IBM, etc. Lots of
> patents owned by them.

I guess there's no easy way to determine what percentage of FLOSS
developers are volunteers and what percentage are funded by
corporations. From my experience, I'd say it's primarily volunteers,
with corporate funding for a shiny tip of the iceberg, but I could be
wrong. All that's relevant for Harmony is "some contributors own
patents, others don't".

>     Curiously, this kind of defusing behavior is exactly how patents are
>     mostly used in the rest of the world. "I'll license you my patents if
>     you license me your patents, and then we'll both be accountable to the
>     other and won't be able to attack." It isn't perfect, but it's the best
>     approach so far to a broken system.
> So why doesn't Harmony do this? This was the crux of my patent argument
> - the holder gets all the rights, and doesn't reciprocate. If it
> actually licensed them back, the problem would go away.

The deal is "I donate this line of software to the project, and with it,
enough rights that they can use it". The project replies "Great, we'll
guarantee you have enough rights to do the same things you could have
done if you hadn't contributed that line, so we're not taking anything
away from you." That's as far as we can reasonably push the system using
a contributor agreement.

Ask your current employer how they would react if every contributor to
Upstart got a patent license broad enough that they could:

- write one line of code, contribute it to Upstart,

- take that same line of code to any other project (FLOSS or proprietary),

- and, have a full license to your employer's patents for the other
project, because it shares a line of code with Upstart.

It just doesn't work. It's not an equitable trade. I mean, it'd be a
neat hack for destroying software patents, but no lawyer worth their
salt would allow a patent holder to contribute to a project with a
contributor agreement like that.

>     In the specific case of Upstart and Canonical, you have one advantage in
>     the fact that Canonical is completely against software patents, as
>     evidenced by their lobbying to the European Patent Office, and in
>     multiple public statements by the founder (e.g.
>     http://www.markshuttleworth.com/archives/118).
> Canonical is owned by a single person who can get bored, hit by a bus or
> tempted by a very large offer. Today's Canonical is not tomorrow's
> Canonical.

Sure, it's the "Evil Company" scenario, however it happens. The
advantage I'm talking about is that there are currently no patents on
Upstart held by Canonical, nor any plans to apply for them.

(But also, don't confuse having a famous founder with having a bus
factor of 1.)

> What patent license? There is no such text in Harmony.

You mean a patent license from the project to the project? That would be
odd. The outbound license, with a patent license from the project to the
users, is the best place to handle passing on patent rights.

> GPLv3 is not an option due to Upstart's heavy use in the embedded and
> mobile sectors.

Makes sense.


More information about the Harmony-Review mailing list