0

I've got a library up on GitHub, with some of the binaries also distributed on NuGet: https://github.com/relentless/Http.fs

I'd ignored licencing up until now, but somebody's asking about it so I though I should put something on. I want to keep it permissive, and having done a little research MIT seems like a good one to use. However, my library references/uses three other libraries, all with different licences, so I'm not quite sure what I need to do.

It includes the binaries of:

And a source file from:

The MIT of Nancy doesn't seem to be a problem. The Apache of fsharpx and the FsUnit one both say I need to include the licence text in my project.

So my questions are:

  1. What do I do with the other licences, just copy the files into the root of my source? I assume I can rename them and add a comment specifying which part of my project this licence refers to.
  2. Assuming I go for MIT, could I reasonably describe my project as having an MIT licence? Or is the reality that it's a mixed MIT/Apache 2.0/Random licence?
4

The good news is all of the licenses are compatible. The most restrictive being the ASL 2.0 which requires that there are no patents in the library licensed by the ASL. The open source projects I've seen that have had multiple licenses for the libraries follow a pattern like this:

  • Each license is in a file like this: LICENSE.{library_name}.txt
  • If there are a number of different licenses, they are in a folder named LICENSES

So with your library it would look something like this:

/LICENSE.txt
/LICENSE.Fsunit.txt
/LICENSE.NancyFx.txt
/LICENSE.FSharpX.txt

LICENSE.txt would be the license for your project. It's up to you what license you feel most comfortable with. You would be perfectly fine with the MIT license for your source code.

Also, if the FsUnit library isn't directly linked to in your library's distributable, but only used to unit test your code, then you don't have worry about that license. The only time you need to worry about the license is if the library is being redistributed with your code.

  • But, he should probably consult an attorney anyway. – greyfade Mar 11 '14 at 17:38
  • Read the licenses in question. Both FSUnit and NancyFX provide the clauses to use the software as you see fit (including sale) provided the license for the library is preserved. The ASL has the additional proviso that if there are any grants or patents that they convey without royalties to all users of the code. The critical section is the AS IS clause which all software licenses include. I'd only consult an attorney if we are talking about GPL, MPL, or various other licenses that are not so clear cut. – Berin Loritsch Mar 11 '14 at 21:18
  • I'm only saying that it's bad form to offer legal advice without appropriate disclaimers. Getting licensing wrong can be a big deal to some very litigious folks, and the best way to avoid it is to have an attorney's assistance in verifying that the licensing is correct and valid. You and I may read the license one way, but a Court may one day read them another, despite the best efforts of the license authors. Adding the simple disclaimer "TINLA, IANAL, talk to your attorney" is a sufficient CYA. – greyfade Mar 12 '14 at 2:39
1

As none of the libraries has a copyleft license, you are free to choose any license you like for your own library. And if you choose to use the MIT license, then your library is MIT licensed. The fact that you use third-party libraries that have a different license does not affect that.

If you don't distribute those libraries along with your library, then there are no further considerations. The copyright licenses only come into effect when you distribute the library/program that the license applies to.

If you do distribute the libraries along with yours, then the easiest way to meet the requirements of the licenses is to put a complete copy of each library in a directory of its own (like you have done with your packages directory). Then you have all the required license files for each of those libraries in your distributing in a place where they are easy to find and associate with the right library.

  • Do you know whether making the source/binaries available on GitHub would count as 'distribution'? I assume putting it on NuGet counts as distribution, but I don't specifically include the 3rd party binaries in my NuGet distribution (although it does include some source from FSharpX). – Grant Crofton Mar 12 '14 at 9:33
  • 1
    The exact details of what 'distribution' means can differ from license to license, but making the software available for others usually falls under distribution. That includes making it available on GitHub. – Bart van Ingen Schenau Mar 12 '14 at 9:39
  • If your library actually contains sources you copied from FSharpX, then there is a large chance that your library must be regarded as a derived work from FSharpX. In that case, the license may put additional requirements in place. – Bart van Ingen Schenau Mar 12 '14 at 9:43

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.