1

It is generally accepted that 'the software' in the MIT license refers to 'the source code', but unfortunately not generally enough. Also, for interpreted languages (such as Javascript) 'substantial portions of the Software' are technically copied to the client's machine, so the only way to maintain compliance is to put the license in the Javascript.

I'm not aware of anyone actually doing this; the license is typically just put in the repo.

Anyway, to remove ambiguity, I suggest changing the following in the MIT license.

Change

this software and associated documentation files (the "Software")

to

this source code and associated documentation files (the "Software")

Add the following definition of source code.

'Source code' is defined as a modifiable set of instructions that can be easily understood by a developer, and has some or all of the following properties:

  1. Comments to explain the functionality.
  2. Whitespace to help readability.
  3. Variable and function names contain descriptive nouns and verbs.

From the above definition, any source code that has undergone obfuscation, minification, compilation, encryption, or other significant transformation can no longer be considered source code.

To comply with this license, this text must reside inside the folder structure of your source code and distributed with it.

Resulting in - https://github.com/JohnJScott/Eternal/blob/master/LICENSE

Does this fix it? Suggestions/fixes/improvements? I'd argue this is the intent and the practical application of the MIT license anyway.

Cheers John


Several points:

That should be proposed SPDX code.

"It is generally accepted..." - citation required

Ask CoPilot - "does "the software" in the mit license refer to the source code?"

"Yes, in the MIT License, the term “the software” refers to the source code. The MIT License is a permissive software license that originated at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it places very few restrictions on reuse, making it highly compatible with other licenses. Unlike copyleft licenses, such as the GNU General Public License (GPL), the MIT License also permits reuse within proprietary software, as long as the terms of the license and the copyright notice are included in all copies or substantial portions of the software1. So, when you encounter the phrase “the software” in the MIT License, it specifically pertains to the source code and associated documentation files. 🌟"

I don't believe that many people take this view. In fact, you're the first I've ever heard of.

Until Friday, I had never heard of anyone who didn't take this view.

(and provide the proper acknowledgement in/with the distributed binaries)

I've yet to find a site that does this - please give an example. Also, Unreal Engine games don't provide the proper acknowledgment - again, unless an example can be provided. You'd be looking for a subset of the files distributed with the source here - https://github.com/EpicGames/UnrealEngine/tree/release/Engine/Source/ThirdParty/Licenses

Common practice (whether right or wrong) is to put the license in your source repo for if you ever redist your source, and no acknowledgment if it's compiled into a binary.

The intent is the code can be used for anything (including compiling and distributing the binaries), but to comply with the license you have to include the license with your source code, but not any binaries or web sites. The intent is that there should be no requirement at all to make the source code available.

The viral GPL is out - but is there another license that would accomplish this?

Cheers John

3
  • 4
    Please don't edit questions so dramatically that you invalidate the existing answers. You can always ask a new question if you want to. Apr 23 at 18:57
  • Comments have been moved to chat; please do not continue the discussion here. Before posting a comment below this one, please review the purposes of comments. Comments that do not request clarification or suggest improvements usually belong as an answer, on Open Source Meta, or in Open Source Chat. Comments continuing discussion may be removed.
    – MadHatter
    Apr 24 at 7:35
  • 7
    John, this question acquired a worryingly large number of flags. Many were for your last edit, which effectively invalidated the well-regarded answers already here; that's not fair on the people who put in the effort to write those answers. So although your final question was pretty good - thanks in part to the feedback you'd had - I've rolled it back to the earlier version that matches those answers. I strongly recommend that you accept an answer to this question, thus putting it to bed, and ask your final edit as a new question, which hopefully will get good answers also.
    – MadHatter
    Apr 24 at 7:37

2 Answers 2

21

It is generally accepted that 'the software' in the MIT license refers to 'the source code'

I don't believe that many people take this view. In fact, you're the first I've ever heard of.

I'd argue this is the intent and the practical application of the MIT license anyway.

Given that many non-free programs incorporate code that they received under the MIT licence, preventing binary-only redistribution is certainly not consistent with existing practice. I doubt it's the intent either, but you could only find that from the original authors of the licence.

I certainly don't see this as a problem with the licence; it seems more likely that it's simply a licence that doesn't meet your needs (which is fine, as it satisfies plenty of others).

What you have attempted is a copyleft licence - but if that's what you want, then you should prefer an existing licence (probably GNU GPL) rather than inventing your own and adding to the problem of licence proliferation.

14

I don't believe this license works at all. It is very deliberate in the MIT License that it does not specify "source code" so that binaries derived from the source code can be distributed. Once you remove "software" from the license and replace it with "source code", nobody has permission to distribute the binaries at all.

4
  • 3
    I'd be fairly confident the problem can be fixed (and I agree with OP that there is a problem), but yes, it would require more effort than this simple change. Apr 22 at 4:01
  • @KarlKnechtel What is the problem exactly, other than that MIT, as written, is not a copyleft license? If you want a copyleft license (i.e. to obligate source code distribution), then it's better to use a license designed for that in mind.
    – Brandin
    Apr 24 at 14:25
  • 1
    @Brandin As I understood it, OP wants to be able to use MIT licensed JavaScript code for a web application, where the license was originally provided as a separate file. However, the normal network use of such code entails transferring the code, but not any ancillary files such as the license, to the client. OP also doesn't appear to think it's clear how conveying the license is supposed to work for a binary distribution. Apr 24 at 14:40
  • @KarlKnechtel If the question was about JS, then it has come up before here and has been answered before many times, e.g. opensource.stackexchange.com/questions/9258/…
    – Brandin
    Apr 25 at 4:49

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.