16

A fellow developer has done something that has made me curious, he has a popular javascript front-end package on GitHub which for years was licensed under MIT, then all of a sudden he released a v2 and switched the license to GPLv3 and added the means of purchasing a MIT license for a one-time fee.

Before he changed to GPLv3 it was pretty clear that anyone could fork the MIT code and use it just about whichever way they wanted while abiding to the MIT license. But now that the MIT license is purchasable and obviously intends the MIT version to be kept away from non-paying users, I wonder if this is solid or just full of holes.

I'm considering doing the same for one of my own popular packages but I have to wonder, if someone goes ahead and pays this one-time fee to purchase a MIT license to gain access to code which is otherwise available through GPlv3, what's to stop them from uploading the MIT version to Github with the MIT license attached. Wouldn't that be within their rights and perfectly legal and wouldn't that be circumventing the intent of the party selling the MIT license?

1
  • 8
    One thing that may stop them uploading to GitHub is that they simply may have no interest in doing so. If someone is buying an MIT licence rather than just using the GPL, it is most likely because they do not want to release their source code, so may not have any interest in releasing yours either - especially if that meant their competitors could get it for free.
    – James_pic
    Jun 11, 2020 at 16:25

4 Answers 4

16

Selling licence exceptions, usually to copyleft licences, is a perfectly normal (though arguably somewhat distasteful) practice. Provided the developer is the sole rightsholder in the package, or has some other lawful means to re-license (eg CTA, or CLA that permits this, on all contributions) then this is a perfectly lawful thing to do..

The licence change doesn't affect any pre-existing copies. If you got a copy of this code under MIT, then the conditions of the MIT licence continue to apply to that copy; it is generally only future versions that can be meaningfully affected by such a change. But this also means that if you incorporate changes published under GPLv3 from the original project site, your copy is now entirely covered by GPLv3.

Yes, anyone purchasing a copy under MIT would be free to re-publish it under MIT, or indeed many other, licences. However it, too, would no longer be able to be kept up-to-date with patches from the original project without turning it into a GPLv3 version.

wouldn't that be circumventing the intent of the party selling the MIT license

I don't (and can't) know what their intent is, so I can't say.

5
  • 24
    "(though arguably somewhat distasteful)" Why? Whats wrong about selling ones own work? Most of the world does so every day, its called going to work. Giving it away for free is altruistic and noble, wanting money for additional rights is nothing to be ashamed of or distasteful.
    – Polygnome
    Jun 11, 2020 at 16:02
  • 2
    I would expect that most of the time with such a license purchase that you are also purchasing rights to future improvements under the same conditions as the license you purchased. Jun 11, 2020 at 16:02
  • 4
    Another case where it might be distasteful is if a majority of contributions are from community (under some kind of copyright transfer arrangement) and only the maintainer is profiting from it. Selling previously developed MIT-licensed code is particularly interesting in that it would be legal even without copyright transfer.
    – jpa
    Jun 11, 2020 at 18:02
  • 5
    Before people put too much effort into this, note that I didn't say it was a distasteful practice, I said it was arguably a distasteful practice. I've heard the argument made, in public, which proves it. All I've actually said is that it's a perfectly normal practice. I'm not taking any side on the issue of tastefulness, at least not here, so please don't feel obliged to take issue with something I haven't actually said.
    – MadHatter
    Jun 12, 2020 at 10:24
  • @jpa The MIT license is basically a "you can do whatever you want with this code, except suing its author" license. It explicitly grants the right to "publish, distribute, sublicense, and/or sell copies of the Software." You don't even have to change it. You can just go download some MIT-licensed software and sell it to someone else if you can find someone stupid enough to pay you for it (and don't commit fraud in the process.)
    – reirab
    Jun 12, 2020 at 21:53
11

I've paid for an alternate license for a software package before, and here's more or less what happens (disclaimer: it's been a while and I'm doing this from memory).

The alternate license covers the source code that you receive, but that license is not the entirety of your agreement with the developer. There's also a contract that covers the remaining portion of the transaction, things like payment terms, support agreements, eligibility for updates, etc. that are outside the scope of a software license. The software license can technically permit you to redistribute the code, but the overall contract can include language that renders it null and void should you redistribute the source code under the alternate license.

This doesn't technically limit your rights/freedoms with respect to the source code. You're still free to use and redistribute it according to the terms of the license. The developer is simply saying that anyone who redistributes the alternate license version will lose access to the support, upgrades, and other extras that they've already paid for (things that the software license never obliged him to provide in the first place) and forfeit the money that they paid for them. This is a big waste of money for the customer, and the customer doesn't really gain much in return. Not to mention, word can travel quickly around the open-source community. Try something like this once and you risk having other developers refuse to do business with you.

