So let’s say I make a script/small app that has a ton of my own code, and only a small section of it is comprised of a utility from someone else (let’s say a simple operation like sending files to the trash, or sending a notification), which uses a license, like MIT.

Now, I want my script/app to be public domain (or MIT licensed, let’s take two examples).

  1. How do I make the distinction for this in my code? How do I exactly explain “this part of the code is encumbered by this license, and this other part is my license”?
  2. Every copy of it I distribute needs to include the license? That seems really idiotic/cumbersome, having to pass a dumb text file around.
  3. Do I then have to include both files (theirs and mine)?

Number 3 is my biggest doubt, how do I reliably and clearly point each portion of the code to each specific license? I won’t go on a rant about this, but it is honestly the most stressful part of programming, to me, can’t we just happily share code amongst peers? In the examples above, none of those apps are “mission critical”, but they are nice additions, and not including them because of the confusion/limitations it causes is a real shame.

  • Is the utility a library that you use? or code that you include? – user40980 Nov 15 '13 at 2:57
  • In the examples I gave, they’re both utilities. I wouldn’t call them libraries since they’re not exactly interacting with my code, they’re supplements that allow me to do a few more operations for very specific things; I’m not modifying their code in any way (in this case they’re both binaries that I’m including, not any source code). But if I can get an answer encompassing both cases, so much the better. – user137369 Nov 15 '13 at 3:04
  • I'm hoping to get the question narrowed - rather than broadened. Things like 'small app' imply compiled and bundled, while 'small script' tends to imply 'a small shell/perl/python script that uses other stuff that is installed separately'. These have very different implications for licensing. Likewise, including code is very different than linking to code. Could you narrow it down so that someone doesn't need to answer 16 different combinations of situations? – user40980 Nov 15 '13 at 3:11
  • “These have very different implications for licensing”. That’s the problem, I do not have any idea what they are, that’s what I’m trying to figure out. Let’s say something like an Alfred workflow, i.e. something that comes bundled together where you include various bash/ruby scripts and that third-party app. – user137369 Nov 15 '13 at 3:24
up vote 4 down vote accepted

In the example you give, the MIT license, it says

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

So, if your software contains theirs then "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software".

That's all there is to it.

It's a good idea to put the licensed software in it's own directory, along with the license. Your main license files should highlight which parts are yours and which have another license.

The main directory where you hold documents such as the license (maybe the root directory of the project, or a Documentation directory), will contain files such as README.TXT or LICENSE.TXT. One of those should contain a section something like

This software includes third party open source software components: Foo, Bar, and Whatsit. Each of these software components have their own license. Please see ./Foo/License.txt, ./Bar/License.txt, and ./Whatsit/License.txt.

The main thing is to make clear that those parts have their own license, and since open source products nearly always require that the source must be available, provide a link to the source project, and/or the source itself.

Just make sure that anyone who looks can see that you are complying with the licenses.

  • “It's a good idea to put the licensed software in it's own directory, along with the license”. Sounds like a good idea. “Your main license files should highlight which parts are yours and which have another license”. That’s my main “how?” in this — if I have a pre-picked license, how should I go about declaring this? – user137369 Nov 20 '13 at 1:12
  • Ok, updated my answer. – andy256 Nov 20 '13 at 8:31

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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