Haken für abgeleitete Produkte: BASE_SLUG, Zusatzpakete, defaults.d, Branding in product.env #20

Merged
freehold-bot merged 7 commits from ableitung-haken into main 2026-10-28 16:57:53 +01:00
Collaborator

Generische Haken, damit ein Produkt auf bashclub OS seine ISO mit iso/build.sh ohne Kopie und ohne Patch bauen kann. Ohne die Haken bleibt alles wie bisher, die bashclub-Werte stehen als Standard in product.env.

Haken

  1. BASE_SLUG (Metapaket) getrennt von PRODUCT_SLUG (ISO-Name/Anzeige): Metapaket in packages/build.sh, Installer (PACKAGES), ISO-Bau, VM-Test und Prune in der CI.
  2. Zusatzpakete: EXTRA_DEBS beim Bau landen unter /usr/share/bashclub-install/extra-packages/. Der Installer installiert sie zusammen mit EXTRA_PACKAGES (product.env) in einem eigenen Schritt nach den eigenen Paketen.
  3. Voreinstellungen: INSTALL_DEFAULTS beim Bau landen unter /usr/share/bashclub-install/defaults.d/*.yaml. Sie gelten unter Antwortdatei und Assistent: Zuordnungen werden zusammengeführt, sonst gewinnt die Konfiguration. Fehler darin meldet die Prüfung als defaults.d/<datei>, und der Assistent schlägt den Rechnernamen daraus vor. Das ersetzt den Schema-Patch.
  4. Branding in product.env: ISO_SPLASH, ACCENT_COLOR, INSTALLER_LOGO (\n, @PRODUCT_NAME@), INSTALLER_BACKTITLE, INSTALLER_NEWT_COLORS, CONSOLE_PALETTE (in bashclub-installer-tui ausgewertet) und ZBM_PACKAGE (Standard bashclub-zfsbootmenu). Andere *-zfsbootmenu im Paketverzeichnis kommen nicht auf die ISO.
  5. ISO_PUBLISHER und SOURCES_URL (@CHANNEL@, @ISO@).
  • PRODUCT_ENV=<datei> beim Bau legt eine eigene product.env über die des Repos (spätere Zuweisung gilt). Auf der ISO stehen beide hintereinander, product.py liest wie die Shell.
  • Doku: README „Ableiten“, docs/umbenennung.md.

Tests

  • tests/run-in-container.sh (lint, shellcheck, pyflakes, gitleaks, bashclub-updates, pytest): 138 bestanden, davon 13 neue in tests/test_derive.py (bashclub-Werte unverändert, Überlagerung wie die Shell, Palette, defaults.d, Zusatzpakete, ISO-Bau ohne feste Werte, Rechnername im Assistenten).
  • Neue ISO aus diesem Branch und iso/test-vm.sh: Ergebnis unten.
  • Abgeleitete ISO (Havora-Vorschau) mit PRODUCT_ENV, EXTRA_DEBS, INSTALL_DEFAULTS und ZBM_PACKAGE=havora-zfsbootmenu, in einer VM installiert: Ergebnis unten.

Kein Mergen ohne Review.


Nachträge und Ergebnisse

  • Neu in diesem PR: Die motd liest Akzent, Fehlerfarbe, Bildmarke und BRAND_SSH_HINT aus branding.sh (Commit „motd: Akzentfarbe …“). Ohne Angaben ist die Ausgabe bytegleich zu main; geprüft durch Ausführen der alten und neuen Skripte für 20-bashclub, 30-bashclub-be und 50-bashclub-ssh. „Secure Boot“ in der Kopfzeile ist dynamisch (efivar SecureBoot).
  • Die Paketliste der ISO nennt jetzt auch die EXTRA_DEBS.
  • tests/run-in-container.sh: 139 Tests bestanden.
  • ISO aus diesem Branch (bashclub, Standardwerte) mit ONLY=start,install iso/test-vm.sh auf pvebuild (UEFI und BIOS, Start mit Assistent in Markenfarben, unbeaufsichtigte Installation, Probe-Boot): 0 Fehler. Die übrigen Teile (secureboot, network, mokmanager, update, probe, sbprobe) liefen nicht.
  • Abgeleitete ISO (Havora-Vorschau, PRODUCT_ENV, EXTRA_DEBS, INSTALL_DEFAULTS, ZBM_PACKAGE=havora-zfsbootmenu) in einer VM: Installation, Rechnername havora aus defaults.d, havora-zfsbootmenu statt bashclub-zfsbootmenu, bashclub-zbm-update --list aktuell, havora apply und Neustart: 29 OK, 0 Fehler.

🤖 Generated with Claude Code

Generische Haken, damit ein Produkt auf bashclub OS seine ISO mit `iso/build.sh` ohne Kopie und ohne Patch bauen kann. Ohne die Haken bleibt alles wie bisher, die bashclub-Werte stehen als Standard in `product.env`. **Haken** 1. `BASE_SLUG` (Metapaket) getrennt von `PRODUCT_SLUG` (ISO-Name/Anzeige): Metapaket in `packages/build.sh`, Installer (`PACKAGES`), ISO-Bau, VM-Test und Prune in der CI. 2. Zusatzpakete: `EXTRA_DEBS` beim Bau landen unter `/usr/share/bashclub-install/extra-packages/`. Der Installer installiert sie zusammen mit `EXTRA_PACKAGES` (product.env) in einem eigenen Schritt nach den eigenen Paketen. 3. Voreinstellungen: `INSTALL_DEFAULTS` beim Bau landen unter `/usr/share/bashclub-install/defaults.d/*.yaml`. Sie gelten unter Antwortdatei und Assistent: Zuordnungen werden zusammengeführt, sonst gewinnt die Konfiguration. Fehler darin meldet die Prüfung als `defaults.d/<datei>`, und der Assistent schlägt den Rechnernamen daraus vor. Das ersetzt den Schema-Patch. 4. Branding in `product.env`: `ISO_SPLASH`, `ACCENT_COLOR`, `INSTALLER_LOGO` (`\n`, `@PRODUCT_NAME@`), `INSTALLER_BACKTITLE`, `INSTALLER_NEWT_COLORS`, `CONSOLE_PALETTE` (in `bashclub-installer-tui` ausgewertet) und `ZBM_PACKAGE` (Standard `bashclub-zfsbootmenu`). Andere `*-zfsbootmenu` im Paketverzeichnis kommen nicht auf die ISO. 5. `ISO_PUBLISHER` und `SOURCES_URL` (`@CHANNEL@`, `@ISO@`). - `PRODUCT_ENV=<datei>` beim Bau legt eine eigene product.env über die des Repos (spätere Zuweisung gilt). Auf der ISO stehen beide hintereinander, `product.py` liest wie die Shell. - Doku: README „Ableiten“, `docs/umbenennung.md`. **Tests** - `tests/run-in-container.sh` (lint, shellcheck, pyflakes, gitleaks, bashclub-updates, pytest): 138 bestanden, davon 13 neue in `tests/test_derive.py` (bashclub-Werte unverändert, Überlagerung wie die Shell, Palette, defaults.d, Zusatzpakete, ISO-Bau ohne feste Werte, Rechnername im Assistenten). - Neue ISO aus diesem Branch und `iso/test-vm.sh`: Ergebnis unten. - Abgeleitete ISO (Havora-Vorschau) mit `PRODUCT_ENV`, `EXTRA_DEBS`, `INSTALL_DEFAULTS` und `ZBM_PACKAGE=havora-zfsbootmenu`, in einer VM installiert: Ergebnis unten. Kein Mergen ohne Review. --- **Nachträge und Ergebnisse** - Neu in diesem PR: Die motd liest Akzent, Fehlerfarbe, Bildmarke und `BRAND_SSH_HINT` aus `branding.sh` (Commit „motd: Akzentfarbe …“). Ohne Angaben ist die Ausgabe bytegleich zu main; geprüft durch Ausführen der alten und neuen Skripte für 20-bashclub, 30-bashclub-be und 50-bashclub-ssh. „Secure Boot“ in der Kopfzeile ist dynamisch (efivar `SecureBoot`). - Die Paketliste der ISO nennt jetzt auch die EXTRA_DEBS. - `tests/run-in-container.sh`: 139 Tests bestanden. - ISO aus diesem Branch (bashclub, Standardwerte) mit `ONLY=start,install iso/test-vm.sh` auf pvebuild (UEFI und BIOS, Start mit Assistent in Markenfarben, unbeaufsichtigte Installation, Probe-Boot): **0 Fehler**. Die übrigen Teile (secureboot, network, mokmanager, update, probe, sbprobe) liefen nicht. - Abgeleitete ISO (Havora-Vorschau, `PRODUCT_ENV`, `EXTRA_DEBS`, `INSTALL_DEFAULTS`, `ZBM_PACKAGE=havora-zfsbootmenu`) in einer VM: Installation, Rechnername `havora` aus defaults.d, havora-zfsbootmenu statt bashclub-zfsbootmenu, `bashclub-zbm-update --list` aktuell, havora apply und Neustart: **29 OK, 0 Fehler**. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
BASE_SLUG (Metapaket) getrennt von PRODUCT_SLUG (ISO-Name, Anzeige),
ZBM_PACKAGE (Standard bashclub-zfsbootmenu), Branding von Bootmenü und
Installer (ISO_SPLASH, ACCENT_COLOR, INSTALLER_LOGO/-BACKTITLE/-NEWT_COLORS,
CONSOLE_PALETTE), ISO_PUBLISHER und SOURCES_URL. Der ISO-Bau legt eine
eigene product.env darüber (PRODUCT_ENV) und bringt Zusatzpakete
(EXTRA_DEBS) und Voreinstellungen (INSTALL_DEFAULTS) auf die ISO. Die
bashclub-Werte sind die Standardwerte, das Ergebnis bleibt gleich.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pakete von der ISO (EXTRA_DEBS, /usr/share/bashclub-install/extra-packages)
und EXTRA_PACKAGES aus product.env in einem eigenen Schritt nach den
eigenen; sie dürfen bashclub-Pakete wie das Branding ersetzen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/usr/share/bashclub-install/defaults.d/*.yaml gelten unter der Antwortdatei
bzw. dem Assistenten (Zuordnungen zusammengeführt, sonst gewinnt die
Konfiguration), statt das Schema zu ändern; Fehler darin meldet die Prüfung.
Der Assistent schlägt den Rechnernamen daraus vor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Die .packages-Liste (Grundlage für die Quellen) nennt auch die Pakete aus
EXTRA_DEBS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Die Begrüßung liest neben BRAND_NAME auch BRAND_ACCENT, BRAND_ERROR,
BRAND_LOGO_1–3 und BRAND_SSH_HINT aus dem Branding-Paket; Tabelle und
Kästen in der Akzentfarbe. Ohne Angaben ist die Ausgabe bytegleich zur
bisherigen (Orange, >_). Secure Boot in der Kopfzeile bleibt dynamisch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
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
bashclub/bashclub-os!20
No description provided.