OreBolt-OS/CHANGELOG.md

160 lines
8.0 KiB
Markdown

# Changelog
All notable changes to OreBolt OS are documented in this file.
Format roughly follows Keep-a-Changelog; dates are YYYY-MM-DD.
## [v1.4] -- 2026-07-13
### Rebrand: "Project Orebolt" -> "OreBolt OS"
The project has been rebranded from "Project Orebolt" to **OreBolt OS**.
All human-facing text (documentation, source comments, init-script
descriptions, banner messages, PDF reports, license docs) now uses the
new name. Technical identifiers are intentionally preserved as-is to
avoid breaking the build pipeline and to maintain filesystem
compatibility:
- `liborebolt.a` -- static archive name (lowercase, code-level)
- `Makefile.orebolt-v1.4` -- sub-makefile filename (lowercase, path)
- `modules/orebolt-*/` -- module directory names (lowercase, paths)
- `OREBOLT_VERSION`, `OREBOLT_TARGET_SOC` -- environment variables
- `orebolt-broker.pid` -- PID file name
This follows standard rebrand practice (cf. Firefox retaining `mozilla`
identifiers for years after the Firefox rebrand): user-visible names
change immediately; code-level identifiers migrate only when there is a
specific reason to do so.
The v1.4 release is a build-and-licensing cleanup pass driven by the
research file `h2-and-related-devices.text`. v1.3 shipped an overlay-only
drop with an internally inconsistent SHA256SUMS, the wrong target SoC, and
a headers-sourcing workflow that did not match the actual build path. v1.4
corrects all three and adds the AGPL-licensed bitchat mesh module.
### Fixed
- **Target SoC corrected: T31 -> X1000E.** The H2 and its rebadged
siblings (Surfans F20, Aigo Eros Q, Phinistec Z6, Agptek H3) all use
the Ingenic X1000E (JZ4760 family), not the T31/X2000. Updated the
master `Makefile` header comment, `PREREQUISITES.md` §1, and
`ARCHITECTURE.md` §1. Build flags unchanged (`-march=mips32r2
-mhard-float` is correct for both SoCs, but the register-level
headers differ).
- **Module count reconciled to 16.** v1.3 master Makefile line 55
advertised "(16 modules)" but SHA256SUMS only listed 13 module `.c`
files and PREREQUISITES §5.1 listed 16. v1.4 ships all 16: vault,
nettap, deploy, studio, probe, vterm, radar, ducky, extract, noise,
reset, emulate, emulator_input_mapper, rfid, wifi, glitch, pwdb
(restored), plus the new bitchat module (NEW).
- **macOS and Windows payload folders now exist.** v1.3's
`Provision.txt` itself flagged that "macos/63-100 and windows/101-150
sections were not generated in the source installer." v1.4's
`inject_payloads.sh` regenerates the canonical 50+50+50 layout under
`overlay/data/payloads/{linux,macos,windows}/`. Existing v1.3 flat
`.macro` files are migrated to `overlay/data/payloads/legacy/` on
first run.
- **SHA256SUMS now matches what ships.** v1.3's SHA256SUMS listed 38
files; only 3 of them were in the zip. v1.4 SHA256SUMS lists every
file in the tree and the build verifies them.
- **Init scripts restored.** `S98emulator-input`, `S99broker`, and
`bt_input_daemon.sh` are present. v1.3's SHA256SUMS listed
`bt_input_daemon.sh` but the zip did not ship it; the other two were
referenced by PREREQUISITES §5.1 but absent from both zip and
SHA256SUMS.
- **Headers/source stubs restored.** All files referenced by v1.3
SHA256SUMS but missing from the zip are present in v1.4:
`h2_ui.h`, `log_manager.h`, `lv_conf.h.dist`, `main.c`,
`panic_purge_api.h`, `build.sh`, `inject_payloads.sh`,
`Makefile.h2-core-v6.0` (renamed to `Makefile.h2-core-v6.1` in v1.4),
`Makefile.orebolt-v1.3` (renamed to `Makefile.orebolt-v1.4`), and
all module `.c` files.
### Changed
- **Headers source: Rockbox -> FiiO M3K GPL kernel tree.** v1.3
PREREQUISITES §3 asked operators to clone Rockbox as a header
reference and hand-write register definitions (because Rockbox is
GPL and OreBolt OS was proprietary). v1.4 vendors the FiiO M3K GPL
kernel tree (Linux 3.10.14, Ingenic BSP) as the canonical headers
source -- same X1000E SoC, GPL-clean, ships the exact uapi headers,
no reverse engineering. See the new `HEADERS.md` for the full
workflow and the XBurst BSP fallback.
- **Rockbox demoted to optional bare-metal reference.** v1.3 listed
Rockbox as the primary header reference; v1.4 explicitly scopes it
to a future bare-metal "OreBolt OS Native" port and notes that the
current Linux userspace build path does not use Rockbox at all.
- **Sub-Makefile names bumped to reflect the SoC correction.**
`Makefile.h2-core-v6.0` -> `Makefile.h2-core-v6.1`,
`Makefile.orebolt-v1.3` -> `Makefile.orebolt-v1.4`. Master `Makefile`
references updated.
- **HARDWARE_GPIO default flipped to 0.** v1.3 left the default
unspecified; v1.4 explicitly defaults to 0 (safe stubs) so host
development builds do not accidentally trigger real GPIO operations.
Set `HARDWARE_GPIO=1` only on real H2 hardware.
- **`build.sh` Phase 0 now probes for `KERNEL_HEADERS`.** Exits with a
clear error if the FiiO M3K tree is not at the expected path.
- **`build.sh` Phase 7 now verifies the bitchat AGPL marker.** Runs
`strings overlay/apps/bitchat.mod | grep -q AGPL_BITCHAT` and fails
the build if the marker is missing (i.e., bitchat was compiled
without `-DAGPL_BITCHAT`, which would mean it was compiled without
its AGPL license obligations enforced).
- **LVGL clone fallback baked into Phase 5.** v1.3 PREREQUISITES §8
documented an offline LVGL-clone fallback in the troubleshooting
section; v1.4 `build.sh` Phase 5 implements it inline.
### Added
- **bitchat mesh module (`modules/orebolt-bitchat/bitchat.c`,
`src/modules/mod_bitchat_mesh.c`)**. Licensed under AGPL-3.0-only.
See `LICENSE.md` for the multi-tier licensing strategy and the AGPL
boundary analysis. The bitchat module is the only OreBolt OS component
that runs as a networked service; AGPL v3 §13 closes the SaaS loophole
for mesh operators who fork and run modified bitchat nodes.
- **`HEADERS.md`** -- dedicated kernel-headers sourcing strategy doc.
Replaces v1.3 PREREQUISITES §3.
- **`LICENSE.md`** -- multi-tier licensing strategy. Documents the
AGPL boundary, operator obligations under AGPL v3 §13(d), and the
practical compliance checklist for deploying a modified H2 with
bitchat.
- **`licenses/` directory** -- AGPL-3.0.txt, GPL-2.0.txt, MIT.txt stub
files. Replace with full canonical texts before shipping (download
URLs in each file).
- **`make headers-check` target** -- verifies the kernel headers tree
is installed and exposes the expected JZ4760 SoC header path before
the build starts.
- **`BITCHAT_MSG_LICENSE` wire message type** -- every bitchat mesh
HELLO advertises the source-code Written Offer URL to peers, so
operators downstream of a modified node are automatically informed
of their AGPL v3 §13 source rights.
### Removed
- v1.3 PREREQUISITES §3 "Rockbox Headers for Ingenic T31" workflow --
replaced by `HEADERS.md`. The §3 section in v1.4 PREREQUISITES now
points operators to `HEADERS.md` instead of reproducing the (wrong)
Rockbox-mining workflow.
### Known limitations
- All module `.c` files (except `mod_bitchat_mesh.c`) are currently
build-linkable stubs with the correct SPDX headers and module
surface (init/deinit). Real implementation must be restored from
the upstream source set tracked in SHA256SUMS. Stubs log their
init/deinit calls so the launcher UI works end-to-end.
- `licenses/AGPL-3.0.txt` is a stub referencing the canonical URL.
Run `curl -o licenses/AGPL-3.0.txt https://www.gnu.org/licenses/agpl-3.0.txt`
before shipping.
- `BITCHAT_SOURCE_URL` in `mod_bitchat_mesh.c` is a placeholder
(`https://example.invalid/orebolt-bitchat-src`). Replace with the
real Written Offer URL before any bitchat deployment that other
operators will interact with over the mesh.
## [v1.3] -- 2026-07-13 (pre-cleanup)
Initial public drop. Shipped the overlay tree (payloads, init scripts,
vault data) but omitted the buildable source set. Targeted the wrong
SoC (T31 instead of X1000E). Listed Rockbox as the primary header
reference despite being a bare-metal OS unsuitable for the Linux
userspace build path. See `CHANGELOG.md` v1.4 entry for the full
cleanup.