Skip to content

Port XOOPS appliance to TurnKey 19 - #20

Open
lirazsiri wants to merge 9 commits into
masterfrom
pr/v19-trixie
Open

Port XOOPS appliance to TurnKey 19#20
lirazsiri wants to merge 9 commits into
masterfrom
pr/v19-trixie

Conversation

@lirazsiri

Copy link
Copy Markdown
Member

Summary

  • migrate the XOOPS appliance to Debian 13 Trixie;
  • update the application and integration to the supported source described below;
  • preserve normal firstboot credentials and the appliance identity-defining behavior;
  • document and verify the supported update path;
  • add focused v19 appliance acceptance coverage.

Source and update path

  • Installed version: XOOPS release 2.7.3, runtime XOOPS 2.7.3-RC1
  • Source: official XOOPS Core 2.7.3 at commit 00fff34c11fd4bee606e734d3bccf52d36fe0fda
  • Updater channel: official XOOPS Core 2.7 stable releases
  • Updater evidence: selected v2.7.3 at verified official release commit 00fff34c11fd4bee606e734d3bccf52d36fe0fda
  • Updater procedure: turnkey-xoops-update --check; turnkey-xoops-update --apply --dry-run
  • Integrity evidence: XOOPS source archive SHA-256 b49d935116352434a60e5dae93efce356d9e5f360ad92bc72dcc69d7ab82b8cb bound to official commit 00fff34c11fd4bee606e734d3bccf52d36fe0fda

Validation

  • Exact run: 20260826t070502z-6411-28610
  • Report SHA-256: e2fb4a0bb83751b378508b655e8d7e077ba9069579f2e8759aed69a2598c2add
  • Runtime checks: HTTPS administrator login; custom block create and public read; MariaDB persistence; Adminer; firstboot credentials
  • Verdict: PASS

The exact behavioral build used source commit 0e1801f327b13ceeffeffa153859fd2e872b02d0. The accepted PR tip adds the reviewed evidence and testing-documentation delta recorded in the commit history.

Known limitation: Docker runtime does not exercise installer, kernel, or hardware behavior. The Docker kernel rejects the appliance hostname firstboot call and systemd-sysctl unit; application services are checked explicitly.

The Docker acceptance exercises the normal systemd and firstboot path, primary authentication, identity-defining behavior, persistence, required services, package provenance, and updater evidence. It deliberately does not repeat ISO or installer testing because the Core/TKLDev v19 format path was exercised separately.

Install the maintained official XOOPS Core 2.7.3 release at an exact commit and verified archive digest, update the LAMP integration for current PHP and MariaDB, and keep generated database and administrator credentials out of process arguments and build traces.

Add an authenticated HTTPS acceptance probe for firstboot login, custom-block create and public read, database persistence, and the official stable update channel. The updater resolves official release tags to commits, preserves generated state, creates backups, and stages the upstream browser-supervised upgrader.

Verified with Bash syntax checks, Python compilation, diff checks, source-tree secret-argument and documentation punctuation scans, updater usage-boundary behavior, and required test-environment failure behavior. Exact appliance acceptance remains pending because the shared Wave 2 runner is missing its cleanup dependency.
Do not install the unconfigured mainfile template before invoking the upstream wizard. Including that template on the first request leaves XOOPS_VAR_PATH empty, prevents the installer from establishing its session, and stops schema creation.

Keep mainfile creation within the official page_configsave flow so the configured external data and library paths are written together.
Define the application root before loading XOOPS's guarded version file from CLI contexts. Without that bootstrap, build provenance, acceptance, and updater checks read the guard message instead of the runtime version.

Keep all three identity boundaries on the same probe so recorded, tested, and updated source identities remain comparable.
Use the left block zone for the seeded welcome content and the authenticated create/read fixture. XOOPS maps side 0 to the left collection, which the pinned xbootstrap5 theme renders; its prior top-center side 5 is omitted by that theme.

This keeps the appliance and acceptance flow aligned without carrying a theme override.
Bind direct persistence assertions to the appliance's XOOPS database instead of relying on an undeclared environment variable. This lets the already-passing web round trip proceed to its SQL and updater checks under nounset.

The correction changes only test execution and does not alter appliance behavior.
Restart the XOOPS web service after the shared certificate hook and database credential rotation. Apache can enter active state while its certificate files are being replaced, then exit before the shared hook's active-service guard decides whether to restart it.

This lane-local recovery keeps the normal first boot serving HTTPS without changing shared infrastructure.
Record the exact clean behavioral commit, source and harness hashes, configured-root boundary, runtime checks, updater result, cleanup, and retained report from the passing Wave 2 acceptance.

Map each README identity claim to its observed result and preserve the two upstream-supervision limitations for independent review.
The web installer echoed generated database configuration into retained build logs even though shell tracing was disabled around credential creation. Send installer response bodies to /dev/null while retaining curl's fail-on-HTTP behavior and shell errexit propagation.

Verified with bash syntax checking, diff validation, and focused installer-call counts before the exact Wave 2 rerun.
Replace the superseded credential-bearing run references with the exact passing rerun at the executable correction commit. Record the retained checksums and count-only disclosure scan so reviewers can verify that installer responses no longer expose bootstrap database credentials.

Verified the documented run ID and source, input, and build hashes against report.txt; all retained checksums pass.
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