FredrikNoren / ungit

The easiest way to use git. On any platform. Anywhere.
MIT License
10.45k stars 640 forks source link

Trying a new open source model (Ungit license change) #974

Closed FredrikNoren closed 6 years ago

FredrikNoren commented 7 years ago

Hi everyone,

I just changed the Ungit license from MIT to LYC (edit: now called Faircode), which is a semi-commercial license. You can read about the change here: https://medium.com/@fredriknoren/trying-a-new-open-source-model-93a1a5a16a40, code change is here: https://github.com/FredrikNoren/ungit/commit/cf582d48952f49df21cadf71e54efe4ed2e52413

Feel free to post comments / thoughts / concerns here. I'm running this experiment because I want to find a better model for anyone who works on open source, so happy to hear what people think! I'll leave this issue open for a few days.

waldyrious commented 7 years ago

Hi @FredrikNoren. For future reference, could you point out who has agreed to the license change? Not that this bothers me personally, but I suspect it could be a potential concern for others, especially since this change aims to introduce a financial aspect to the project.

I'd assume at least the top 6 contributors, who have all contributed more than 10 commits to the project, would be a reasonably conservative estimate for the group of people who have contributed non-trivially to the IP of the project, and would therefore need to consent to having their contributions relicensed (the pedantic estimate would be all 60 contributors, while even the most liberal estimate couldn't be less than you, @codingtwinky and @campersau, IMHO).

exsilium commented 7 years ago

@waldyrious , IANAL, but MIT is a very permissive license that has very few restrictions in place. The contributions done under MIT will continue to be MIT licensed and the license change of Ungit to LYC is only effective from https://github.com/FredrikNoren/ungit/commit/cf582d48952f49df21cadf71e54efe4ed2e52413 going forward. For those who don't like the change of the license, are able to fork the project and keep rolling the MIT badge.

Having said that, I do understand the personal motivations for the license change, but I dislike the trend in general - License Zero. There are various efforts going on monetizing personal projects but the permissive license of BSD/MIT is something that allows someone else (individual or business) to build something else out of the code or include code without limitations - LYC will not allow that going forward. Putting in place some arbitrary clause which is revenue based is in my mind silly and counter-intuitive because it is something that can make you unlicensed or at breach of license at some future point.

It seems like the term of Open Source is becoming a little vague. I can see parallel with Cloud9v3, which has the source in GitHub but the license allows you to only use it for personal or Plugin development purposes.

I think Facebook proved with the React.js and BSD+Don't-sue-me-with-patents-license how messy licenses can become if you add attributes to it, opting for the MIT in the end. 🎉

As LYC is not listed as an approved license by OSI, please don't call Ungit Open Source going forward.

FredrikNoren commented 7 years ago

@waldyrious I spoke to @codingtwinky and @campersau before making the change.

@exsilium The idea for the license was to make it as permissive as possible, while still opening up a revenue stream from big companies. It's supposed to enable an individual to clone Ungit, make changes to it (if they want), re-sell that or sell it as part of a product, and only if they make > $1M / year do they ever need to pay a license fee back. And even at that point it's a license fee of $90 / month. Do you read the license differently?

I had not heard of license zero before, looks interesting. I'll have to take a closer look at that.

When it comes to calling it open source: I'm not sure I agree with that webpage's definition, and as far as I can tell they weren't able to trademark it (https://opensource.org/pressreleases/certified-open-source.php). The source code of Ungit is still available for anyone to poke around with, modify, copy and do what they want with. The only change from MIT is that if you use it to power a business you need to contribute back.

Good comments so far! I'd love to hear more thoughts; this is very much an experiment in my mind. If people feel like it's a horrible idea we can always change it back. But my dream with this experiment is to enable a lot more people to live of off their open source work; I think that would be really cool.

exsilium commented 7 years ago

@FredrikNoren , just to be clear. I'm not challenging your personal motivations for changing the license nor your dream to experiment. Although I can't deny the hope that you would change the license back at a future date, I still hope it brings you the solutions you are hoping for. đź‘Ť

