'. '

DirectAction

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(DirectAction: Organize a Vote!)
(Requirement vs. Suggestion)
Line 32: Line 32:
=== Requirement vs. Suggestion ===
=== Requirement vs. Suggestion ===
-
Of course, vote was not an unisimo vote. Certain legal suggestions
+
Of course, [https://lists.apache.org/thread.html/r1ddbb8f62ffb02a50db688c958dcd52e1dd3652974550bad9c24e95d%40%3Cdev.netbeans.apache.org%3E the vote] was not an unisimo vote. Some even tried to call the vote illegal and threaten the voters. True, it wasn't easy to find the four +1 votes. Do you know a programmer who'd vote about legal issues rather than do a bit of coding? Most of us wants to stay away of the legal stuff. However, at the end there were three brave members of the [[ApacheNetBeans]] ''Project Management Committee' who casted their votes. [[I]] added mine (while asking my [[OracleLabs]] co-workers to abstain to not pervert the vote) and that was it.
 +
 
 +
It wasn't surprising there were votes against. At the end certain legal suggestions like
<blockquote>
<blockquote>
-
> "... clear statement in LICENSE.txt that nb-javac is ... GPL+CPE in its entirety ..."
+
"... clear statement in LICENSE.txt that nb-javac is ... GPL+CPE in its entirety ..."
</blockquote>
</blockquote>
-
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.
+
were not fully implemented. However that is where the difference between '''requirement''' and '''suggestion''' comes into play in my opinion! ''Requirement'' has to be fulfilled, ''suggestion''s are just ''nice to have'' requests that don't have to be followed to the last later. Understanding the difference between ''formal aspects'' and the ''spirit of the law'' is a necessity for organizing non-violent [[DirectAction]]s!
-
[[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.
+
[[ApacheNetBeans]] PMC had full right to decide to trust the [[Oracle]] deeds regardless of ''nice to have formal'' suggestions not being implemented. The project could have spend years spinning around the ''formal aspects'' without moving forward. Stepping out from that vicious circle, taking [[DirectAction]] and calling for the vote unlocked the situation and allowed the [[ApacheNetBeans]] project to move forward and bundle [[GPLwithClassPathException]] licensed component.
=== Don't Seek for Permission ===
=== Don't Seek for Permission ===

Revision as of 06:14, 18 July 2021

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 three GPL letters, they block and stop reading. As it is very hard to spell GPLwithClassPathException without spelling GPL prefix, it is really hard to convince a true Apacher to read GPLwithClassPathException fully!

Moreover while GPLwithClassPathException is quite common among Java projects, the roots of Apache foundation is its HTTP server written in C. Classpath has no meaning in the C language. People with mostly C skills are going to recognize 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 ... GPLwithClassPathException 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 a DirectAction. 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, the vote was not an unisimo vote. Some even tried to call the vote illegal and threaten the voters. True, it wasn't easy to find the four +1 votes. Do you know a programmer who'd vote about legal issues rather than do a bit of coding? Most of us wants to stay away of the legal stuff. However, at the end there were three brave members of the ApacheNetBeans Project Management Committee' who casted their votes. I added mine (while asking my OracleLabs co-workers to abstain to not pervert the vote) and that was it.

It wasn't surprising there were votes against. At the end certain legal suggestions like

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

were not fully implemented. However that is where the difference between requirement and suggestion comes into play in my opinion! Requirement has to be fulfilled, suggestions are just nice to have requests that don't have to be followed to the last later. Understanding the difference between formal aspects and the spirit of the law is a necessity for organizing non-violent DirectActions!

ApacheNetBeans PMC had full right to decide to trust the Oracle deeds regardless of nice to have formal suggestions not being implemented. The project could have spend years spinning around the formal aspects without moving forward. Stepping out from that vicious circle, taking DirectAction and calling for the vote unlocked the situation and allowed the ApacheNetBeans 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