165 lines
8.5 KiB
Markdown
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`.
|