OSI has been around for almost 20 years as a global non-profit organization for promoting Open Source Software, the very fact that you allow people to tinker with the Source doesn't make the application open source :) It is a philosophical question, Indeed - there are many people who also feel differently from OSI but still, I was making my point that you are defining your application as open source against the majority consensus of what is regarded as open source to begin with.

PS! Probably you need to fix this: https://github.com/FredrikNoren/ungit/blob/2eda2a4025f7ba2f2fa3dac9d3190e80e0dc4031/package.json#L94

FredrikNoren commented 7 years ago

@exsilium Whoops! Thanks, I've fixed it now :) (package.json)

Hirse commented 7 years ago

I have created ungit-extension for Brackets and VSCode. With the new license, I have a few questions:

  1. As the owners of those editors (Adobe and MS) certainly qualify for the restriction are they allowed to redistribute an extension containing the ungit code in their "extension stores"?
  2. In case of Adobe, I think they are also using the same source for a commercial version of the editor which supports the same extensions.
  3. The license specifies "using" ungit as requiring a commercial license, do I need to include a warning in my extension that large companies cannot use them without that license?

This license is making things rather confusing. Additionally, I am not sure if it is semver-conform to change it in a patch-level release.

jung-kim commented 7 years ago

To publicize my point of view:

  1. I'm not a lawyer but I do think this complicates things
  2. I wish for little and infrequent license changes
  3. I'm not sure if this will help or hurt community because this is all new to me
  4. I just want to write codes to help people
FredrikNoren commented 7 years ago

@Hirse That's exactly the types of tough questions I was hoping we'd see with this! I'm going to do them in reverse order. However I really have to point out here that I'm not a lawyer and I'm just offering my interpretation.

  1. I think there are three ways to view an extension as yours.

    If we interpret it as a new product, which is using Ungit, then you can license your product under whatever license you choose (you can license it under MIT for instance). Both MIT and LYC requires a notice to be included, but that's all. This is how vscode includes notices: ttps://github.com/Microsoft/vscode/blob/master/ThirdPartyNotices.txt, you can probably do something similar; a text file somewhere and a link to it from your extension.

    If we interpret it as a sublicense, it's also quite straightforward. Both MIT and LYC permits sublicensing, so you may choose whatever license you want (kind of the same thing). The same thing here applies; you just need to include the notice somewhere.

    The third interpretation is that you're redistributing Ungit. In this case it would be the Ungit license which would be applicable (just like how we're being redistributed through npm). In this case I think you would just have to refer to the Ungit license.

    To the best of my knowledge you can choose between these. The only restriction is the >1$M/year restriction, meaning that if you make more than that you need to pay the Ungit license fee to do any of this.

  2. I think this depends on the above. But regardless of which one you choose, my best guess would be that the license would be between you (or us) and the end user, not with Adobe/MS (I'm not sure what their terms for using the extension store say but I would assume it says something like that). The situation is kind of the same with us and npm; we use it to distribute Ungit but the license agreement is directly between us and the person using it.

  3. Under LYC it shouldn't matter if a company is using a project for a free product or paid product, the same restrictions apply.

All of the above are my interpretations and guesses, lmk if it makes sense.

FredrikNoren commented 7 years ago

@codingtwinky

  1. It does, and I'm sorry for that. I hope that the complication is worth it in the end though, if it can help other open source devs live of their work.
  2. Yup.
  3. I really hope it doesn't! But I feel that it's important a community can have a discussion about topics like these without it being a bad thing.
  4. Me too! :) And I want to help others be able to do that too.
Hirse commented 7 years ago

Thanks for your interpretations.

I have this license section, would you think that is enough? Do you see any other changes I might have to make?

FredrikNoren commented 7 years ago

@Hirse Yeah, I don't think you need more than that.

FredrikNoren commented 7 years ago

Just so everyone's aware: I'm renaming License Your Code to Faircode (hence the link changes in the license file and updated badge in the readme). I made a new landing page that I hope explains the concept as well: https://faircode.io/

