I am planning to release as open-source a personal project for mostly educational (if any) purposes. It is Windows only.
My own code will be released under the MIT license, but I also use this libraries/components:
- ODE
- Scintilla
- Scintilla PJ Naughter component
- glaux
Apart for making sure I include each of these libraries license files, how should I integrate them in the source code release tree?
Currently for each one I use a particular release/revision which I manually customized or built and integrated in terms of source code files and binary library files. Is this enough? I don’t want to burden the resulting package with full 3rd party source trees, but at the same time I want it compilable from scratch.
Also I want to include my final compiled executable files. Is this frown upon? I will check the resulting exe’s with VirusTotal.
As you want to offer your application for others to tinker with it, next to a binary only release you might want to offer sort of an “SDK” release which contains your code as source and the library dependencies as binaries.
As you also want to be able to compile from all sources, you should for practical reasons also create a full source package for each release.
Create yourself a script that is able to build each of these packages automatically. Put your build script under revision control as well. If you don’t have any revision control right now, put your source tree under revision control first.
That are merely practical suggestions so that you can achieve what you’re looking for while giving other users a good accessibility of your program, too.
For the licensing of the libraries/components you listed, I tried to find out more. If applicable I got the short identifiers from the SPDX Open Source License Registry. It contains links to each license, so it’s a good tool to classify the license situation of your package:
LGPL-v2.1+orBSD-3-ClauseHPND(IANAL) It looks like that these are all type-of permissive licenses, so you’re mostly not obligated to release the source. Two notes:
I was not able to obtain information about GLAux. You might want to look into the source files you have which licensing applies. It was somewhat complicated to find out more, it seems that the library is deprecated. What I saw was that it was part of the OpenGL project, but I don’t know which source-files you use and where you obtained them.
The Scintilla PJ Naughter component has a non-standard license which does not permit the distribution of modified source-code. But you’re allowed to distribute the code unchanged. I think the intention of the original author is that he does not want other source-distribution next to his own one (fork but don’t change the fork). I’d say you should conform as long as you can and if you can’t any longer contact the original author and discuss the issue. If that does not resolve to a practical solution, you might need to contact a lawyer about the rights you have on your own in that case to supersede the restrictions under copyright expressed by the original author.
Why should it, this will make the software accessible for those who can not or don’t want to compile.
If you’re looking for a public source-code repository that accepts your repro under these terms, github does. Their only obligation is that the source-code is visible and the repo can be forked – as this says not much about the rights that are given with the code and each fork, make the licensing of the code you have clear. Other sites like google code would not allow this as they only accept code under an OSI approved licensed which is not true for Scintilla PJ Naughter component.
Add the files rainbru suggested.