Standalone source extraction of the Poseidon USB stack from the main AROS development tree.
Poseidon was originally written by Chris Hodges. This repository does not reassign that authorship; it preserves the AROS-licensed source provenance, adds standalone AmigaOS 3 build and packaging glue, and tracks what still needs to be ported outside the full AROS build.
Upstream source: https://github.com/aros-development-team/AROS
Imported commit: see upstream/aros.json
- Chris Hodges is the original Poseidon author and the developer named by the Power2People AROS port and open-source campaign.
src/LEGALrecords Chris Hodges providing the Poseidon sources and related files in the AROS repository under the AROS Public License on 2009-08-26.- The AROS development team and contributors integrated and maintained the public Poseidon source in the AROS tree. This standalone repo is extracted from that AROS-maintained source.
- The Power2People campaign page records the AROS platform project as completed and describes the AROS Public License release scope: https://power2people.org/projects/poseidon/
- Trident catalog sources are imported from the AROS translation team
repository recorded in
upstream/aros.json. - Trident's built-in Mason icon list artwork is credited in the imported
catalog sources as courtesy of Martin Merz. The current Workbench
Trident.infosource is imported from the AROS Gorilla icon set.
See CREDITS.md for the human-readable credit list and
docs/POWER2PEOPLE-INVENTORY.md for the campaign-to-source inventory.
The standalone OS3 build currently produces:
- generated Poseidon and usbclass SDK files under
build/sdk - OS3 shell tools under
build/os3/C - the AROS-integrated
ps3eyeGUI utility underbuild/os3/C poseidon.libraryunderbuild/os3/Libs- the Trident preferences GUI under
build/os3/Prefs - localized Trident catalogs under
build/os3/Locale/Catalogs - source-backed Workbench icons for Trident and
def_PSD.info - OS3 resident binaries for 29 imported USB classes under
build/os3/Classes/USB, staged asInstallData/Classes/USB/*.class - source-backed
UMSDandUPARDOSDriver templates with generated icons underInstallData/Storage/DOSDrivers - a source-backed
PsdRomTagcompatibility helper and generated icon underInstallData/; it requires a compatible externalC:PsdLoadModule, whose source is not present in the AROS import - a source-backed
Poseidon-Installscript,Install_English.info, andInstallData.infoat the package root - an unpacked package tree under
build/os3/package/Poseidon - an LHA package archive at
build/os3/package/Poseidon.lha
The AROS-oriented hardware controller code is retained for provenance and
upstream sync, but is not staged in the OS3 package because it depends on AROS
HIDD/OOP or hosted libusb.so infrastructure. The linked library and class
binaries still need runtime testing against a complete Poseidon setup.
The OS3 support layer now covers the resident startup path used by
poseidon.library and the linked .class binaries, including a forward
resident rt_EndSkip and explicit-base MUI helper wrappers for class
configuration UIs. Those paths are build-verified, but still need real OS3
runtime validation.
The old E3B OS3 hardware drivers, old Extra/ archives, and other material
not released as part of the AROS source import are intentionally not included.
The historical PsdLoadModule and PsdRestart tools are also not included
because their source is not present in the imported AROS tree.
./build_os3.shThis uses sacredbanana/amiga-compiler:m68k-amigaos and builds the current
OS3 package. Use ./build_os3.sh <target> to run another Make target inside
the Docker image, for example:
./build_os3.sh clean
./build_os3.sh classobjects
./build_os3.sh -q os3
./build_os3.sh os3-checkInside an environment with m68k-amigaos-gcc, m68k-amigaos-strip, sfdc,
flexcat, ilbmtoicon, and lha in PATH, the same build can be run without
Docker:
make os3
make os3-checkos3-check verifies that the package manifest matches the package tree, all
unstripped OS3 binaries have no unresolved symbols, the LHA archive passes an
integrity test, OS3-specific class runtime strings are present, and the
source-backed Installer artifacts have the expected tooltypes. The GitHub
Actions workflow runs this target through the same sacredbanana Docker image.
os3-release-compare is optional and requires a local copy of the old V4.4
release tree. The old binaries are reference material only and are not included
in this repo:
OLD_POSEIDON_RELEASE=/path/to/PoseidonV4 ./build_os3.sh os3-release-compare
OLD_POSEIDON_RELEASE=/path/to/PoseidonV4 make os3-release-compareKnown intentional gaps are tracked in
tools/os3_release_inventory_policy.json. The generated package intentionally
does not include old closed-source E3B hardware drivers, old Extras archives,
PsdLoadModule, PsdRestart, PdaTransfer, pdalink.library, VHI binaries,
rtl8150eth.class, or usbvideo.class.
src/contains the imported AROSrom/usbtree.include/contains the public Poseidon, usbclass, USB, and USB hardware headers imported from AROScompiler/include.support/os3/contains compatibility glue for the sacredbanana AmigaOS 3 toolchain.support/icons/contains source-backed icon inputs imported from AROS.tools/conf_to_sfd.pygenerates Amiga SFD files from AROS.conffunction lists.tools/conf_to_libdefs.pygenerates the AROSgenmodulelibdefs subset and OS3 class function table metadata used by class builds.tools/aros_sync.pypreviews and applies relocated future AROS updates.tools/os3_check.pyandtools/release_inventory.pyprovide the OS3 package sanity checks used by local builds and CI.
docs/OS3-HARDWARE-CONTROLLERS.mdrecords why the AROS controller modules are kept source-only for the OS3 package.docs/POWER2PEOPLE-INVENTORY.mdrecords the historical campaign scope and maps it to the current AROS extraction.docs/UPSTREAM-SYNC.mddocuments how to pull future fixes from AROS while preserving local standalone changes.docs/OS3-RUNTIME-TEST-PLAN.mdis the checklist for real OS3 validation.
The imported AROS baseline and path mappings are tracked in
upstream/aros.json. Use tools/aros_sync.py to preview or apply relocated
patches from future AROS commits:
tools/aros_sync.py status --aros-dir ../AROS --fetch --to origin/master
tools/aros_sync.py report --aros-dir ../AROS --to origin/master
tools/aros_sync.py check --aros-dir ../AROS --to origin/master
tools/aros_sync.py apply --aros-dir ../AROS --to origin/masterSee docs/UPSTREAM-SYNC.md before applying updates.
The imported Poseidon source is provided under the AROS Public License. See
LICENSE, src/LEGAL, and the per-file notices in the imported source tree.