joeylib2/LICENSES.md

10 KiB

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


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).