From 317037f8eb23e534b4e7eed6e6262457cb6a8bc7 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sun, 19 Jul 2026 08:45:45 +0200 Subject: [PATCH] =?UTF-8?q?scripts=20v1.22.0=20=E2=80=94=20ISO=20boot=20sc?= =?UTF-8?q?reen=20+=20single-entry=20GRUB=20menu=20(R-38=20GRUB=20slice)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two jobs, one repack pass. BRANDING. Every ISO now carries a Felhom boot screen built from the website's og-image_2.png at repack time (ImageMagick in the assistant container), so the boot card has ONE source and not a second pre-rendered copy in the repo to drift. The card is scaled onto a 1024x768 gfxterm canvas, top-centered, and the card's own subtle background grid is continued across the letterbox fill PHASE-LOCKED to where the card's grid lands — the fill is seamless rather than a square of grid floating in flat navy. Menu positioning needs a gfxmenu theme (plain background_image cannot move the menu off the wordmark), so the stock pvetheme is replaced by felhomtheme, which puts the menu in the lower third the layout deliberately leaves empty. SAFETY — the half that matters. The stock PVE menu offers Graphical, Terminal UI and serial installers plus an Advanced Options submenu (nomodeset x2, three debug variants, Rescue Boot, memtest, UEFI settings). Every one of them reaches the MANUAL installer, whose first question is which disk to wipe. A customer, or their helpful nephew, must not be able to get there from a boot menu. They are not hidden and not password-gated: they are NOT EMITTED. What ships is one entry, 'Felhom telepítés', default, 5s. Boot behavior is unchanged. The kernel/append and initrd lines are lifted VERBATIM from the ISO's own 'Install Proxmox VE (Automated)' entry rather than frozen into a copy here, so a PVE bump tracks automatically; the build fails if they cannot be found, if the append line has lost proxmox-start-auto-installer, or if auto-installer-mode.toml is absent (which would mean the one Felhom- labelled entry boots a manual installer). The rendered menu is then gated for exactly 1 entry, 0 submenus, and zero references to proxtui/proxdebug/nomodeset/ Rescue Boot/memtest/fwsetup — and re-verified by reading the menu back OUT of the finished ISO, not merely out of the extract tree. mkimage-surgery.sh -> iso-repack.sh: branding and the slice-B loader swap need the same extract -> modify -> re-master cycle, so they share one pass instead of re-mastering twice. The mkimage recipe is untouched. The embedded module list is still derived from the STOCK grub.cfg (snapshotted before branding rewrites it), plus gfxmenu's bitmap/bitmap_scale/trig renderer deps. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE --- scripts/iso/Dockerfile.assistant | 7 +- scripts/iso/README.md | 5 +- scripts/iso/build-felhom-iso.sh | 77 ++++- scripts/iso/grub/felhom-theme.txt | 46 +++ scripts/iso/grub/generate-grub-background.sh | 96 ++++++ scripts/iso/grub/grub.cfg.tmpl | 76 +++++ scripts/iso/iso-repack.sh | 320 +++++++++++++++++++ scripts/iso/mkimage-surgery.sh | 168 ---------- website/assets/og-image_2.png | Bin 0 -> 148923 bytes 9 files changed, 609 insertions(+), 186 deletions(-) create mode 100644 scripts/iso/grub/felhom-theme.txt create mode 100644 scripts/iso/grub/generate-grub-background.sh create mode 100644 scripts/iso/grub/grub.cfg.tmpl create mode 100644 scripts/iso/iso-repack.sh delete mode 100644 scripts/iso/mkimage-surgery.sh create mode 100644 website/assets/og-image_2.png diff --git a/scripts/iso/Dockerfile.assistant b/scripts/iso/Dockerfile.assistant index 656b49e..bacd4df 100644 --- a/scripts/iso/Dockerfile.assistant +++ b/scripts/iso/Dockerfile.assistant @@ -12,10 +12,13 @@ FROM debian:trixie # xorriso: ISO (re-)mastering. shellcheck: lint. grub-mkimage (+ x86_64-efi module dir) and mtools: # the slice-B mkimage loader surgery — build a monolithic UEFI loader from the ISO's own GRUB modules # and inject it into the efi.img ESP (FAT, via mtools). grub 2.12 on trixie == the PVE 9.x ISO's -# 2.12-9+pmx2 generation, so the tool matches the modules it embeds. +# 2.12-9+pmx2 generation, so the tool matches the modules it embeds. imagemagick: the R-38 GRUB boot +# card — grub/generate-grub-background.sh letterboxes the website's brand asset onto a 1024x768 +# gfxterm canvas at repack time, so the boot screen has ONE source (the website asset) and not a +# second pre-rendered copy checked into the repo to drift. RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates wget gnupg xorriso shellcheck \ - grub-common grub-efi-amd64-bin mtools dosfstools \ + grub-common grub-efi-amd64-bin mtools dosfstools imagemagick \ && rm -rf /var/lib/apt/lists/* # PVE 9.x (trixie) no-subscription repo — pairs the assistant to the 9.2 ISO generation. diff --git a/scripts/iso/README.md b/scripts/iso/README.md index 83257f0..c80a9fa 100644 --- a/scripts/iso/README.md +++ b/scripts/iso/README.md @@ -19,7 +19,10 @@ channel). |---|---| | `Dockerfile.assistant` | build host: Debian trixie + `proxmox-auto-install-assistant` (paired to the ISO's PVE generation by Debian codename) + `xorriso` + `shellcheck` | | `build-felhom-iso.sh` | the pipeline: render answer, mint throwaway root hash, **validate-answer output-parse gate**, render stub, `prepare-iso`, **optional `--loader mkimage` surgery**, emit ISO + sha256 + manifest | -| `mkimage-surgery.sh` | slice-B loader surgery (runs in the container, post-`prepare-iso`): builds a monolithic `grub-mkimage` UEFI loader and swaps it into the ISO's EFI boot path (F1 firmware fix) | +| `iso-repack.sh` | the post-`prepare-iso` repack (runs in the container). **v1.22.0/R-38:** Felhom GRUB branding + **single-entry menu surgery**; plus, in `--loader mkimage`, the slice-B monolithic `grub-mkimage` UEFI loader swap (F1 firmware fix). One extract→modify→re-master pass for both. *(was `mkimage-surgery.sh` ≤ v1.21.0)* | +| `grub/grub.cfg.tmpl` | the replacement GRUB menu: exactly **one** entry („Felhom telepítés", default, 5 s). The `linux`/`initrd` lines are lifted verbatim at repack time from the ISO's own *Install Proxmox VE (Automated)* entry, so a PVE bump tracks automatically | +| `grub/felhom-theme.txt` | gfxmenu theme — positions the menu in the clean lower third of the boot card (plain `background_image` cannot position the menu, so the text would land on the wordmark) | +| `grub/generate-grub-background.sh` | letterboxes `website/assets/og-image_2.png` onto a 1024×768 gfxterm canvas, phase-locking a continuation of the card's own background grid across the fill | | `answer.toml.tmpl` | Proxmox answer template (`__FQDN__` / `__ROOT_HASH__` / `__ROOT_SSH_KEYS__` / `__DISK_SETUP__` placeholders; `[first-boot]` from-iso/fully-up) | | `profiles/*.profile` | disk-selection + fqdn fragments (sourceable, no secret) | | `stub-first-boot.sh` | the ONE first-boot executable (skeleton; build injects the bootstrap script/unit/env as base64) | diff --git a/scripts/iso/build-felhom-iso.sh b/scripts/iso/build-felhom-iso.sh index 3085626..8d688d5 100644 --- a/scripts/iso/build-felhom-iso.sh +++ b/scripts/iso/build-felhom-iso.sh @@ -13,6 +13,15 @@ # script/unit/env), and runs prepare-iso --fetch-from iso --on-first-boot. Emits the ISO + sha256 + # a build manifest. # +# R-38 GRUB SLICE (v1.22.0) — every ISO is now REPACKED after prepare-iso to carry the Felhom boot +# screen and, more importantly, a menu with exactly ONE entry ("Felhom telepítés", default, 5s). The +# stock PVE menu offers Graphical/Terminal-UI/serial installers plus an Advanced Options submenu with +# debug/nomodeset/rescue entries — every one of them a route into the MANUAL installer, whose first +# question is which disk to wipe. A customer, or their helpful nephew, must not be able to reach it +# from a boot menu; those entries are not hidden, they are not emitted. The kernel/append line is +# lifted verbatim from the ISO's own automated entry, so boot behavior is unchanged. See iso-repack.sh. +# (--no-brand exists for debugging the stock menu; it is not a shipping mode.) +# # SLICE B — --loader shim|mkimage (default shim). shim = the stock output (MS-signed shim→GRUB chain, # keeps Secure Boot working on compliant firmware, spike S2b). mkimage = replace the ISO's UEFI boot # path with a monolithic grub-mkimage-built BOOTX64.EFI built from the ISO's OWN GRUB modules — the @@ -32,7 +41,7 @@ #=============================================================================== set -euo pipefail -ISO_VERSION="1.21.0" # Felhom release the ISO is tagged to (aligns with felhom-host-install SCRIPT_VERSION). +ISO_VERSION="1.22.0" # Felhom release the ISO is tagged to (aligns with felhom-host-install SCRIPT_VERSION). IMAGE="${FELHOM_ISO_ASSISTANT_IMAGE:-felhom-iso-assistant:trixie}" HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -50,6 +59,8 @@ die() { log_error "$1"; exit 1; } PVE_ISO=""; ISO_SHA256=""; PROFILE=""; BOOTSTRAP_ENV=""; OUT_DIR="${FELHOM_ISO_OUT:-/mnt/5_hdd/felhom.eu/felhom-iso/out}"; PVE_VERSION=""; DRY_RUN=false LOADER_CLI="" # --loader override; empty = fall back to the profile, then the shim default. PAIRING=false # --pairing: build the GENERIC secret-free ISO (slice C); no --bootstrap-env. +BRAND=true # R-38: Felhom boot screen + single-entry menu. --no-brand is a debugging escape only. +BRAND_IMAGE="" # --brand-image override; empty = the website's og-image_2.png (the single source). usage() { cat < the target board needs Secure Boot OFF. + --no-brand DEBUG ONLY: keep the stock PVE boot menu (all installer entries reachable). + Shipping ISOs are always branded: Felhom boot screen + exactly ONE entry. + --brand-image FILE override the boot-screen card (default: website/assets/og-image_2.png) --out DIR output directory (default: the DooPlex build root /mnt/5_hdd/felhom.eu/felhom-iso/out; override via \$FELHOM_ISO_OUT for other hosts) --pve-version VER override PVE version tag (default: parsed from the ISO filename) @@ -87,6 +101,8 @@ while [[ $# -gt 0 ]]; do --bootstrap-env) BOOTSTRAP_ENV="$2"; shift 2 ;; --pairing) PAIRING=true; shift ;; --loader) LOADER_CLI="$2"; shift 2 ;; + --no-brand) BRAND=false; shift ;; + --brand-image) BRAND_IMAGE="$2"; shift 2 ;; --out) OUT_DIR="$2"; shift 2 ;; --pve-version) PVE_VERSION="$2"; shift 2 ;; --dry-run) DRY_RUN=true; shift ;; @@ -150,6 +166,21 @@ else log_info "loader mode = shim (stock MS-signed chain; Secure Boot works on compliant firmware)" fi +# --- resolve the boot-screen card (R-38) ------------------------------------------------------------ +# Single source of truth: the website asset. NOT copied into scripts/iso/ — a second copy of a brand +# asset is a second thing to forget to update. +if $BRAND; then + [[ -n "$BRAND_IMAGE" ]] || BRAND_IMAGE="$HERE/../../website/assets/og-image_2.png" + [[ -f "$BRAND_IMAGE" ]] || die "brand image not found: $BRAND_IMAGE (pass --brand-image, or run from the repo checkout)" + log_info "boot-screen card = $BRAND_IMAGE (menu: exactly ONE entry, 'Felhom telepítés')" +else + echo -e "${YELLOW}==================================================================================${NC}" + log_warn "--no-brand — the STOCK PVE boot menu ships: Graphical/Terminal-UI/serial installers and" + log_warn "the Advanced Options submenu are all reachable, i.e. a manual 'which disk do I wipe'" + log_warn "installer is one keypress away. DEBUGGING ONLY — never hand this ISO to a customer." + echo -e "${YELLOW}==================================================================================${NC}" +fi + # --- mode: DIRECT validates the secret-bearing env; PAIRING is secret-free (env generated below) ----- if $PAIRING; then SECRET_BEARING="no" @@ -260,7 +291,9 @@ GRUB_VERSION="" # populated by the mkimage surgery (the grub-mkimage build use log_step "building ISO: $(basename "$OUT_ISO")" if $DRY_RUN; then log_dry "docker run … prepare-iso /iso/$ISO_BASE --fetch-from iso --answer-file /work/answer.toml --on-first-boot /work/stub-first-boot.sh --output /work/out.iso" - [[ "$LOADER" == "mkimage" ]] && log_dry "docker run … (mkimage surgery) grub-mkimage from the ISO's own modules → swap BOOTX64.EFI in the EFI tree + efi.img → xorriso re-master → /work/final.iso" + $BRAND && log_dry "docker run … (repack/brand) generate 1024x768 boot card from $(basename "$BRAND_IMAGE") → install felhomtheme → rewrite grub.cfg to ONE entry ('Felhom telepítés', 5s), kernel line lifted from the stock automated entry" + [[ "$LOADER" == "mkimage" ]] && log_dry "docker run … (repack/mkimage) grub-mkimage from the ISO's own modules → swap BOOTX64.EFI in the EFI tree + efi.img" + ( $BRAND || [[ "$LOADER" == "mkimage" ]] ) && log_dry "docker run … (repack) xorriso re-master → /work/final.iso" log_info "DRY-RUN: no ISO produced" exit 0 fi @@ -271,21 +304,31 @@ docker run --rm -v "$ISO_DIR":/iso:ro -v "$WORK":/work "$IMAGE" \ --tmp /work/tmp --output /work/out.iso [[ -f "$WORK/out.iso" ]] || die "prepare-iso produced no output" -# --- SLICE B: mkimage loader surgery (post-prepare; the assistant payload is untouched but the EFI -# boot path). The recipe is the N100 run's proven workaround (VALIDATION F1) — do NOT re-derive it: -# grub-mkimage from the ISO's OWN x86_64-efi modules (2.12-9+pmx2), embedding the module set the -# ISO's grub.cfg needs + an embedded config that `search --fs-uuid`es the ISO and `configfile`s its -# real menu; then swap BOOTX64.EFI in the ISO9660 EFI/BOOT tree AND inside efi.img, and re-master -# with xorriso preserving BOTH the hybrid BIOS boot and the injected answer/first-boot payload. --- -if [[ "$LOADER" == "mkimage" ]]; then - log_step "applying mkimage UEFI loader (F1 firmware fix; recipe from the N100 run evidence)" - [[ -f "$HERE/mkimage-surgery.sh" ]] || die "mkimage-surgery.sh not found next to build-felhom-iso.sh" - cp "$HERE/mkimage-surgery.sh" "$WORK/mkimage-surgery.sh" - docker run --rm -v "$WORK":/work "$IMAGE" bash /work/mkimage-surgery.sh 2>&1 | sed 's/^/ [surgery] /' - [[ -f "$WORK/final.iso" ]] || die "mkimage surgery produced no output (see [surgery] log above)" +# --- REPACK: R-38 GRUB branding + single-entry menu, and (slice B) the mkimage loader surgery. Both +# need the same extract -> modify -> re-master cycle, so iso-repack.sh does them in ONE pass. The +# assistant's answer/first-boot payload is untouched; only the GRUB menu/theme and (mkimage) the +# EFI boot path change. The mkimage recipe is the N100 run's proven workaround (VALIDATION F1) — +# do NOT re-derive it. See iso-repack.sh for the full rationale. ----------------------------------- +if $BRAND || [[ "$LOADER" == "mkimage" ]]; then + REPACK_WHAT="" + $BRAND && REPACK_WHAT="branding" + [[ "$LOADER" == "mkimage" ]] && REPACK_WHAT="${REPACK_WHAT:+$REPACK_WHAT + }mkimage loader" + log_step "repacking ISO ($REPACK_WHAT)" + [[ -f "$HERE/iso-repack.sh" ]] || die "iso-repack.sh not found next to build-felhom-iso.sh" + cp "$HERE/iso-repack.sh" "$WORK/iso-repack.sh" + if $BRAND; then + mkdir -p "$WORK/brand" + cp "$HERE/grub/grub.cfg.tmpl" "$HERE/grub/felhom-theme.txt" \ + "$HERE/grub/generate-grub-background.sh" "$WORK/brand/" + cp "$BRAND_IMAGE" "$WORK/brand/card.png" + fi + docker run --rm -v "$WORK":/work \ + -e FELHOM_LOADER="$LOADER" -e FELHOM_BRAND="$($BRAND && echo 1 || echo 0)" \ + "$IMAGE" bash /work/iso-repack.sh 2>&1 | sed 's/^/ [repack] /' + [[ -f "$WORK/final.iso" ]] || die "repack produced no output (see [repack] log above)" GRUB_VERSION="$(cat "$WORK/grub-version.txt" 2>/dev/null || echo unknown)" cp "$WORK/final.iso" "$OUT_ISO" - log_success "mkimage loader applied (grub-mkimage: ${GRUB_VERSION})" + log_success "repack applied ($REPACK_WHAT)" else cp "$WORK/out.iso" "$OUT_ISO" fi @@ -297,6 +340,8 @@ ASSISTANT_VER="$(docker run --rm "$IMAGE" proxmox-auto-install-assistant --versi echo "$OUT_SHA $(basename "$OUT_ISO")" > "$OUT_ISO.sha256" LOADER_NOTE="shim (stock MS-signed chain; Secure Boot OK on compliant firmware)" [[ "$LOADER" == "mkimage" ]] && LOADER_NOTE="mkimage (monolithic grub-mkimage UEFI loader, F1 fix — UNSIGNED; target board MUST have Secure Boot OFF)" +BRAND_NOTE="FELHOM (single entry 'Felhom telepítés', default, 5s; stock installer entries not emitted)" +$BRAND || BRAND_NOTE="STOCK PVE menu (--no-brand; DEBUG BUILD — manual installer reachable, do not ship)" MODE_NOTE="direct (env-baked customer-id + retrieval passphrase; secret-bearing)" $PAIRING && MODE_NOTE="pairing (GENERIC secret-free universal ISO — box self-registers, operator binds, hub delivers once)" cat > "$OUT_ISO.manifest.txt" </dev/null || true ) host-install-url : $(grep -oE 'FELHOM_INSTALL_URL=[^ ]*' "$BOOTSTRAP_ENV" 2>/dev/null || echo 'https://felhom.eu/scripts/felhom-host-install.sh (default)') secret-bearing : ${SECRET_BEARING}$( $PAIRING && echo ' (GENERIC ISO — carries NO customer secret)' || echo ' (embeds the customer retrieval passphrase — supervised/single-use, delete after the run)') output : $(basename "$OUT_ISO") diff --git a/scripts/iso/grub/felhom-theme.txt b/scripts/iso/grub/felhom-theme.txt new file mode 100644 index 0000000..f7fa859 --- /dev/null +++ b/scripts/iso/grub/felhom-theme.txt @@ -0,0 +1,46 @@ +# Felhom ISO — GRUB gfxmenu theme (scripts v1.22.0, R-38 GRUB slice). +# +# WHY A THEME AND NOT `background_image`: plain gfxterm draws the menu in the terminal's own region +# (top-left), which on our card lands the text straight across the cloud/wordmark. A gfxmenu theme is +# the only way to POSITION the menu, so the menu sits in the clean lower third that +# generate-grub-background.sh deliberately leaves empty (the card is composited into the TOP 516px of +# a 1024x768 canvas). Keep this file and the background generator's CARD/CARD_Y constants in sync — +# if the card grows, `boot_menu.top` must move down with it. +# +# Colors are design-system v2: --blue #0083D8 for the selected item, light text on the near-black +# navy (#0D1117) the card itself uses. + +title-text: "" + +desktop-image: "background.png" +desktop-color: "#0D1117" + +# The single entry ("Felhom telepítés"). Below the card, horizontally centered. ++ boot_menu { + left = 25% + top = 70% + width = 50% + height = 14% + + item_color = "#E6EDF3" + selected_item_color = "#0083D8" + item_height = 32 + item_padding = 0 + item_icon_space = 0 + item_spacing = 2 +} + +# Honest countdown — the customer sees that something IS about to happen, not a frozen screen. +# NOTE: no "e: edit entry / esc: back" hint label (the stock PVE theme has one). Advertising the +# editor works against the point of the single-entry menu. ++ label { + id = "__timeout__" + text = "Indítás %d másodperc múlva..." + left = 25% + top = 84% + width = 50% + height = 30 + + color = "#8B949E" + align = "center" +} diff --git a/scripts/iso/grub/generate-grub-background.sh b/scripts/iso/grub/generate-grub-background.sh new file mode 100644 index 0000000..73d739b --- /dev/null +++ b/scripts/iso/grub/generate-grub-background.sh @@ -0,0 +1,96 @@ +#!/bin/bash +#=============================================================================== +# generate-grub-background.sh — build the Felhom GRUB boot background (scripts v1.22.0, R-38). +# +# Turns Viktor's square brand card (website/assets/og-image_2.png, 1017x1016) into a GRUB-friendly +# 1024x768 PNG. Runs INSIDE the felhom-iso-assistant container (needs ImageMagick); called by +# iso-repack.sh. +# +# THE LAYOUT, AND WHY: +# +# * 1024x768 canvas — gfxterm-safe. The stock PVE grub.cfg already asks for `gfxmode=1024x768`, so +# this is the mode the ISO's GRUB is known to get on real firmware. Anything larger risks a +# fallback to 800x600 and a scaled/cropped background. +# +# * The card is scaled to 500x500 and composited TOP-CENTERED (y=16). That deliberately leaves the +# bottom ~250px empty: it is where felhom-theme.txt positions the boot menu (top=70%) and the +# countdown label (top=84%). Menu text therefore never lands on the cloud/wordmark/tagline. If +# you change CARD or CARD_Y here, move `boot_menu.top` in felhom-theme.txt to match. +# +# * THE GRID. The card carries a subtle background grid (4px lines of #0D131A on #0D1117, every +# 131px) and Viktor asked for it to stay visible. Two things could destroy it: the downscale +# (handled — at 500/1017 the lines land at ~2px, still legible), and the letterbox fill. A flat +# navy fill would leave an obvious 500px square of grid floating in a plain field. +# +# So the grid is drawn across the WHOLE canvas first, PHASE-LOCKED to where the card's own grid +# will land, in the card's own line color — then the card is composited on top. Inside the card +# region the card's real grid shows; outside, the drawn continuation lines up exactly. The seam +# is invisible because the card's background (#0D1117) is also the canvas fill. +# +# The phase-lock math: source line centers are x=81.5+n*131, y=21.5+n*131 (measured, not guessed +# — sampled from og-image_2.png). Scale s=CARD/SRC_W maps them onto the canvas, offset by the +# card's origin. Line width scales the same way. +# +# Usage: generate-grub-background.sh +#=============================================================================== +set -euo pipefail + +SRC="${1:?source card PNG required}" +OUT="${2:?output PNG path required}" + +# --- canvas --------------------------------------------------------------------------------------- +CW=1024; CH=768 +BG="#0D1117" # the card's own background — the letterbox must be seamless, not merely "navy" +GRID="#0D131A" # the card's own grid line color (sampled) + +# --- card placement (keep in sync with felhom-theme.txt boot_menu.top) ------------------------------ +CARD=500; CARD_X=262; CARD_Y=16 + +# --- measured properties of og-image_2.png ---------------------------------------------------------- +SRC_W=1017 # source width; the card is square (1017x1016) +PITCH=131 # grid pitch in source px +V0=81.5 # center of the first vertical grid line, source px +H0=21.5 # center of the first horizontal grid line, source px +LINE=4 # grid line width in source px + +command -v magick >/dev/null && IM=magick || IM=convert +[[ -f "$SRC" ]] || { echo "generate-grub-background: source card not found: $SRC" >&2; exit 2; } + +# Refuse a source whose geometry no longer matches the measured constants above — a silently swapped +# asset would misplace every grid line, and the result only shows up on a boot screen nobody re-checks. +GEOM="$($IM identify -format '%wx%h' "$SRC")" +[[ "$GEOM" == "1017x1016" ]] || { + echo "generate-grub-background: source card is ${GEOM}, expected 1017x1016." >&2 + echo " The grid phase-lock constants (PITCH/V0/H0/LINE) were measured against that geometry." >&2 + echo " Re-measure them for the new asset before changing this check." >&2 + exit 3 +} + +S=$(awk -v c="$CARD" -v w="$SRC_W" 'BEGIN{printf "%.6f", c/w}') # card scale factor +P=$(awk -v p="$PITCH" -v s="$S" 'BEGIN{printf "%.4f", p*s}') # canvas grid pitch +LW=$(awk -v l="$LINE" -v s="$S" 'BEGIN{printf "%.2f", l*s}') # canvas grid line width + +# Walk n outward far enough to cover the canvas in both axes from the card-anchored origin. +draw="" +for n in $(seq -20 40); do + x=$(awk -v a="$CARD_X" -v v="$V0" -v s="$S" -v p="$P" -v n="$n" 'BEGIN{printf "%.2f", a+v*s+n*p}') + if awk -v x="$x" -v w="$CW" 'BEGIN{exit !(x>-2 && x-2 && y&2; exit 4; } + +# PNG24 (no palette, no alpha): GRUB's png module reads plain 8-bit RGB reliably; an indexed or +# 16-bit PNG is where "the background silently doesn't render" comes from. +$IM -size "${CW}x${CH}" xc:"$BG" \ + -stroke "$GRID" -strokewidth "$LW" -draw "$draw" -stroke none \ + \( "$SRC" -resize "${CARD}x${CARD}!" \) -geometry "+${CARD_X}+${CARD_Y}" -composite \ + -depth 8 "PNG24:$OUT" + +[[ -s "$OUT" ]] || { echo "generate-grub-background: produced no output" >&2; exit 5; } +OGEOM="$($IM identify -format '%wx%h %[channels] %[depth]' "$OUT")" +echo "generate-grub-background: $OUT ($OGEOM, $(stat -c%s "$OUT") bytes)" diff --git a/scripts/iso/grub/grub.cfg.tmpl b/scripts/iso/grub/grub.cfg.tmpl new file mode 100644 index 0000000..195b739 --- /dev/null +++ b/scripts/iso/grub/grub.cfg.tmpl @@ -0,0 +1,76 @@ +# Felhom ISO — GRUB menu (scripts v1.22.0, R-38 GRUB slice). GENERATED by iso-repack.sh; the stock +# PVE grub.cfg is REPLACED by this file at repack time. +# +# TWO jobs, one file: +# +# 1. BRANDING — a Felhom gfxmenu theme (felhomtheme/) over a 1024x768 card built from the website's +# og-image_2.png. The stock `set theme=/boot/grub/pvetheme/theme.txt` is gone. +# +# 2. SAFETY — exactly ONE entry is exposed. The stock menu offers Graphical / Terminal UI / serial, +# plus an "Advanced Options" submenu with nomodeset, three debug variants, Rescue Boot, memtest +# and UEFI firmware settings. Every one of those reaches the MANUAL installer, whose first +# question is which disk to wipe. A customer — or their helpful nephew — must not be able to get +# there from a boot menu. They are not hidden, they are NOT EMITTED. +# +# The `linux` / `initrd` lines below are lifted VERBATIM by iso-repack.sh from the stock +# 'Install Proxmox VE (Automated)' entry of the ISO being repacked, so a PVE version bump that +# changes the kernel path or the append line is tracked automatically instead of silently diverging +# from a copy frozen here. iso-repack.sh fails the build if it cannot find them, and asserts the +# append line still carries `proxmox-start-auto-installer` — the flag that makes the install +# unattended. Boot behavior is therefore byte-identical to v1.21.0; only the menu around it changed. + +insmod gzio +insmod iso9660 +insmod png +insmod gfxmenu + +if [ x$feature_default_font_path = xy ] ; then + font=unicode +else + font=$prefix/unicode.pf2 +fi + +# Matches the background canvas exactly (1024x768). 800x600/640x480 are fallbacks for firmware that +# refuses the preferred mode — the theme is percentage-positioned, so it degrades cleanly. +set gfxmode=1024x768,800x600,640x480 +set gfxpayload=1024x768 + +if loadfont $font; then + if test "${grub_platform}" = "efi"; then + insmod efi_gop + insmod efi_uga + fi + insmod video_bochs + insmod video_cirrus + insmod all_video + insmod gfxterm + set theme=/boot/grub/felhomtheme/theme.txt + export theme + terminal_input console + terminal_output gfxterm +fi + +# Serial stays available for operator/nested-canary debugging (the stock cfg does this too). What we +# do NOT do is the stock's `set show_serial_entry=y` — that would add a fourth menu entry. +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug +if serial --unit=0 --speed=115200; then + terminal_input --append serial + terminal_output --append serial +fi + +# Short and decisive: one entry, default, 5s. Note `timeout_style` (underscore) — the stock cfg +# writes `timeout-style`, which GRUB does not recognise as a variable name at all. +set timeout_style=menu +set timeout=5 +set default=0 + +menuentry 'Felhom telepítés' --class felhom --class os { + echo 'A Felhom telepítése indul...' +@@LINUX@@ + echo 'Rendszerbetöltő betöltése...' +@@INITRD@@ +} diff --git a/scripts/iso/iso-repack.sh b/scripts/iso/iso-repack.sh new file mode 100644 index 0000000..5948721 --- /dev/null +++ b/scripts/iso/iso-repack.sh @@ -0,0 +1,320 @@ +#!/bin/bash +#=============================================================================== +# iso-repack.sh — the post-prepare-iso repack stage: GRUB branding + single-entry menu surgery +# (scripts v1.22.0, R-38) and, when asked, the slice-B mkimage UEFI loader swap. +# +# WAS mkimage-surgery.sh (slice B, v1.18.0). v1.22.0 generalised it because BOTH jobs need the same +# expensive extract -> modify -> re-master cycle, and doing them as two separate repacks would double +# the runtime and re-master the image twice for no reason. The mkimage recipe below is UNCHANGED and +# still the N100 run's proven-live one — do NOT re-derive it. +# +# RUNS INSIDE the felhom-iso-assistant container; operates on /work/out.iso (the prepare-iso output) +# and writes /work/final.iso. NEVER touches the source ISO or the assistant's answer/first-boot +# payload — only the GRUB menu, the theme, and (in mkimage mode) the EFI boot path. +# +# Env: +# FELHOM_LOADER = shim | mkimage (default shim) — mkimage swaps BOOTX64.EFI (F1 firmware fix) +# FELHOM_BRAND = 1 | 0 (default 1) — 0 leaves the stock PVE menu completely alone +# +# Expects in /work (placed by build-felhom-iso.sh) when FELHOM_BRAND=1: +# brand/grub.cfg.tmpl, brand/felhom-theme.txt, brand/generate-grub-background.sh, brand/card.png +# +# Writes: /work/final.iso, /work/grub-version.txt (mkimage), /work/brand-report.txt (branding) +# +# --- the mkimage recipe (unchanged from v1.18.0) --------------------------------------------------- +# Build BOOTX64.EFI from the ISO's OWN x86_64-efi GRUB modules (the box's working 2.12-9+pmx2 build), +# embedding the module set the ISO's grub.cfg needs + an embedded config that `search --fs-uuid`es the +# ISO and `configfile`s its real menu; swap it into the ISO9660 EFI/BOOT tree AND inside efi.img. The +# image is UNSIGNED (Secure Boot must be OFF on the target) — that is the documented mkimage contract. +#=============================================================================== +set -euo pipefail + +OUT=/work/out.iso +FINAL=/work/final.iso +EX=/work/ex +EMB=/work/embedded.cfg +LDR=/work/BOOTX64.EFI +BRANDDIR=/work/brand +ORIG_CFG=/work/grub.cfg.orig + +LOADER="${FELHOM_LOADER:-shim}" +BRAND="${FELHOM_BRAND:-1}" + +say() { echo "iso-repack: $*"; } + +# The osirrox extract tree is written by container-root; the host-side build cleanup (a non-root user) +# cannot remove it. Remove it here (we ARE root in the container) on every exit path so no /tmp litter +# survives the run. +cleanup_ex() { if [[ -n "${EX:-}" && -e "$EX" ]]; then rm -rf "$EX" 2>/dev/null || true; fi; } +trap cleanup_ex EXIT + +[[ -f "$OUT" ]] || { echo "iso-repack: /work/out.iso missing" >&2; exit 2; } +[[ "$LOADER" == "shim" || "$LOADER" == "mkimage" ]] || { echo "iso-repack: bad FELHOM_LOADER '$LOADER'" >&2; exit 2; } + +# Nothing to do at all -> pass the prepared ISO through byte-for-byte rather than re-mastering it. +if [[ "$BRAND" != "1" && "$LOADER" == "shim" ]]; then + say "no branding, shim loader — passing the prepared ISO through unmodified" + cp "$OUT" "$FINAL"; exit 0 +fi + +command -v xorriso >/dev/null || { echo "iso-repack: missing tool: xorriso" >&2; exit 2; } +if [[ "$LOADER" == "mkimage" ]]; then + for t in grub-mkimage mcopy mdir; do + command -v "$t" >/dev/null || { echo "iso-repack: missing tool: $t" >&2; exit 2; } + done +fi +if [[ "$BRAND" == "1" ]]; then + command -v magick >/dev/null || command -v convert >/dev/null \ + || { echo "iso-repack: ImageMagick missing (needed for the GRUB background) — rebuild the assistant image" >&2; exit 2; } + for f in grub.cfg.tmpl felhom-theme.txt generate-grub-background.sh card.png; do + [[ -f "$BRANDDIR/$f" ]] || { echo "iso-repack: brand asset missing: $BRANDDIR/$f" >&2; exit 2; } + done +fi + +# --- 1. extract the full prepared ISO tree (osirrox) — preserves the answer + first-boot payload. +# osirrox reproduces the ISO's (read-only) file modes, so make the tree writable afterwards or +# the loader swap and the workspace cleanup can't overwrite/remove the files. ------------------ +[[ -e "$EX" ]] && { chmod -R u+w "$EX" 2>/dev/null || true; rm -rf "$EX"; } +mkdir -p "$EX" +xorriso -osirrox on -indev "$OUT" -extract / "$EX" >/dev/null 2>&1 +chmod -R u+w "$EX" +say "extracted prepared ISO tree" + +# Locate the ISO's real grub.cfg and snapshot it BEFORE branding rewrites it: the mkimage module list +# below is derived from the STOCK cfg's insmods, and branding must not be able to shrink that set. +GCFG="" +for c in "$EX/boot/grub/grub.cfg" "$EX/boot/grub/x86_64-efi/grub.cfg"; do + [[ -f "$c" ]] && { GCFG="$c"; break; } +done +[[ -n "$GCFG" ]] || { echo "iso-repack: no grub.cfg found in the extracted tree" >&2; exit 3; } +cp "$GCFG" "$ORIG_CFG" + +#==================================================================================================== +# --- 2. BRANDING + SINGLE-ENTRY MENU SURGERY (R-38) ------------------------------------------------ +#==================================================================================================== +if [[ "$BRAND" == "1" ]]; then + say "branding GRUB (background + single-entry menu)" + + # 2a. The prepared ISO MUST be an auto-install ISO. Our one menu entry boots the automated + # installer, which reads this file; without it the entry would drop into the manual installer + # — the exact outcome the single-entry menu exists to prevent. Fail loudly, never silently. + AIM="$(find "$EX" -maxdepth 2 -iname 'auto-installer-mode.toml' | head -1)" + [[ -n "$AIM" ]] || { + echo "iso-repack: auto-installer-mode.toml not found in the ISO — this is not a prepared" >&2 + echo " auto-install ISO, so the single Felhom entry would boot the MANUAL installer. Refusing." >&2 + exit 10 + } + + # 2b. Lift the kernel + initrd lines VERBATIM from the stock 'Install Proxmox VE (Automated)' + # entry, so a PVE bump that changes the kernel path or append line tracks automatically. + LINUX_LINE="$(awk ' + /menuentry .Install Proxmox VE \(Automated\)./ { inblk=1; next } + inblk && /^[[:space:]]*linux[[:space:]]/ { print; exit } + inblk && /^[[:space:]]*}/ { inblk=0 } + ' "$ORIG_CFG")" + INITRD_LINE="$(awk ' + /menuentry .Install Proxmox VE \(Automated\)./ { inblk=1; next } + inblk && /^[[:space:]]*initrd[[:space:]]/ { print; exit } + inblk && /^[[:space:]]*}/ { inblk=0 } + ' "$ORIG_CFG")" + + [[ -n "$LINUX_LINE" ]] || { echo "iso-repack: could not lift the 'linux' line from the stock automated entry" >&2; exit 11; } + [[ -n "$INITRD_LINE" ]] || { echo "iso-repack: could not lift the 'initrd' line from the stock automated entry" >&2; exit 11; } + # The append flag that MAKES it unattended. If PVE ever renames it, we must not ship an ISO that + # boots a manual installer behind a button labelled "Felhom telepítés". + grep -q 'proxmox-start-auto-installer' <<<"$LINUX_LINE" || { + echo "iso-repack: the lifted kernel line has no 'proxmox-start-auto-installer' flag:" >&2 + echo " $LINUX_LINE" >&2; exit 12 + } + grep -q '/boot/initrd.img' <<<"$INITRD_LINE" || { + echo "iso-repack: the lifted initrd line looks wrong: $INITRD_LINE" >&2; exit 12 + } + # Normalise indentation only — the command and its arguments are untouched. + LINUX_NORM=" $(sed -E 's/^[[:space:]]+//' <<<"$LINUX_LINE")" + INITRD_NORM=" $(sed -E 's/^[[:space:]]+//' <<<"$INITRD_LINE")" + say "lifted kernel line: $(sed -E 's/^[[:space:]]+//' <<<"$LINUX_LINE")" + + # 2c. Build the background and install the theme. + THEMEDIR="$EX/boot/grub/felhomtheme" + mkdir -p "$THEMEDIR" + bash "$BRANDDIR/generate-grub-background.sh" "$BRANDDIR/card.png" "$THEMEDIR/background.png" \ + | sed 's/^/ /' + cp "$BRANDDIR/felhom-theme.txt" "$THEMEDIR/theme.txt" + + # 2d. Render the new grub.cfg. Use awk (not sed) so the lifted lines are inserted literally — + # the append line is full of `/` and `=` that sed would need escaped. + awk -v lx="$LINUX_NORM" -v ird="$INITRD_NORM" ' + { gsub(/@@LINUX@@/, lx); gsub(/@@INITRD@@/, ird); print } + ' "$BRANDDIR/grub.cfg.tmpl" > "$GCFG" + grep -q '@@LINUX@@\|@@INITRD@@' "$GCFG" && { echo "iso-repack: grub.cfg still has unfilled markers" >&2; exit 13; } + + # 2e. GATES — the safety half is the whole point, so assert it on the rendered file rather than + # trusting the template. Exactly one entry, zero submenus, no path back to a manual installer. + N_ENTRY="$(grep -c '^[[:space:]]*menuentry ' "$GCFG" || true)" + N_SUB="$(grep -c '^[[:space:]]*submenu ' "$GCFG" || true)" + [[ "$N_ENTRY" == "1" ]] || { echo "iso-repack: rendered grub.cfg has $N_ENTRY menuentries, want exactly 1" >&2; exit 14; } + [[ "$N_SUB" == "0" ]] || { echo "iso-repack: rendered grub.cfg has $N_SUB submenus, want 0" >&2; exit 14; } + for banned in proxtui proxdebug nomodeset 'Rescue Boot' memtest fwsetup; do + if grep -q "$banned" "$GCFG"; then + echo "iso-repack: rendered grub.cfg still references '$banned'" >&2; exit 14 + fi + done + grep -q "set theme=/boot/grub/felhomtheme/theme.txt" "$GCFG" \ + || { echo "iso-repack: rendered grub.cfg does not point at the Felhom theme" >&2; exit 14; } + [[ -s "$THEMEDIR/background.png" && -s "$THEMEDIR/theme.txt" ]] \ + || { echo "iso-repack: theme assets missing after install" >&2; exit 14; } + + # The stock PVE theme is now unreferenced. Remove it so the ISO carries one theme, not two. + rm -rf "$EX/boot/grub/pvetheme" + + cat > /work/brand-report.txt < /work/grub-version.txt + say "grub: $(cat /work/grub-version.txt)" + + # 3a. GRUB build to assemble the loader from. The N100 fix used the box's OWN INSTALLED 2.12 GRUB + # (a DIFFERENT, working build than the ISO's problem one — which is the whole point). The ISO + # ships modules but NOT kernel.img, so grub-mkimage cannot use the ISO's module dir directly; + # the box used its /usr/lib/grub/x86_64-efi. The container mirrors that: grub 2.12 == the PVE + # 9.x ISO's 2.12-9+pmx2 generation. We take the module BINARIES from here and the module LIST + # from the ISO's own grub.cfg (so we embed exactly what the ISO menu needs). ------------------- + GDIR="" + for d in /usr/lib/grub/x86_64-efi /usr/lib/grub/x86_64-efi-signed; do + [[ -f "$d/kernel.img" ]] && { GDIR="$d"; break; } + done + [[ -n "$GDIR" ]] || { echo "iso-repack: no usable GRUB x86_64-efi build (kernel.img) in the container" >&2; exit 3; } + say "grub module source: $GDIR" + + # 3b. module list: the base set the search/configfile-from-USB chain needs, PLUS every module the + # STOCK grub.cfg insmod's (read from the pre-branding snapshot — branding must not be able to + # shrink the embedded set). bitmap/bitmap_scale/trig are gfxmenu's renderer dependencies: the + # Felhom theme needs them and the stock cfg does not insmod them explicitly. + BASE="part_gpt part_msdos msdospart fat exfat iso9660 udf search search_fs_uuid search_fs_file search_label \ +configfile normal boot linux linuxefi chain loadenv loopback echo test true cat ls help \ +all_video efi_gop efi_uga video video_fb font gfxterm gfxterm_background gfxmenu bitmap bitmap_scale trig \ +png jpeg terminal serial gzio xzio lzopio minicmd reboot halt probe regexp sleep keystatus read" + CFGMODS="$(grep -hoE 'insmod[[:space:]]+[a-zA-Z0-9_]+' "$ORIG_CFG" | awk '{print $2}' | sort -u)" + MODS="" + for m in $BASE $CFGMODS; do + [[ -f "$GDIR/$m.mod" ]] && MODS="$MODS $m" + done + MODS="$(echo "$MODS" | tr ' ' '\n' | awk 'NF' | sort -u | tr '\n' ' ')" + say "embedding $(echo "$MODS" | wc -w) modules from the ISO's own x86_64-efi build" +fi + +# --- 4. pin the volume modification-date so the ISO's GRUB fs-uuid is DETERMINISTIC and KNOWN before +# we build the loader (GRUB's iso9660 fs_uuid is derived from the PVD modification timestamp). +# Reuse the prepared ISO's own timestamp verbatim -> the embedded search matches the re-mastered +# image (we pin the same value on re-master in step 6). ----------------------------------------- +MDATE="$(xorriso -indev "$OUT" -report_el_torito as_mkisofs 2>/dev/null \ + | grep -oE "modification-date='[0-9]+'" | grep -oE '[0-9]+' | head -1)" +[[ -n "$MDATE" && ${#MDATE} -ge 14 ]] || { echo "iso-repack: could not read the ISO modification-date" >&2; exit 4; } +ISO_UUID="$(echo "${MDATE:0:16}" | sed -E 's/^(.{4})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})$/\1-\2-\3-\4-\5-\6-\7/')" +say "ISO fs-uuid (from modification-date $MDATE): $ISO_UUID" + +if [[ "$LOADER" == "mkimage" ]]; then + # --- 5a. embedded config: find the ISO by fs-uuid, then chain its real menu (the recorded recipe) -- + cat > "$EMB" <&2; exit 5; } + say "built BOOTX64.EFI ($(stat -c%s "$LDR") bytes)" + + # --- 5c. swap the loader into BOTH the ISO9660 EFI/BOOT tree AND inside the efi.img ESP. The ISO + # tree uses Rock Ridge (LOWERCASE) names — `/efi/boot/bootx64.efi` — so overwrite the + # EXISTING files in place (case-insensitive find), NEVER mkdir a spurious uppercase path. + # The efi.img ESP is FAT (case-insensitive), the authoritative loader UEFI firmware actually + # runs from USB. ------------------------------------------------------------------------- + TREE_HITS=0 + while IFS= read -r f; do cp "$LDR" "$f"; TREE_HITS=$((TREE_HITS+1)); done \ + < <(find "$EX" -ipath '*/efi/boot/bootx64.efi') + while IFS= read -r f; do cp "$LDR" "$f"; done \ + < <(find "$EX" -ipath '*/efi/boot/grubx64.efi') + [[ "$TREE_HITS" -ge 1 ]] || { echo "iso-repack: no bootx64.efi found in the ISO9660 tree to replace" >&2; exit 6; } + + EFIIMG="$EX/efi.img" + [[ -f "$EFIIMG" ]] || EFIIMG="$(find "$EX" -maxdepth 3 -iname 'efi*.img' | head -1)" + [[ -f "$EFIIMG" ]] || { echo "iso-repack: efi.img ESP not found in the ISO tree" >&2; exit 6; } + # FAT is case-insensitive: ::/EFI/BOOT/BOOTX64.EFI resolves the real loader regardless of stored case. + mcopy -i "$EFIIMG" -o "$LDR" ::/EFI/BOOT/BOOTX64.EFI + if mdir -i "$EFIIMG" ::/EFI/BOOT 2>/dev/null | grep -qi grubx64; then + mcopy -i "$EFIIMG" -o "$LDR" ::/EFI/BOOT/grubx64.efi + fi + say "swapped bootx64.efi in the ISO tree ($TREE_HITS) and inside $(basename "$EFIIMG")" +fi + +# --- 6. re-master from the (modified) tree, reproducing the source ISO's boot geometry from its OWN +# as_mkisofs report so we track PVE minor versions. We drop ONLY the Apple APM/HFS+ boot map +# (-hfsplus / -apm-block-size): re-emitting it trips xorriso 1.5.6's "Overlapping MBR partition +# entries" on THIS layout, and Mac boot is irrelevant for N100/PC hardware. We KEEP the hybrid +# BIOS grub2-mbr + El Torito (BIOS eltorito.img + UEFI /efi.img) + the GPT EFI System Partition +# (-efi-boot-part) that USB UEFI firmware boots from — the whole point of this fix. The volume +# id + modification-date are pinned explicitly so the embedded fs-uuid stays valid. ------------- +RPT="$(xorriso -indev "$OUT" -report_el_torito as_mkisofs 2>/dev/null)" +VOLID="$(printf '%s\n' "$RPT" | sed -nE "s/^-V '(.*)'\$/\\1/p" | head -1)"; [[ -n "$VOLID" ]] || VOLID="PVE" +# Drop, then re-add explicitly: the volume id + modification-date. Drop entirely: the Apple APM/HFS+ +# map (-hfsplus / -apm-block-size) AND the isohybrid GPT-basdat marking (-part_like_isohybrid / +# -isohybrid-gpt-basdat) — prepare-iso re-masters with these, and re-emitting them alongside +# -efi-boot-part + the protective MBR trips xorriso 1.5.6's "Overlapping MBR partition entries". The +# resulting image keeps the protective MBR + grub2-mbr (BIOS) + El Torito (BIOS+UEFI) + the GPT EFI +# System Partition (verified). Repoint the grub2-mbr template at the in-container out.iso. +FILTERED="$(printf '%s\n' "$RPT" \ + | grep -vE "^-V '|^--modification-date=|^-apm-block-size |^-hfsplus\$|^-part_like_isohybrid\$|^-isohybrid-gpt-basdat\$" \ + | sed -E "s#(--interval:[^']*:)'[^']*'#\\1'$OUT'#")" +rm -f "$FINAL" +# shellcheck disable=SC2086 +eval xorriso -as mkisofs -V "'$VOLID'" --modification-date="'$MDATE'" \ + $FILTERED -o "$FINAL" "$EX" >/work/xorriso.log 2>&1 \ + || { echo "iso-repack: xorriso re-master FAILED"; tail -25 /work/xorriso.log >&2; exit 7; } + +[[ -f "$FINAL" ]] || { echo "iso-repack: no final.iso produced" >&2; exit 7; } +# assert both boot images survived (BIOS eltorito.img + UEFI efi.img) — a silent loss would fail-safe +# to an unbootable stick, so gate it here. +ETIMG="$(xorriso -indev "$FINAL" -report_el_torito plain 2>/dev/null | grep -cE 'El Torito boot img')" +[[ "$ETIMG" -ge 2 ]] || { echo "iso-repack: re-master lost a boot image (El Torito entries=$ETIMG, want >=2)" >&2; exit 8; } +say "re-mastered final.iso ($(stat -c%s "$FINAL") bytes; El Torito boot images=$ETIMG)" + +# --- 7. verify the re-mastered image kept the modification-date (so the embedded fs-uuid matches) --- +FINAL_MDATE="$(xorriso -indev "$FINAL" -report_el_torito as_mkisofs 2>/dev/null \ + | grep -oE "modification-date='[0-9]+'" | grep -oE '[0-9]+' | head -1)" +if [[ "${FINAL_MDATE:0:14}" != "${MDATE:0:14}" ]]; then + echo "iso-repack: WARN final modification-date ($FINAL_MDATE) != source ($MDATE) — the search fs-uuid may not match; re-check" >&2 +else + say "fs-uuid preserved ($ISO_UUID)" +fi + +# --- 8. post-re-master proof that the branding actually LANDED in the image we ship (not merely in +# the extract tree) — read the menu back out of final.iso. -------------------------------------- +if [[ "$BRAND" == "1" ]]; then + VER=/work/verify; rm -rf "$VER"; mkdir -p "$VER" + xorriso -osirrox on -indev "$FINAL" -extract /boot/grub/grub.cfg "$VER/grub.cfg" >/dev/null 2>&1 + xorriso -osirrox on -indev "$FINAL" -extract /boot/grub/felhomtheme "$VER/felhomtheme" >/dev/null 2>&1 + N="$(grep -c '^[[:space:]]*menuentry ' "$VER/grub.cfg" 2>/dev/null || echo 0)" + [[ "$N" == "1" ]] || { echo "iso-repack: final.iso menu has $N entries, want 1" >&2; exit 15; } + [[ -s "$VER/felhomtheme/background.png" ]] || { echo "iso-repack: final.iso carries no theme background" >&2; exit 15; } + grep -q "Felhom telepítés" "$VER/grub.cfg" || { echo "iso-repack: final.iso menu entry is not the Felhom one" >&2; exit 15; } + rm -rf "$VER" + say "verified in final.iso: 1 entry ('Felhom telepítés') + theme background present" +fi +say "done" diff --git a/scripts/iso/mkimage-surgery.sh b/scripts/iso/mkimage-surgery.sh deleted file mode 100644 index f9e19f5..0000000 --- a/scripts/iso/mkimage-surgery.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash -#=============================================================================== -# mkimage-surgery.sh — R-21 slice B: replace a prepared Felhom ISO's UEFI boot loader with a -# monolithic grub-mkimage image, so cheap AMI (AN3PLUS-class) firmware that can't relocate the ISO's -# signed GRUB from USB (VALIDATION-n100-baremetal F1, `relocation 0x0`) boots. -# -# RUNS INSIDE the felhom-iso-assistant container; operates on /work/out.iso (the prepare-iso output) -# and writes /work/final.iso + /work/grub-version.txt. NEVER touches the source ISO or the assistant's -# answer/first-boot payload — only the EFI boot path. -# -# The recipe is the N100 run's PROVEN-LIVE workaround (do NOT re-derive it): build BOOTX64.EFI from -# the ISO's OWN x86_64-efi GRUB modules (the box's working 2.12-9+pmx2 build), embedding the module -# set the ISO's grub.cfg needs + an embedded config that `search --fs-uuid`es the ISO and -# `configfile`s its real menu; swap it into the ISO9660 EFI/BOOT tree AND inside efi.img; re-master -# with xorriso preserving BOTH the hybrid BIOS boot and the payload. The image is UNSIGNED (Secure -# Boot must be OFF on the target) — that is the documented mkimage contract. -#=============================================================================== -set -euo pipefail - -OUT=/work/out.iso -FINAL=/work/final.iso -EX=/work/ex -EMB=/work/embedded.cfg -LDR=/work/BOOTX64.EFI - -say() { echo "mkimage-surgery: $*"; } - -# The osirrox extract tree is written by container-root; the host-side build cleanup (a non-root user) -# cannot remove it. Remove it here (we ARE root in the container) on every exit path so no /tmp litter -# survives the run. -cleanup_ex() { if [[ -n "${EX:-}" && -e "$EX" ]]; then rm -rf "$EX" 2>/dev/null || true; fi; } -trap cleanup_ex EXIT - -[[ -f "$OUT" ]] || { echo "mkimage-surgery: /work/out.iso missing" >&2; exit 2; } -for t in xorriso grub-mkimage mcopy mdir; do - command -v "$t" >/dev/null || { echo "mkimage-surgery: missing tool: $t" >&2; exit 2; } -done - -grub-mkimage --version | head -1 > /work/grub-version.txt -say "grub: $(cat /work/grub-version.txt)" - -# --- 1. extract the full prepared ISO tree (osirrox) — preserves the answer + first-boot payload. -# osirrox reproduces the ISO's (read-only) file modes, so make the tree writable afterwards or -# the loader swap (step 7) and the workspace cleanup can't overwrite/remove the files. --------- -[[ -e "$EX" ]] && { chmod -R u+w "$EX" 2>/dev/null || true; rm -rf "$EX"; } -mkdir -p "$EX" -xorriso -osirrox on -indev "$OUT" -extract / "$EX" >/dev/null 2>&1 -chmod -R u+w "$EX" -say "extracted prepared ISO tree" - -# --- 2. GRUB build to assemble the loader from. The N100 fix used the box's OWN INSTALLED 2.12 GRUB -# (a DIFFERENT, working build than the ISO's problem one — which is the whole point). The ISO -# ships modules but NOT kernel.img, so grub-mkimage cannot use the ISO's module dir directly; -# the box used its /usr/lib/grub/x86_64-efi. The container mirrors that: grub 2.12 == the PVE -# 9.x ISO's 2.12-9+pmx2 generation. We take the module BINARIES from here and the module LIST -# from the ISO's own grub.cfg (so we embed exactly what the ISO menu needs). -------------------- -GDIR="" -for d in /usr/lib/grub/x86_64-efi /usr/lib/grub/x86_64-efi-signed; do - [[ -f "$d/kernel.img" ]] && { GDIR="$d"; break; } -done -[[ -n "$GDIR" ]] || { echo "mkimage-surgery: no usable GRUB x86_64-efi build (kernel.img) in the container" >&2; exit 3; } -say "grub module source: $GDIR" -GCFG="" -for c in "$EX/boot/grub/grub.cfg" "$EX/boot/grub/x86_64-efi/grub.cfg"; do - [[ -f "$c" ]] && { GCFG="$c"; break; } -done - -# --- 3. module list: the base set the search/configfile-from-USB chain needs, PLUS every module the -# ISO's grub.cfg insmod's. Keep only modules present in the GRUB build. This IS "every module -# the grub.cfg needs". -BASE="part_gpt part_msdos msdospart fat exfat iso9660 udf search search_fs_uuid search_fs_file search_label \ -configfile normal boot linux linuxefi chain loadenv loopback echo test true cat ls help \ -all_video efi_gop efi_uga video video_fb font gfxterm gfxterm_background gfxmenu png jpeg \ -terminal serial gzio xzio lzopio minicmd reboot halt probe regexp sleep keystatus read" -CFGMODS="" -[[ -n "$GCFG" ]] && CFGMODS=$(grep -hoE 'insmod[[:space:]]+[a-zA-Z0-9_]+' "$GCFG" | awk '{print $2}' | sort -u) -MODS="" -for m in $BASE $CFGMODS; do - [[ -f "$GDIR/$m.mod" ]] && MODS="$MODS $m" -done -MODS="$(echo "$MODS" | tr ' ' '\n' | awk 'NF' | sort -u | tr '\n' ' ')" -say "embedding $(echo "$MODS" | wc -w) modules from the ISO's own x86_64-efi build" - -# --- 4. pin the volume modification-date so the ISO's GRUB fs-uuid is DETERMINISTIC and KNOWN before -# we build the loader (GRUB's iso9660 fs_uuid is derived from the PVD modification timestamp). -# Reuse the prepared ISO's own timestamp verbatim -> the embedded search matches the re-mastered -# image (we pin the same value on re-master in step 8). -MDATE="$(xorriso -indev "$OUT" -report_el_torito as_mkisofs 2>/dev/null \ - | grep -oE "modification-date='[0-9]+'" | grep -oE '[0-9]+' | head -1)" -[[ -n "$MDATE" && ${#MDATE} -ge 14 ]] || { echo "mkimage-surgery: could not read the ISO modification-date" >&2; exit 4; } -ISO_UUID="$(echo "${MDATE:0:16}" | sed -E 's/^(.{4})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})$/\1-\2-\3-\4-\5-\6-\7/')" -say "ISO fs-uuid (from modification-date $MDATE): $ISO_UUID" - -# --- 5. embedded config: find the ISO by fs-uuid, then chain its real menu (the recorded recipe) --- -cat > "$EMB" <&2; exit 5; } -say "built BOOTX64.EFI ($(stat -c%s "$LDR") bytes)" - -# --- 7. swap the loader into BOTH the ISO9660 EFI/BOOT tree AND inside the efi.img ESP. The ISO tree -# uses Rock Ridge (LOWERCASE) names — `/efi/boot/bootx64.efi` — so overwrite the EXISTING files -# in place (case-insensitive find), NEVER mkdir a spurious uppercase path. The efi.img ESP is -# FAT (case-insensitive), the authoritative loader UEFI firmware actually runs from USB. -------- -TREE_HITS=0 -while IFS= read -r f; do cp "$LDR" "$f"; TREE_HITS=$((TREE_HITS+1)); done \ - < <(find "$EX" -ipath '*/efi/boot/bootx64.efi') -while IFS= read -r f; do cp "$LDR" "$f"; done \ - < <(find "$EX" -ipath '*/efi/boot/grubx64.efi') -[[ "$TREE_HITS" -ge 1 ]] || { echo "mkimage-surgery: no bootx64.efi found in the ISO9660 tree to replace" >&2; exit 6; } - -EFIIMG="$EX/efi.img" -[[ -f "$EFIIMG" ]] || EFIIMG="$(find "$EX" -maxdepth 3 -iname 'efi*.img' | head -1)" -[[ -f "$EFIIMG" ]] || { echo "mkimage-surgery: efi.img ESP not found in the ISO tree" >&2; exit 6; } -# FAT is case-insensitive: ::/EFI/BOOT/BOOTX64.EFI resolves the real loader regardless of stored case. -mcopy -i "$EFIIMG" -o "$LDR" ::/EFI/BOOT/BOOTX64.EFI -if mdir -i "$EFIIMG" ::/EFI/BOOT 2>/dev/null | grep -qi grubx64; then - mcopy -i "$EFIIMG" -o "$LDR" ::/EFI/BOOT/grubx64.efi -fi -say "swapped bootx64.efi in the ISO tree ($TREE_HITS) and inside $(basename "$EFIIMG")" - -# --- 8. re-master from the (modified) tree, reproducing the source ISO's boot geometry from its OWN -# as_mkisofs report so we track PVE minor versions. We drop ONLY the Apple APM/HFS+ boot map -# (-hfsplus / -apm-block-size): re-emitting it trips xorriso 1.5.6's "Overlapping MBR partition -# entries" on THIS layout, and Mac boot is irrelevant for N100/PC hardware. We KEEP the hybrid -# BIOS grub2-mbr + El Torito (BIOS eltorito.img + UEFI /efi.img) + the GPT EFI System Partition -# (-efi-boot-part) that USB UEFI firmware boots from — the whole point of this fix. The volume -# id + modification-date are pinned explicitly so the embedded fs-uuid stays valid. ------------- -RPT="$(xorriso -indev "$OUT" -report_el_torito as_mkisofs 2>/dev/null)" -VOLID="$(printf '%s\n' "$RPT" | sed -nE "s/^-V '(.*)'\$/\\1/p" | head -1)"; [[ -n "$VOLID" ]] || VOLID="PVE" -# Drop, then re-add explicitly: the volume id + modification-date. Drop entirely: the Apple APM/HFS+ -# map (-hfsplus / -apm-block-size) AND the isohybrid GPT-basdat marking (-part_like_isohybrid / -# -isohybrid-gpt-basdat) — prepare-iso re-masters with these, and re-emitting them alongside -# -efi-boot-part + the protective MBR trips xorriso 1.5.6's "Overlapping MBR partition entries". The -# resulting image keeps the protective MBR + grub2-mbr (BIOS) + El Torito (BIOS+UEFI) + the GPT EFI -# System Partition (verified). Repoint the grub2-mbr template at the in-container out.iso. -FILTERED="$(printf '%s\n' "$RPT" \ - | grep -vE "^-V '|^--modification-date=|^-apm-block-size |^-hfsplus\$|^-part_like_isohybrid\$|^-isohybrid-gpt-basdat\$" \ - | sed -E "s#(--interval:[^']*:)'[^']*'#\\1'$OUT'#")" -rm -f "$FINAL" -# shellcheck disable=SC2086 -eval xorriso -as mkisofs -V "'$VOLID'" --modification-date="'$MDATE'" \ - $FILTERED -o "$FINAL" "$EX" >/work/xorriso.log 2>&1 \ - || { echo "mkimage-surgery: xorriso re-master FAILED"; tail -25 /work/xorriso.log >&2; exit 7; } - -[[ -f "$FINAL" ]] || { echo "mkimage-surgery: no final.iso produced" >&2; exit 7; } -# assert both boot images survived (BIOS eltorito.img + UEFI efi.img) — a silent loss would fail-safe -# to an unbootable stick, so gate it here. -ETIMG="$(xorriso -indev "$FINAL" -report_el_torito plain 2>/dev/null | grep -cE 'El Torito boot img')" -[[ "$ETIMG" -ge 2 ]] || { echo "mkimage-surgery: re-master lost a boot image (El Torito entries=$ETIMG, want >=2)" >&2; exit 8; } -say "re-mastered final.iso ($(stat -c%s "$FINAL") bytes; El Torito boot images=$ETIMG)" - -# --- 9. verify the re-mastered image kept the modification-date (so the embedded fs-uuid matches) --- -FINAL_MDATE="$(xorriso -indev "$FINAL" -report_el_torito as_mkisofs 2>/dev/null \ - | grep -oE "modification-date='[0-9]+'" | grep -oE '[0-9]+' | head -1)" -if [[ "${FINAL_MDATE:0:14}" != "${MDATE:0:14}" ]]; then - echo "mkimage-surgery: WARN final modification-date ($FINAL_MDATE) != source ($MDATE) — the search fs-uuid may not match; re-check" >&2 -else - say "fs-uuid preserved ($ISO_UUID)" -fi -say "done" diff --git a/website/assets/og-image_2.png b/website/assets/og-image_2.png new file mode 100644 index 0000000000000000000000000000000000000000..733b3afae5306139be8af24b9d884ce342d444dd GIT binary patch literal 148923 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%0AVkE0UQ85n zs{W}r^mjNNpSN4@H=S0Tv6WvP*=2F92X}^)ijOe@UUS$ex{6k+C;u>2)6Mi=AZl1n z5}O10c~A|Dna$Q%>*|~^1_QNVYx9yfG)u%M+r)iPt;%UApH}E{k9M zn5QtI+C4RQQO7U6MybFcIvP7AcvJ?@G&ry}TFoi3o<&ys343~SX8hW_D1gx|HZX_e zXMbCLx7s||P{II$JM?EkyuWRgXfx8q`kr})>m>}=Ce71oENWk{Ion)NaaadQ*n<%BLZn{T8{f{eKNSX^~-252I& zY;z5zZ1RzA#p7QGqfjyR7zja9{E1k4?>gZf#Ic!-*;=FxXgH5xG$Mx{KfEZ6Gm881 z&b^~a>LyJNkL>V?!hf8a9p81nFrT~i*Ad{;62`=zBilo8hOESnXvNwRne1f+-*nvw zCS)T07;RCfHSM3#w#6UJZq^H+Fsh-JR^3G zSJ5vsIzTBjynPD%a)$ENsFGXX&jC7Anbg5pD`32&=|X${OaS`PbV}a)tNztc-Ay*xa>UB2+^HBVd5{@Rxd5^W}ybyq;PDH|3UEYkhT6jM4OaK4`>Wg*1X4 z)FO#E*cm&oiXfygZ-9Fa`rzzvL^1@82iq}$ENOXUtC!86UDYWuU3zM|;<*qx`rym5 z#Phqe*?)8Dx$2i>bCZT=!PA}Rd#G5dCP=1jt+D0g)SUI#h1gdIF|kb=9ow9DDg=@q z@r7TW{FXtZ49?~@-F@o^SHuDQyD@2`SJ$r-m(VbfL~E^u?-Fmo zc*S_-f+6}Y(`;nA$j0Ml8k9Mp#p9|?ez!uXAOMKy?#VG_x3AosdO<&Zp681AAU#$V zT`x)HBk(zGw7Ha7@67baBp19xe&kU*5__{*<)eC>Dq2J(p+0jHz!u%Sf?P(RWd3G8 zzM`&kT-E3FUB*lCMK1}xsU5{gAR;D1?jQWk$G_OkYd3{LMbH+j^-`y_1G)VK@Bmb* z;bf(im1piu_?m#?FY$UnPPky1a*3v~iz-yzw;CLh`%^P}do93%nl0z7y-G?w6(3}1 z5ii96Mgqy0`W_3NI`VaagPG3E#m5hL;r1}1gr6Yu%TWS!$x^RTF4s1io zOEz{5=06d`Qj#wg?s#;1u5x~|MhTWLTEB`3l}BFUdBo?>QqZaJ+y1i<2C%(`7%jhT z5GqamDnv8-PjB_So#hj9@+GPUwnZ?np`-&YTXflNbR>rs*T;3j8m2Ghp55c zY`so(+OJG~V5qdoEI6a-3}E1gk*8iR8GH5M(Mb1o%jZF9%a&GCWAv+95i3C) z1Luqh6!q8!W=QTvbW5bt9I!%K`-@Xg!*8eRJ3Stz3bj7>aFy!Pr3iNN&OD!}94>Ws zGObhv#32*)sUWR)j~VBPhDmjm!=@tiVuer#c-zc~abpq|1uY)f1Im+kRqK{_2D^+J zYsSE7L3afq)#DMe)QVKVmva?tWw^ghJ_}A8!Dg%{(`z>e#gyvo+=Jk%+`oEBE~Hjw z%QJr#KiYLvXzn|uWsuI>Y4&fPS9-m0UIinQ&sX&{*&KbbR-?Qlk~0PJBK$1+;4_v; zcKo>`PVimfhRGT>UZAJ6gP>$%?gzKf(|3qHz?_t9ynB&aa1+8S%`wI94~(j}64|0; z=dZ*dgPGC5-@rE}3fIFKe*;*42@`_mA%BVj54s#v*Z{#4GqKad0`a^K3M_ zt@WYAOkk~pAr>KhyDn5VFMG*A`so3X1$kY}i+3R2&A(eemD8ev)9_1ay2l1V%e&VE z?+*&F!e`Hq9nV~k-Z`JUepzj6Afad1C?jmE@-HnOh((k^mOw^0qM(hxeZ$*!e~)&M zF-fKv3cs{ouPXkkV`@CI-u@YRIP%w~)sr&f++^@xzO7>bs%H7Z6TZ5o3QkOPoCm(b zn8~_7I_j6>tt8CUkvs`&@=zrFlJNlMFUzP;6Cv_^wKm}-b66DoxFm3s&Kla`?E*a9 z=+J=tQ(6Pl@y@%uAP&>Sl@%O${ot{wzw&&MIV%&EuUI{v<)%P2emM0loU66SJY&P3 zuX?L)Gd3S3L_!nyNiutQn+=ge09*SFAdx51s`X1Kqw&b63N!@(fc!Nx1;OGUH%_0u zf<1WjpKi)Uvq?ClFybK0(Re7dUbE4KG6Km&329(IgmNbr{JWty(N$ITmJUqhn%XK`9X-1MI`8+JAB`hcGtVO0`CRo zHc!jgfK7RGpW(44Dfhn%gEBoK>QQA>r($+L1s_BJ)p+2R)XI0})0NJ3nn+DE43Jppq76xnksx z+Yf*{mNA=e`1)^F`u8EX4n8dfD#6HIwu!n~fGB^S#avyJ_+J#VuHP@0U?Z61b80is zJ|pu22e<}a$%A|-ydJ>d6u>}{?S;2d8DqZ)e~{xT>_tDze}<2XqY<#=M)1T zT4kl<^!Uinb0`WAuhb#+2>(o7L>OrL4BtZ;op3n+i=)KNR(^Rt+I)q2i06_)(p#LI zEKUm@&<&bM`03MZb^lE^I#~f*K?2|$UdLZu>`UDr98<`8=@dGXu84u;P~bUFG&ESD zMfHg4pM?CInuAt=3@<-{KA*Df7(DP(>%VrALXJHLkTT%|;%X z{48)d)6Q0sJ3q{m?N$o)0RMAi<7+c&lIwl_X_w1?jGU_dUyCVKIe~ znk(aA9m^FYr^r{e6kIY+?m?$44~7~Wm@mps(E#Z-HEezbb0RZSwbYZ}@KL=di;`i< z?*+ICwZV|^v8BK=d5>OK`;H43Gn$=Lih?_Ct=4%6SpJoCy7*eWE&-ZosgAa2my#>( zDaC_wT-vBF`$bJZE({5!7yq+TJpY(i^eMN$QT;AoJC#$RRyfo$m|hO@OWB?TXu*mH zlD-^9q;{K@jt*KAD*s9RAY;N@P1wE$+5?_UACp&v|2IB~W^2E#-GLCNUbVQd|3dgr z=hC{5$HXXRj@AD`=3qPw@!@e2%zi^#_vX)ObD6~qM-`a_@|icM0OaVjk85GR4M{7Y#L8Mv=8!F6zPv<<@jq7@yVU&Dq|0$tD;v2$PY2#lvH{cRq_w~S zVT!d$fjoSNcqi?+V)0QuqjsbHQy?s)R|C@DO8YJ3EGIa^*oxJ*2DK*`EO}^+C zm(fK{sK(27`EbYNCmStJ2=Cx48D)}r^vg8T9EH;imfNxCQvK!>)@+%`r0KFjKXkxo zCIKEGBI16#wESWFxl$Wyl|;k{6bYnes)qk1Wah+sPGL288 z-WKoNhg-Ysgg3bVg1jH;ofY8z!}h0p%-HUi_lM`Y73D{EZrwonR@L$J&&EEjhu@}Z z#F}0yNZ^GR)nT%X1mnR>EW|i?wgGht%v{Ml7|?+EHeVP zyrB8hSh502FJMB-an!V*o~}=O-L~`Q*j5K+Him&!qd9uAqhd9!{d{=9_RV<|X${)* z>ZF9jtlnDIgiF8c=STci1U^}(xyriGpI`L-wefR5m1i@+vhYcwQKbXE7WGr-G} zR(^+Z_f!h+Gyh!Dx?YMwG9l2Wwc|~kl54Vz|^W(a4U;~jOx9Y0?+ z0SL@CsCHK(CDQXXNy>WPZA6N?;f$^9IknYRrQ}KWNL?=^+W0x3h_Z%7(P2IOv5a#i2W z6v|c)$RaZnG#rPhnpf26IuD;u)&Y}4SK4~gD82g{+}_-}Wjd+(iEasH#FqwE@hbqS zfy*VQ%nM3N0JQ&$AuOjy&pi>q+{)112DPYpzzQ909h9wIERIA+1ejd&Gz)oG_&d5B z5BXfr_6sNWuO8K}H5>2F{qUJ~0<(j)e-y^UnJ#KCktlulk*q&6Vr(( zUH)@50-prPsh_;PM54QK9+k1vQu5@>p+4jF_2iRo07$66_<*F#XF%{@gXKYU2OyOE z0YKSqXdt~8S(mxboJ*sJBM;A`D#H-12Gs#I~>e$dsbkMv9?R5p*m(ku{7b+T%$sgvt_4L^=)kL<` z^yI!|t|&8rma21o{h@Pbt22+g;z$+39~B2u@($fHjx;YI?Q1DL#~C&O3Aj+6j$@CT z&G?BlBW>1l8EIs)?0jZV-^G3y$SaMlt$!_BggG?b-pi&sEz`w6B47B^AZD1U3LSbS ztkk{sN@HTW|HMGYJ-7`gxj_1&ei8)3E|8@_kU&N zc@Ku6h9a*6KgsSvG+Uy3f$jG*@HEJA9P-ZKJKU*kFpb&mos$rS$x=VmSDuLzdEPIX9M&!A?)-`d`SQ3xX^M97 zqL*zkRl(Sl^U2ib^v3+dreK>5Vd^&lxLiIX_wt|V#A#8tRXIqc&ddD8_gc52fAt|? z^rC`-zH~Xcy8c&M+`yZhNZ16^)07X8Loy++hHK~i7Z1w^MaGNE$i2Va?_p+rn$c0w zcNkxqhaasOw6KyYQ2f760gT`t4i*mNo4wWmCXiGAV4{5P5^91Om=Bj)3G|Ro*U*c%^J9{sBB{Wlyu^4zP z&fbR^R1a&_dhM!1?%<3EA;qxtC>VL?UN9-ATM0d8bW`^*zCviT6Oj9=t$LE{eyUDA z-8=-BNcpeV)6`MZRlSB&u9&hZl@we|xf{gq0+kt*?t8T;I?OwIa`8X?GhUh#4N*cY zpq;KSKFjRdE;gWj%1<}2!nb0SLXkPfM1X<2?UFp+>vFpuhi02H{gN>#B5xm~M7-T~ z1wr9A53#lMonOG(`!%@TRc$-0bw8hLGB}*%{)rHT!TQj_et!T_hkiLB4T>p^>M;`m zuVg;yD5yjc$vg6*yeP1!If+Hk5iCm8uVa^IzUV#ccwB3i^789$tCnJy`v$H3g&hIH z113F^7%RG?R|+rq{93?^;jqTA7d$ViiJXc|h_vq++>6Ge=bqC1F8edXi z8yM~4qMg7`HWV0sxwKQ3f}bqFVXY}i*c$xQ#h@SB;1tu&2}2LBn@vUzK*4J-m%V2q zEV4@UU6k;YFe-lbG+Dr&;5+J(Pm>FWn2eI|&1f#kxiMaT!$k50OV(i)3S9xJWH4aBCE zHlU14x)f96ILFaind`bR(!uS5m|pe}z~KuM!6gY)Q)Q}bf6u2lZI=3fH)^A}esdtj zxF1Yio304YI2w8f7Oyy_g{(7b^~){YG1mJ_yS`PBver5KTU4JOBEne8EP1Fbgfl zN_**r``wMg7;J@ak5vwi-bj(#R$8AkUxPJjSrYM^vK(GTySxNI|mZ2YydP4#e!Dq`=Ow2GVAMur9~_LG$kMC%^_s#W<+JPtMyE|Fu0O z8k;pQbp7g$L1)S{?*i0lGXv8%Su2l}@qPKMZZz&wu+^X19Jqe*+k0V|@1sMc5b3~t z`&@wIeLNkso+XZtUqIT}db#8_)0Vqx(?k^Bbi)+LV42x zzI6Nw1CP7Whpj7=zE!hct{xPN* zk(8I{Ao9x2y3~414ER2OfdX9WRYLdRJ1*ovPj^^F+2cYC(6X^&ee+g{X-a`pTu67? zYwt)(3C~nOlgQiS1SuZaizjExE@BqUPZ@@>(>CoU8 zqaE3ZlF%Q>L|Bz3gB2&e0pin<@0t4kzo_!9Z1ucsqo(J5e>wfZmrSrxQOcwI!^=G= zTE2Iy*+{FBjaE=mdpTyRjk(-HjW@gM^hvjPa}M>v_0EW5N(LCx$sqK41%1r*lerlk zch-`*kvxdmee+QJ{nkr&!F;Yj5U`lC=ppe#-Wgj@|H*IxSh^+=Gp&Y zZCSXy{LVuRkXqm)s;OF+wNZWto?R~VMt`#?4%&h*_OdQ~c+=BJ{fYLO_Mgfbm00g0 z(QHlMnEc{$z5)JMloxPi*Y(P=nY_I3*KWB%&#Bb4GDcouYfhQSqPGb zLZN4u_UjbG&2{Uiykcu-4hbn(5lmd9got_%IQ)#{UeK%Ihx#Y6AS3N-~*8?HFwBCp>3 zFdbT~De${v;e{4{GH4h_kPsx+j@Pp;h(O1I`kPiKjx@6PToxUiWDcZq_hk;8DioUN zh}jXM9D)9@vA`$}ZR%Yyg(>!Eztr?P(6Blop?-4b#I2a}hzsI`^KvKUK<=VF+ z@HSb=47kdF){jtEuoa|Jv)uwh@M5GO*_+LYM1-&;^&vjq=U(6AXM$)qvc|#A#b$}n zRkyA>jYGwUoV}2P*LR_vBOGC(Q+Go^L(WKF_?fYPa}d^kx+nQ zaA1;N@YOMgl}rdEfv)d;!M%S+6#0uwtodDHaGE>jqYFYD0G_-7fRmkON)eJvXEhf3 z40o?Nt0eb54VutT+g}24SDJV}SVoDUKffS9Tn=9M>MXP#jPxC#A!}athelssEEtLY zWp30!d=b;VYWU%9ecD$nnhJ5{D(isBsX?ZLJ@}!rPoQ=6t(nUB!6!*%{+KPgSq$R8RJS);PpWK1M9 zs*>s^2&gLj@3Yj_z09`~QUNmbeW;rn5@Oxet3LSampKBu`0Y-%H&A zlk2Hqsaz;v@ZK6hBI>gbHNusz5g)?GR(1y{FAdTN$@BJ$+Y4En3ELwXmb`ghcfpdILX#&jCmrpmmWwRqvUa&-D@BTNj*!T=`2y zf&GJsb$qB=GSVm=bDNyxQFzD8p7Z$GnqK%QK+(Tk+}3y8{7qeXU)0{g3Nj1>5N!lw zy+2xR-ZCk+wisz6u6f&deQfjwU=B+@_@T+k1bTxENs0ZTRz-~#3N(Mk%mPB@Y4xGc zUD@!?8h?k-?a}_!QB9f`NAY+SKjiAXQVb%8g4ou^LoYIeN86Tn z%x_WxDU)#qYwo`EfzNL0#fiWh>|wbgkO^i)+Dztfx9)xJc>mk-GX`VFVFvKzANW4e zd?pwmqU^lF0Sj072fI!MhxO|Qo}(lSke~KOt4eC@VPWX1?VapdAviY|B}j`a*&Yhc zIyfz&>X^HJ|4gE^z_I+|)4B@fw&qHM#Q(-AGRy5TZc8HANB%ic33pD`7n-wXqU766|=4gN*e(HlEX4|(vWkhfz*0d&g-_aS|u*4T)WsP~d2Vlruq%lkgr{4V)VSuDP&OKn=xgRP0{NH_=uPcfS?e zM(sz%k_qGes=$`htxDBTAMH^*K*V50fjpQA#pCTi0oD0lwYc5&iEQrG)^ToP3Smgq zXII3y*tjMpSc#UeNd0x}Iw3vDsW~H}_d1nDvVcr$`scs*)h$+!$Z|T8+j86_TYd|B z0UW*_@7qfUSIi*a@qvj7nj@Namt{Q)V>ptur#=SWtav_f+a=&H|MffDgxI z4j=PN?MhoE#`<_=%K|Nu)E5Y+>Lz@41fNX%5PIsGke?|-m^4-v9~9<`r1=tw($p% z$9NI?2IAxjRDO4L{?3g?*cl#r)|#;-L~ptlfKj2<9t?bPyskzI2Q6z>$gR~BV8{c+ zNq^wfF~mN~P6w#)mFK}s?1E3x3F0}h$Dg1PLzn@NBRtW(dYN92FyVh~W-X>LY+d@j zvDc~fMz@%*Xa5xS^gc6+mZ*s!XmM66#@gB(F6=vR8O@<{yV{pld?+Dhmo_^_tqwP0 zzUj9Kbu!P%u*)ecuJ@4#A_dyek*d2Q|5__nYvj`r8&QokpJtBvuV%eI+<-i-AkbFE zCwcJW(yAB$w%f+W=x|jq0iERdaq_)>u!whYi4?TSQxw!28~M%vnH&}Yf32Nkc<|AR zCYN(Xu$`Mdyyim!;w9>BcI|Gw0(TFyglYmDaIE=owzHD7= z0aCZiv!0G}^vrzz7HJLgydVH!vWWIx6{-o3v|zAMa8du{MYgdW6kNeE_+8#I0e&QA z+t$nk#(%t;Qt=ZiiGn7J6rIVE*gq#0na-_tHk35&0RxpXSq<`@ZOSW&`(ZQ__>5OW z0NdLV(u2*Tr;ekWA?S6e(%aCi-ue;B(eXN2wKg^i#uPwI{BPa%nDkmh0Ph1Zl)#3? zH!>y-3y;aO$&|?Y2TGsFqZ1|V73FrWam3NZc+RIbK`de#2?p z4R`|PvheJ7#JHSzd2=ab78VqCn5?;(by#?)d6H~j{BaE^M@Hq`AcwPEI~Uz|MM058G%!)5dzR(`(aw;dkAKn zi6e~w>LOtJbXGw_o0a(fz~hLAbuZA_AHq08ZQD{Gx8yFLnCq)I4!K{(LL3PLdp8L< zIFd1;uTlrYn8hgI78VAD7Yu+Zd^qZbtd66{f*{jLYhX`i_es><9i}Pi>$glUKfqCw zc)tHu{8eozEIj4BZg;V5f2IJ$jQS@2cvq@?NvbT!%CEKGd4? zV0eh+U*?_na_<%BGYbl0^^Gni#hf{bmBxgG)s}l_rN1C;=%SaD+*~raLw3 zUacLxJrcSNm_HTT#nu#`yUjRFKeJCvu1!o#`q8-9CAOkqkbV5%d$H_8>jhP%tW|Tbe8s3;E`_Hjt3# zBzn1+Jv~P8Wo8@huX5rd{->hf)Gh0y66a8Cv*&r2S(Ci!z^4GvWpV0RdQ!+0$9UVU5~H@xap;a2sEa<}-hSr{PeN%r%GT)b5Y-d$RnDw#FYD zZD&)5HK91n^pf2Q+5H2z{Iko;ee|`DbX`FuqZi_SVppqjlkHHlhlhZ=rwL9aR{`O- zOXXCy6U#rCzgv;;yI}4M%{I)?rcz>ltB$b-3U)t4K_Q&ZNy11bK`2B~8ow;{b%WBA%rA`%@Uo3D>xo4BHr&DNcPH~z2B`{h& zXzQi!u&<04nAoSyOkE1TUJ-Gq>a*M9TVP@{-4{1zS75W%aI0l0|Leh_OCQ&lfvL;U zsTVVp-H3BY`8=eHYAy539wq4m-cFo`zAetm#xTBmEjU*%D7@y(HGyjUozKP#K@~@L zM7=a=Q%zk4YVD4ZHoyjLdt3S(<0`tw#UWqY34^DV#k8QGJj$|wsnb1w;3Lv{f- zZ9C%1H6$M!l(X>+x%JeuTYcl_h^hCqKwPInA@8E@<0Z39;s|1eh8aVKr!IO2roMGZ zfxXwJo+n>|?}-;Z!I^7CX%0DRjd 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 PfcENzs$7MPQNaHJP9qB< literal 0 HcmV?d00001