I would like to apply the MIT License to all artifacts of an open source software project, i.e. its full source code, but also its resource data such as graphics or localized string lists that are embedded into or deployed along with the compiled application.

Previously, my belief was that for this to happen, it would be sufficient to declare that my project is subject to the terms of the MIT License, put a respective license text file into my repository and in the releases, and add a license header at least into those of my individual files whose format allows such free-text info.

This seems to be confirmed by the question MIT License vs. Creative Commons for images and other assets on Software Engineering SE, as the answer in that question contains statements such as

There is nothing in principle that would make the MIT License inapplicable to images

and also mentions applying the MIT License to HTML or XML files (in general, not necessarily ones that express or contain any executable semantics).

Likewise, as an example of a non-program project that uses the MIT License, the Fluid (R3) General MIDI SoundFont uses that license.

However, user David provides a much more restrictive interpretation in his recent answer. He points out that

The MIT licence only applies to the

software and associated documentation files

and explains that at least under U.S. law, software means

"Computer programs that comprise a series of instructions, rules, routines, or statements, regardless of the media in which recorded, that allow or cause a computer to perform a specific operation or series of operations"

He specifically makes a case that this means graphics other than those directly related to the executable code (application design diagrams, presumeably also screenshots of the source code) are excluded from the scope of the MIT License by the very license itself.

If that is accurate, it seems to mean that no non-executable resources could be covered by the MIT License. Bummer.

Any toolbar icons, lists of translated UI texts, message sounds, etc., that have been created for and published as a part of the project would not be redistributable by others because the MIT License declared for the project does not apply.

Even explicitly stating the localization and image files are subject to the terms of the MIT License would be without effect, as those files are neither executable insyructions, nor a part of a documentation, and thus are simply out of scope for the license terms.

Now, I could replace or expand the mention of "software" in the license text that I supply along with my project. However, while I am not changing the terms of redistribution itself, wouldn't I still be creating a crayon license like that, with many of the problems crayon licenses may cause? (In particular, I am thinking here about downstream developers ending up with a hodgepodge of MIT Licenses from upstream components, each of which covers and/or excludes different portions of the upstream components.)

Therefore, my question is: How do I properly apply the MIT License to a whole project, not just the executable portion of it? Is it possible at all?

  • MIT defines the word Software's meaning for us in [this software and associated documentation files (the "Software")] paragraph, and obviously MIT paragraph starts with "this software" (not "the Software") and puts the quotes around "Software" alone (meaning, wherever "Software" is mentioned from that point on, their original content was meant) and later MIT asks "substantial portions of the Software" to attribute, but remember that Software is their original work (i.e. if you got binary from them, then you must attribute where ever you use that binary, else just ensure you compile/Uglify)
    – Top-Master
    Commented Jul 25, 2021 at 21:17
  • While some jurisdictions may define the default meaning of "The Software"; What is the definition of "this" in jurisdiction? MIT License calls the entire original content "this software" and defines "Software" to mean same as that. And although very short, MIT does undeniably specify what "Software" means, and excludes default jurisdiction meanings (which was the right choice; in many countries, jurisdiction meanings differ)
    – Top-Master
    Commented Jul 26, 2021 at 20:09

2 Answers 2


You are reading too much into what software means here and David is reading between the lines. If you apply an MIT license to a project of yours, assuming that all the files are yours for the sake of the argument, then this license applies to all files. Any image, media, assets and so on is either something that is part of your software or the documentation.

I cannot fathom anyone disputing that claim seriously. David's argument is a red herring and incorrect. Use the MIT and be happy!


Is it possible to apply to MIT license to a whole project, and to do that you should specify that the license "applies to all of the files of this project".

I reckon it worths to further elaborate, but it's safe to skip it.

The answer to the question "MIT License vs. Creative Commons for images and other assets on Software Engineering SE" correctly states that there is nothing in principle that would make the MIT License inapplicable to images", and also suggests to specify that such licence applies to all file.

The point is the definition of Software. Simplifying: previously, in the USA, software was considered as anything intangible (as opposite to hardware) and according to that definition images should be considered software. Lately a law provided a definition of software.

Which definition applies to a specific case?

If the authors want to release all of their work under the MIT they can surely do that and in that case software should be interpreted as synonym of file.

In the case "How can I use an MIT license for code but protect the copyright of photos in my repository?", the user (which isn't the author of the photos) had been granted permission to use those photos only for that project, and cannot pass that permission to others; thus I suggested to specify that photos can't be used without the permission of the author, and aren't covered by the MIT licence, which in her case covers everything else. In that case software couldn't be interpreted as synonym for all of the files.

I realized that my answer could be interpreted as very restrictive about the meaning of software, where I usually don't interpret it in that restrictive way.

However I reckon that it costs nothing to specify in the readme that the licence "applies to all of the files", whichever would be the licence. That should prevent different interpretation or a different application of the licence.

You could further specify that Software refers to any copyrightable work licensed under this license. (as done in the GPL), even if I wouldn't do that.

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.