4

Can I give a binary executable (loaded as a dynamic library/FFI) an MIT license, whilst keeping the source code proprietary, and selling "source code licenses" on a per customer basis?

Id like to allow people to use the compiled artifacts for free under the MIT license, but if they want to change the source code and recompile they require a different paid for license.

I understand this is not strictly "open source".

zino
  • 185
  • 3
  • 3
    I guess you could do this if you are the author. In general this is sometimes called "dual licensing." But your license choice seems confusing. The MIT license on the binary would already give me permission to modify the binary and redistribute it (although without source, modifying it would be technically difficult). But if I pay for the source code and then build a new binary, what do you intend for new binary I create? For example am I allowed to redistribute that? – Brandin Nov 17 '19 at 09:52
  • @Brandin, Thanks good point. The source-proprietary license would mention that you cannot distribute the source code or binaries built from it as standalone products. I would already be trusting them not to publish the source, so I guess by extension I would trust them not to publish binaries. – zino Nov 17 '19 at 11:07
  • The binary-mit license allows editing the binary with the binary as the starting point, not the source code. So if there are "custom binaries compiled from source code not compiled by me" published this would mean the owner of the source-proprietary license violated the terms. I have no idea how practical or enforceable this set up would be which is why Im asking the question. – zino Nov 17 '19 at 11:07
  • 1
    @zino, the MIT license also allows reverse engineering something that resembles source code (it won't be the same, as many names cannot be reconstructed), so custom binaries could also have come from that. – Bart van Ingen Schenau Nov 17 '19 at 17:59
  • @BartvanIngenSchenau This is true, but as its quite a simple program I do not see this as a threat; I think it would be less effort to just create a replacement from scratch. – zino Nov 17 '19 at 19:30
  • @zino How practical it would be depends on your actual goal. If you want to release your software for free but make money from (some) developers, I think the more common approach is GPL + commercial dual licensing. I.e. you give the source as GPL, but sell alternative licenses for businesses that want to use the source code to develop a product but don't want to also release that under the GPL. – Brandin Nov 19 '19 at 10:06
  • @Brandin thanks, that sounds like a good alternative. One issue is that the set of users who have closed source products who will not buy a license. I think it may be more useful to allow this set to use the binary-mit for free, and have a small percentage of them request the source-proprietary paid for license. – zino Nov 19 '19 at 12:20
  • Suppose you license under GPL and release your code for free as well (under the GPL). Then it means that people will be able to use your binaries for free (the GPL allows that). But for the source code the GPL requires that anyone who uses it also distributes their resulting product as GPL as well. That's where the "dual license" comes in -- you could sell a private license to business customers who don't want to release their products as GPL (often certain businesses are not allowed to do that, so if they want to use your code in their product they must buy your license). – Brandin Nov 19 '19 at 15:25
  • But under the GPL, if a project uses my binary, they have two options: (1: open source their project under GPL, 2: pay for a license). I also want them to have a third option (3: use binary for free, keep their project closed source). This 3rd option is not possible if the binary is GPL right? – zino Nov 19 '19 at 17:05
  • @zino If you are the author then you are allowed to relicense your software as many times as you want. It is often called "Dual licensing" and the two options commonly used are the ones you mentioned, but nothing is stopping you from offering a 3rd or a 4th possibility. – Brandin Nov 29 '19 at 07:41
  • @zino, GPL (and other open source licenses) are simply silent on "user mangling, spindling, defacing" the source for their own amusrment, and using the result as they want. As I understand it, copyright law (on which the licenses operate) doesn't cover such activities. It's yours to do as you please. – vonbrand Mar 12 '20 at 00:34

1 Answers1

5

You wish to ship your software as a zero-cost binary ("freeware") whilst reserving source code to paying licensees, who will not be permitted to use it to make products for general distribution. You want to know if you can release the binary under an MIT licence without causing yourself problems.

Interestingly, this is the second question we've had here recently about using the MIT licence on a piece of proprietary-source freeware. The more I think about it, the more I think it's a reasonable idea. Using a well-established non-copyleft licence for your binary makes it immediately clear what is permitted with the binary (including using it, copying it, selling it, and reverse-engineering it). However, it is in my experience an unusual way to use this licence, and IANAL/IANYL, so you should take professional legal advice before betting the farm on this.

You may also wish to consider using the Apache2 licence for your binary, instead of MIT, as the patent grant therein will further reassure potential users that they're not exposing themselves to any liability by adopting your binary.

MadHatter
  • 48,547
  • 4
  • 122
  • 166