259 lines
10 KiB
Markdown
259 lines
10 KiB
Markdown
# 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.
|
|
- **Installed at:** `toolchains/opt/libxmp/` (installer component `libxmp`)
|
|
|
|
### 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 into `ntpplayer`, which ships on the disk
|
|
next to each IIgs program and is loaded at run time.
|
|
- **Installed at:** `toolchains/opt/ntp/` (source; installer component `ntp`).
|
|
|
|
### 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.
|
|
- **Installed at:** `toolchains/opt/ptplayer/` (installer component `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.
|
|
|
|
### llvm-mos (clang / llvm-mc / link816 w65816 toolchain)
|
|
|
|
- **Used on:** Apple IIgs
|
|
- **URL:** <https://github.com/llvm-mos/llvm-mos>
|
|
- **License:** Apache License 2.0 with LLVM Exceptions (the upstream
|
|
LLVM license).
|
|
- **Role:** clang C compiler targeting the 65816, plus llvm-mc for
|
|
assembling hand-written `.s` files and link816 for producing OMF
|
|
S16 executables. Driven by `make/support/iigs/clang-build.sh`; the
|
|
toolchain root is located via the `LLVM816_ROOT` environment
|
|
variable.
|
|
- **Installed at:** `toolchains/opt/llvm816/` (installer component `llvm816`)
|
|
|
|
### 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.
|
|
- **Installed at:** `toolchains/opt/merlin32/` (installer component `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.
|
|
- **Installed at:** `toolchains/opt/amigaGcc/` (installer component `amigaGcc`)
|
|
|
|
### vasm
|
|
|
|
- **Used on:** Amiga (PTPlayer only)
|
|
- **URL:** <http://sun.hasenbraten.de/vasm/>
|
|
- **License:** vasm custom license -- (c) 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.
|
|
- **Installed at:** built with the Amiga GCC toolchain (AmigaPorts `vasm`
|
|
sub-project), `toolchains/opt/amigaGcc/bin/vasmm68k_mot`
|
|
|
|
### 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.
|
|
- **Installed at:** `toolchains/opt/mintGcc/` (installer component `mintGcc`)
|
|
|
|
### 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.
|
|
- **Installed at:** `toolchains/opt/djgpp/` (installer component `djgpp`)
|
|
|
|
### CWSDPMI
|
|
|
|
- **Used on:** DOS
|
|
- **URL:** <https://sandmann.dotster.com/cwsdpmi/>
|
|
- **License:** Custom redistribution terms (Charles W. Sandmann,
|
|
(c) 1995-2010). 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`).
|
|
- **Installed at:** `toolchains/opt/cwsdpmi/` (installer component `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.
|
|
- **Installed from:** the Linux distribution's `nasm` package
|
|
|
|
---
|
|
|
|
## Test-time emulators (not shipped, not linked)
|
|
|
|
Used by `joey-run` and the test gates to run the produced binaries on the
|
|
developer's machine. Not part of any redistributed artifact. Installed by
|
|
`./install.sh install emulators`.
|
|
|
|
### MAME
|
|
|
|
- **Used on:** Apple IIgs (apple2gs driver) and Sharp X68000 (x68k driver)
|
|
- **URL:** <https://www.mamedev.org/>
|
|
- **License:** GNU GPL v2+ (GPL-2.0-or-later) plus a 3-clause BSD
|
|
alternative for some components.
|
|
- **Installed at:** `toolchains/opt/mame/`, built from the 0.264 release with
|
|
the patches in `installer/patches/mame/` (installer component `mame`).
|
|
|
|
### Hatari
|
|
|
|
- **Used on:** Atari ST
|
|
- **URL:** <https://www.hatari-emu.org/>
|
|
- **License:** GNU GPL v2
|
|
- **Installed at:** the distribution package on Debian and Ubuntu; on Fedora,
|
|
`toolchains/opt/hatari/`, built from the 2.4.1 source (installer component
|
|
`hatari`)
|
|
|
|
### DOSBox Staging
|
|
|
|
- **Used on:** DOS
|
|
- **URL:** <https://www.dosbox-staging.org/>
|
|
- **License:** GNU GPL v2+
|
|
- **Installed at:** `toolchains/opt/dosbox/` (the project's Linux release;
|
|
installer component `dosbox`)
|
|
|
|
### FS-UAE
|
|
|
|
- **Used on:** Amiga
|
|
- **URL:** <https://fs-uae.net/>
|
|
- **License:** GNU GPL v2 (UAE codebase)
|
|
- **Installed at:** the distribution package on Debian and Ubuntu; on Fedora,
|
|
`toolchains/opt/fsuae/`, built from the 3.1.66 release (installer component
|
|
`fsuae`)
|
|
|
|
### EmuTOS
|
|
|
|
- **Used on:** Atari ST (TOS replacement for Hatari)
|
|
- **URL:** <https://emutos.sourceforge.io/>
|
|
- **License:** GNU GPL v2
|
|
- **Installed at:** `toolchains/firmware/atarist/emutos-512k.img` (installer
|
|
component `emutos`)
|
|
|
|
---
|
|
|
|
## System ROMs and disk images (used for testing only)
|
|
|
|
These are **not** part of JoeyLib distribution. `./install.sh`
|
|
places them in `toolchains/firmware/` for emulator-side testing only; see
|
|
the source of each before shipping anything that depends on them.
|
|
|
|
### Downloaded by the installer
|
|
|
|
- **Apple IIgs MAME ROM sets** (`apple2gs`, ROM 03, `apple2gsr1`, ROM 01,
|
|
and `a2ssc`, the Super Serial Card): Apple Inc. proprietary firmware, from
|
|
the archive.org MAME 0.240 split set. Component `iigsFirmware`.
|
|
- **Apple IIgs System 6.0.4** (`System.Disk`): Apple Inc. proprietary OS, from
|
|
the Apple II archive (<https://mirrors.apple2.org.za/>). Component
|
|
`iigsFirmware`.
|
|
- **CFFA2 card firmware** (`cffa20eec02.bin`): freely redistributed by
|
|
dreher.net (<https://dreher.net/>). Component `iigsFirmware`.
|
|
- **X68000 IPL-ROM and Human68k 3.02 system disk**: from Sharp's own free
|
|
release (2000), published by the X68000 LIBRARY
|
|
(<http://retropc.net/x68000/software/sharp/>). Component `x68kFirmware`.
|
|
|
|
### Never downloaded (supplied by the user or the project's own bundle)
|
|
|
|
Installed with `./install.sh import PATH`, or from the bundle a
|
|
project hosts (`JOEY_BUNDLE_URL`); matched by the checksums in
|
|
`installer/files.sha1`.
|
|
|
|
- **Amiga Kickstart 3.1 ROM**: Cloanto / Amiga Corp. proprietary, sold today
|
|
(Amiga Forever). Required by the Amiga test gates; `joey-run` falls back to
|
|
FS-UAE's AROS without it. Component `kickstart`.
|
|
- **Amiga serial.device 37.4** (Workbench 3.1's `Devs/serial.device`):
|
|
Cloanto / Amiga Corp. proprietary, part of Workbench 3.1 (Amiga Forever).
|
|
Kickstart 3.1 has no serial.device in ROM, so `joey-run` and the Amiga
|
|
serial gate put this copy on the boot drive; `import` also finds it inside
|
|
a Workbench `.adf`. Component `amigaSerial`.
|
|
- **X68000 CG (font) ROM**: not part of Sharp's free release. MAME's x68000
|
|
driver needs it. Component `x68kCgrom`.
|
|
|
|
---
|
|
|
|
## 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. List where the installer puts it (`toolchains/opt/<component>/` or
|
|
`toolchains/firmware/`).
|
|
4. If license terms restrict redistribution, call that out
|
|
explicitly (as we do for Apple ROMs).
|