Skip to content

Port osCommerce appliance to TurnKey 19 - #23

Merged
lirazsiri merged 9 commits into
masterfrom
wish/oscommerce-v19-trixie
Aug 31, 2026
Merged

Port osCommerce appliance to TurnKey 19#23
lirazsiri merged 9 commits into
masterfrom
wish/oscommerce-v19-trixie

Conversation

@lirazsiri

Copy link
Copy Markdown
Member

Summary\n\n- port the osCommerce appliance to TurnKey 19 on Debian Trixie\n- update application installation, configuration, and runtime integration for the supported Trixie stack\n- add executable v19 smoke coverage and retain the accepted migration evidence\n\n## Validation\n\n- passed the configured Trixie root build in the Docker-based TKLDev 19 harness\n- passed noninteractive firstboot and the primary application workflow\n- passed dependency provenance and updater checks recorded in docs/v19.0-testing.md\n- git diff --check origin/master...HEAD

Replace the Cloudflare-blocked unversioned download with the official osCommerce 4.14.63493 GitHub source pinned by commit and SHA-256. Adapt assembly to the extracted source layout while retaining the existing firstboot credential and domain contracts.

Add focused acceptance for the catalog, administrator login, product update and restoration, Adminer, Webmin, Postfix, signed package channels, and the built-in App Shop update path. A disposable Trixie probe completed installation and the product-management flow on PHP 8.4 and MariaDB 11.8; bash syntax, Python AST parsing, PHP lint, diff checks, and documentation punctuation checks passed.
The osCommerce firstboot hook used the SysV service wrapper for a full Apache restart after changing only rewrite configuration. On Trixie this blocked beyond 30 seconds and caused the exact runtime inithooks service to hit its 90-second startup timeout.

Validate the generated Apache configuration, then use the native systemd reload path so firstboot applies the domain rewrite without stopping the server. The password hashing path remained fast in a disposable probe, and Python compilation plus diff validation passed.
Exact firstboot now completes after the Apache reload fix, but the harness-only HTTP-to-HTTPS follow check encountered a redirect loop before reaching the documented catalog flow. The README promises TLS access directly, not an HTTP redirect contract.

Request the catalog directly over HTTPS so acceptance measures the published entry point, and make the firstboot rewrite edits checked and free of Python 3.13 escape warnings. Bash syntax, Python compilation, diff validation, and documentation punctuation checks passed.
The osCommerce storefront root returns a redirect document under the disposable harness hostname, so a root-body branding assertion did not measure the documented catalog behavior.

Use the seeded product route as the catalog entry check. This is the same route proven in the disposable Trixie probe and remains covered before and after the administrator product edit. Bash syntax, Python compilation, diff validation, and documentation punctuation checks passed.
The v4 installer enables a www-host rewrite in .htaccess whenever its initial platform URL starts with www. The build-time www.example.com placeholder therefore survived firstboot and redirected localhost to www.localhost while Apache redirected it back, making every catalog route loop.

Install against localhost so that host-specific rewrite remains disabled, update the informational Domain value during firstboot, and assert the platform SSL mode and inactive www rule before exercising a seeded product. Catalog failures now emit bounded response evidence. Bash syntax, Python compilation, diff validation, and documentation punctuation checks passed.
The osCommerce credential helper restores MariaDB to its prior state after updating the database. During firstboot that prior state can still be stopped, leaving the completed appliance without its application database even though the unit is enabled. Start MariaDB explicitly after the helper returns.

Check runtime units individually so an active Apache or Postfix service cannot mask an inactive database in acceptance. The retained fifth-run journal showed a normal, helper-initiated shutdown; shell syntax, Python compilation, and diff validation passed.
Capture the exact passing source and harness commits, retained report location, staged-source digests, installed versions, runtime behavior, and available update channels. This documentation-only change follows the passing run so it does not require another appliance rebuild.

Verified the retained report verdict and commit identities, shell and Python syntax, documentation punctuation, and diff whitespace.
Replace the seeded-product edit check with a uniquely marked product create, database and catalog readback, and admin deletion workflow so the documented management path is proven without modifying sample data.

Run the supported App Shop update discovery endpoint against a loopback-only deterministic fixture using a disposable storage identity. Reload Apache at the temporary configuration boundaries, prove the fixture received the updater request, verify source and eligible versions plus metadata integrity and unchanged application state, then restore the original identity and configuration.

Verified with Bash syntax, embedded Python compilation, diff whitespace, pinned upstream route inspection, and retained exact-runtime bundles used to align assertions with authenticated forms, updater revisions, and PHP configuration caching.
Replace the stale runtime summary with the retained PASS candidate and its report, source, transport, input, build, and harness identities. Document the unique product create/readback/delete workflow and the authenticated loopback update-discovery proof, including unchanged application state and restored temporary configuration.

This is an evidence-only correction. The retained bundle verifies against SHA256SUMS, and no appliance rebuild is required.
@lirazsiri
lirazsiri merged commit 8d703b4 into master Aug 31, 2026
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