pinobatch / pently

Scalable music engine for NES games
zlib License
72 stars 4 forks source link

Notice required by MIT License can prove impractical #10

Closed pinobatch closed 7 years ago

pinobatch commented 7 years ago

Many free software licenses require the license to be reproduced in full in all copies, such as the MIT License (Expat variant) currently used for Pently. This is why the NES Classic Edition's front end includes several pages of "Legal Notices". But then it can afford to do so because it has half a gigabyte of NAND flash for the Linux kernel, emulator, and game ROMs. NES games distributed on Game Paks, on the other hand, are in the tens to hundreds of kilobytes and may not have enough space to store a viewer for the entire software license in the binary. So the MIT License (Expat variant) alone might not be the best choice, as it requires the notice to be reproduced in all copies. This has already caused problems for use of Pently in ROM hacks.

There are a few other non-copyleft licenses. Before Pently moved to Git, I had been using a variant of the GNU All-Permissive License changed to limit the credit requirement to source code:

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved in all source code copies. This file is offered as-is, without any warranty.

My project templates and the game RHDE: Furniture Fight still use this license.

If we find it useful to go with a better-known license, I was considering switching to the license of zlib, which similarly requires the full notice only in source code and encourages but does not require credit in object code. This license is also used by the Allegro 5 library, and it carries forth the spirit of the "giftware" license used by Allegro 4.

As the only contributor so far, I have the right to make this license change unilaterally, but I'm opening this to others' input because I'm nice.

Qix- commented 7 years ago

We can also modify the conditions clause, too.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. This copyright notice may be provided nonadjacent to a binary representation of the Software (including, but not limited to, all or a substantial portion of the compiled source code and/or accompanying files, if any) if this copyright notice would otherwise become a hinderance within a space constrained environment; in such case this copyright notice must be provided in any provided documentation or legal notices provided alongside the Software, in whole and unobstructed.

Personally, I hate licenses that force people that use your code to also have the same license (e.g. GPL) so anything that doesn't have that kind of clause is probably the best.

pinobatch commented 7 years ago

Modifying an existing license will make it OSI-unapproved. In practice, it's easier to use an existing license with the conditions you want, which is why I'm thinking zlib.

And I agree that copyleft for a library like this would be counterproductive.

Qix- commented 7 years ago

Looking back at this, zlib looks like a good choice.