logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Apollo-federation-2-gaslighting.md (9511B)


  1. ---
  2. title: Breaking down Apollo Federation's anti-FOSS corporate gaslighting
  3. date: 2021-11-05
  4. ---
  5. Gather around, my friends, for there is another company which thinks we are
  6. stupid and we enjoy having our faces spat in. [Apollo Federation][0][^1] has
  7. announced that they will switch to a non-free license. Let's find out just how
  8. much the Elastic license really is going to "protect the community" like they
  9. want you to believe.
  10. [0]: https://www.apollographql.com/blog/announcement/moving-apollo-federation-2-to-the-elastic-license-v2/
  11. [^1]: For those unaware, Apollo Federation is a means of combining many
  12. GraphQL[^2] microservices into one GraphQL API.
  13. [^2]: For those unaware, GraphQL is a standardized query language largely used
  14. to replace REST for service APIs. SourceHut uses GraphQL.
  15. Let's start by asking ourselves, objectively, what practical changes can we
  16. expect from a switch from the [MIT license][MIT] to the [Elastic
  17. License][elastic]? Both licenses are pretty short, so I recommend quickly
  18. reading them yourself before we move on.
  19. [MIT]: https://mit-license.org
  20. [elastic]: https://www.elastic.co/licensing/elastic-license
  21. I'll summarize the difference between these licenses. First, the Elastic license
  22. offers you (the recipient of the software) one benefit that MIT does not: an
  23. explicit license for any applicable patents. However, it also has many
  24. additional restrictions, such as:
  25. - No sublicensing (e.g. incorporating part of it into your own program)
  26. - No resale (e.g. incorporating it into Red Hat and selling support)
  27. - No modifications which circumvent the license key activation code
  28. - No use in a hosted or managed service
  29. This is an objective analysis of the change. How does Apollo explain the changes?
  30. > ### Why the new license?
  31. >
  32. > The Apollo developer community is at the heart of everything we do. As
  33. > stewards of our community, we have a responsibility to prevent harm from
  34. > anyone who intends to exploit our work without contributing back. We want to
  35. > continue serving you by funding the development of important open-source graph
  36. > technology for years to come. To honor that commitment, we’re moving Apollo
  37. > Federation 2 to the Elastic License v2 (ELv2).
  38. Taking them at their word, this change was motivated by their deep care for
  39. their developer community. They want to "honor their commitment", which is to
  40. "fund the development of important open-source graph technology" and "prevent
  41. harm from anyone who intends to exploit our work without contributing back".
  42. This is a very misleading statement. The answer to the question stated by the
  43. header is "funding the development", but they want us to first think that
  44. they're keeping the community at the heart of this decision — a community
  45. that they have just withheld several rights from. Their wording also seeks to
  46. link the community with the work, "our work", when the change is clearly
  47. motivated from a position where Apollo believes they have effective ownership
  48. over the software, sole right to its commercialization, and a right to charge
  49. the community a rent — enforced via un-circumventable license key
  50. activation code. The new license gives Apollo exclusive right to commercial
  51. exploitation of the software — so they can "exploit our work", but the
  52. community itself cannot.
  53. What's more, the change does not fund "open-source graph technology" as
  54. advertised, because after this change, Apollo Federation is no longer open
  55. source. The term "open source" is defined by the [Open Source
  56. Definition][OSD][^3], whose first clause is:
  57. [OSD]: https://opensource.org/osd
  58. [^3]: Beware, there are more gaslighters who want us to believe that the OSD
  59. does not define "open source". This is factually incorrect. Advocates of this
  60. position usually have ulterior motives and, like Apollo, tend to be thinking
  61. more about their wallets than the community.
  62. > [The distribution terms of open-source software] shall not restrict any party
  63. > from selling or giving away the software as a component of an aggregate
  64. > software distribution containing programs from several different sources. The
  65. > license shall not require a royalty or other fee for such sale.
  66. The OSD elaborates later:
  67. > The license must not restrict anyone from making use of the program in a
  68. > specific field of endeavor. For example, it may not restrict the program from
  69. > being used in a business, or from being used for genetic research.
  70. >
  71. > The rights attached to the program must apply to all to whom the program is
  72. > redistributed without the need for execution of an additional license by those
  73. > parties.
  74. The Elastic license clearly does not meet this criteria.
  75. Reading the Apollo announcement further, it continues to peddle this and other
  76. lies. The next paragraph attempts to build legitimacy for its peers in this
  77. anti-FOSS gaslighting movement:
  78. > Open-source licensing is evolving with the cloud. Many successful companies
  79. > built on open-source technology (such as Elastic, MongoDB, and Confluent)
  80. > have followed the path we’re taking to protect their communities and combine
  81. > open, collaborative development with the benefits of cloud services that are
  82. > easy to adopt and manage.
  83. They continue to use "open-source" language throughout, and misleads us into
  84. believing that they've made this change to protect the community and empower
  85. developers.
  86. > When the Elastic License v2 was released, Elastic CEO Shay Banon called upon
  87. > open-source companies facing a similar decision to “coalesce around a smaller
  88. > number of licenses.” We’re excited to be part of this coalition of modern
  89. > infrastructure companies building businesses that empower developers. [...]
  90. > Moving the Apollo Federation libraries and gateway to ELv2 helps us focus on
  91. > our mission: empowering all of you.
  92. It should be evident by now that this is complete horseshit. Let me peel away
  93. the bullshit and explain what is actually going on here in plain English.
  94. Free and open source software can be commercialized — this is an essential
  95. requirement of the philosophy! However, it cannot be *exclusively*
  96. commercialized. Businesses which participate in the FOSS ecosystem must give up
  97. their intellectual property monopoly, and allow the commercial ecosystem to
  98. flourish within their community — not just within their own ledger. They
  99. have to make their hosted version *better* than the competitors, or seek other
  100. monetization strategies: selling books, support contracts, consulting, early
  101. access to security patches, and so on.
  102. The community, allegedly at the heart of everything Apollo does, participates
  103. in the software's development, marketing, and growth, and they are rewarded with
  104. the right to commercialize it. The community is incentivized to contribute back
  105. because they retain their copyright and the right to monetize the software. [634
  106. people][contributors] have contributed to Apollo, and the product is the sum of
  107. their efforts, and should belong to them — not just to the business which
  108. shares a name with the software. The community built their projects on top of
  109. Apollo based on the open source social contract, and gave their time, effort,
  110. and copyright for their contributions to it, and Apollo pulled the rug out from
  111. under them. In the words of Bryan Cantrill, this shameful, reprehensible
  112. behavior is [shitting in the pool of open source][cantrill].
  113. [contributors]: https://github.com/apollographql/apollo-client/graphs/contributors
  114. [cantrill]: https://invidious.mnus.de/watch?v=-zRN7XLCRhc&t=2483
  115. The smashing success of the free and open source software movement, both
  116. socially and commercially, has attracted the attention of bad actors like
  117. Apollo, who want to capitalize on this success without meeting its obligations.
  118. This wave of nonfree commercial gaslighting is part of a pattern where a company
  119. builds an open-source product, leverages the open-source community to build a
  120. market for it and to *directly* improve the product via their contributions,
  121. then switches to a nonfree license and steals the work for themselves, fucking
  122. everyone else over.
  123. Fuck Matt DeBergalis, Shay Banon, Jay Kreps, and Dev Ittycheria. These are the
  124. CEOs and CTOs responsible for this exploitative movement. They are morally
  125. bankrupt assholes and rent-seekers who gaslight and exploit the open source
  126. community for personal gain.
  127. This is a good reminder that this is the ultimate fate planned by any project
  128. which demands a copyright assignment from contributors in the form of a
  129. Contributor License Agreement (CLA). [Do not sign these][CLA]! Retain your
  130. copyright over your contributions and contribute to projects which are
  131. collectively owned by their community — because *that's* how you honor
  132. your community.
  133. [CLA]: https://drewdevault.com/2018/10/05/Dont-sign-a-CLA.html
  134. ---
  135. Previously:
  136. - [Elasticsearch does not belong to Elastic](https://drewdevault.com/2021/01/19/Elasticsearch-does-not-belong-to-Elastic.html)
  137. - [Open source means surrendering your monopoly over commercial exploitation](https://drewdevault.com/2021/01/20/FOSS-is-to-surrender-your-monopoly.html)
  138. - [The Developer Certificate of Origin is a great alternative to a CLA](https://drewdevault.com/2021/04/12/DCO.html)
  139. If you are an Apollo Federation user who is affected by this change, I have set
  140. up [a mailing list][ML] to organize a community-maintained fork. Please send an
  141. email to this list if you are interested in participating in such a fork.
  142. [ML]: https://lists.sr.ht/~sircmpwn/apollo-fork