DirectAction

From APIDesign

Revision as of 05:56, 18 July 2021 by JaroslavTulach (Talk | contribs)
Jump to: navigation, search

Wikipedia describes various types and examples of so called direct action. This article talks about a legal struggle of the ApacheNetBeans project to get an approval to distribute GPLwithClassPathException licensed component and the DirectAction used to resolve it.

Contents

Animosity

The basic problem is the animosity between the Apache Foundation and the Free Software Foundation. While the first builds software as on bazaar, the latter wants to build cathedrals. Each foundation has its own license and members of the Apache foundation start to see red whenever they find these three letters anywhere: GPL. That's not surprising - the virality of GPL (described in WhyGPL essay) completely contradicts the Apache bazaar-like aproach to software development.

GPLwithClassPathException isn't GPL

However GPLwithClassPathException isn't as viral as GPL. The Classpath Exception allows redistribution of such binaries under any (including Apache) license. The problem is to get Apache legal to agree to it! Because once the true Apachers see GPL letters, they block and stop reading. It is very hard to spell GPLwithClassPathException without spelling GPL prefix!

Moreover while GPLwithClassPathException is quite common among Java projects, the roots of Apache project is its HTTP server written in C. Classpath has no meaning in C. People with C skills are rather going to see GPL in GPLwithClassPathException rather than the exception.

Finally, with LEGAL-563 things moved forward.

DirectAction: Organize a Vote!

The continuous pressure in LEGAL-563 and elsewhere opened a possibility to take an action.

> "...it was accepted ... that ... GPL+CPE binaries could be included in Apache convenience binaries..."

That's from my perspective the major achievement that unlocked the rest. Reaching there took years, but the legal conclusion that Apache license and GPLwithClassPathException can be combined together really worth it.

> "...PMC should be fully capable of reading and understanding ..." and > "...The crux of the issue seems to be resolved here and > it seems that PMC will be following up separately..."

Hearing from legal that the decision is fully in hands of Project Management Committee just called for an action. As PMC has only one decision process, a vote had to be organized. I am thankful that the community decided in April 2021 that nb-javac is trusted to be GPLwithClassPathException licensed with 4:2 majority.

Requirement vs. Suggestion

Of course, vote was not an unisimo vote. Certain legal suggestions

> "... clear statement in LICENSE.txt that nb-javac is ... GPL+CPE in its entirety ..."

were not fully implemented. However that is the difference between requirement and suggestion! Requirement has to be fulfilled, suggestions are just nice to have. E.g. formal aspects aren't more important than already done legal deeds.

ApacheNetBeans PMC had full right to decide to trust the deeds regardless of nice to have suggestions being implemented or not. While calling for the vote wasn't consensual, it as the DirectAction that unlocked the rest and allowed the NetBeans project to move forward and bundle GPLwithClassPathException licensed component.

Don't Seek for Permission

It is always easier to ask for blessing than seek for permission. This case confirms it. Organizing the DirectAction vote wasn't 100% guaranteed way to success, but at the end the legal team confirmed my expectations:

> "...comment added to the README that is sufficient for our purposes. It does not have to be present in the released binary."

Of course, at the end it is all a matter of trust...

> "It's a sliding scale. Somewhere between a notarized grant signed by Ellison and someone whispering it to you in a bathroom, there exists a line between sufficient or not; we have no idea where that line may be until someone sues over it. > It's okay when the PMC says it is okay, until it isn't, and we'll deal with that if someone from Oracle ever objects.

...and it is OK until it is not OK!

Summary

Thanks to the direct action - e.g. organizing the project management committee vote without a consent - we could successfully present an alternative which wasn't reachable by appealing the authorities. Once the PMC made it decision, it was easy for legal to agree to such decision as well.

It is possible for Apache projects to distribute GPLwithClassPathException components in their complementary binaries since 2021!

Personal tools
buy