exsilium commented 7 years ago

So it's the same thing but with a new name. Got it.

I still believe that if you want to monetize on Ungit (or any personal project for that matter), a better option from changing a license would be to register OpenCollective group and/or setup a Patreon account and let the community chip in whichever way they can.

As a fyi, for now, i've forked from ungit to mungit purely due to philosophical issues and all MIT compatible fixes are welcome!

FredrikNoren commented 7 years ago

@exsilium I'm actually experimenting with open source licensing options for Faircode as well: The idea is that you'd be able to keep your open source license but Faircode would help you charge companies who use the code (even if they legally aren't required to, it may be in their interest if they're using the code).

The reason I don't want to use Open Collective and Patreon is because I don't think they fundamentally scale well. They do work for big, well known projects, like vue.js, who's founder has a very successful Patreon campaign. But even he has said that he doesn't think it's the model that can work for most people (https://changelog.com/rfc/12).

With Faircode, the idea is that instead of convincing many people to pay small sums; you charge a few companies bigger sums. And I think that a model like that could enable a lot more people to live off of making code as independent open source developers. I think that's both in developers interest (less work to "market" your thing to a big community) and in companies interest (increase chances the software you're based on is stable and long lived).

exsilium commented 7 years ago

Yes, Vue.js is an excellent example of success and if you view their webpage you'll notice that many of the Patreon sponsors are actually businesses - not sure how many of them cross the magic $1M revenue bridge, but still.

I don't really see how Faircode.io helps with the scaling issue but as it's a young platform and everything is an experiment it would be too early to judge. Allowing an open source licence without attributes would be a good direction as any custom license is something that potentially turns customers/backers away from the project. Good luck!

waldyrious commented 7 years ago

With Faircode, the idea is that instead of convincing many people to pay small sums; you charge a few companies bigger sums.

It's worth noting that this might actually not be desirable from the point of view of long-term sustainability and stability of projects supported in this manner. As Scott Santens (who has a successfully built a Patreon campaign) points out, community-supported projects actually benefit from having their income spread out over many people contributing small sums:

[My Patreon income] relies on about 150 people as I write this. [...] For anyone with a normal job, they can be fired by one person. As a result, their income can fall from $1,000/mo to $0/mo. For me, I would have to be "fired" by 150 people to fall from $1,000/mo to $0/mo. If "fired" by one person, I can fall from $1,000/mo to $990/mo. It is this decentralization of income that creates for me a greater sense of security that is far greater than a standard full-time job situation.

[This observation] prompted me to create a new milestone on Patreon, where my new goal is not to gain a larger income [...], but to instead create a more widely distributed income floor.

FredrikNoren commented 7 years ago

@waldyrious Yeah I think that's a great point. My long term plan to address that is to create something like "collectives" in Faircode, where multiple people can share income from their various projects. That way, the idea is, you can get more stability long term. I want it to be possible to even spend like a year or two building something, but with the security of a "collective". But this is just an idea at this point, I need to solve a lot of the basics to even get there first :)

jpschewe commented 7 years ago

. I know developers that would like to use the software and may even contribute, but they're unlikely to be able to get their company to pay the license fee so they won't be using it. Given that @exsilium forked and MIT version, I expect that's what they will be using at work now.

FredrikNoren commented 7 years ago

