6

I've recently completed my first "real" game and although it's not much I'd like other people to be able to play it without having to compile from source and satisfy dependencies on their own. I managed to create a statically linked executable on my Debian system by linking to:

  • -l ncurses
  • -l tinfo

This is a Debian quirk apparently where you have to specify both for it to work. tinfo is part of the ncurses ecosystem. I did some poking around and ncurses seems to have a very permissive license but there's something in there about a copyright notice that I wasn't able to make much sense of.

Am I required to copy-paste it somewhere in my game in order to distribute it? I want some of my less technologically savvy friends to be able to play it but I don't want to distribute anything until I know I'm doing it right. If someone could take the time to break this down for me in dummy terms I'd really appreciate it.

For the source code for the game itself (which is entirely my own) I've gone with the Unlicense, which I've been led to believe is compatible with the permissive license used by ncurses. I'm not very savvy when it comes to open source licenses which is part of the reason I use the Unlicense for my own work. I just want people to be able to use my stuff. I'd appreciate any advice on how to proceed without running afoul of the way things should be done.

2

The ncurses library is licensed under the MIT/X11 license. This is a permissive license that puts very few obligations on you.

The only serious obligation is that you must not edit the ncurses library to remove the copyright statements or the license text. If you are just linking to a pre-built version, then you are already fulfilling that obligation.

It is not a license obligation for ncurses, but it is usually appreciated if you mention in the documentation of your software which libraries you use and under which license they are distributed.

  • So something like "Made with the NCURSES library" in the title screen would suffice? – some_guy632 Apr 10 at 4:27
  • 3
    Not in the title screen. In the documentation, or perhaps in an "about" screen of your application. – Brandin Apr 10 at 4:58
  • 1
    @amon: the MIT license requires that it is present in the software, but does not state how it must be present. It does not require that recipients of a binary can actually read the license. While it is good practice to mention all the licenses that apply to different parts in the GUI, I don't think that is an actual obligation where it comes to the MIT license. – Bart van Ingen Schenau Apr 10 at 14:47
  • 1
    yes but C compilers have the nasty habit of stripping license header comments from the binary. “If you are linking to a pre-built version …”, no, that library might not contain the notices either but instead put it into associated documentation files, such as /usr/share/doc/<name>/copyright. So in general, manual action is required in order for downstream software to use MIT-licensed statically linked libraries compliantly. – amon Apr 10 at 15:19
  • 1
    @some_guy632: you could just add the mention of the ncurses library and its license text to the end of your manual. There is no need to have it as a separate file. – Bart van Ingen Schenau Apr 11 at 5:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.