Fabric API

Fabric API

108M Downloads

Fabric Copyright Notice Is Inaccurate

grondag opened this issue · 3 comments

commented

Disclaimer: I am not a lawyer.

While researching licensing options for my own project I learned that with modern copyright law, copyright must be assigned in writing or else it automatically remains with the original author. If multiple authors produce a work collectively, then each of them holds copyright.

Employers can claim copyright on "works for hire" if they are paying employees to produce the work. Some employers will include this in employment contracts, and some will disclaim copyright for work that is being contributed to FOSS projects on company time.

In any case, Fabric has no mechanism or requirement for authors to assign copyright, and so the copyright claim in Fabric license headers, at best, might refer to the specific presentation of the work in a collected form, analogous to how a literary anthology may have a copyright while the authors of individual works retain their own copyrights.

These FSF links offer some perspective and background on copyright of FOSS works and why assignment matters.
https://www.fsf.org/blogs/licensing/FSF-copyright-handling
https://www.fsf.org/bulletin/2014/spring/copyright-assignment-at-the-fsf

This has little practical effect on the Fabric license. The Github terms of service already ensure that contributors agree to license their contributions under the prevailing license of the project:

Whenever you add Content to a repository containing notice of a license, you license that Content under the same terms, and you agree that you have the right to license that Content under those terms.

I think it is reasonable to assume that this grant is perpetual and non-exclusive, but I don't think the TOS state that directly.

This means Fabric contributors retain their rights to relicense, modify and redistribute their respective works independently of Fabric. Fabric retains a license to modify and redistribute the work under the generous terms of Apache 2.0, but has no claim of exclusivity nor would Fabric have rights to subsequent modifications made by the original authors unless those are also contributed to Fabric (or separately made available under a compatible license.)

So while Fabric remains secure from a license perspective, I am not sure it is helpful to claim a copyright when it has not been assigned to the project. At best, it confuses those who want to determine actual copyright status, and at worst it may cast doubt on the Fabric's overall licensing scheme if it is ever challenged.

My suggestion, and what I have started to do for my own FOSS projects is to use a more generic but accurate copyright notice:

Copyright © Original Authors

In the project documentation I also explicitly state that contributors, while retaining their copyright, agree there are no take-backs:

By adding content to this repository, contributors grant the ____ project a perpetual, irrevocable and non-exclusive license to the contributed code under the terms of the ____ License.

If contributors do not hold the copyright of contributed content, then by contributing they assert the content can be licensed under the terms of the ___ License and should also update the attribution section, below, as necessary.

Obviously, Fabric gets to make its own decisions - this is merely an observation and a suggestion. In those cases where I am modifying or redistributing code that is the Fabric project I intend to reproduce the Fabric header but advise readers that the copyright claim is suspect, as explained above.

For code that I wrote, I would probably be within my rights to omit the Fabric header, but by now most Fabric modules have multiple contributors and it is useful for readers to know the larger history of the code so including it, concerns on copyright aside, seems like the right and expedient thing to do.

commented

Going to close this, as I don't think the discussion is going to go any further. Feel free to object.

commented

For code that I wrote, I would probably be within my rights to omit the Fabric header

You can do whatever you want with code you wrote, unless you granted an exclusive license to someone else. But I don't really see that spelled out anywhere when you contribute to Fabric. Your authorship is also unaffected by whatever you write in the license header. So ofcourse you can. This also varies from jurisdiction to jurisdiction.

commented

I don't think this is a major issue, the copyright notices don't imply any exclusiveness, specificity, original authorship or take away from the contributor's rights to use their code elsewhere as they wish. The notice pattern Fabric uses certainly helps the project to defend against rogue attempts to disclaim the intent to grant a suitable license since it is present at the top of every file with a reference to both the project and the license itself. As such it shouldn't be inferior to your form of license grant documentation, I'd rather consider it harder to argue since yours is not nearly as exposed and may have been missed. Putting a generic notice like "Original Authors" really serves no point, copyright is already automatic and you lose the ability to find the project it's been a part of.

There are IMO nicer forms of license headers like the one used by ASF (https://apache.org/legal/src-headers.html) that'd be more precise, but unfortunately that isn't well known and once a project adopted a specific pattern it is practically impossible to change due to their special status under the license terms. So overall I'd say what we have is not optimal, but good enough and not feasible to adjust.