@jpschewe It is mentioned in the changelog, version 1.1.32. This is all part of an experiment to see if it's possible to make a living as an open source developer by licensing the software to companies (well, opinions differ on what qualifies as open source, but whatever it would be under the Faircode License). And if peoples reactions is to simply fork the project and switch to that, than I'd definitely consider the experiment failed :) (That's probably what would happen to other open source devs too)

jpschewe commented 7 years ago

Kind of, it says "Show license notification on first start". It doesn't say that the license changed. I suppose as soon as someone upgrades and sees the new license they can uninstall.

FredrikNoren commented 6 years ago

@jpschewe No not there, in version 1.1.32: "1.1.32: Update license #974". I made add a comment to the latest version as well to make it easier to find

jpschewe commented 6 years ago

OK, I see it there now, thank you. I retract my comment about it being a bait and switch.

bakkerthehacker commented 6 years ago

I dislike this change and I am opposed to it entirely. I will not be using any future ungit versions released under this license.

Faircode is not a free software license nor is it an open source license.

FredrikNoren commented 6 years ago

@bakkerthehacker Can you elaborate on why you feel that way? I'd love to get everyone's opinion on this.

bakkerthehacker commented 6 years ago

The core idea is to change open source licensing; from free for everyone to free for individuals and small businesses, but for profit for bigger companies

This change FUNDAMENTALLY excludes the licensed code from being open source, specifically because it 5. is discriminating against a group of persons and 7. does not follow distribution of license.

When it comes to calling it open source: I'm not sure I agree with that webpage's definition, and as far as I can tell they weren't able to trademark it (https://opensource.org/pressreleases/certified-open-source.php).

I can understand a few people not agreeing with or recognizing OSI as having any authority on what constitutes open source code and what does not. However, there is a very, VERY large and powerful body of people that have come to an agreement in regards to this matter, and have agreed upon such a governing body. Decisions made by OSI do influence legal proceedings throughout the world.

The source code of Ungit is still available for anyone to poke around with, modify, copy and do what they want with. The only change from MIT is that if you use it to power a business you need to contribute back.

This statement is just false. Ungit is NOT available for anyone to do these things, only groups which the license deems acceptable. Part of this group acceptance is revenue numbers, and part of it is a commercial license grant. This is discrimination, whether you think it is or not.

We will not be enforcing this in any way

This is not how licenses work. You cannot choose to not enforce licenses. Companies cannot choose to ignore licenses.

For companies, my hope is that it will be an easy way to pay for the open source that runs their business; a single combined invoice for all open source code they use each month.

This is, by far, one of the least easy ways for a company to contribute money. Changing the license ADDS a TON of additional work that must be done before you see any money. Talking to legal teams, auditing the actual text of the license, managing the commercial license grant, expense reporting. These are just a few of the things I can think of that would make this licensing sytem completely non-viable or just not worth the effort. What happens if https://faircode.io/ goes down? What happens if you decide (for whatever reason) to not grant the commercial license? What if critical infrastructure depends on this?

Adding a donate button would be much easier, both from a large-company-standpoint and a developer-who-wants-to-buy-another-developer-a-beer standpoint. Ungit has been insanely useful, both for work and for hobby projects. If you had a donate button on the ungit page, I would definitely have already used it. And I probably could have gotten my employer to match the donation.

On top of all of this, there is a very large problem in general with editing licenses and adding additional clauses to them. The two biggest examples I can think of are the patent clause in the react license and the "not Evil" clause in the JSMin/JSLint license. These additional clauses sneak under many peoples radar as the license looks very similar to their non-edited counterparts. As silly and unenforceable as "The Software shall be used for Good, not Evil" seems, it can easily prevent large organizations from using the code. These seem to be the same organizations that you are expecting to receive money from. I can't really see any organization that the $1M revenue clause applies to actually going forward with using this code.

These are the reasons I am opposed to the Faircode license.

FredrikNoren commented 6 years ago

@bakkerthehacker Thanks for a very well articulated response!

I'm not sure I agree with the terminology of discrimination. Many companies give away a free version of their product and no one would call that "discrimination". For instance Unity is free for individuals and small businesses. I understand that in this case OSI has a slightly different meaning in mind than what people would think in general. They mean discrimination as in "you have to offer the same thing to everyone" not as in "you can't discriminate against particular groups of people". The difference is subtle but I think it's a bit misleading, the first meaning is nothing I have a problem with (for instance I think charging companies money for something and giving it away for free to individuals can be a good thing) whereas the other meaning I strongly reject.

When it comes to the complications for companies with a license vs. donations; the idea is that a company only have to do this once, and that for any subsequent Faircode Licensed software they wish to use it's a simple press of a button. This, my hope is, would make it easier for other open source projects to also charge for their software, and thus sustain themselves. I appreciate it complicates things when only looking at a single pieces of software though (and I'm sorry for that!).

