On March 27, a coalition of companies launched Euro-Office — an open, collaborative project to build a trustworthy, sovereign office editor on top of existing open-source foundations. License compliance is at the heart of the free-and-open-source movement, and as a new project built on existing code, getting it right matters.
Before publishing any code, we conducted a thorough license review and consulted directly with people closely involved in writing the AGPLv3, who have since also spoken about Euro-Office in public. This article explains what we found, what we did, and why we are sure that Euro-Office is fully compliant with the terms of the AGPLv3.
Since publishing, our position was explicitly confirmed in a recent blog post about the Euro-Office license debate by the Free Software Foundation, the organization behind the GPL family of licenses. The original author of the AGPL, Bradley M. Kühn, similarly wrote a forceful case for our interpretation of the AGPL, and Dutch lawyer Maurits Westerik, known for the Dutch translation of the GPL series of licenses, came to the very same conclusion.
We are deeply humbled by the incredibly supportive response from the wider Free and Open Source Software community, and in particular we are grateful for the efforts of these very prominent members of our movement. Across forums, mailing lists and social media channels, thousands of other community members have voiced their support.
Summary
Euro-Office is built on ONLYOFFICE, which is distributed under the AGPLv3. The source files include additional terms added by ONLYOFFICE under Section 7 of that license — a mechanism that allows authors to attach a limited set of supplementary conditions.
We reviewed each of those terms carefully. One, a warranty disclaimer under Section 7(a), is entirely valid, and we have kept it. A second term, however, requires distributors to display the ONLYOFFICE product logo, while a third simultaneously declines to grant any trademark rights to that logo. This creates an impossible situation: you are required to include something you have no legal right to use. According to the Free Software Foundation, the author of the AGPLv3, a product logo does not qualify as a “reasonable legal notice or author attribution” under Section 7(b), and the combination with the trademark restriction makes this requirement a “further restriction” — which is explicitly prohibited by Section 10 of the license.
Fortunately, the license anticipates exactly this scenario. Section 7 states clearly that if a distributed work contains a further restriction, the recipient may remove that term. That is precisely what Euro-Office has done. The result is a codebase that is fully compliant with the AGPLv3, where all four user freedoms are preserved: to run, study, modify, and redistribute the software.
Read on to gain a deeper understanding of the AGPLv3 license and read a more detailed analysis of the additional terms ONLYOFFICE included.
Free and Open Source Software
Fundamentally, Open Source (or Free Software) changes the relation between the developer and the user (or customer) of a piece of software. Compared to traditional, ‘proprietary’ licenses, it shifts power from the copyright owner to users, granting them the right to exercise four essential freedoms (traditionally counted from 0 to 3):
- To run the program for any purpose.
- To study and change the program (requires source code).
- To redistribute copies and help others.
- To improve the program and release modified versions.
The licenses that underpin these freedoms are the General Public License, and its ‘networked’ sister, the GNU Affero General Public License. The fundamental goal of the licenses is to ensure that software can not be used to lock users in and limit their choices.
A level playing field
These licenses have allowed a thriving ecosystem to develop. They facilitate collaboration at an unprecedented scale, because it strikes a unique balance between leadership and contributors. As long as a project’s leadership, be it a single person like Linus Torvalds or a company like Sun Microsystems, acts in the interests of the users and contributors, the project can thrive. When the leader fails to do so, those users and contributors can choose to defect and simply create a new project in a process called ‘forking’. They are allowed to take a copy of the code and continue to collaborate on its development without any of the restrictions or even involvement of the original project.
Such a ‘fork’ can be more successful than the original, as Nextcloud has shown. Sometimes, after a fork, the community works it out, and the projects merge, as was seen when OpenWRT merged with its fork LEDE. Other forks disappear. Either way, forking is core to what open source stands for: freedom from vendor lock-in.
This freedom ensures that nobody can ‘kill’ a project with many users and contributors. Buy an open source company and shut it down – its users and contributors will simply proceed without you. But it also creates a discipline because leadership always knows that they owe their position to the trust they have with the community. Violate that trust, and they can be left with nothing.
The result is that open source licenses have created a unique collaborative space, a level playing field where developers can freely experiment and innovate and the best ideas win. Successful projects can build large and impactful products that are incredibly resilient and, through the transparent development and governance enabled by the licenses, can be afforded a extraordinary amount of trust by their users.
Detailed analysis of the license and terms
Let’s have a more detailed look at the terms included by ONLYOFFICE. We start by looking at the copyright notice in DocxRenderer.cpp. This same notice is included in all source files.
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
The license is thus the AGPLV3, itself included verbatim with the code repository. The copyright notice proceeds to add a number of terms, referring to the rules as set out in the AGPLv3 Section 7.
A look at Section 7
Let’s have a closer look at this section of the AGPL. Section 7 of the license scopes clearly which terms can be added without contradicting the terms of the license (under Section 10):
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
When a term is added that does not fit the scope of a through f, this is considered a “further restriction”. These may be removed, as Section 7 continues:
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
It refers to Section 10 which states you are not allowed to distribute AGPLv3 licensed software with “further restrictions” to the rights otherwise granted by the license:
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
In short, section 7 allows the addition of terms, as long as the fundamental rights of the end user to run, study, modify and share the code are not limited. If such a restrictive term is added, the recipient of the code is allowed to remove it.
This was explicitly written to deal with “gotcha” licenses that took an open source license and added a clause undermining the freedoms the GPL grants, as can be read in this blog from the Software Freedom Concervancy’s Bradley M. Kühn, one of the authors of the AGPLv3:
Specifically, the clause was designed to give more rights to downstream recipients when bad actors attempt this nasty trick. Indeed, I recall from my direct participation in the A/GPLv3 drafting that this provision was specifically designed for the situation where the original, sole copyright holder/licensor added additional restrictions.
He also quotes Richard Fontana, legal council of the FSF at the time of the license being written:
The whole point of the section 7 clause (“If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.”) was to address the well known problem of an original GPL licensor tacking on non-GPL, non-FOSS, GPL-norm-violating restrictions.
The specific terms added
Let’s closely examine the terms added by ONLYOFFICE, which relies on sections 7(a), 7(b) and 7(e).
Clearly, a disclaimer of warranty as described under Section 7(a) is included. This has been retained and can be found in the latest version of the license.
Next comes a term under 7(b). In the license, this section outlines the ‘Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it’. Satisfying the condition generally means having an ‘about’ dialog which would credit the author, for example:
Portions of this software are © 2024 Example Corp.
Attribution Notice:
This product includes the “ExampleDB Engine” developed by Example Corp.
(https://example.com). This notice must be displayed in all user interfaces
that present legal notices or credits.
Such a requirement is reasonable: it does not put an undue burden on the recipient, limiting their freedom to use, study, modify or distribute.
However, the logo requirement added by ONLYOFFICE does not fit within the well defined scope of the terms under Section 7(b):
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
This is a rather contradictory requirement. It requires including the product logo, which is trademarked by ONLYOFFICE, while explicitly not granting any rights to use the ONLYOFFICE trademark. Or, to put it differently:
- you MUST include the product logo
- you do NOT get permission to use the logo in any way
Of course, it is impossible to abide by these conflicting requirements. Thus shipping the code like this would violate the terms of the AGPLv3 in Section 10:
You may not impose any further restrictions on the exercise of the rights
granted or affirmed under this License.
This is also the view of the license author, the Free Software Foundation:
The GNU GPLv3 Sec. 7(b) does make it possible to extend the requirement, but only to cover items that can be deemed as “reasonable legal notices or author attributions.” The terms “legal notice” and “author attribution” cannot be stretched to cover completely different items. “Legal notice” normally means a notice advising a person of their rights or obligations. “Author attribution” is an identification of the natural person who is the author of the copyrighted work. This means that, for example, links leading to different materials are not intended to benefit from Sec. 7(b). Apart from some specific situations, logos are neither “legal notices” nor “author attributions” as normally understood.
Earlier this week, this position was explicitly confirmed by the FSF in a blog about the case with ONLYOFFICE:
This obligation to “retain the original Product logo” is not included in Sec. 7(b) of the (A)GPLv3, nor in any other parts, as an (A)GPL-compliant additional term, and is therefore considered a further restriction of the (A)GPLv3.
From their side, ONLYOFFICE has acknowledged the tension between brand protection and open-source freedoms in a discussion with isitreallyfoss.com. There they clearly stated their wish to “remain committed to open-source principles while also ensuring that our brand identity is protected and that users receive a clear and consistent experience”.
Clearly, ONLYOFFICE aims to avoid confusion about the origin of its software. The display of a notice to that end in the “About” dialog, as Section 7(b) was designed to allow, should satisfy that requirement. However, including a trademarked logo in the interface would limit what recipients can do with the software. This might of course be intended, to avoid harm to the brand of the creator of the software. If that is the goal, the FSF recommends to just use Section 7(e) when including a logo in the terms:
The GNU GPLv3 Sec. 7(e) should rather be used if a licensor’s goal is to preserve — to some extent — links or logos in the program’s interface. This section acknowledges that the licensor can decline,
“to grant rights under trademark law for use of some trade names, trademarks, or service marks.”
Putting trademarked links or logos in the program’s interface and explicitly declining a trademark license thus gives the trademark holder a way to stop uses harmful to their reputation, balanced by the users’ option to remove the trademarks in order to distribute modifications freely. That way of securing attribution (or even advertising) benefit is consistent with the GNU GPLv3’s intent to protect software freedom. People who modify the software still have some flexibility to decide how notices included in ALNs are displayed in their software, and other developers cannot use Sec. 7 to try to take that flexibility away.
To balance the rights of the user with those of the author, section 7 gives the users the “option to remove the trademarks in order to distribute modifications freely.” Quoting this specific section from the license:
If the Program as you received it, or any part of it, contains a notice
stating that it is governed by this License along with a term that is a
further restriction, you may remove that term.
In conclusion, to achieve compliance with Section 10 of the AGPLv3, Section 7 of the AGPLv3 allows the conflicting logo requirement to be removed.
This is what Euro-Office opted to do. You can read this reasoning in the commit that executed the change reproduced below where we also address the last section of the CC BY-SA 4.0 license mentioned for GUI assets like icons and illustrations. This Creative Commons license is well known and respected, and we do not see it pose any issues for Euro-Office.
Commit message:
Logo retention requirement (Section 7(b)):
Section 7(b) permits requiring preservation of "legal notices or
author attributions". A product logo is a trademark/brand element,
not a legal notice or author attribution. It therefore exceeds the
scope of 7(b), qualifies as a "further restriction" under Section 10,
and may be removed.
Trademark disclaimer (Section 7(e)):
Purely declaratory — the AGPLv3 does not grant trademark rights in
any case. The disclaimer creates no affirmative obligation on the
licensee and removing it changes no rights or obligations. There is
no legal basis requiring its preservation.
Contact address:
The postal address of Ascensio System SIA is informational only.
No provision of the AGPLv3 requires downstream recipients to preserve
the original licensor's contact details.
Appropriate Legal Notices reminder:
This paragraph merely restates the obligation already imposed by
AGPLv3 Section 5(d). It is not a Section 7 additional term and its
removal does not affect compliance obligations, which derive from
the license text itself.
The Section 7(a) warranty exclusion and CC BY-SA 4.0 notice for GUI
assets are retained as they are substantive terms that modify licensee
rights and obligations.
To paint the actions we took into a picture:
Conclusion
The AGPLv3 was written to protect the freedom of software users and to ensure that freedom cannot be quietly taken away through the back door of additional terms. Section 10 is explicit: no distributor may impose further restrictions on the rights the license grants. Section 7 provides both the scope of what can be added, and the remedy when something goes beyond that scope.
In this case, the remedy is clear and mandatory. The logo retention clause — which requires including a trademarked logo while simultaneously withholding permission to use that trademark — qualifies as a further restriction under Section 10. Distributing Euro-Office with that clause intact would therefore put us in violation of the AGPLv3. Removing it, as per Section 7, is required for compliance with the license, and required to preserve the full rights of every recipient of Euro-Office to run, study, modify, and redistribute the software.
We will credit Ascensio System SIA and all other contributors prominently in the appropriate places, including the “About” dialog, which is both the right thing to do and consistent with what Section 7(b) was designed to allow. We remain open to dialogue about how to do so in a way that works for everyone. But the foundation of that dialogue must be the AGPLv3 as written, and the freedoms it was created to protect.