Skip to content

Publish the Gentoo overlay, and stop winget pointing at a missing file - #119

Merged
ralyodio merged 1 commit into
mainfrom
feat/gentoo-overlay-publish
Sep 24, 2026
Merged

ralyodio merged 1 commit into
mainfrom
feat/gentoo-overlay-publish

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Gentoo is ours, not a review queue

An overlay is just a repo laid out the way portage expects, so Gentoo is pushable like the tap and the bucket rather than a pull request into someone else's tree. profullstack/gentoo-tronbrowser now exists with net-misc/tronbrowser-bin 3.15.1 and its own write deploy key (GENTOO_OVERLAY_SSH_KEY).

It is a complete overlay — metadata/layout.conf and profiles/repo_name included, both of which gentoo-pairux is missing, so portage can actually consume this one.

eselect repository add tronbrowser git https://github.com/profullstack/gentoo-tronbrowser.git
emerge -av net-misc/tronbrowser-bin

The ebuild is entirely ${PV}/${P}, so a release needs no edits to its contents — only the filename carries the version. The templater now renames it and drops the stale one, instead of printing a note and leaving tronbrowser-bin-0.1.1.ebuild there forever. The Manifest is generated: portage wants BLAKE2B and SHA512 beside the byte count rather than the sha256 every other channel uses, and node's blake2b512 is byte-identical to b2sum. It names the tarball by the ${P}.tar.gz that SRC_URI renames it to, not by the release asset's name.

winget is blocked by the artifact, not the manifest

tronbrowser-win-x64.zip contains no tronbrowser.exe. The Windows entry point is tronbrowser.cmd, a shim that hunts for Python 3.9+ and then drives a copy of Ungoogled Chromium the user has to install separately. A portable winget package around that would install for someone and then fail to start — rejected on review, or worse, accepted and broken.

The manifest pointed RelativeFilePath at that non-existent exe. Corrected to the file that does exist, with the real blocker written down. PairUX ships a nullsoft .exe and is in winget-pkgs today, which is the shape to copy when someone does the Windows build.

Verified

Running the gentoo submitter for real against the live overlay reports already current, nothing to push — only true because the generated Manifest matches the one computed by hand with b2sum/sha512sum byte for byte.

🤖 Generated with Claude Code

…oes not exist

Gentoo turns out not to need anyone's review. An overlay is a git repo laid out
the way portage expects, so it is ours to push like the tap and the bucket, not a
pull request into someone else's tree. profullstack/gentoo-tronbrowser now exists
with net-misc/tronbrowser-bin 3.15.1, and carries its own write deploy key
(GENTOO_OVERLAY_SSH_KEY). It is a complete overlay: metadata/layout.conf and
profiles/repo_name included, both of which gentoo-pairux is missing, so portage
can actually consume this one.

The ebuild is entirely ${PV}/${P}, so a release needs no edits to its contents --
only the filename carries the version. The templater renames it and drops the
stale one, instead of printing a note and leaving tronbrowser-bin-0.1.1.ebuild in
the tree forever. The Manifest is generated: portage wants BLAKE2B and SHA512
next to the byte count rather than the sha256 every other channel uses, and
node's blake2b512 is byte-identical to b2sum. It names the tarball by the
${P}.tar.gz that SRC_URI renames it to, not by the release asset's filename.

winget is a different story and the blocker is the artifact, not the manifest.
tronbrowser-win-x64.zip contains no tronbrowser.exe at all: the Windows entry
point is tronbrowser.cmd, a shim that hunts for Python 3.9+ and then drives a
copy of Ungoogled Chromium the user must install separately. A portable winget
package around that would install for somebody and then fail to start, so it
would be rejected on review or, worse, accepted and broken. The manifest pointed
RelativeFilePath at that non-existent exe; corrected to the file that does exist,
with the real blocker written down. PairUX ships a nullsoft .exe and is in
winget-pkgs today, which is the shape to copy when someone does the Windows build.

Verified against the live overlay: running the submitter for real reports
"already current, nothing to push", which is only true because the generated
Manifest matches the one computed by hand with b2sum and sha512sum byte for byte.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

ThreatCrush Security Scan

