joeylib2/LICENSES.md

281 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Third-Party Licenses
This file inventories every third-party component JoeyLib depends on,
either at runtime (linked into the produced binaries) or at build /
test time. Components are grouped by role; within each group entries
list the platforms that consume the component, the upstream URL, and
the license.
When upstream license terms change, update the corresponding row here.
---
## Runtime libraries (linked into joeylib output binaries)
These ship as part of, or are linked into, an executable built by
JoeyLib. License compatibility for these matters most.
### libxmp-lite
- **Used on:** DOS, Atari ST
- **URL:** <https://github.com/libxmp/libxmp>
- **License:** MIT
- **Role:** ProTracker / Amiga MOD replayer + SMIX SFX overlay. Linked
into AUDIO binaries on the chunky-display platforms.
- **Vendored at:** `toolchains/audio/libxmp-lite/`
### NinjaTrackerPlus (NTP)
- **Used on:** Apple IIgs
- **URL:** <https://www.ninjaforce.com/html/products_software.html>
(downloads from <https://www.ninjaforce.com/downloads/>)
- **License:** No explicit license in the source distribution; written
by Jesse Blue (NinjaForce). Treated here as free for use; consult
upstream before commercial redistribution.
- **Role:** Apple IIgs Ensoniq DOC `.NTP` module replayer + SFX
streamer. Merlin32-assembled and **linked** into the AUDIO binary as
bytes (see `make/iigs.mk` `$(NTP_HEADER)` rule).
- **Vendored at:** `toolchains/iigs/ntp/ninjatrackerplus.s` (source);
build product baked into `examples/audio` AUDIO binary.
### PTPlayer
- **Used on:** Amiga
- **URL:** <http://aminet.net/mus/play/ptplayer.lha>
(author Frank Wille, <http://aminet.net/package/mus/play/ptplayer>)
- **License:** Public Domain
- **Role:** ProTracker MOD replayer + `mt_playfx` SFX channel for the
Paula audio HAL.
- **Vendored at:** `toolchains/amiga/ptplayer/`
---
## Build-time toolchains (NOT linked, used to produce binaries)
These run on the developer's machine to compile / assemble / link
JoeyLib for each target. They are not redistributed inside the
produced game binaries.
### Golden Gate (host tools: iix, profuse, mkfs-profuse, dumpobj)
- **Used on:** Apple IIgs
- **URL:** <https://golden-gate.ksherlock.com/>
(publisher / store: <https://juiced.gs/store/golden-gate/>)
- **License:** **Commercial** software by Kelvin Sherlock,
distributed through Juiced.GS / Gamebits. End-user purchase
required; redistribution **not** permitted.
- **Role:** Cross-host harness that runs ORCA-style IIgs tools on a
modern OS. Provides the `iix` shell, the OMF linker, `profuse`
(ProDOS FUSE mount), `mkfs-profuse`, `dumpobj`, and the IIgs-side
filesystem image (`$GOLDEN_GATE`) that the harness emulates.
- **Distribution:** **Not redistributed by JoeyLib.** Each developer
must bring their own purchased copy. `toolchains/install.sh`
builds host tools from a developer-supplied source checkout under
`stuff/GoldenGate/` (the `stuff/` tree is gitignored) and stages
the IIgs filesystem from a developer-supplied `gg-linux.tgz`. The
resulting `toolchains/iigs/gg-tools/` and `toolchains/iigs/goldengate/`
trees are gitignored.
### ORCA/C compiler + ORCA libraries
- **Used on:** Apple IIgs
- **URL:** <https://github.com/byteworksinc/ORCA-C>
(commercial distribution: <https://juiced.gs/store/opus-ii/>)
- **License:** **Commercial** product by The Byte Works, Inc.
(Mike Westerfield). Source code is published on GitHub under a
custom license that grants only **private use, fork, and
modification**; redistribution in any form other than submission
back to the upstream repo requires written permission. Commercial
rights remain with Byte Works; the compiler is sold today as part
of the **Opus ][** collection via Juiced.GS.
- **Role:** ANSI C compiler for the 65816 + Apple IIgs runtime
libraries. Run via Golden Gate's `iix` harness.
- **Distribution:** **Not redistributed by JoeyLib.** ORCA support
files arrive as part of the developer-supplied Golden Gate /
Opus ][ install bundle and land inside the gitignored
`toolchains/iigs/goldengate/` tree.
### Merlin32
- **Used on:** Apple IIgs
- **URL:** <https://brutaldeluxe.fr/products/crossdevtools/merlin/>
- **License:** Freely distributed by Brutal Deluxe Software
(Olivier Zardini, Antoine Vignau). Source published with no
formal open-source license header — Brutal Deluxe's "open source
philosophy" but copyright is retained. Treat as "free to use,
redistribute as part of a build chain; ask before forking
commercially."
- **Role:** 65816 cross-assembler. Builds NinjaTrackerPlus.
- **Vendored at:** `toolchains/iigs/merlin32/`
### Bebbo m68k-amigaos GCC toolchain
- **Used on:** Amiga
- **URL:** <https://github.com/AmigaPorts/m68k-amigaos-gcc>
- **License:** GNU GPL v2 (gcc, binutils, libnix); per-component
copyrights listed in upstream `README.md`. Includes assets covered
by individual permissive notices (Roadshow, fd2pragma public
domain, ira freeware, etc.).
- **Role:** AmigaOS HUNK-format gcc + binutils + libnix used to
compile the Amiga port and link against PTPlayer.
- **Vendored at:** `toolchains/amiga/gcc/`
### vasm
- **Used on:** Amiga (PTPlayer only)
- **URL:** <http://sun.hasenbraten.de/vasm/>
- **License:** vasm custom license — © Volker Barthelmann; free for
non-commercial use, plus an explicit **commercial-use exception
for M68k + AmigaOS targets** (see vasm distribution README). Other
commercial use requires written permission. JoeyLib's only
remaining vasm invocation is `ptplayer.asm` on the Amiga path,
which falls under the M68k+AmigaOS exception.
- **Role:** Assemble third-party `ptplayer.asm` (Frank Wille's
Devpac/vasm-syntax source). Our own `.s` files are GAS syntax and
go through `m68k-amigaos-as` (binutils, GPL) instead.
- **Vendored at:** `toolchains/amiga/vasm/`
### m68k-atari-mint GCC toolchain (Thorsten Otto builds)
- **Used on:** Atari ST
- **URL:** <https://tho-otto.de/download/mint/>
(gcc upstream: GNU; mintlib: <https://github.com/freemint/mintlib>)
- **License:** GNU GPL v2 (gcc, binutils); mintlib is a mix of GPL
and permissive (per-file headers).
- **Role:** GEMDOS-native gcc + binutils + mintlib used to compile
the Atari ST port.
- **Vendored at:** `toolchains/atarist/gcc/`
### DJGPP (build-djgpp packaging)
- **Used on:** DOS
- **URL:** <https://github.com/andrewwutw/build-djgpp>
(DJGPP upstream: <http://www.delorie.com/djgpp/>)
- **License:** Build script GNU GPL v3; bundled gcc/binutils GNU
GPL v2; DJGPP runtime libraries (libc) are mostly public-domain or
permissive — see DJGPP `readme.1st`.
- **Role:** 32-bit protected-mode gcc cross-compiler producing
COFF binaries that run on 386+ DOS via DPMI.
- **Vendored at:** `toolchains/dos/djgpp/`
### CWSDPMI
- **Used on:** DOS
- **URL:** <https://sandmann.dotster.com/cwsdpmi/>
- **License:** Custom redistribution terms (Charles W. Sandmann,
© 19952010). Binary may be redistributed without source provided
the executables are unmodified and end users are notified of
source availability — full terms in `cwsdpmi.doc`. Source is
GPL-licensed if distributed.
- **Role:** Stubbed-into-binary DPMI server for DJGPP-compiled DOS
executables (via `embed-dpmi.sh`).
- **Vendored at:** `toolchains/dos/cwsdpmi/`
### NASM
- **Used on:** DOS
- **URL:** <https://www.nasm.us/>
- **License:** 2-clause BSD
- **Role:** Assembler for x86 inline-asm support files in the DOS
port.
- **Vendored at:** `toolchains/dos/nasm/`
---
## Test-time emulators (not shipped, not linked)
Used by `scripts/run-*.sh` to run the produced binaries on the
developer's machine. Not part of any redistributed artifact.
### GSplus (KEGS fork)
- **Used on:** Apple IIgs
- **URL:** <https://github.com/digarok/gsplus>
- **License:** GNU GPL v3
- **Vendored at:** `toolchains/emulators/gsplus/`
### MAME
- **Used on:** Apple IIgs (apple2gs driver, optional)
- **URL:** <https://www.mamedev.org/>
- **License:** GNU GPL v2+ (GPL-2.0-or-later) plus a 3-clause BSD
alternative for some components.
### Hatari
- **Used on:** Atari ST
- **URL:** <https://www.hatari-emu.org/>
- **License:** GNU GPL v2
### DOSBox
- **Used on:** DOS
- **URL:** <https://www.dosbox.com/>
- **License:** GNU GPL v2
### FS-UAE
- **Used on:** Amiga
- **URL:** <https://fs-uae.net/>
- **License:** GNU GPL v2 (UAE codebase)
### EmuTOS
- **Used on:** Atari ST (TOS replacement for Hatari)
- **URL:** <https://emutos.sourceforge.io/>
- **License:** GNU GPL v2
- **Vendored at:** `toolchains/emulators/support/emutos-512k.img`
---
## System ROMs and disk images (used for testing only)
These are **not** part of JoeyLib distribution and **not**
redistributed. They are downloaded to the developer's local cache by
`toolchains/install.sh` for emulator-side testing only. License terms
prohibit redistribution; please consult the source if you intend to
ship anything that depends on them.
### Apple IIgs ROM 03
- **Used on:** Apple IIgs (GSplus, MAME)
- **URL:** Various preservation archives, e.g.
<https://mirrors.apple2.org.za/ftp.apple.asimov.net/emulators/rom_images/>
- **License:** Apple Inc. proprietary firmware. Provided here for
developer testing only; **do not redistribute** as part of any
derivative project.
### Apple IIgs System 6.0.4
- **Used on:** Apple IIgs (GSplus boot disk)
- **URL:** <https://mirrors.apple2.org.za/ftp.apple.asimov.net/images/gs/os/gsos/>
- **License:** Apple Inc. proprietary OS. Same caveat as the ROM.
### Apple IIgs apple2gs MAME ROM set
- **Used on:** Apple IIgs (MAME testing path)
- **URL:** Same preservation archives as above.
- **License:** Apple Inc. proprietary firmware. Required for MAME's
apple2gs driver but not redistributed.
### Amiga Kickstart ROM (optional)
- **Used on:** Amiga (FS-UAE, optional — falls back to AROS)
- **URL:** Cloanto / Amiga Forever (commercial), or original media.
- **License:** Cloanto / Amiga Corp. proprietary. JoeyLib does **not**
bundle Kickstart; users supply their own ROM at
`toolchains/emulators/support/kickstart.rom` if they have one.
---
## Maintenance
When adding a new third-party dependency:
1. Append a row in the appropriate section above.
2. Record platform(s), upstream URL, license name, and a one-line
role description.
3. If the dependency is vendored, list the path under
`toolchains/`.
4. If license terms restrict redistribution, call that out
explicitly (as we do for Apple ROMs).