There's a "loophole" where I suppose the customer could upload the alternate license version after their support agreement expires. This would be a snapshot of an older version, though. Since you're not selling old versions of the code, this shouldn't really compete with your business. Your public repo will show any potential customer all the bugs that aren't fixed in that old version, which should make them much less likely to try and use it.

This is much easier to do with some licenses that with others. As apsillers notes in the comments, there's an existing question on the open source site discussing this practice with respect to the GPL. It looks like the GPL includes language designed to prevent this sort of contractual relationship, but the MIT license does not. Make sure to choose your alternate license carefully.

5
  • Whether an open source license can be modified/nullified with such a loophole depends on the license. E.g. modifying the MIT is likely fine, whereas modifying the GPL is more problematic and likely invalid (see e.g. the controversy about grsecurity). A dual-licensing scheme can avoid this ambiguity entirely by selling clearly proprietary licenses, instead of offering a paid open source license that confers more rights than the licensor actually wants.
    – amon
    Jun 12, 2020 at 7:44
  • 1
    @amon - To be clear, you're not losing the license for the code, you're losing access to all the other expensive services that came bundled with the code. The only strings are attached to those other non-code things.
    – bta
    Jun 12, 2020 at 17:58
  • 2
    It is worth noting that we have a question about this practice (w.r.t. the GPL), with many varied answers: opensource.stackexchange.com/questions/5426/…
    – apsillers
    Jun 12, 2020 at 18:06
  • If someone purchased the MIT license and uploaded it to Github.. and the author of the GPL/MIT license saw that and got upset, could they force the uploader to identify themselves, to prove that they have genuinely paid for the MIT license, and in order to ban them from receiving any further updates/support that they paid for when they purchased the MIT license? Jun 30, 2020 at 15:09
  • @vesperknight - In general I'd say most content hosting sites (incl. Github) have mechanisms for contesting ownership and publication rights, but details will vary by site and by legal jurisdiction. You'll get a better answer for that one on law.stackexchange.com.
    – bta
    Jun 30, 2020 at 15:28
2

Nobody has to pay for the MIT licensed version. As the text of the MIT license says:

"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or..."

So if a piece of software is offered under an MIT license, then everyone who has the software has the license. There is no need for anyone to pay for the license.

And this must be true for precisely the reason you mentioned. Say I paid for the MIT license. That gives me a license, but what would give an MIT license to anyone I distributed it to under the MIT license? That license must come from someone who has the legal right to license the software, and I don't have that.

The intent of the MIT license is to permit anyone who has the software to have a license to use it. It does not authorize anyone to relicense anything -- the license always comes from the copyright holder. (It must be this way under US law. Other countries might allow a license of this type to give someone else the right to themselves license someone else, but US law doesn't.)

3
  • 2
    You didn't quote the part of the licence that explicitly says that you are allowed to sell the software...
    – MikeB
    Jun 12, 2020 at 9:43
  • @MikeBrockington True, but I did quote the part that allows you to distribute without restriction. "Distribute" is a fancy word for copy and sell. Not being allowed to charge would be a restriction. Jun 12, 2020 at 15:02
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – MadHatter
    Jun 17, 2020 at 7:21
2

if someone goes ahead and pays this one-time fee to purchase a MIT license to gain access to code which is otherwise available through GPlv3, what's to stop them from uploading the MIT version to Github with the MIT license attached. Wouldn't that be within their rights and perfectly legal?

Yes. The MIT license is clear that you can do whatever you like so long as you keep the MIT license notice intact.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

If they add additional restrictions then it is not the MIT license.


...and wouldn't that be circumventing the intent of the party selling the MIT license?

I'll guess that the intent of the author is to have their copyleft cake and eat their commercial software, too, to mangle a metaphor. Many projects are skittish about using GPL code in their project for reasons real and imagined. Offering their code under a more compatible license is a way to handle that and make a little money.

They could have chosen a different license for commercial use, for example MySQL has several commercial licenses and exceptions, but they didn't. Whatever their intent was they chose to sell an MIT licensed version and that has consequences.

Note, the MIT license only applies to that specific version of the code, a snapshot which will presumably be unsupported. Later GPL releases would not be covered. They could choose to make a fork, but they would have to be careful to wall themselves off from the GPL code.

Given that they would be releasing an MIT licensed snapshot of what is already available under the GPL there's little harm done. And if someone wants to run with it and make an MIT licensed fork, those changes can be incorporated into the GPL project. This is in the spirit of the GPL and Open Source.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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