Skip to content

Updates (post-install patches)

Generic update framework for recipes that apply patches after the first install (e.g. ElAmigos updates).

Not covered: Rezeptor app/recipe-bundle updates (rezeptor-update.sh) — see LAUNCHER.md.

Contract (recipe.yml)

Field Meaning
fix_kind: none\|optional\|required Enables updates for the recipe
update: update.sh Required when fix_kind != none (lint ERROR otherwise)
install_stepsapply_updates Optional: apply updates during install

Hook update.sh:

recipe_hooks::load update
recipe_hooks::runtime_init || exit 1
recipe_updates::apply_all

Discovery (hybrid)

  1. Under the install source (auto): folder updates/, Updates/, or update/ with numbered children 1 - …, 2 - … — including a wrapper updates/<pack name>/1 - …/ (ElAmigos)
  2. Or numbered folders 1 - … directly under the root
  3. Plus optional Update / Fix field in the source dialog (RECIPE_UPDATE_ROOT / alias RECIPE_FIX_ROOT)

Order: numeric by leading integer (1 before 2 before 10).

Each unit: directory with .exe (+ optional .bin) or a single .exe.

GUI

  • Install: Target = free location for the software (no forced path). The dialog detects updates under the source (updates/1 - …) and shows a status line; the “?” info button explains the layout. Optional Update/Fix field for separate packs.
  • More → Apply update…: dedicated dialog for the update source only (when installed and fix_kind != none).
  • More → Move target…: move the whole data tree (including prefix) to another folder/disk; updates data_root.path and shortcuts.
  • Idempotency: applied IDs in recipe.env as APPLIED_UPDATES=1,2,… — re-runs skip them.

Core API

See CORE-API.md — short:

Function Role
recipe_updates::discover Ordered ID\|PATH list
recipe_updates::roots_from_env Roots from env
recipe_updates::apply_all Run + state
recipe_updates::status Log/validate

Large game ISOs: core/recipe-iso.shmount (udisksctl), no full extract.

Example layout

Halo Campaign Evolved/          ← source
  Halo Campaign Evolved.iso
  updates/
    1 - Halo … update …/
      *.exe
      elamigos-1.bin

# or separate update root:
… update 29.07.2026/
  1 - …

Reference recipe: halo-campaign-evolved.

See also