# License

## calog

MIT License

Copyright (c) 2026 Scott Duensing

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---

## Third-party components

calog vendors its dependencies under `vendor/`, each built from source. Every
dependency is distributed under its own license, and the full license text
ships alongside that dependency's source at the path shown below. All are
permissive (MIT / BSD / Apache-2.0 / PostgreSQL / public domain) **except**
MariaDB Connector/C, which is **LGPL-2.1** -- see the note under the database
libraries below.

### Scripting engines

- **Lua 5.4** -- MIT License. Copyright (C) 1994-2023 Lua.org, PUC-Rio.
  `vendor/lua/` (notice in `src/lua.h`).

- **QuickJS-ng** (JavaScript) -- MIT License. Copyright (c) 2017-2024 Fabrice
  Bellard, Charlie Gordon, and QuickJS-ng contributors. `vendor/quickjs/quickjs.h`.

- **Squirrel 3.2** -- MIT License. Copyright (c) 2003-2022 Alberto Demichelis.
  `vendor/squirrel-src/COPYRIGHT`.

- **our-basic** -- calog's fork of MY-BASIC. MIT License. Copyright (C)
  2011-2026 Tony Wang. `vendor/ourbasic/` (license notice in `ourBasic.h`). The
  fork's changes are catalogued in `vendor/ourbasic/NOTICE` and
  `vendor/ourbasic/CHANGELOG`; the pristine upstream source is preserved as
  `vendor/ourbasic/ourBasic.c.upstream`.

- **s7 Scheme** -- BSD Zero-Clause License (0BSD; `SPDX-License-Identifier: 0BSD`).
  Copyright (c) Bill Schottstaedt; derived from TinyScheme 1.39. `vendor/s7/s7.c`.

- **Wren 0.4.0** -- MIT License. Copyright (c) 2013-2021 Robert Nystrom and Wren
  Contributors. Notice in `vendor/wren/wren.c` and `vendor/wren/wren.h`.

  > Note: `vendor/wren/wren.c` and `wren.h` carry one small calog patch adding a
  > public C map-key iterator (`wrenGetMapCapacity` / `wrenGetMapEntry`), which
  > upstream Wren lacks; it mirrors Wren's own internal `map_iterate`. The
  > additions are bracketed by `--- calog patch ---` comments. Re-apply them if
  > the amalgamation is regenerated from upstream (`util/generate_amalgamation.py`).

- **Berry** -- MIT License. Copyright (c) 2018-2022 Guan Wenliang and Berry
  contributors. Notice in `vendor/berry/src/berry.h`.
- **mruby 4.0.0** (Ruby) -- MIT License. Copyright (c) 2010-2025 mruby developers.
  `vendor/mruby/` (unmodified upstream; license in `vendor/mruby/LICENSE`, contributors
  in `vendor/mruby/AUTHORS`). `libmruby.a` is generated by mruby's own Rake build (needs a
  host Ruby + bison at build time); calog links the resulting static archive.

### Database, network, and cryptography libraries

All of the following are linked into the default build and into `bin/calog`.
`bin/calog` ships with all three SQL drivers (`dbOpen("sqlite" | "postgres" |
"mysql", ...)`).

- **SQLite 3.53.3** -- Public Domain. The SQLite source is dedicated to the
  public domain; in lieu of a license it carries a blessing ("May you do good
  and not evil..."). `vendor/sqlite/sqlite3.c`.

- **PostgreSQL / libpq** -- The PostgreSQL License (a permissive, MIT-style
  license). Portions Copyright (c) 1996-2026 PostgreSQL Global Development Group;
  Portions Copyright (c) 1994 The Regents of the University of California.
  `vendor/postgres/COPYRIGHT`.

- **MariaDB Connector/C** -- GNU Lesser General Public License, version 2.1
  (LGPL-2.1). Copyright (c) MariaDB Corporation Ab and others.
  `vendor/mariadb/COPYING.LIB`.

- **ENet** -- MIT License. Copyright (c) 2002-2024 Lee Salzman.
  `vendor/enet/LICENSE`.

- **OpenSSL 3.5.7** -- Apache License 2.0. Copyright (c) The OpenSSL Project
  Authors. `vendor/openssl/LICENSE.txt`.

- **libssh2 1.11.1** -- BSD-3-Clause License. Copyright (c) 2004-2023 Daniel
  Stenberg, Sara Golemon, The Written Word, Inc., and other contributors (full
  list in the file). `vendor/libssh2/COPYING`.

> **Note on the database backends and LGPL.** MariaDB Connector/C is the only
> copyleft dependency in the tree. It is **statically linked** into `bin/calog`,
> which carries the usual LGPL-2.1 obligations for a distributed binary (chiefly,
> providing the means to relink against a modified Connector/C). SQLite and
> PostgreSQL/libpq are permissive. A redistributor who wants an entirely
> permissive binary can build without the MySQL backend -- drop
> `-DCALOG_WITH_MYSQL` and the `$(MYSQLARCH)` archive from the `bin/calog` link in
> the Makefile -- and keep SQLite + PostgreSQL.
