Contributor License Agreements Ruin Most FOSS Projects

Brodie Robertson
26 Aug 202413:08

Summary

TLDRThe video script discusses the nuances of open source and free software movements, emphasizing their differences despite shared goals. It delves into the complexities of permissive and copyleft licenses, and the role of Contributor License Agreements (CLAs) in project contributions. The script highlights various types of CLAs, from Fedora's to the KDE project's fiduciary licensing agreement, and the Developer Certificate of Origin, illustrating how some CLAs can be beneficial while others may infringe upon developer rights. It advises caution and understanding of CLA terms before signing, advocating for a balanced approach to open source contributions.

Takeaways

  • 😀 Open source and free software movements have different ideologies and goals but share some overlap in their licensing principles.
  • 🔄 Permissive licenses allow anyone, including companies, to take a project and make it proprietary, applying equally to all parties.
  • 🔒 Copyleft licenses prevent additional restrictions from being added to the code, ensuring freedom for all users and developers.
  • 📜 Contributor License Agreements (CLAs) are additional documents sometimes required for contributing to a project, varying greatly in their terms.
  • ⚠ CLAs are often viewed negatively due to cases where they undermine developer rights or supersede licenses with unfavorable terms.
  • 📝 The terms of a CLA can range from restrictive and harmful to developers, to neutral or even beneficial in some cases.
  • 📑 Examples of CLAs include the Fedora Project Contributor Agreement and the KDE Project's Fiduciary Licensing Agreement, each with different implications.
  • 🛑 The Developer Certificate of Origin is considered an 'anti-CLA' as it does not grant additional rights and simply confirms the contributor's rights to the code.
  • đŸš« Some CLAs, like the one from Discourse, can be harmful as they grant companies extensive rights to re-license and use contributions in any way they see fit.
  • đŸ€” It's crucial for contributors to read and understand CLAs, or seek guidance if they are unclear, as the terms can significantly impact their rights.
  • ❗ A negative reaction to the term 'CLA' is common due to misuse, but it's important to remember that not all CLAs are inherently bad and some can be neutral or positive.

Q & A

  • What is the main difference between open source and free software movements?

    -The main difference lies in their ideologies and goals. While both movements promote software that can be freely accessed and modified, open source focuses on practical software development and collaboration, whereas free software emphasizes user freedom and ethical issues.

  • How do permissive licenses affect both companies and individual developers?

    -Permissive licenses allow anyone, including companies, to take an open source project, make it proprietary, and claim it as their own. However, this also applies to individual developers, who can do the same with the project.

  • What is a Contributor License Agreement (CLA) and why is it sometimes viewed negatively?

    -A CLA is an additional document that contributors are often required to sign before they can contribute to a project. It is sometimes viewed negatively because it can be used to undermine developer rights, supersede the license, or impose other unwanted terms.

  • Can you provide an example of a CLA that is considered neutral or positive?

    -Yes, the Fedora Project Contributor Agreement and the KDE Project's Fiduciary Licensing Agreement are examples of CLAs that are considered neutral or positive because they do not take away rights from the original authors and are used for the protection of the project.

  • What is the Developer Certificate of Origin, and how does it differ from other CLAs?

    -The Developer Certificate of Origin is a simple document that states the contributor owns the code and it is licensed under an open source license. It does not grant additional rights to the project maintainers and is often considered an 'anti-CLA' because of its minimal requirements.

  • What are the implications of a CLA that allows for re-licensing of contributions?

    -A CLA that allows for re-licensing gives the project or company the right to change the license terms of the contributed code, which can be problematic as it may go against the original intent of the open source or free software movement.

  • Why is the FSF's copyright assignment considered a form of CLA?

    -The FSF's copyright assignment is considered a form of CLA because it requires contributors to assign their copyright to the FSF, giving the FSF the right to protect and manage the code, but it is trusted because of the FSF's commitment to free software.

  • What does the KDE fiduciary license agreement aim to address?

    -The KDE fiduciary license agreement addresses the issue of full copyright assignment by allowing contributors to assign economic rights to the KDE project while retaining moral rights, ensuring that the project cannot change the licensing terms without the author's consent.

  • What is the recommended approach when encountering a CLA for a project?

    -It is recommended to read the CLA document thoroughly and understand its terms. If unsure, seek advice from someone knowledgeable. If the CLA is unbalanced or overly restrictive, it might be best to avoid contributing to that project.

  • How does the discourse CLA differ from other CLAs mentioned in the script?

    -The discourse CLA is more restrictive and grants the company extensive rights, including the ability to re-license the contributions under any terms, which raises concerns about the project's commitment to open source or free software principles.

