8

I'm currently looking at implementing a file sharing solution for a customer. I'd like to base it on one of the many currently-available solutions, many of which are AGPL licensed.

However, I've found these AGPL applications tend to be dual-licensed as commecial software, and the AGPL edition has license terms seemingly designed to discourage use.

Let's look at Pydio as an example. They insist that the main interface has the text string "Pydio Open Source File Sharing - Free / Non-Supported Edition" on every page.

They do not allow any other method of crediting them, either via different phrasing (the term non-supported scares customers), or a different location (say, a license info window that pops up when you click "Pydio Community Edition").

Is requiring this specific text an AGPL compatible license term? Their license is here.

If so must all derivative works credit in the exact manner the author requests? Even if they only make use of a portion of the code?

migrated from softwareengineering.stackexchange.com Jan 17 '17 at 15:12

This question came from our site for professionals, academics, and students working within the systems development life cycle.

  • 4
    Can you link to the Pydio page that specifies the attribution requirements? – Robert Harvey Jan 16 '17 at 20:21
  • 1
    Their license is here but I can't find specific mention of that string. People have asked about this on their forum and the typical reply from the author is this – Scotch Jan 17 '17 at 15:17
  • The closest term I can find is 7b. There is also a useful definition of 'appropriate legal notice' in section 0. – Scotch Jan 17 '17 at 15:23
10

This is a detailed analysis, but note that I am not a lawyer, cannot give you reliable advice, and am only looking at the terms of the AGPL, not at relevant law in your jurisdiction.

Companies that publish a “community edition” under the AGPL routinely interpret that license more restrictively than sensible. This is understandable since they are protecting their revenue model.

What is Pydio asking you to do?

Their LICENSE file only includes the AGPLv3 but no additional terms. The source code includes no obvious notices.

In the Pydio FAQ, they ask that the copyright notice be kept:

Can you explain me the AGPL V3 licensing ? Can you validate my use of your AGPL Software ?

Unfortunately, we can not give legal advice on AGPL licensing. We suggest you to seek legal advice.

Can I modify and/or integrate Pydio inside my open-source software?

As long as your software license is compatible with the AGPL, that the modifications are contributed back to the community, and that you leave the Pydio copyright link on the user interface, yes you can.

Can I use Pydio for free on my website, as a company?

As long as you do not modify Pydio deeply (modifications like theming or little tweaks are not taken into account), and as long as you leave a link to the source code (i.e. to this website, except if you want to host the source code on your own website) on the user-interface (this is the particularity of AGPL against GPL), yes you can.

For example, if you change the logo of the splashscreen (using the gui.ajax plugin options) and let the « Pydio Community - Free non supported version © C. du Jeu 2008-2016 - https://pydio.com » mention, this will be ok. If you want to remove this reference, you should contact us.

In the forum thread you linked, an author advises an user:

According to the AGPL license, please leave this mention untouched.

Similar, here:

You are not supposed to remove the copyright mentions, nor the “by Pydio”. It’s part of the AGPL license.

In another post, someone who seems to be involved with Pydio tells:

It is my understanding, that removing a copyright mention is infringing on copyright, especially since our Enterprise license exists to give you the right to do exactly that.

Analysis of their claims

The AGPLv3 defines the concept of an Appropriate Legal Notice:

An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

It seems Pydio is relying on this mechanism to enforce the presence of their notice. It:

  • mentions the copyright,
  • clumsily mentions the lack of warranty (“non supported version”), and
  • very indirectly points to the source code and license by providing a link to the project homepage.

However:

  • They are not directly informing users of their rights under the AGPL. The Pydio home page doesn't even mention the license. The only directly user-visible mention of the AGPL seems to be inserted by some JavaScript code related to some progress bar (/core/src/plugins/gui.ajax/res/js/ui/prototype/class.AjxpBootstrap.js), and that isn't even a link. As such, I'd contest whether this constitutes an Appropriate Legal Notice that would be protected from user-edits.

  • They ask that the notice is not removed, even though the AGPL explicitly allows supplying the notice through a menu item. This restriction to keep the notice in the footer of each page definitively goes beyond the AGPL.

    Technically, Pydio does not ask you to keep the notice there, they just ask you to keep the notice.

While copyright notices are not required to assert copyright, it is probably correct that they should not be falsified or changed to wrongfully claim copyright.

What does the AGPL actually require?

If you modify Pydio or create a work based on Pydio (a “covered work”), this covered work will also have to be AGPL-licensed. This includes your complete website. Section 13 makes it clear that the AGPL likely requires you to make your website source available to all users:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.

In general, this offer would be grouped with other legal information on a separate page or in a settings menu. However, for a website I'd recommend that this offer is mentioned on every page (ideally, you are always just two clicks away from the source code or the license). A short text that links to the separate page would be appropriate in every footer:

Copyright 2017 your-organization. All rights reserved. Source code available under the AGPL.

In particular, note that the source code powering a website, the content of a website, and the look and feel of a website might be copyrighted/licensed/trademarked differently. For example Stack Exchange (which is in the reverse situation: proprietary engine, proprietary look and feel, but open user contributions) makes this very clear:

