Skip to content
This repository has been archived by the owner on Mar 3, 2022. It is now read-only.

Guidance on copyleft versus permissive licensing #5

Closed
jbarciauskas opened this issue Mar 10, 2016 · 38 comments
Closed

Guidance on copyleft versus permissive licensing #5

jbarciauskas opened this issue Mar 10, 2016 · 38 comments

Comments

@jbarciauskas
Copy link
Contributor

It would be useful for the policy to provide guidance on whether there is a preference for copyleft versus permissive licenses, either in general or in specific cases. Permissive licenses such as the Apache license are often well-suited to libraries, drivers, and other utility-type codebases that are unlikely to have much standalone business value, in order to gain as much adoption and standardization as possible. Some organizations will not touch non-permissively licensed code.

The AGPL and related copyleft licenses are useful for preventing a company from taking code created by the government, modifying and extending it, and creating a business out of that fork. It is best suited to code that has sophisticated functionality and substantial business value, as it requires any modifications to be made public, potentially benefiting the government in the future.

Making these distinctions clear and providing guidance will hopefully enable each individual agency and team make the best decision for their particular case.

@emartinez-usgs
Copy link

Licensing is certainly important and tricky. While I can see the benefit of placing copyleft restrictions, there are also downsides. Guidance I have received in the past was to use the most permissive license such as CC0 1.0 Universal.

@kupiakos
Copy link

It's a great idea to bring up the AGPL. For those unaware, the AGPL (Affero GPL) differs from the standard copyleft license (GPL) by requiring those using but not receiving the software (for example, from a website) to be provided the source as well.

The choice of which license style to prefer could rely on what the US Government plans to gain from OSS.

Providing the source as a permissive license allows individual companies to use the code published by the US government and integrate it into their product without much legal issue, which could be used to improve existing businesses, but not necessarily directly benefit the US Government. However, the basic benefits of allowing access to the source are still seen, such as simpler bug fixes and security review by the general public. In this regard, it is similar to releasing under the public domain.

However, providing the source under a copyleft license would require companies to also publish their source of products being used. Companies which already encourage copyleft licenses would be unaffected. It would have the benefit of any changes being made (and distributed) to be open so the US Government to review and integrate changes made externally. All companies integrating the software would inherently benefit from changes made by other companies. A license like the LGPL, which allow linking for software libraries, could be worth looking into as well.

@mathisonian
Copy link

👍 for permissive licensing. It doesn't seem like copyleft is in the spirit of what the gov is trying to do here.

@brittag
Copy link
Contributor

brittag commented Mar 11, 2016

To help provide background for this conversation (speaking in my personal capacity as a member of the public): an important consideration when interpreting the "Federally Funded Custom Code as Open Source Software" section is actually explained in the next section, "Government-Wide Code Reuse": "Under U.S. copyright law, all software created by Federal Government employees as a “government work” is in the public domain and, accordingly, is not subject to copyright protection in the United States."

In other words: U.S. "government works" cannot have a typical open source license (such as Apache or AGPL) in the U.S., since those licenses are built on top of copyright, and government works cannot be copyrighted -- they must be in the public domain. The international status of US government works is not specified by default, which means that can be an ambiguous area. CFPB and 18F choose to apply CC0 internationally, as the closest available approximation of a universal public domain dedication (see the CFPB source code policy and the 18F open source policy).

This USA.gov page about how copyright applies to U.S. government works is pretty helpful for more background on this complicated topic.

@mathisonian
Copy link

following on @brittag's post, it seems like there are different considerations for software created by the government vs software created by contractors for the government.

Under U.S. copyright law, all software created by Federal Government employees as a “government work” is in the public domain and, accordingly, is not subject to copyright protection in the United States.23 However, software created on behalf of the Government by third parties, such as private sector vendors, is subject to copyright protection. Currently, the majority of software solutions used in the Federal Government are developed by third parties.

source: https://sourcecode.cio.gov/Reuse/

they make additional statements about the requirement of such software in the previous link, but it is not clear to me if the government would need to choose a license for code created by vendors? maybe someone more expert on the subject can clarify

@ghost
Copy link

ghost commented Mar 11, 2016

Hello all.

