# mORMot Framework Licencing Terms

**The mORMot framework. Copyright (C) 2024 Arnaud Bouchez**

**Synopse Informatique - https://synopse.info**

The files in this repository are part of the mORMot framework 2, and are released under a disjunctive MPL 1.1/GPL 2.0/LGPL 2.1 three-license. Its use in any project expects the full acceptance of its licensing terms.


## MPL 1.1/GPL 2.0/LGPL 2.1 three-license

The framework source code is licensed under a disjunctive three-license giving the user the choice of one of the three following sets of free software/open source licensing terms:
- *Mozilla Public License*, version 1.1 or later (MPL);
- *GNU General Public License*, version 2.0 or later (GPL);
- *GNU Lesser General Public License*, version 2.1 or later (LGPL), with *linking exception* of the *FPC modified LGPL*.

*FPC modified LGPL* is the *Library GNU General Public License* with the following modification:

*As a special exception of the LGPL, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.*

This allows the use of the framework code in a wide variety of software projects, while still maintaining intellectual rights on library code.

In short:
- For GPL projects, use the GPL license - see http://www.gnu.org/licenses/gpl-2.0.html
- For LGPL projects, use the LGPL license - see http://www.gnu.org/licenses/lgpl-2.1.html
- For commercial projects, use the MPL License - see http://www.mozilla.org/MPL/MPL-1.1.html - which is the most permissive, or the FPC modified LGPL license, thanks to its linking exception - see http://wiki.freepascal.org/modified_LGPL

Note that the documentation is under GPL 3.0 license only, as stated in its introduction.


## Legal Notice

There are countries that restrict the use, import, export of cryptographic software. Before keeping, using, or distributing the software, make sure that you comply to these restrictions. If (for any reason) you are unable to do so, you are not allowed to download, use, distribute the software.

If you are residing in a country that allows software patents you must verify that no part of the software is covered by a patent in your country. If (for any reason) you are unable to do so, you are not allowed to use or distribute the software.


## Publish modifications and credit for the library

In all cases, any modification made to this source code **should** be published by any mean (e.g. a download link), even in case of MPL. If you need any additional feature, use the forums and we may introduce a patch to the main framework trunk.

You do not have to pay any fee for using our MPL/GPL/LGPL libraries.

But please do not forget to put somewhere in your credit window or documentation, a link to https://synopse.info if you use any of the units published under this tri-license.

For instance, if you select the MPL license, here are the requirements:
- You accept the license terms with no restriction - see http://www.mozilla.org/MPL/2.0/FAQ.html for additional information;
- You have to publish any modified unit in a public web site (e.g. http://YourSoftwareCompany.com/MPL), with a description of applied modifications, and no removal of the original license header in source code;
- You make appear some notice available in the program (About box, documentation, online help), stating e.g.
*This software uses some third-party code of the Synopse mORMot framework (C) 2024 Arnaud Bouchez - https://synopse.info - under Mozilla Public License 1.1; modified source code is available at http://SoftwareCompany.com/MPL*


## Derivate Open Source Works

If you want to include part of the framework source code in your own open-source project, you may publish it with a comment similar to this one:

    {
      Will serve static content and DWS dynamic content via http.sys
      kernel mode high-performance HTTP server (available since XP SP2).
      See http://blog.synopse.info?post/2011/03/11/HTTP-server-using-fast-http.sys-kernel-mode-server
      WARNING: you need to first register the server URI and port to the http.sys stack.
      That is, run the application at least once as administrator.

      Sample based on official mORMot's sample
      "SQLite3\Samples\09 - HttpApi web server\HttpApiServer.dpr"

      Synopse mORMot framework. Copyright (C) 2024 Arnaud Bouchez
        Synopse Informatique - https://synopse.info
      Original tri-license: MPL 1.1/GPL 2.0/LGPL 2.1
    }

For instance, this comment was included in the great *DelphiWebScript* project by Eric Grange - https://bitbucket.org/egrange/dwscript/src/master

You need to ensure that your Open Source project licensing is compatible with our Licensing Terms, and, if possible, notify us that you use our code.

## Commercial Licenses

Even though our libraries are Open Source with permissive licenses, some users want to obtain a license anyway.

For instance, you may want to hold a tangible legal document as evidence that you have the legal right to use and distribute your software containing our library code, or, more likely, your legal department tells you that you have to purchase a license.

If you feel like you really have to purchase a license for our libraries, *Synopse*, the company that employs the architect and principal developer of the libray, will sell you one. Please contact us directly for a contract proposal.