site design / logo © 2017 Stack Exchange Inc; user contributions licensed under cc by-sa 3.0 with attribution required

The Pydio copyright notice does not have such distinction and could erroneously invoke the impression that they would own copyright to the contents of your site. It is perfectly understandable and within your rights that you want to avoid this.

Since your website would be based on Pydio, the corresponding source for your website would include Pydio. This also applies to the case where you modify or fork Pydio. By notifying your users in accordance with the AGPL that your website is AGPL-licensed, you satisfy the requirement of notifying your users that Pydio is AGPL-licensed.

Since we must make the source code available, this involves “conveying modified source versions” and section 5 applies. There are some requirements:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. […]

d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; […]

Point a) could actually be understood as a requirement to update that copyright notice.

This also raises two questions:

  • Are there any Appropriate Legal Notices that must be displayed?
  • Are there “applicable section 7 additional terms”?

Since this is not entirely clear, I would rather be careful. For the sake of the argument, I'll consider the copyright string they insert into every page as an Appropriate Legal Notice and would therefore recommend to continue displaying it.

However, I see no reason to keep the manner in which they are displaying the notice. In fact, such a copyright notice on every page would be confusing. It would be better to list it together with other licenses in a dedicated page. This is similar to how most programs deal with open source licenses (e.g. in Firefox, the “About Firefox” dialogue links to about:license, which lists all libraries with their copyright notices and licenses. This seems to be compatible with putting the Appropriate Legal Notices into a menu item).

So, does Pydio come with additional terms? Additional terms to the AGPL may be additional permissions, which is not relevant here. Alternatively, the relevant copyright owner may add 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.

[…] If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

Most of these points do not apply here, but b) allows terms to be added “requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it”.

However, the Pydio LICENSE and source code does not contain or mention any such extra terms. Any references to the requirement of maintaining that weird copyright string are either hidden in the project FAQ or in forum discussions. They would not be apparent when only looking at the Pydio source. The claim that the AGPL in itself requires you to allow the Pydio copyright notice to be injected into every page is most likely false.

It is also questionable whether that specific string would qualify as an appropriate legal notice or a reasonable legal notice or an author attribution in the sense of the AGPL. After all, some additional terms may conflict with the AGPL in which case they may be ignored – the list quoted above is an exhaustive list of allowed additional terms, as far as they aren't exceptions to other requirements in the AGPL.

It would therefore be technically OK to move that copyright notice to a less intrusive place, but it is clearly against the author's intention – it seems they accidentally misapplied the AGPL with regards to this notice and forgot to specify any additional terms under AGPL section 7. Instead, the only license specified is AGPL, without any additional terms.

If you follow the license as-is and exercise your right to remove the string, you will run into two risks:

  • legal action against you by the copyright holder, which is expensive and annoying for you and your client even if you did not violate the license.
  • lack of support by the Pydio community.

It may therefore be wise to respect this wish anyway, or to at least move their notice to a more convenient but still well-visible place in your page layout, since that would satisfy the intention of the Pydio notice.

How would I add additional terms to an AGPL-licensed project?

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year>  <name of author>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

This note, not the document containing the AGPL full text, is the relevant license of the program! To add extra terms, append them to this license note, e.g.:

Additional terms under GNU AGPL version 3 section 7:

<extra terms>

It should go without saying that these extra terms should be written by a copyright lawyer.

Such extra terms are common in C or C++ libraries that make an exception for header code, since the code in headers is compiled into dependent programs. Adding extra terms is rarely seen, since complying with extra terms requires substantial additional effort by licensees.

2

Let's look at Pydio as an example. They insist that the main interface has the text string "Pydio Open Source File Sharing - Free / Non-Supported Edition" on every page.

That's Pydio's requirement, not the FSF's. They do that for exactly the reason you stated: to discourage its use. The AGPL itself has no attribution requirements.

The AGPL does not allow modification of its terms, especially those that would restrict the freedom of its users, so adding the attribution requirement makes it no longer an AGPL license, though they can certainly create their own variation of the AGPL and call it something else, like The Pydio Open Source File Sharing - Free / Non-Supported Edition License.™

Further Reading
GNU Affero General Public License v3 (AGPL-3.0) from tldrlegal.com
Can I modify the GPL [or AGPL] and make a [customized] license?

  • 2
    Note that the (A)GPLv3 has the concept of Appropriate Legal Notices that may not be removed from an user interface. Additionally, modified versions that offer remote network interaction (aka. web apps) must prominently offer the source of that modified version. If Pydio was a page template and that string were a legal notice, removing it would be not OK – but I don't think it is such a notice, and it should be replaced by a link to the web app source code that then discloses the Pydio dependency (the GPL doesn't require advertisement, just disclosure). – amon Jan 16 '17 at 20:40
  • 1
    Anyway, these are thorny legal issues that we are not qualified to answer. And if we are, Software Engineering isn't the place for these answers, which is why I voted to close the question – your answer would make more sense on Open Source. – amon Jan 16 '17 at 20:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.