[PR #933] [MERGED] fix(setup): accept the pinned Hopper RPM launcher #2510

Closed
opened 2026-10-17 21:07:00 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/933
Author: @kaoru0822-kitauji
Created: 10/7/2026
Status: ✅ Merged
Merged: 10/7/2026
Merged by: @morluto

Base: main ← Head: fix/linux-rpm-hopper-launcher


📝 Commits (1)

  • a2347de fix(setup): accept the pinned Hopper RPM launcher

📊 Changes

3 files changed (+26 additions, -4 deletions)

View changed files

📝 scripts/hopper-demo-x11.py (+2 -1)
📝 src/application/LinuxHopper.test.ts (+15 -0)
📝 src/application/LinuxHopper.ts (+9 -3)

📄 Description

Summary

Fixes #793.

REA verifies the downloaded RPM with its pinned length and SHA-1, installs it, and then rejects the installed launcher because the RPM carries a different vendor launcher build from the DEB and Arch packages. Accept both exact launcher SHA-256 values in the setup/doctor boundary and in the private-display runtime helper.

Unknown launcher builds remain rejected.

Evidence

Fresh official downloads on 2026-10-07 matched all three existing package pins:

Package Bytes Pinned SHA-1 Extracted launcher SHA-256
DEB 35,755,772 e4f79dff602648a8ff4a88b773875b6bfac0dc65 0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded
RPM 32,264,475 b9a65f2f583a386d440d4401d9140aef3bf305de 1339f9e58377442b0c6fcb0dfc3cec20d593cc557408521fad9a00dbc6b8da13
Arch 29,405,968 92d780b61cab38eda95dc4112dee4fbeb0920f46 0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded

The current code accepts only 0294…ded, reproducing the reported RPM rejection. The production file-hashing function accepts the launcher extracted from the pinned RPM on this branch.

Validation

  • Stable TypeScript 5.9.3 production build and no-emit typecheck
  • 61 focused setup/doctor tests across 3 files
  • Regression accepts the exact DEB/Arch and RPM launcher digests and rejects an unknown digest
  • Actual extracted RPM launcher accepted through linuxHopperBinarySupported
  • Python helper compiles and advertises the same RPM digest
  • Repository lint and module-boundary checks
  • Knip, package metadata, test discovery, targeted formatting/lint, and git diff --check

Unverified coverage

This Linux sandbox cannot run Hopper's private X11 GUI workflow, so verify:hopper:linux was not executed. The default TypeScript 7 build also requires /proc/self/exe, which is absent here; the equivalent production build passed with TypeScript 5.9.3. Hosted Linux Hopper/CI lanes remain authoritative for runtime GUI behavior.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/933 **Author:** [@kaoru0822-kitauji](https://github.com/kaoru0822-kitauji) **Created:** 10/7/2026 **Status:** ✅ Merged **Merged:** 10/7/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/linux-rpm-hopper-launcher` --- ### 📝 Commits (1) - [`a2347de`](https://github.com/morluto/rea/commit/a2347de6565264494f8e878a6e5ec2a6255af0e5) fix(setup): accept the pinned Hopper RPM launcher ### 📊 Changes **3 files changed** (+26 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `scripts/hopper-demo-x11.py` (+2 -1) 📝 `src/application/LinuxHopper.test.ts` (+15 -0) 📝 `src/application/LinuxHopper.ts` (+9 -3) </details> ### 📄 Description ## Summary Fixes #793. REA verifies the downloaded RPM with its pinned length and SHA-1, installs it, and then rejects the installed launcher because the RPM carries a different vendor launcher build from the DEB and Arch packages. Accept both exact launcher SHA-256 values in the setup/doctor boundary and in the private-display runtime helper. Unknown launcher builds remain rejected. ## Evidence Fresh official downloads on 2026-10-07 matched all three existing package pins: | Package | Bytes | Pinned SHA-1 | Extracted launcher SHA-256 | | --- | ---: | --- | --- | | DEB | 35,755,772 | `e4f79dff602648a8ff4a88b773875b6bfac0dc65` | `0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded` | | RPM | 32,264,475 | `b9a65f2f583a386d440d4401d9140aef3bf305de` | `1339f9e58377442b0c6fcb0dfc3cec20d593cc557408521fad9a00dbc6b8da13` | | Arch | 29,405,968 | `92d780b61cab38eda95dc4112dee4fbeb0920f46` | `0294ced141cc373468ee22d8343e7dac41980cb05a937994ca81c9f09afe7ded` | The current code accepts only `0294…ded`, reproducing the reported RPM rejection. The production file-hashing function accepts the launcher extracted from the pinned RPM on this branch. ## Validation - Stable TypeScript 5.9.3 production build and no-emit typecheck - 61 focused setup/doctor tests across 3 files - Regression accepts the exact DEB/Arch and RPM launcher digests and rejects an unknown digest - Actual extracted RPM launcher accepted through `linuxHopperBinarySupported` - Python helper compiles and advertises the same RPM digest - Repository lint and module-boundary checks - Knip, package metadata, test discovery, targeted formatting/lint, and `git diff --check` ## Unverified coverage This Linux sandbox cannot run Hopper's private X11 GUI workflow, so `verify:hopper:linux` was not executed. The default TypeScript 7 build also requires `/proc/self/exe`, which is absent here; the equivalent production build passed with TypeScript 5.9.3. Hosted Linux Hopper/CI lanes remain authoritative for runtime GUI behavior. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:07:00 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2510
No description provided.