SQLite Copyright (http://www.sqlite.org/copyright.html)

All of the deliverable code in SQLite has been dedicated to the public
domain by the authors. All code authors, and representatives of the
companies they work for, have signed affidavits dedicating their
contributions to the public domain and originals of those signed affidavits
are stored in a firesafe at the main offices of Hwaci. Anyone is free to
copy, modify, publish, use, compile, sell, or distribute the original SQLite
code, either in source code form or as a compiled binary, for any purpose,
commercial or non-commercial, and by any means.

The previous paragraph applies to the deliverable code in SQLite - those
parts of the SQLite library that you actually bundle and ship with a larger
application. Portions of the documentation and some code used as part of the
build process might fall under other licenses. The details here are unclear.
We do not worry about the licensing of the documentation and build code so
much because none of these things are part of the core deliverable SQLite
library.

All of the deliverable code in SQLite has been written from scratch. No code
has been taken from other projects or from the open internet. Every line of
code can be traced back to its original author, and all of those authors
have public domain dedications on file. So the SQLite code base is clean and
is uncontaminated with licensed code from other projects.

Obtaining An Explicit License To Use SQLite

Even though SQLite is in the public domain and does not require a license,
some users want to obtain a license anyway. Some reasons for obtaining a
license include:

You are using SQLite in a jurisdiction that does not recognize the public
domain.
You are using SQLite in a jurisdiction that does not recognize the right of
an author to dedicate their work to the public domain.
You want to hold a tangible legal document as evidence that you have the
legal right to use and distribute SQLite.
Your legal department tells you that you have to purchase a license.
If you feel like you really have to purchase a license for SQLite, Hwaci,
the company that employs the architect and principal developers of SQLite,
will sell you one.

Contributed Code

In order to keep SQLite completely free and unencumbered by copyright, all
new contributors to the SQLite code base are asked to dedicate their
contributions to the public domain. If you want to send a patch or
enhancement for possible inclusion in the SQLite source tree, please
accompany the patch with the following statement:

The author or authors of this code dedicate any and all copyright interest
in this code to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and successors. We
intend this dedication to be an overt act of relinquishment in perpetuity of
all present and future rights to this code under copyright law.
We are not able to accept patches or changes to SQLite that are not
accompanied by a statement such as the above. In addition, if you make
changes or enhancements as an employee, then a simple statement such as the
above is insufficient. You must also send by surface mail a copyright
release signed by a company officer. A signed original of the copyright
release should be mailed to:

Hwaci
6200 Maple Cove Lane
Charlotte, NC 28269
USA
A template copyright release is available in PDF or HTML. You can use this
release to make future changes.