Outlines

00:00

📜 Understanding Open Source and Free Software Licenses

This paragraph delves into the distinctions between open source and free software movements, acknowledging their differences while recognizing the respect due to their supporters. It discusses the permissive and copyleft licenses, which apply to all parties and can be used by companies to make proprietary versions of projects. The paragraph introduces Contributor License Agreements (CLAs), explaining their variable nature and their role in supplementing project licenses when necessary. It provides examples of CLAs from Fedora and KDE, highlighting their different approaches and implications for contributors' rights.

05:01

đŸ›Ąïž The Role and Implications of Contributor License Agreements (CLAs)

The second paragraph explores the concept of CLAs in more depth, contrasting the negative perception of some CLAs with the positive or neutral impact of others. It explains how CLAs like the Fedora Project Contributor Agreement and the KDE Fiduciary Licensing Agreement operate, focusing on their terms and the rights they grant to projects. The paragraph also touches on the Developer Certificate of Origin used in the Linux kernel, describing it as a lightweight 'anti-CLA' that ensures contributors have the right to submit their code. The discussion emphasizes the importance of understanding the terms of any CLA and the potential risks of signing away too many rights, as seen in the Discourse CLA example.

10:04

⚖ Evaluating CLAs and Their Impact on Open Source Projects

In the final paragraph, the script addresses the controversy surrounding CLAs, particularly those like the Discourse CLA that grant extensive rights to the company, potentially undermining the principles of open source and free software. It argues that while some CLAs can be beneficial or neutral, others may be detrimental to the spirit of open source contributions. The paragraph encourages contributors to read and understand CLAs, seek clarification when needed, and consider the trustworthiness of the project and its management. It concludes with a call to action for viewers to share their experiences with CLAs and their thoughts on the topic.

Mindmap

Keywords

💡Open Source

Open Source refers to a software development approach where the source code is made available to the public with the right to use, modify, and distribute it. In the video, the term is used to discuss one of the two main movements in software licensing, emphasizing the collaborative nature of development where anyone can contribute to and benefit from the code. The video contrasts open source with free software, highlighting their differences in ideology and goals.

💡Free Software

Free Software is a term coined by the Free Software Foundation (FSF), which focuses on the freedom of the user to run, study, share, and modify the software. Unlike open source, which can be more focused on practical collaboration, free software is more about the ethical and liberty aspects of software use. The video discusses the philosophical differences between free software and open source, noting that while they have different goals, they share some common ground.

💡Permissive License

A permissive license is a type of software license that allows for modification and redistribution of the software, even for commercial purposes, without requiring the derivative works to be open source. The video explains that while a permissive license can be used by companies to make proprietary versions of a project, it applies equally to everyone, including individuals who can also take advantage of the open source code.

💡Copyleft License

Copyleft is a general method for making a program (or other work) free, and requiring all modified and extended versions of the program to be free as well. The video mentions copyleft licenses as a way to prevent others from adding additional restrictions to the code, ensuring that derivative works remain free and open source.

💡Contributor License Agreement (CLA)

A Contributor License Agreement (CLA) is a legal contract between an individual or corporation and a project or company, specifying the terms under which intellectual property rights are granted to the project. The video discusses CLAs as additional documents that contributors may be required to sign before they can contribute to a project, noting that the terms of a CLA can vary widely, from very restrictive to very permissive.

💡Fiduciary Licensing Agreement (FLA)

The Fiduciary Licensing Agreement, as mentioned in the video, is a type of CLA used by the KDE project. It is designed to protect the rights of the contributors while allowing the project to legally defend the software. The video explains that unlike a full copyright assignment, an FLA assigns economic rights to the project, allowing it to act on behalf of the contributors without taking ownership of the code.

💡Developer Certificate of Origin (DCO)

