calog/LICENSE.md

165 lines
8.5 KiB
Markdown

# 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.
- **Janet 1.41.2** (Lisp) -- MIT License. Copyright (c) 2017-2025 Calvin Rose and
contributors. `vendor/janet/` (single-file amalgamation `janet.c`/`janet.h` +
`janetconf.h`, built from source like s7/Wren). `vendor/janet/LICENSE`.
- **Tcl 9.0.4** (Tool Command Language) -- Tcl/Tk License (BSD-style, permissive; allows
binary-only redistribution, no copyleft). Copyright (c) the Tcl Core Team and contributors.
`vendor/tcl/` (unmodified upstream, trimmed to the core: `generic`/`unix`/`compat`/
`libtommath`/`library`; license in `vendor/tcl/license.terms`). `libtcl9.0.a` is produced by
Tcl's own autoconf build (`configure --disable-shared`, out of tree into `vendor/tcl/build/`);
calog links the resulting static archive (`-ldl -lz -lpthread -lm`).
### 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`.
### Compression and archive libraries
The archive library (`libs/calogArchive.c`) is built on libarchive with the codec
backends below. **All are permissive** (BSD / zlib / 0BSD / MIT), so this whole stack keeps
an all-permissive redistributable binary. Each is vendored and built from source; see
each `vendor/<lib>/NOTICE.calog` for what was kept. (libarchive's XAR format also uses the
vendored OpenSSL for its MD5/SHA1 entry checksums; OpenSSL is listed above.)
- **libarchive 3.8.8** -- BSD-2-Clause License. Copyright (c) the libarchive
contributors. `vendor/libarchive/COPYING`.
- **zlib 1.3.1** (DEFLATE / gzip) -- zlib License. Copyright (c) 1995-2024 Jean-loup
Gailly and Mark Adler. `vendor/zlib`. Built to a single `lib/libz.a` used by the
archive stack.
- **bzip2 1.0.8** -- bzip2 License (BSD-style). Copyright (c) 1996-2019 Julian Seward.
`vendor/bzip2/LICENSE`.
- **LZ4 1.10.0** -- BSD-2-Clause License. Copyright (c) 2011-2024 Yann Collet.
`vendor/lz4/LICENSE`.
- **Zstandard 1.5.6** -- BSD-3-Clause License (zstd is dual BSD-3 / GPLv2; the
permissive BSD option applies here). Copyright (c) Meta Platforms, Inc. and
affiliates. `vendor/zstd/LICENSE`.
- **XZ Utils / liblzma 5.6.4** (xz/lzma, and libarchive's 7-zip) -- BSD Zero Clause
License (0BSD), public-domain-equivalent. `vendor/xz`.
- **libxml2 2.13.9** -- MIT License. Copyright (C) 1998-2012 Daniel Veillard. The XML
backend for libarchive's XAR format (read + write) and for the XML library
(`libs/calogXml.c`). Vendored and built static and lean (no python/programs/http/icu/
modules). `vendor/libxml2/Copyright`.
### Text and process utilities
- **PCRE2 10.45** (Perl-compatible regular expressions) -- BSD-3-Clause License with the
PCRE2 exception (permissive; the exception concerns only binary redistribution of the JIT,
which calog does not build). The regex backend for `libs/calogRegex.c`; built 8-bit, static,
no JIT. Copyright (c) 1997-2024 University of Cambridge and Zoltan Herczeg.
`vendor/pcre2/LICENCE.md`. (The CSV and subprocess libraries have no third-party dependency.)
> **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.
### Platform support (Windows builds only)
Linked only into **Windows** builds; not present in the Linux or macOS builds (those
use the native pthreads).
- **winpthreads** (from mingw-w64) -- MIT License. Copyright (c) 2011 mingw-w64
project; parts derived from the Pthreads-win32 (POSIX Threads for Windows) library.
A POSIX threads implementation over the Win32 API, so calog's pthread code compiles
on Windows. Vendored from source (see `vendor/winpthreads/NOTICE.calog`); license in
`vendor/winpthreads/COPYING`.