Given what has already been said about the public domain status of government software, it would seem that this initiative really can only legally pertain to software made by third parties in contract with the government.

I also want to say that I disagree with @mathisonian about the "spirit of what the government is trying to do here" and the license types. I feel that copyleft actually epitomizes the spirit of what the government is trying to do here, which as I perceive it, is:

1: to promote innovation and the sharing of useful knowledge

2: to return to the public the value that is owed back to them for their tax contributions

With these things in mind, I see three major problems with permissive licenses in this context.

1: The first major problem is that, regarding the promotion of innovation, permissive licenses make it easier for companies to free ride on what is essentially a public good without contributing back. They also, by definition, allow companies to restrict the continued flow of positive externalities. Conversely, copyleft licenses are designed to keep positive externalities flowing (the caveat being that companies often have less incentive to adopt copyleft software in the first place since they can't make their own privatized version).

2: Regarding giving the public the value of their taxes, permissive licenses in this case would allow random companies and foreign governments to benefit off the taxpaying of American citizens without necessarily contributing any value back. I personally am fine with that, but it seems like something that will feel unfair to many.

3: The third major problem with permissive licenses in this context is that since we are only talking about third party contractors, we need to consider their incentives. If everything they wrote for the government was permissively licensed, then it is easy to see how their competitors could benefit from their partnership with the government at their expense. In other words, competing companies could free ride on the investments of companies that write software for the government. (Specifically, by making closed source versions of the software that contain a few added improvements; under copyleft licenses, they would need to publicize any improvements or modified versions they make, thus reciprocating positive externalities back to the original company and to the public in general). Because of this, companies would be disincentivized from partnering with the government in the first place, and it may consequently be more difficult and more costly for the government to find contractors as a result.

Also, as a note, I just want to say that I am very impressed that the white house is essentially taking public comments from random people on the Internet with this github thing, and I'm also amazed at the civility and intelligence that the discussions here have had so far. Kudos

@eximious
Copy link

It seems like you'd need to look at two different types of code production.

  1. For brand new tools built by government developers, I think copyleft makes the most sense. It encourages any entity that builds on top of the code to contribute back. Much of the bureaucratic overhead in government systems comes from constantly reinventing tools and systems to handle and then homogenize similar data. Copyleft could help eliminate a ton of waste, while encouraging state and municipal governments to choose open source tools too.

  2. When working with large existing projects, the most efficient and effective strategy is to contribute your patches back upstream using a compatible license. You get to share the burden of maintenance and use tools built for other situations created by other platform contributors. For example, stuff built to work with the linux kernel, should be GPLv2 since that's the norm there. Apache extensions should use the Apache license, AGPL add-ons should use the AGPL license, and so on. Projects don't like (and usually don't accept) incompatibly licensed patches.

@esplinr
Copy link

esplinr commented Mar 11, 2016

Some of the arguments for copyleft licensing in this thread forgets that businesses are members of the public, and businesses are also tax payers. Commercializing a non-exhaustible public good does not prevent the public from receiving the value of that good.

It is great when developers or organizations choose to release the results of their work under a copyleft license. But work created for our government with our tax dollars should be usable by us with no strings attached.

Work created by the government enters the public domain because the public paid for the creation of that work. This allows tax payers the maximum amount of flexibility in deriving value from that work. Public databases can be incorporated into private databases, public facts can be used in copyrighted articles, and public imagery can become part of a work of art copyrighted by an artist who saw how to improve on the original.

Currently, government contractors can keep ownership of their code in order to prevent it being used by the public. Work done under contract for the government should be under a license that allows similar usage as that allowed by work granted to the public domain, including commercialization by those who want to make additional investment.

Requiring a copyleft license would fundamentally change how works created for the government would feed into industry, with downstream impacts on innovation and job creation. Permissive open source licenses are much closer to the current and well understood policy of how works created by the government get used by the public.

@epon93
Copy link

epon93 commented Mar 12, 2016

@esplinr
Businesses are not prevented from using software that is copyleft licensed, and they are not prevented from using it for commercial purposes. The only reason they would not want to use copylefted software is if they want to restrict the rights of their users and refuse to contribute to the public with their changes, which does in fact go against the purpose of this. I do agree that permissive licenses are more akin to what the government's current policies are regarding copyright, and if they're going to go with permissive licensing, they might as well just make the source code public domain, which would still be considered Free and Open Source Software.

@mikeBeviBevi
Copy link

Great licencing conversation everyone. Here, I suggest developing an open government licence. It seems that this is the appropriate thread for that conversation.

@ocdtrekkie
Copy link

I would find my taxpayer dollars to be misspent if they led to copyleft licensing. There's no justification for activist licenses in government work. MIT or Apache should be preferred.

@eximious
Copy link

If by "activist" you mean non-neutral, then I don't really know what sort of license you could possibly advocate for. The MIT and Apache licenses aren't neutral, they just facilitate different norms amongst the various entities that participate in creating software together than the copyleft licenses do. As far as being neutral for government work, I don't believe there is a commonly used license with any sort of partisan leaning. Even if there were, I would recommend against choosing a license that favored one political party over another.

@ocdtrekkie
Copy link

@eximious Permissive licenses grant access to use something in a way that they don't infringe on the rights of the original developer. Copyleft licenses take away rights from the person using it based on certain open source activists' insistence on imposing their views on other people.

Good open source software users will contribute code back to the upstream when it's relevant to do so, and hopefully open source derivative works out of habit. However, a copyleft requirement that they do is kind of like a gay marriage ban: The suggestion that everyone else must follow my moral code.

Code meant for the public benefit of taxpayers in a capitalist nation shouldn't be beholden to a policy that code is restricted from reasonable commercial business models, many of which entail closed source. Taxpayers should get code that meets the needs of the taxpayers, many of which are, in fact, businesses. Many of those which, do not wish to contribute the code they write back to open source.

@ocdtrekkie
Copy link

@Skinnay You do not have the right to dictate what I do with the code I write. Copyleft is effectively the developer of the original work claiming ownership of all derivative code as well. It's incredible, actually, that the GPL has persisted at all. Even if I am going to open source all of my code (which I tend to), I would never use GPL-licensed code, because it poisons the well, and forces me to exert control on people who fork my code as well.

(Note that the TPP likely makes the GPL outright a non-option to government entities as well.)

Copyleft is one developer asserting a claim to everyone else's code as well, and stating that they no longer have the right to develop code privately. While you claim that you can use copylefted code commercially, again, it poisons the well on code they write themselves, severely limiting their ability to establish a business model that can't be easily circumvented.

It's a radical position that heavily limits the value of the code produced by the government, and the ability for taxpayers to use it. While copyleft supporters can use permissive code and usually choose to enforce copyleft on their own forks, it poisons the code for everyone else. The government has no good interest in copylefting code, and should not do it. To the extent that this policy should mandate permissive licensing.

Also, bear in mind the notion above, that government-produced code is supposed to be public domain. Permissive licensing is the best way to bring government contractors close to that goal.

@ghost
Copy link

ghost commented Mar 17, 2016

Copyleft doesn't give original authors any rights over derivative works. People wouldn't have to merge their contributions to the original project, nor would they even have to release source code at all if their use was "fair use". They could also perfectly well relicense the modified source code as a completely new copyleft software, which again, the original developers would then not have any control over.

I am not going to repeat the entire comment I already wrote about this, but I will just say that

Why is copyleft "poisonous" and "controlling" while proprietary licenses are okay in your mind? It seems nonsensical.

is a very good point. The idea that permissive licenses are 'more free' is completely self-contradicting. I can see some reasons why permissive licenses might be preferable to some companies in some situations, but being 'free' is definitely not one of them.

https://en.wikipedia.org/wiki/Game_theory
https://en.wikipedia.org/wiki/Public_good
https://en.wikipedia.org/wiki/Copyleft
https://jxself.org/what-is-copyleft.shtml
https://copyleft.org/
https://www.gnu.org/licenses/copyleft.en.html

@ocdtrekkie
Copy link

@Skinnay On the contrary, I can build Windows applications with a development studio which is closed source, integrates closed source code into the compiled output, that only recently started open sourcing some components, and yet never has Microsoft decided what I must do with my code.

You are perhaps again forgetting that the 'public interest' does include business, and copyleft is not appealing to businesses. Who are, may I remind you, taxpayers. The government's potential interest in making this code open source would be to:

A. Solicit feedback, contributions, and bug fixes from the community, to create a better government infrastructure.
B. Make it possible for American citizens to benefit from the code they have paid for the development of.

Neither interest is served by extending control over derivative work. The dampening of use of code caused by copyleft would not only reduce the number of parties able to use the code, but consequently reduce the number of parties familiarizing themselves with the code and discovering issues. It's in businesses' best interest to upstream fixes and features to common code anyways, since they can benefit from other contributions on top of that. And upstreaming code that is useful to everyone and contributing back to your source is good citizenship, I agree, but forcing it on people, or trying to, using copyleft, is not in keeping with a country that values individual freedom.

My understanding is that the case for outright 'public domain' has some basic issues, in terms of being recognized legally. Otherwise, I am fully in favor of public domain code, much as I am with permissive licensing.

@ocdtrekkie
Copy link

@2394y234y23894y2389 The crux of the issue is:

They could also perfectly well relicense the modified source code as a completely new copyleft software, which again, the original developers would then not have any control over.

You have told them what their software is permitted to be licensed under. This is a moral wrong.

@ghost
Copy link

ghost commented Mar 17, 2016

On the contrary, I can build Windows applications with a development studio which is closed source, integrates closed source code into the compiled output, that only recently started open sourcing some components, and yet never has Microsoft decided what I must do with my code.

No one decides what you do with copyleft code either, that is the entire point in fact. Also, you can do all the things you mentioned with copyleft tools, so you seem to be very confused. See the links.

...extending control over derivative work.

This is exactly what copyleft, by definition, forbids.

You have told them what their software is permitted to be licensed under. This is a moral wrong.

You are forgetting that by your own logic, relicensing it in the first place is a moral wrong. Do you honestly not see the contradictions in your statements?

@ocdtrekkie
Copy link

@2394y234y23894y2389 I am not sure what contradiction you see. If you release your software with a permissive license, I can release my software however I like. If you release your software with a copyleft license, I am forbidden to license my software however I like. One option grants rights, one option restricts them.

@ghost
Copy link

ghost commented Mar 17, 2016

Unlike you, I do not think copyright or (permissive open source licenses) are morally wrong. But in my opinion permissive licenses are self-defeating in most contexts, and I think copyleft is a much more pragmatic approach. If you don't want software to be copyleft then I don't see any point in open sourcing it at all.

The whole point of open source/free software, as I see it, is to not have any restrictions. So if you're going to just allow restrictions back in, why not just make it restricted in the first place?

The contradiction I am seeing is this:

You apparently don't want restrictions on code - but you are ok with letting parties take code that had no restrictions and adding restrictions to it.

You say you want the the government to open source their stuff so the American public can benefit from it being openly available, and then say that you are ok with third parties making their own versions and not letting people benefit from them, and not letting it be available.

@ocdtrekkie
Copy link

@2394y234y23894y2389 Open source is about sharing. Sometimes you share without expecting someone to share back.

Not having restrictions is public domain or permissive. Not having restrictions, as a key requirement of not restricting people, means you can't control what they do with it. Even if you dislike how they chose to use it.

If someone makes a closed source fork of your software, they aren't adding restrictions to it. The open source, permissively-licensed code is still there. It hasn't changed because someone benefit from it. Their code is closed, yes. But they didn't take anything from you. There was no loss, only gain.

@ocdtrekkie
Copy link

@Skinnay Because you don't have the right to tell other people how to license their code! I am flabbergasted that the idea that other individuals shouldn't have to bend to your will is a confusing concept. The public interest is not served by being shackled by the government.

Let me give you an example. https://github.com/mailpile/Mailpile is a solid, open source webmail client development project. Unfortunately, after soliciting feedback, they decided to adopt copyleft licensing.

Now, either way, we get Mailpile, a great open source mail client. However, had they chosen a permissive license, not only would we have Mailpile, a great open source mail client, various mail providers with proprietary sites would be able to elevate the quality of their sites, by integrating or adopting Mailpile code in addition to their own software. Permissive licenses allow the baseline quality of a product category to be elevated, for everyone. Unfortunately, copyleft prevents that.

I get the impression you believe the GPL serves public good by forcing people to open source their derivative works, but that's not a reality. Due to high profile cases like VMware, private companies are increasingly more aware of the dangers the GPL poses to their businesses, and know to stay away. Which means, we don't get any more benefit from copyleft licensing software. All we do is remove the ability for others to benefit. That is why the GPL is a poisonous license. GPL is like a trap, but it's a trap with a big warning sign on it, that everyone knows is there.

It's a spiteful and selfish license. It says "If I can't benefit from it, neither can you". This is not what open source is about. Open source is an amazing community of sharing, often generosity. Contributions are welcomed, offered, not forced by legal term. Why would you ruin this?

@ocdtrekkie
Copy link

@Skinnay Businesses are, in fact, essentially prevented from using GPL software, because to use it risks poisoning their own work with the GPL as well. There is nothing inherently "against the public" about choosing not to open source derivative works. Stallman is not the law of the land in this country.

@ghost
Copy link

ghost commented Mar 17, 2016

Businesses are, in fact, essentially prevented from using GPL software, because to use it risks poisoning their own work with the GPL as well.

This is so incredibly ignorant, naive, and empirically wrong that it makes me think you are a troll.

You're comments appear deliberatively inflammatory and it seems increasingly clear that you are stating contradictions and making outrageous claims that nobody believes in on purpose. Here are some strawmen:

Businesses are, in fact, essentially prevented from using GPL software, because to use it risks poisoning their own work with the GPL as well.

spiteful and selfish license. It says "If I can't benefit from it, neither can you".

If you release your software with a copyleft license, I am forbidden to license my software however I like.

policy [GPL] that code is restricted from reasonable commercial business models

copyleft requirement... [suggest that] everyone else must follow my moral code.

Copyleft is one developer asserting a claim to everyone else's code as well, and stating that they
no longer have the right to develop code privately

Copyleft licenses take away rights from the person using it based on certain open source activists' insistence on imposing their views on other people.

"activist license"

GPL... forces me to exert control on people who fork my code as well.

Every single one of these is factually wrong. These are not things that permissive-people and copyleftists disagree about. These are not things that the OSI and FSF disagree about. These are objective facts that you can see by reading the licenses.

I also see no purpose in bringing up Stallman or gay marriage except as an attempt to insult and offend people.

For the record, I am not saying that all permissive-license-advocates are like this guy. I respect that people can disagree about these things. I respect and have no qualms with other people who have given thoughts and arguments in here about the advantages of permissive licenses. But this troll obviously doesn't actually have any serious opinions about the matter. I will not bother responding to the tantrum in this thread anymore.

@ocdtrekkie
Copy link

@2394y234y23894y2389 Thanks for all the ad hominem. Everything you quoted from me is effectively true of the GPL. Copyleft forces other developers to also use copyleft. This is not something you can claim isn't true. It infects derivative code with itself, by definition. This isn't up for debate.

I think I didn't explain the gay marriage analogy to the thread, so while it made sense in my head, it didn't come through here. Let me see if I can explain.

For the sake of argument (and sane pronouns), you are against gay marriage. You're entitled to that opinion. You're entitled to voice that opinion. And I would suggest, that if you disapprove of gay marriage, you certainly have the right to not marry someone in your own gender. However, you are not allowed to prevent other people from marrying each other because of your opinion. That crosses the line into a pretty clear wrong.

In the same way, if you believe proprietary software is somehow inherently wrong, you're entitled to believe that. (Most of the taxpayers funding this development would disagree with you.) You're entitled to voice that opinion. You're entitled to release all of your code as open source software. (And I encourage it!) But you are not entitled to force other people to release their code as open source software. That is again, a clear moral wrong.

And crucially, this discussion is about what the United States government should do. Forcing people to release their source code would arguably go so far as to be unconstitutional. (See Apple v. FBI.) It would be not only in general, wrong for the US government to adopt a copyleft policy, it would be actively opposed to the very ideals this country was founded on.

@ocdtrekkie
Copy link

@Skinnay Nobody is suggesting the government release code under proprietary license. You seem to be confusing the works we are talking about licensing, and the works you wish to control by proxy. This is about getting the government to release open code. Forcing others to release open code is not really a viable government activity.

@ocdtrekkie
Copy link

I would also point out that releasing source code is not specifically 'more beneficial to the users', nor is not doing so 'restricting' users. Because the vast majority of 'users' cannot read, write, modify, or build the code. Who does that for them? Other developers. The benefit of open source to other developers is what inherently improves the lives of the users.

@ocdtrekkie
Copy link

@Skinnay And it is not the government's place to tell others what they should do with their code. That's distinctly against the very spirit of our country's most fundamental laws. And excluding a large percentage of the public from benefiting is certainly not serving the public interest.

@kupiakos
Copy link

I have no issue with either copyleft or permissive licenses. I view this similar to any other public work - it should be in the public domain. Works placed in the public domain are for the good of the country.

Take Pride and Prejudice, a work placed in the public domain. Anyone can view it and study it without restriction. It is effectively public knowledge available for everyone for any purpose, like mathematical laws. An author (and publishing company) can also create a derivative work, Pride and Prejudice and Zombies. They can then copyright and sell this derivative work. It is now theirs, although based on public knowledge.

Given the benefit and implications of the public domain, I argue a permissive license is the most logical, especially since it would preserve consistency with existing policies of government-published works.

@ocdtrekkie
Copy link

If you are creating a licensing model hostile to a business model, you are excluding those businesses. Heck, you're excluding individuals who simply don't wish to publicize their bad hackjob code but maybe want to share their app with their friend or something.

(Honestly, I think copyleft should be rejected as nonfree. But I'll accept that's just my personal opinion, and I won't try to force it on others.)

@ocdtrekkie
Copy link

Let me pose another question. Would you suggest that if the government should chose to use copyleft licenses, that the government should take people to court to enforce their control over derivative licensing if someone violates the GPL?

@ocdtrekkie
Copy link

I'm not saying anything untrue. You're nitpicking semantics because you don't seem to want to the realities of what you're advocating for.

If you want to push for copyleft software @Skinnay, you should be prepared to justify excluding the vast majority of the software industry from being able to use it in their products. Because no matter what technicality you are trying to define, that is the practical outcome.

@ocdtrekkie
Copy link

I see you ignored answering whether or not you want to see the government file lawsuits over GPL violations if they release their code under the GPL.

That's another critical point. The government has no vested interest in enforcing the GPL, and certainly isn't intending to set aside legal fees to do so. So we're not only talking about pushing your views on others, but asking the government to sue people if they get out of line... If it's even legal for the government to do so.

@johnmod3
Copy link

I'd rather folk pick a license that makes sense versus codifying one license to use for all. Preferably pick a license that encourages maximum reuse

@Scotchester
Copy link

Code written by federal government employees is public domain for good reason, as others have mentioned (public trust, transparency, etc. etc.).

If we have the opportunity to put a policy in place for contracted code, why wouldn't we apply the same reasoning and require that it also be dedicated to the public domain?

@camerons
Copy link

Lets not debate copyleft verses permissive licences every time an government projects is initiated. Can this policy please tackle this hard question once, then put government wide guidance in place which all programs can refer to. The guidance should probably look like a flowchart, with "if X criteria" use "Y licences" else ...
The guidance should go as far as to prioritise preference for licence selection.

@ocdtrekkie
Copy link

@camerons Agreed. As many have pointed out, government produced code is supposed to be 'public domain'. Therefore, if a specific license must be selected, it should be as close to that definition as possible.

@royfielding
Copy link

I think it is fair to say that any guidance the OMB might provide regarding permissive versus copyleft licensing would add almost no value to the overall policy. Government creations will be public domain, which can't be copyleft (by definition), but could certainly be included within a copyleft work. What I would prefer to see is a general statement of permission for Federal employees to contribute to an externally maintained work under a combination of "public domain" (to the extent that is true) and "whatever open source licenses currently apply to that work" (for anything not deemed public domain). That would help us bypass lawyers who mistakenly think that US Copyright law implies that Federal employees cannot sign a contributor license agreement.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests