The framework is licensed under the GNU Lesser Public License v2.1
What does that means?
Note: I am not a lawyer, and the following should not be seen, by any means, as any kind of legal advice. They do not substitute the license text, and the only valid legal terms are the ones specified in the contents of the GNU Lesser General Public License text file. If in doubt, consult a lawyer.Can I use Accord.NET in my commercial applications?
Yes, as long as you are only linking against the unmodified .dll files of the framework, and if you mention in your software and relevant resource materials that you are using this framework - and ideally tell users where they could also find it.
Will I need to disclose my source code if I link against this library?
No, as long as you don't touch any of the framework's own source
code files. If you just link against the framework .dll files, then everything should
be fine. Note that this is the most common case (and the intended use) scenario.
However, if you make modifications to the framework source code, and redistribute
this modified version (i.e. compile a modified version of the framework itself),
then you will need to distribute those modifications under the LGPL, to whomever
you chose to distribute this modified version to.
So if I alter any of the framework's source code files and link against this modified version, will I have to disclose my application code?
No. Your application would be fine. The problem would be the modified
version of the framework: if you would like to continue using the framework, you
can open just the modifications you made to the framework's source code, and not
the code of your consumer application. The code of your application would never
need to be disclosed, under any circumstances.
Neither the GPL nor the LGPL actually obliges you to actually disclose
your source code. If you distribute a modified version without abiding by the LGPL terms, you
will be violating the license terms and thus lose your grant to continue using the library.
You will have two options: either continue using the library and disclose your modifications
under the LGPL, or stop distributing the modified software altogether.
Licensing FAQ
Why some assemblies/projects are marked as .Noncommercial in their names?
Some assemblies, such as Accord.Math.Noncommercial are marked as Noncommercial because they include algorithms that have been shared under academic-only licenses, or that otherwise contain patented algorithms for which would be necessary to acquire a license to commercialize. If you would are using the framework and plan to commercialize your product, please avoid linking your project against those specific assemblies (note: the assembly shown as an example is different from the standard Accord.Math assembly, which is perfectly OK to use in commercial applications).
Can I use the framework for commercial purposes and without paying money to your company?
Yes, as long as you don't use any of the assemblies marked as "Noncommercial", such as, for example, Accord.Math.Noncommercial (note: this is different from the standard Accord.Math assembly, which is perfectly OK to use in commercial applications).
If I do not change your work, but only use the compiled DLLs in my project, can I keep my source code proprietary (i.e. without having to make my source code public/visible)?
Yes, you can always keep your source proprietary. By the way, you could keep your source code proprietary even if you modified the framework source code. You would have the option of disclosing the source code of your modifications to the framework's source code, but never of your application or product.
Can I deploy the DLLs on the computer of my customers?
Absolutely! Just be sure to mention in your application and related documentation materials that your product uses this framework and indicate where users can download it.
Do I have to acquire a license to use the framework?
No, you don't need to acquire a license to use Accord.NET in a commercial application. The framework is distributed under the LGPL 2 license, which allows it to be used commercially without any costs. However, sometimes people ask framework authors to give special, explicit licenses with my signature, just for extra garanties that they can indeed use the framework in their products. This is not required at all, but I guess some companies have some restrictions against open-source code and I suppose having those explicit permissions is safer for them.
We're interested in using Accord for a commercial piece of software, however some parts of Accord appear to be GPL, whereas others are LGPL, and some are under Creative Commons. Why is that?
All the binaries from the framework are available under the LGPL license except for the ones that have different
license markings in their names. For example,
Accord.MachineLearning.dll does not have any marking, and as such,
is under the LGPL. In fact, all "core" assemblies of the framework are available under the LGPL and thus can be
used on commercial and closed-source applications without any problems.
However, there have been some useful algorithms that have been released by others under the GPL or non-commercial
licenses. In order to keep the main framework under the LGPL but still provide those algorithms for those who need,
the framework contains assemblies with the marks "GPL" or "Noncommercial" in their names such as
Accord.MachineLearning.GPL.dll. Those
especially marked assemblies are available under their respective marked licenses. If you want to keep the
licensing clean, just stick to using the standard binaries which are not marked with GPL or Noncommercial in
their names.
Regarding the mention to Creative Commons: it refers only to the documentation and API reference that comes with
the framework, and its the same license used by Wikipedia. It is a more adequate license for texts.
Additional software
Great part of the open-source software ecosystem is based in the sharing and reuse of source code. As such, the framework also makes use of several excelent works shared by other users under LGPL-compatible licenses. For a complete list of such software, please consult the Copyrights.txt text file in the framework's main folder.