52 finding(s)

HIGH/CRITICAL: 3 | MEDIUM: 28 | LOW: 21

Severity Rule Location
HIGH py-ssrf-outbound-request apps/desktop/launcher/tron-tor-helper:303
HIGH py-ssrf-outbound-request apps/desktop/launcher/tron-tor-helper:437
HIGH sh-remote-script-execution apps/web/public/install.sh:757
MEDIUM js-open-redirect apps/desktop/extensions/ai-sidebar/install-helper.js:156
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/media.js:34
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/media.js:57
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/newtab.js:237
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/newtab.js:266
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/newtab.js:336
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/options.js:305
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/sidepanel.js:78
MEDIUM js-unescaped-html-sink apps/desktop/extensions/ai-sidebar/sidepanel.js:166
MEDIUM js-unescaped-html-sink apps/extensions/public/store.js:77
MEDIUM js-unescaped-html-sink apps/extensions/public/store.js:227
MEDIUM js-unescaped-html-sink apps/extensions/public/store.js:569
MEDIUM js-unescaped-html-sink apps/web/public/app.js:29
MEDIUM js-unescaped-html-sink apps/web/public/dns.js:54
MEDIUM sh-remote-script-execution apps/web/public/install.sh:164
MEDIUM sh-remote-script-execution apps/web/public/install.sh:169
MEDIUM sh-remote-script-execution apps/web/public/install.sh:282
MEDIUM sh-remote-script-execution apps/web/public/install.sh:300
MEDIUM sh-remote-script-execution apps/web/public/install.sh:813
MEDIUM sh-remote-script-execution apps/web/public/install.sh:864
MEDIUM js-unescaped-html-sink apps/web/public/settings.js:96
MEDIUM js-unescaped-html-sink apps/web/public/settings.js:168
MEDIUM js-dynamic-code-execution packages/sdk/src/mcp/tools.ts:125
MEDIUM js-dynamic-code-execution packages/sdk/src/page.ts:68
MEDIUM js-dynamic-code-execution packages/sdk/src/page.ts:73
MEDIUM sql-template-interpolation services/api/src/store/db.ts:116
MEDIUM js-dynamic-code-execution services/api/src/store/scanner.ts:44
MEDIUM sh-predictable-temp-path start.sh:25
LOW js-dynamic-code-execution apps/desktop/extensions/ai-sidebar/pit-proxy.test.js:8
LOW js-dynamic-code-execution packages/agent-runtime/src/analyze/form-script.test.ts:6
LOW js-unescaped-html-sink packages/agent-runtime/src/analyze/form-script.test.ts:26
LOW js-unescaped-html-sink packages/agent-runtime/src/analyze/form-script.test.ts:49
LOW js-dynamic-code-execution packages/browser-core/src/automation/extract-script.test.ts:6
LOW js-unescaped-html-sink packages/browser-core/src/automation/extract-script.test.ts:16
LOW js-unescaped-html-sink packages/browser-core/src/automation/extract-script.test.ts:45
LOW js-unescaped-html-sink packages/browser-core/src/automation/extract-script.test.ts:57
LOW js-unescaped-html-sink packages/browser-core/src/automation/extract-script.test.ts:80
LOW js-unescaped-html-sink packages/browser-core/src/automation/extract-script.test.ts:99
LOW js-dynamic-code-execution packages/browser-core/src/automation/snapshot-script.test.ts:11
LOW js-unescaped-html-sink packages/browser-core/src/automation/snapshot-script.test.ts:62
LOW js-unescaped-html-sink packages/browser-core/src/automation/snapshot-script.test.ts:101
LOW js-unescaped-html-sink packages/provenance/src/scan.test.ts:47
LOW js-unescaped-html-sink packages/provenance/src/scan.test.ts:170
LOW js-unescaped-html-sink packages/provenance/src/scan.test.ts:216
LOW js-dynamic-code-execution packages/sdk/src/mcp/automate.test.ts:261
LOW secret-generic-api-key packages/storage/src/config.ts:51
LOW secret-generic-credential packages/storage/src/config.ts:51

…and 2 more. Full results in the Security tab.

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit f338918 into main Sep 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant