Port Web2py appliance to TurnKey 19 - #12
Open
lirazsiri wants to merge 6 commits into
Open
Conversation
Install the supported Web2py 3.3.3 release from its exact official tag and submodule commits while retaining the appliance's Apache WSGI and HTTPS administration behavior. Add MariaDB-backed runtime proof, safer firstboot password handling, and a supervised updater constrained to official Web2py 3.x tags. Document the v19 acceptance boundary and add focused tests for firstboot administrator access, the welcome application, database connectivity, source integrity, and update discovery. Verified with shell syntax, Python parsing, shellcheck, and diff hygiene before appliance acceptance.
MySQL cursor fetches return a tuple of rows, while the build and acceptance checks required a list. Assert the exact row count and exact scalar value instead so the checks preserve the database-connectivity contract across the driver's native container type. The first exact Wave 2 build reached this DAL query after source and submodule integrity checks passed; it failed only on the prior container-type comparison.
The disposable acceptance runtime inspects the Web2py source as root while the installed framework is correctly owned by www-data. Git therefore rejects the pinned submodule checks as dubious ownership even though the main repository check already carries a per-command trust exception. Scope safe.directory to each read-only submodule revision check. This preserves Git ownership protection globally while allowing acceptance to verify the exact PyDAL, Rocket3, and YATL commits installed by the appliance.
The focused migration now has a retained passing Docker run, so replace the testing placeholder with the exact run, source, harness, runtime, update, and cleanup evidence. Include the lock timeout and Docker storage limit in the documented command so it reproduces the validated Wave 2 invocation.
The updater changed the www-data-owned source tree and then queried its submodules as root. Git rejected those provenance reads as dubious ownership, which could leave updated code paired with stale metadata. Run the three read-only revision queries as www-data, matching the checkout and submodule operations without broadening Git trust. Add a disposable actual-apply fixture that advances local tagged repositories and verifies revisions, clean worktrees, provenance output, and Apache recovery. Verified with Bash syntax checks, shellcheck, diff hygiene, trust inspection, and the disposable apply fixture.
The acceptance document still named the pre-fix run and source, so it did not identify the review candidate that resolved the updater ownership failure. Record the retained PASS run, source and harness commits, archive and tree hashes, disposable actual-apply proof, and the nonblocking curl argument exposure. This keeps the documented evidence aligned with the artifacts available for independent review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Source and update path
Validation
20260826t031723z-720-64530b617c4cde69b68890475d1324f266c8751e6d59a77409e071475e03728e341fThe exact behavioral build used source commit
0a200200f777813c18b50c2635a10fa5e3a57edf. 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.