The Developer Certificate of Origin (DCO) is a lightweight and simple document that serves as a CLA. The video describes it as an 'anti-CLA' because it does not grant additional rights to the project maintainers. Instead, it serves as a record stating that the contributor has the right to submit the code and that it is appropriately licensed under an open source license.

💡Re-licensing

Re-licensing refers to the act of changing the license under which a piece of software is distributed. The video discusses the implications of CLAs that allow for re-licensing, which can be a contentious issue in the open source community. It points out that some CLAs, like the one used by Discourse, give the project maintainers the right to re-license the code under different terms, which can be seen as a threat to the original open source or free software ethos.

💡Copyright Assignment

Copyright Assignment is the process by which the rights of a copyright are transferred from one owner to another. The video mentions that the FSF's approach to copyright assignment is a form of CLA, where contributors assign their copyright to the FSF, which can then protect the code in court. This is contrasted with other CLAs that might allow a project to change the licensing terms of the code.

💡Discourse CLA

The Discourse CLA is highlighted in the video as an example of a CLA that is seen negatively by the open source community. It is described as granting extensive rights to the company, including the ability to re-license the code under different terms, which can be against the principles of open source and free software. The video suggests that such a CLA might disqualify a project from being considered truly open source or free software.

Highlights

Open source and free software are fundamentally different movements with different goals but some overlap.

Permissive licenses allow companies to make proprietary versions of open source projects, but this applies to everyone.

Copyleft licenses prevent adding additional restrictions to the code, applying to developers and users alike.

Contributor License Agreements (CLAs) are additional documents sometimes required for project contributions.

CLAs are often viewed negatively due to attempts to supersede licenses or strip developer rights.

The terms of a CLA determine its impact, with some being benign or even beneficial, while others are harmful.

Examples of CLAs include the Fedora Project Individual Contributor License Agreement and the KDE project's fiduciary licensing agreement.

The Fedora Project Contributor Agreement does not assign copyright but provides a license to use contributed code.

The KDE fiduciary license agreement assigns economic rights to the project while retaining moral rights for the author.

The Developer Certificate of Origin is a simple CLA that confirms the right to use and contribute the code.

Discourse's CLA is controversial for granting the company extensive rights, including the ability to re-license contributions.

Unbalanced rights in a CLA, such as the ability for a company to re-license but not the contributor, can be problematic.

CLAs like the one used by Discourse can lead to debates about whether a project is truly open source or free software.

It's important to read and understand CLA terms, seeking clarification if necessary, especially from reputable projects.

Some CLAs, like the Developer Certificate of Origin, are considered neutral or even positive and fill gaps in contribution rights.

CLAs are not inherently bad, but they are often misused, and it's crucial to understand their implications for contributions.

The video encourages viewers to reflect on their experiences with CLAs and to engage in the discussion about their use.

Transcripts

play00:00

Say what you will about the differences in ideologies behind open source and free software

play00:05

They are very very different movements

play00:08

But I can completely respect supporters of both of these movements because

play00:15

Even though they are very different movements with very different goals. They do have some overlap, but still fundamentally different

play00:24

Licenses under both of these banners apply equally to all parties involved

play00:30

Yes, a permissive license allows a company to come along, yoink the project, make it proprietary and make it theirs

play00:39

But that applies to everybody. You can do the exact same thing. And yes

play00:45

A copy left license stops people adding additional restrictions to the code

play00:50

But that applies to everyone the developers and also you

play00:55

However, sometimes the terms of the license are not good enough for certain projects

play01:00

So in comes would refer to as a contributor license agreement

play01:05

Often just referred to as its acronym

play01:08

C-L-A

play01:10

Now oftentimes when the term CLA is used it is used in a very negative light and I understand why

play01:18

Because oftentimes you hear about them. They are a very negative document that are trying to destroy developer rights

play01:24

They're trying to supersede the license and do other things which

play01:28

Frankly should not be there in a free software or an open-source project

play01:33

But like many things out there a CLA is

play01:38

Only as bad as the terms of the document

play01:41

There are cases where CLA are not as bad. There are cases where CLA are good

play01:48

And then there are cases where they absolutely suck and you should run the other way

play01:52

But in short a CLA is an additional document that often you're required to sign not always

play01:58

There are some very key exceptions before you're allowed to contribute to the project

play02:02

So here are a couple of examples prior to 2011 all Fedora contributors were required to sign the Fedora project

