It seems to me that you're actually asking a number of questions so I've tried to answer them individually. I'm phrasing them as quoted question, although I've made them up in an attempt to rephrase what I think you've meant to ask.
Should I use the MIT license for all files in my project?
Given your description of your goals what you want people to be able to do with your work, using the MIT license for all source files in your project indeed seems like a decent choice.
Should I also apply the same licensing terms to “auxiliary” files like Makefile
s etc?
Absolutely. They are a vital part of your project because without them, your product will not be usable. If your project can only be built using non-free Makefile
s, many people – including the FSF and myself – will consider the whole project non-free.
From a copyright point of view, a Makefile
is just as much a piece of work as any other source file in your project. You wrote it – you own the copyright for it. If you want me to be able to do something interesting with it, you have to give me permission, which you do by licensing the file to me. In the absence of any contradicting evidence, one would assume that the generic info in the README
would apply to all files as you're correctly assuming. Anyway, I would recommend that you put a short copyright notice into each and every source file you write just so you're leaving no doubts. The notice could read like this.
Copyright (c) 2016 Egor Tensin
This file is part of Fancy Project. This is free software; see the file COPYING
for more information. There is no warranty; not even for merchantability or
fitness for a particular purpose.
Since the MIT license is rather short, you could even consider copying its entirety into each file. Other licenses, like the GPL, suggest a specific notice to be placed into each file, which will differ from the example shown above.
Are HTML / JavaScript / CSS / XML files subject to licensing?
Sure. Again, copyright is agnostic to the language your work is written in. All that counts is that the files are the product of a creative human process. Everything from the previous section also applies to these files.
What about pictures and other binary files? Should I dual-license them under a Creative Commons license?
There is nothing in principle that would make the MIT license inapplicable to images, as long as they are subject to copyright. One thing to consider, though, is that the MIT license is not very frequently used for artistic works or presentations. So if you want to make it easy for your users to use some pictures in their works, you will do them a favor by dual-licensing them under a Creative Commons license. If you are the copyright holder, you can simultaneously license your work under as many licenses as you wish. For example, you could put the following statement into your README
file.
Copyright (c) 2016 Egor Tensin
This project is free software. There is no warranty; not even for
merchantability or fitness for a particular purpose.
You may use, copy, modify and redistribute all files included in this
distribution, individually or in aggregate, subject to the terms and conditions
of the MIT license. See the file `LICENSE-MIT.txt` for details.
In addition, you may -- at your option -- use, copy, modify and redistribute all
images included in this distribution under the directory named `pictures`
according to the terms and conditions of the Creative Commons Attribution 4.0
International License. See the file `LICENSE-CC-BY.txt` for details.
Dual-licensing the pictures has the benefit that your project still uses the same license for all files but also offers using a more “natural” license for pictures for those users who would benefit from this.
What if the images are produced by the software?
Copyright only covers creative works created by humans. If an image was exclusively created by a machine with no creative input by a human, then it is not copyrightable and not licensable. That said, most graphics will probably include at least some degree of creative human input so you'll be on the safe side by licensing them as well. In the best case, the explicit license statement will turn out to be superfluous. Of course, I don't know your pictures and how much creativity went into them.
Can I change the licensing of my project at a later point in time?
The copyright holders are always free to grant additional permissions on their work. That is, if you release today under the MIT license and decide tomorrow that you also want to license the pictures under a Creative Commons license, you're totally free to do that. What you cannot do is revoke a free software license. That is, if you publish under the MIT license today and then decide tomorrow that the GPL would be a better fit, everybody who has already received a MIT-licensed copy will continue to be able to use the software under the terms and conditions of the MIT license. And since this license allows unlimited redistribution, so will everybody else this person decides to furnish a copy to. In conclusion, it might be wise to offer licenses conservatively as you can always add more later but once you've published, you can't take them back again.