5 Commits
Author SHA1 Message Date
Joseph MattielloandClaude Opus 5.5 5364fd7462 hotfix: fetch the install scripts from master, not develop
Same change as #1087 on develop, applied to master so that installs and
install.sh's --auto-update fetch the released script now rather than at the
next release.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 21:33:40 -04:00
Joe Mattiello 329a96edc8 fix(installer): preserve portable data and qualify published package updates (#1059)
* fix(installer): retain portable data and qualify published packages

* docs: record published Mac and clean Linux qualification evidence

* test(packaging): add clean Intel macOS qualification lane

* fix(ci): use distro audio packages and authenticated qualification metadata

* test(packaging): qualify downloaded Windows setup upgrade and uninstall

* test(packaging): require real upgrades, core loading and immutable candidate evidence

* test(installer): run Linux core qualification with a virtual GL display

* test(installer): resolve release tags for qualification provenance
2026-10-23 15:39:53 -04:00
Joseph MattielloandClaude Sonnet 5.5 56fb08af22 docs(app): list the Windows ARM64 and Flatpak packages; install.ps1 picks ARM64
Refs #839

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 15:13:18 -04:00
Joseph MattielloandClaude Sonnet 5.5 a20867bd2d fix(tools): installer review fixes and #839 package layout
- install.ps1: the interactive channel choice is a local assignment ($script:
  missed the parameter under & ([scriptblock]::Create(...))); silence progress
  for 5.1; portable zip is one top folder, its CONTENTS go to the destination;
  setup default args are /VERYSILENT /NORESTART /SUPPRESSMSGBOXES and the Inno
  AppId uninstall key is checked first.
- install.sh: AppImage menu entry and icon use io.github.libretro.VirtualJaguar
  (hicolor tree extracted from the AppImage); FUSE probe checks /sbin/ldconfig
  and multiarch dirs without globs (zsh); a nightly receipt beats the project
  version Info.plist/dpkg report, so a release is still offered over a nightly.
- tests and CI: portable file:// URLs, narrower dry-run snapshots, 5.1-safe
  child-process error handling, nightly-vs-release checks, documented
  PSScriptAnalyzer exclusions.

Refs #840

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 23:27:41 -04:00
Joseph MattielloandClaude Sonnet 5.5 a4d8635beb feat(tools): install.sh/install.ps1 install and update the core, the app, or both
install.sh gains --what core|app|both (and --core/--app/--both), --app-dest,
--app-format, --force, --allow-unsigned and the VJ_INSTALL_BASE_URL /
VJ_INSTALL_RETROARCH / VJ_INSTALL_NO_TTY overrides.  The app is the macOS zip
or DMG (/Applications, else ~/Applications), the Linux AppImage
(~/.local/bin + .desktop) or the .deb via apt/dpkg, picked from the userland,
not the kernel.  Updates are detected from the machine (Info.plist, dpkg, the
AppImage path) with an install receipt as a hash cache for nightlies.  Every
download, core included, is checked against SHA256SUMS.txt; a channel with no
app build says so instead of erroring.  Unattended runs stay core-only unless
this script installed the app.  Gatekeeper protections are never stripped
silently.  Also: --auto-update off no longer reinstalls first, and --help works
under zsh.

install.ps1 is the Windows twin (5.1 and 7, irm | iex friendly): core into the
cores folder discovered from retroarch.cfg / registry with the word size read
from the retroarch.exe PE header, app as the portable zip (+ Start-menu
shortcut) or the silent setup.exe, -DryRun, -Force, SHA-256 verification.

test/installer/ holds hermetic suites for both over a fake file:// release
tree; .github/workflows/installer.yml runs them (plus shellcheck and
PSScriptAnalyzer) on Linux, macOS and Windows PowerShell 5.1 / 7.

Refs #840

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-12 23:11:30 -04:00