Anyway, many good points! Like I said Faircode is still an experiment. I wanted to try this over donations because I was hoping to find a solution that would scale to other people too (and I've heard from many OSS developers who struggle to make money of off donations, even though they're building something awesome that is worth a ton to companies).

exsilium commented 6 years ago

Many companies give away a free version of their product and no one would call that "discrimination".

Yes, and exactly this is one of the fundamental differences between a Proprietary software that in certain scenarios costs 0 money to use vs Free (as in Freedom (FSF)) or Open Source software.

bakkerthehacker commented 6 years ago

I'm not sure I agree with the terminology of discrimination.

I am going to ignore literally everything you say after this statement. Let us come to an agreement about what this this term "discrimination" and all its other English forms mean. Let me quote the merriam-webster dictionary, wikipedia and the urban dictionary at the same time circa 2017 to ensure i am covering my bases here (potentially including any relevant and offensive definitions that may appear in these texts). I will omit similar and related definitions, such as Discriminate.

The merriam-webster definition:

Definition of discrimination 1 a :the act of making or perceiving a difference :the act of discriminating

a bloodhound's scent discrimination

b psychology :the process by which two stimuli differing in some aspect are responded to differently 2 :the quality or power of finely distinguishing

the film viewed by those with discrimination

3 a :the act, practice, or an instance of discriminating categorically rather than individually b :prejudiced or prejudicial outlook, action, or treatment

racial discrimination

The wikipedia definition:

In human social affairs, discrimination is treatment or consideration of, or making a distinction in favor of or against, a person based on the group, class, or category to which the person is perceived to belong rather than on individual attributes. This includes treatment of an individual or group, based on their actual or perceived membership in a certain group or social category, "in a way that is worse than the way people are usually treated".[1] It involves the group's initial reaction or interaction going on to influence the individual's actual behavior towards the group leader or the group, restricting members of one group from opportunities or privileges that are available to another group, leading to the exclusion of the individual or entities based on logical or irrational decision making.[2]

Discriminatory traditions, policies, ideas, practices and laws exist in many countries and institutions in every part of the world, including in territories where discrimination is generally looked down upon. In some places, controversial attempts such as quotas have been used to benefit those who are believed to be current or past victims of discrimination—but they have sometimes been called reverse discrimination. In the US, a government policy known as affirmative action was instituted to encourage employers and universities to seek out and accept groups such as African Americans and women, who have been subject to discrimination for a long time.[3]

The urban dictionary top definition:

Etymological definition: To note or perceive differences between things. (Strictly speaking "discrimination" makes no mention of race, gender, nor disability; nor does it make mention of placing one thing at a disadvantage to another.)

White Unicorn definition: Any policy that treats people equally regardless of race, gender, or disability.

Real world definition: Any policy that doesn't place white males at an extreme unfair disadvantage.

Equivalently, any policy that doesn't specifically mention race and gender in the context of "protected minorities receive X benefits", where X is greater than those received by white males.

In the real world, any policy based strictly on academic merit, financial status, or any other non-race based trait, even those claimed by tolerance experts to not be correlated to race, is discriminatory unless it specifically allots a handicap to women and non-whites. Dictionary nerds: The act of selecting toothpaste based on each item's price and advertised benefits is an example of discrimination.

What the media wants you to think: A bunch of people of all races and genders holding hands around a 1000 year old tree is the ideal discrimination-free environment.

What's really happening: Michigan placed a ban on using race and gender as a factor in college admissions. While this seems like the ultimate move in preventing discrimination, as it would be impossible to discriminate based on race or gender if these factors were absent in a college application, the measure was struck down by a federal court.

They claimed the policy harms minorities and is unconstitutional; as it would then also be impossible to give PREFERENTIAL treatment to minorities as well.

The more you know

distinction#discernment#distinguishing#oldspeak#ungoodfullness