play02:12

Individual contributor license agreement

play02:14

This was then superseded by the Fedora project contributor agreement with the earlier document being based on Apache's

play02:22

Individual contributor license agreement. As of 2008 the KDE project makes use of the fiduciary licensing agreement made by the FSFE

play02:32

Now this is one of those cases where it is optional

play02:36

Most people have not signed it. There are a lot of people that have

play02:40

But you do not have to sign this document now

play02:45

Arguably things like the FSF's copyright assignment are a form of CLA and most was made as kind of a

play02:53

anti-cLA

play02:55

Depending on who you ask the developer certificate of origin from the Linux foundation used in the Linux kernel is

play03:02

Also a kind of CLA but when people use the term

play03:06

Contributor license agreement CLA what they are often referring to are things like what discourse has

play03:14

Where you are basically signing away all of your developer rights

play03:19

Now all of these documents are very very very different. There is no one set thing

play03:26

This is a CLA. Let's take for example the Fedora project contributor agreement

play03:32

This document does not assign your copyright to the Fedora project

play03:36

What it does is provides them with a license to make use of your code

play03:41

It does not allow them to re-license the code outside of the terms of the license you already have so if you have code

play03:48

that is licensed under a

play03:51

GPL license it can be licensed under the terms of the GPL license if it's MIT

play03:57

That is a more permissive license and it can be re-licensed in a more permissive way

play04:02

But it doesn't give them any additional rights unless we are talking about unlicensed code in the case of code

play04:09

That does not have a license

play04:11

They can provide a default license and this license can be changed in short

play04:16

You're saying I wrote this code you're allowed to use the code and you have to follow the terms of my license

play04:23

And if I don't provide a license then you can license the code in a way you see fit

play04:28

Let's go and look at the KDE fiduciary license agreement now

play04:33

This one might seem intimidating because it is four pages long

play04:37

one of those pages is just your information and

play04:40

The first page and most the second page is just definitions

play04:43

So the FSFE made this document to deal with the issues with full copyright assignment

play04:49

So with the FSF for example, you assign your copyright to the FSF

play04:55

Basically, they own your code now and this in the case the FSF is done for a good reason

play05:01

If they need to go and protect that code in court if they own the code

play05:05

This is much easier to do and generally you're going to trust the FSF is going to try to keep that code as free

play05:12

software and isn't going to re-license it in a way that is now

play05:17

Completely against the terms

play05:19

Many other organizations you probably wouldn't trust with that

play05:23

But this comes with an issue if the FSF is ever taken over and they decide, okay

play05:29

We're just gonna go proprietary now. We don't actually care about free software anymore

play05:34

They own all of the code and they can do whatever they want with it

play05:39

They can re-license it they can do anything because they own the copyright

play05:44

This document is made to deal with that

play05:46

So instead of doing a full copyright assignment

play05:50

What you are doing is assigning the economic rights over that code to the KDE project

play05:55

Whilst retaining the moral rights of the code the rights to be identified as the author

play06:02

So they can go and operate legally on your behalf if they ever need to go to court to go and fight some

play06:09

Copyright troll or something like that. They can easily go and do so but you still own the code

play06:15

This also means because you are still the author

play06:18

They can't go evil down the line and then re-license all of the code

play06:24

Also, it is an optional document

play06:27

So if for whatever reason you don't like the terms of it you don't have to sign this one now as for the developer

play06:34

Certificate of origin as I said, this is so light. This is so simple. This is the entire document

play06:41

It hasn't half loaded. There isn't a longer version of it. This is everything. It is so basic

play06:47

It is often described as the anti-CLA because it doesn't provide any additional rights

play06:54

basically all it is saying is

play06:56

You own the code and it has a suitable open source license and to the best of your knowledge

play07:03

It is based upon works that you have the right to see you have the right to use

play07:08

So it's a fork of some open-source project under a compatible license

play07:13

It's not based on leaked code from a code base

play07:16

You shouldn't be seeing you're allowed to use the code and the contribution is being provided by you or on

play07:22

behalf of somebody else who wants the code to be contributed that's all

play07:27

No additional rights. It is basically just saying we have the right to use the code

play07:32

You have the right to use the code

play07:34

We agree on this. It's pretty much to say if somebody does contribute code that

play07:40

Maybe wasn't allowed to be in there. Maybe they intentionally did so. It is a very easy way to say

play07:47

Okay, you agree to these terms don't do this again

play07:50

And if it is malicious get out of here now in the past few years

play07:54

whilst there has been some disagreement about the Fedora projects contributor agreement about whether it's doing too much whether the

play08:01

Automatic licensing of unlicensed code should really be done whether that really makes sense

play08:08

for the most part all of these documents are

play08:11

considered at least

play08:14

neutral if not positive even the case of the FSF's copyright assignment

play08:19

specifically because it's being done with the FSF if you're doing a copyright assignment to say

play08:26

Microsoft you might have a very different opinion and

play08:30

That's where things like the discourse CLA come in because the discourse CLA is

play08:37

Why people have an instant negative reaction to when they hear the term CLA?

play08:44

If you ever see this phrasing right here you grant to the company this being a discourse in this case a non-exclusive

play08:53

Irrevocable worldwide royalty-free

play08:57

Sublicensible

play08:59

Re-licensible, that's the big one transferable license under all of your relevant

play09:04

intellectual property rights to use copy prepared derivative works of

play09:09

Distribute and publicly perform and display the contributions on any licensing terms including without limitation a

play09:16

open-source licenses like the GNU GPL v2 and be

play09:20

Proprietary or commercial licenses except for the license is granted here in you reserve all right title and interest in and to the contributions

play09:30

This right here is the big problem

play09:34

Re-licensible because what you are saying here is I

play09:38

Don't actually care about the terms of the license

play09:41

If the company does not like the license and they want to go and change it to something that's more suitable

play09:47

Maybe they want to go from GPL v2 to MIT maybe a proprietary license

play09:53

You have given them the right to do so the problem with a CLA in this case is the unbalanced rights

play10:01

You can't go and re-license

play10:03

But they can when you see cases as extreme as this I think it is fair to argue that the project you're looking at

play10:12

Might not even be an open-source project anymore. I definitely don't think it's a free software project, but

play10:19

There's at least an argument to be had about whether or not something like this

play10:23

Really still qualifies as either of those categories

play10:26

And I think as a general rule because there are documents like the discourse CLA

play10:32

It makes sense to immediately have a negative reaction when you hear the term

play10:37

But as we saw from things like the fedora project the KDE project even in some cases the FSF or the Linux kernel

play10:47

CLA isn't always an inherently bad concept

play10:52

They just often get very very misused when you see something like discourse. I would honestly recommend

play11:00

Running the other way. I don't consider this a free software or open-source project

play11:06

If you have the ability to re-license my code now some people might disagree

play11:12

Some people might be fine with it

play11:14

But what is very important is if you see a document like this

play11:19

Read the document and try to understand it if you don't understand it

play11:24

Try to find someone else who knows what is being said someone who's hopefully broken it down if it's a good project

play11:31

They're gonna provide an FAQ for example fedora does exactly that if they don't provide an FAQ

play11:38

If they don't explain what all this means

play11:41

Honestly, I would trust them even less. I am not here to defend CLA

play11:46

Most of them suck. This is just a fact

play11:50

But sometimes you might run across something like the developer's certificate of origin and it just doesn't really matter

play11:57

It's completely okay. It's gonna be pretty rare, but maybe it happens. Anyway, if you

play12:04

Learn something today

play12:06

Let me know

play12:07

Down below. Have you signed a CLA?

play12:10

Would you ever sign a CLA and would you be okay with some of the ones we've seen here where they don't really provide any

play12:17

Additional rights is just more like filling in some of the gaps

play12:20

I would love to know so if you liked the video go like the video

play12:24

And if you really liked the video and you want to become one of these amazing people over here

play12:28

Check out the Patreon, SubscribeStar and LiberaPay linked in the description down below

play12:33

That's gonna be it for me and

play12:37

CL away

play12:39

I don't know what to do with the outro sometimes

Rate This
★
★
★
★
★

5.0 / 5 (0 votes)

Étiquettes Connexes
Open SourceFree SoftwareCLADeveloper RightsSoftware LicensesFedora ProjectKDE ProjectFSFLinux KernelCopyright AssignmentContributor Agreement
Besoin d'un résumé en anglais ?