Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Port Kobalt to PocketBook InkPad Color 3 (PB743K3), firmware U743k3.6.10.2854, using firmware Qt 6.8.2 and InkView. The fork is pinned at
c1e884e, a seven-commit linear port series based on upstream mainf2268b5. The fork now contains its complete PocketBook SDK, build, package and validation workflow, usable from a standalone clone.Starting without a book opens the native PocketBook library. Registration appends Kobalt to EPUB handlers while preserving the default and other associations. Successful opening updates the InkView task title and recent books. There is no Android start page or desktop file picker in this flow.
Upstream synchronization brings 66 commits. Direct ZIP loading supersedes the temporary PocketBook socket adapter, which is removed. Integration adjustments retain the sensor-free host, Qt 6.8-compatible tests, ARM dependency options, verified caching and the standalone font library. The full font bundle remains included. The fork supplies firmware extraction, ABI/runtime checks, packaging and installation documentation through
./build-pocketbook.sh --firmware /path/SWUPDATE.BIN --test. The parent only pins that source and links its instructions; duplicate parent tools are removed.Evidence
Before: The PocketBook build depended on the monorepo SDK image, firmware helpers, package tests and documentation.
After: An independent clone builds its own SDK image and the installable package with only the checkout and verified firmware mounted. The complete command passes, including ten Python checks, host EPUB and offline firmware ARM workflows; all 108 host regression groups pass in 213.24 seconds. The package records source, firmware, SDK and artifact hashes. Final validation precedes publication, with a regression proving that source changes preserve the previous ZIP. Existing monorepo CMake cache migration is documented. Standards and Spec reviews have no open findings.
Before: PocketBook QPA UpdateLater events crashed QWidget compression; ARM EPUB rendering hit an unaligned CREngine glyph-cache store; the native library handler was missing from system/bin; localhost was unavailable on the reader.
After: The application adapter preserves non-widget events, glyph allocations honor their alignment, the native handler forwards EPUB paths, and resources open offline. The user confirmed startup and EPUB opening on the installed pre-sync fork commit
6de0711.Before: The larger book test captured an intermediate layout-progress overlay after a fixed delay.
After: It waits for the reader's public presentation-readiness contract, requires the page to change after PageDown, and compares it exactly after reopening. Captures establish the race and successful restoration.
Current synchronized build: Host workflow and exact-firmware ARM workflow pass. Two EPUBs copied privately from the device pass open/page/close/reopen with IP networking disabled. Fixture and real-book ARM workflows take 8.71, 15.04 and 24.11 seconds; these are workflow timings, not device-performance claims. Peak memory and native refresh counts were not measured.
Validation: The synchronized reader passed 107 host test groups; the standalone buildchain now passes 108 groups, including ten build/package/registration checks. Formatting (379 C++ files) and UI architecture pass. All 13 direct libraries and 1,653 strong imports match firmware; ARM softfp, loader and no-RPATH checks pass. Standards and Spec follow-up reviews found no source-level issues.
Artifacts: The synchronized 117-file package is installed on the reader and every package file verified. Kobalt user-state and native-association hashes are unchanged; replaced files are backed up. Physical acceptance of this update remains pending. Hardware display/task/power calls are stubbed in ARM emulation; native QPA and physical input behavior are not proven by those tests.
Review bases: parent main
60509aa, forkcbc0f4e; follow-up reviews cover the offline fix, upstream integration and standalone buildchain delta from fork1a17e2f/ parent7a894fe. The rebase preserves the exact tested tree3aa5ea8079d53b4146f0f7e3d047406e046cdb29; archive tags retain the prior history and the device-confirmed6de0711source. Earlier review fixes cover version consistency, Escape release, text-edit arrow keys and fallback wording.Merge Danger
Door: two-way
Opt-in reader with isolated application state. Registration backs up extensions.cfg and preserves the default reader. Keep this PR draft until the synchronized build has device acceptance. Progress and bookmarks remain local Kobalt state; native progress/annotation interoperability, dictionary, frontlight and Readest synchronization remain incomplete.
Blast Radius: reader
Shared standalone build extraction also serves desktop; the glyph patch applies to the shared engine. Native refresh, keys/keyboard, orientation, suspend/wake, USB and task return still require validation. Firmware libraries and hardware stubs are test inputs only. No binary release is published; redistribution requires corresponding source.
Standalone build validation used Docker on an ARM64 host. AMD64 and Podman are untested. Kobo build entry points are unchanged; no full Kobo cross-build was performed. The tooling move does not install a new device build or change the pending physical-acceptance status.