Are there any definitions of "discrimination" listed here that you agree with, @FredrikNoren ? Are commercial entities with a revenue in excess of $1,000,000 of the previous fiscal year, and/or organizations with a budget in excess of $1,000,000 subject to this discrimination? Are persons in these or other groups subject to discrimination?

waldyrious commented 6 years ago

@bakkerthehacker I agree that we must make our definitions clear for the discussion to have a common ground and be productive, but come on -- let's not pretend that what @FredrikNoren means is utterly inscrutable. I hope we can all agree that what he's talking about is discrimination with conscious intent to unfairly disadvantage a group of people, which is a point of view even the sources you quote clearly recognize (emphasis mine):

In some places, controversial attempts such as quotas have been used to benefit those who are believed to be current or past victims of discrimination—but they have sometimes been called reverse discrimination.

(here admitting implicitly that it's common --although certainly not universally agreed upon-- for discrimination to be perceived generally as having a moral direction --a negative one-- thus justifying the notion of a "reverse".)

Etymological definition: To note or perceive differences between things. (Strictly speaking "discrimination" makes no mention of race, gender, nor disability; nor does it make mention of placing one thing at a disadvantage to another.)

(again, here the need for the caveat representing an admission that that perception is common.)

So can we start from there, and debate the parts we actually disagree on (e.g. whether systems of reverse discrimination are acceptable or not, in particular in the context of software licenses and the open source movement)? There's no need to discuss the basic definition of words when the real disagreement never truly lied at such a low level anyway.

exsilium commented 6 years ago

Honestly, I think if @FredrikNoren would have announced that Ungit is going commercial with source-available proprietary model with different price tiers, we wouldn't have this (long) discussion :)

In FOSS licensing world, the word "discrimination" is used simply by favoring someone differently and here I agree that the LYC/Faircode attributes to the license becomes discriminating against a certain group. The license change of ungit is presented as "Trying a new open source model" - and here I think that the author doesn't really have full understanding what Open Source is. OSI is not working in isolation when coming up with definitions and standards and FSF is even harsher in defining and protecting the rights than OSI. If anything, OSI has been criticized in the past of accepting attributed licenses to it's list which in view of FSF limits freedom. But I digress...

In my view, the majority consensus is presented and articulated by organizations setup to protect the foundations of open source and free software (OSI and FSF). I don't think it's fair (and right) to add attributes to a license text and still present it as an Open Source project/model - because by definition it's not and it creates confusion!

The Open Source Initiative's (OSI) definition is recognized by governments internationally as the standard or de facto definition. In addition, many of the world's largest open source software projects and contributors, including Debian, Drupal Association, FreeBSD Foundation, Linux Foundation, Mozilla Foundation, Wikimedia Foundation, Wordpress Foundation have committed to upholding the OSI's mission and Open Source Definition through the OSI Affiliate Agreement.

FredrikNoren commented 6 years ago

@exsilium I think you have a really good point. Maybe I misstepped in calling it an Open Source (capitalized) model, not realizing how much meaning and interpretation people would attribute to that. I think that "commercial with source-available proprietary model with different price tiers" is a little long, but maybe we can come up with a shorter name for the model that would sound better ;)

waldyrious commented 6 years ago

@FredrikNoren I thought you had written your thoughts on this, but can't locate the exact passages, so perhaps it was just my impression: did you deliberately choose not to go with a dual-licensing setup? That's already a common approach in the FOSS world, e.g. Qt, so most FOSS consumers already know how to handle it.

Of course, this would only work in practice if the Ungit was released under a commercial license combined with a protective Open Source license like the LGPL. (The latter is needed for this arrangement since the permissive MIT license allows unrestricted commercial uses.)

While I don't advocate this approach myself, I believe people might find it more acceptable than creating a new license.

FredrikNoren commented 6 years ago

@waldyrious That's very interesting, I had not considered dual-licensing. I'll have to think about that option a little bit.

bakkerthehacker commented 6 years ago

@bakkerthehacker I agree that we must make our definitions clear for the discussion to have a common ground and be productive, but come on -- let's not pretend that what @FredrikNoren means is utterly inscrutable. I hope we can all agree that what he's talking about is discrimination with conscious intent to unfairly disadvantage a group of people, which is a point of view even the sources you quote clearly recognize (emphasis mine):

I would like to make these assumptions, but @FredrikNoren 's directly questioning the word and complete lack of reply in this matter have not made any indication we have come to an agreement about whether Faircode license is discriminating.

The use of Randall Munroe's xkcd 1597 under the Faircode License violates the CC BY-NC 2.5 license it was released under.

The Faircode utilities for node and rust are also just completely missing any actual license text although they claim in their config files to be MIT.

The poor way in which this whole situation appears to me is just becoming more and more apparent as I look into it.

@codingtwinky I appreciate the code change you submitted in #984 to fix my issue but I cannot use it.

solidstate-tech commented 6 years ago

Good luck, I've been thinking of working as a full time open source developer and will be following this closely, Thank you

folknor commented 6 years ago

It's important to note that you're not actually allowed to do what you've done here. The code or contributions by others to your project are still owned by the people who made them. You can not change which license their contributions are under unless you get a license to their copyrights, or unless they sign off on a project-wide relicensing.

Every one of them. Luckily you've used git, so you can find those people. It was much harder for Mozilla and other older projects when they did these things.

And even then, after you've got public permission from all of them to relicense your codebase, you still can't retroactively relicense older releases. You can of course remove those releases from github (and any other distribution method you control), but if I for example have an old ZIP file of an older release, I am still entitled to use it under the licensing regime it was under at the time.

I'm not a lawyer, but I have been involved in two major relicensing efforts. And I'm not saying these things to discourage you or just to be negative; I'm saying it because a big company knows the above.

Also, as a postscript, it's worth noting that since most of your source files lack a licensing header, that significantly limits your actual legal avenues for enforcement of your licensing terms - depending on which country the offender is in.

edent commented 6 years ago

I applaud your intentions, and I have a question about wording. Specifically...

Ungit is free for individuals and small businesses.

What about charities? Or non-profits? Or Governments? Or community hack-spaces?

(Disclaimer - I work with all those sorts of organisations.)

At the moment, I think it is ambiguously worded.

floatingatoll commented 6 years ago

The above argument that charging money is discrimination and therefore it’s not an open source license is invalid. The OSI itself publishes a license that flat outright denies all profits, not just $1mil+ profits:

https://opensource.org/licenses/NPOSL-3.0

In that respect, your license is actually less discriminatory than theirs, as it permits revenue under a threshold. Best of luck!

thblt commented 6 years ago

The above argument that charging money is discrimination

That's not the argument. The argument is that charging money for use of the software only to a certain group of users, constitutes a discrimination (in the technical sense outlined in Merriam Webster's definition, 1a, quoted above) incompatible with point 5 of the Open Source definition, which explicitly states that for a license to be Open Source, it "must not discriminate against any person or group of persons.".

exsilium commented 6 years ago

@floatingatoll, NPOSL is an Open Source license - It's the licensor, not the licensee, that needs to be a non-profit.

ghost commented 6 years ago

Surprised that no one has mentioned licensing under the GPL and then having companies pay for licenses that are not GPL. Dual-licensing is a valid model that works and doesn't put strange restrictions like this.

I'm happy that someone did note that copyright reassignment is probably needed.

KamilaBorowska commented 6 years ago

Keep in mind that this is not a free software license as it doesn't provide required freedoms to the big businesses. Additionally, due to the weird way this license was written, it's ambiguous whether categories other than so called "individuals and small businesses" (say, non-profits) are allowed to use this software. It's also not clear if you can use this software if you work for a big business. tl;dr - This license is legally problematic, especially when building software that uses it internally (perhaps plug-ins to text editors).

Please seriously consider following alternatives so that the software stays free:

floatingatoll commented 6 years ago

Oh, you’re right, I totally misread. Ha!

Well, I support the discriminatory clause here. Better to charge nothing to those who can’t afford to pay, than to charge all, IMO.

On Nov 5, 2017, at 07:23, Sten Feldman notifications@github.com wrote:

@floatingatoll, NPOSL is an Open Source license - It's the licensor, not the licensee, that needs to be a non-profit.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

erikbgithub commented 6 years ago

Sorry if the question was asked before. Won't read the whole thread.

How did you handle that you have 60+ contributors with a license change? I've never seen a case where all contributors could be reached and agreed upon with on the new license. And usually you need written approval of each one of them to change even a comma.

If this came up before and you find it annoying to answer again, please add the answer to the first post (and please still ping me).

floatingatoll commented 6 years ago

TL;DR This is answered above by an repository owner.

On Nov 5, 2017, at 07:39, E B notifications@github.com wrote:

Sorry if the question was asked before. Won't read the whole thread.

How did you handle that you have 60+ contributors with a license change? I've never seen a case where all contributors could be reached and agreed upon with on the new license. And usually you need written approval of each one of them to change even a comma.

If this came up before and you find it annoying to answer again, please add the answer to the first post (and please still ping me).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

erikbgithub commented 6 years ago

@floatingatoll I even said that I haven't read the whole thread and argued why. Now you only add spam. You haven't even added a link, lol. Next time just do a thumbs down and be done with it.

floatingatoll commented 6 years ago

I thought that the poor folks who're being whipped around with tens of comments a day on this project's licensing change could use a bit of humor. The irony of responding with TLDR to someone rudely and hostilely declaring their unwillingness to participate followed by immediately demanding answers was too much to miss. I hope it gives them a bit joy amidst all this sadness.

On Sun, Nov 5, 2017 at 7:47 AM, E B notifications@github.com wrote:

@floatingatoll https://github.com/floatingatoll I even said that I haven't read the whole thread and argued why. Now you only add spam. You haven't even added a link, lol. Next time just do a thumbs down and be done with it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/FredrikNoren/ungit/issues/974#issuecomment-341982760, or mute the thread https://github.com/notifications/unsubscribe-auth/AAFqDF07y3Ad9JZbLMiw8aOsH8f8GR-pks5szdikgaJpZM4P4XZF .

KamilaBorowska commented 6 years ago

As for NPOSL... well, actually OSL designed for non-profits (and easily changeable into OSL if needed), this license is not compatible with GPL, which is a good reason to avoid it.

(I do admit that ideally I would prefer only those free software licenses to exist: GPL3+, LGPL3+, MIT/X11, 2-clause BSD and Apache 2, the more different licenses there are (especially the worst kind of those, slight modifications of already existing licenses by people who don't have any idea of how law works like adding non-free "The Software shall be used for Good, not Evil"), the harder it is to analyze the compatibility of various licenses)

thblt commented 6 years ago

Just asking, but since MIT license allows sublicensing, couldn't relicensing (as long as at least a change between the last MIT-licensed version and the first whatever-non-MIT-licensed version gets introduced) be just considered (legally speaking) as an edge case of sublicensing, hence requiring absolutely no formalities? That is, the original, MIT licensed program could be considered "included" into a "new", whatever-licensed program.

(I am not arguing in favor of this specific relicensing of a free software under a non-free licence, I'm just trying to get a better understanding of the legal implications. Don't thumbwar me please :)

bonzini commented 6 years ago

It's important to note that you're not actually allowed to do what you've done here. The code or contributions by others to your project are still owned by the people who made them. You can not change which license their contributions are under unless you get a license to their copyrights, or unless they sign off on a project-wide relicensing.

@folknor, no, he's actually allowed to do that.

Ungit was using the MIT license, which is a very permissive license and allows sublicensing. Contributors therefore have already allowed the relicense by releasing their contributions under the MIT license. In fact, since contributors were okay with a proprietary software company embedding their code into a proprietary product and selling it, they should be okay with this as well.

(This is not to mean that I think this is a good idea; I think it's reinventing GPL dual licensing badly. But the important point is that also a relicensing to GPL+proprietary doesn't require buy in from past contributors, even though it may require a CLA from future contributors).