Skip to content

Migrate standalone Tomcat to Debian Trixie - #16

Open
lirazsiri wants to merge 5 commits into
masterfrom
wish/tomcat-v19-trixie
Open

Migrate standalone Tomcat to Debian Trixie#16
lirazsiri wants to merge 5 commits into
masterfrom
wish/tomcat-v19-trixie

Conversation

@lirazsiri

@lirazsiri lirazsiri commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

  • migrate the appliance to OpenJDK 21 and Debian Trixie Tomcat 10.1 packages
  • preserve direct HTTP/HTTPS service, manager applications, MariaDB, and Webmin integration
  • add focused v19 acceptance covering service startup, authentication, WAR deployment, package provenance, and updates

Validation

  • independent sandbox review: SHIP at ef9acd8, with no CRITICAL or HIGH gaps
  • exact-tip evidence passed the Trixie build/import, firstboot, Tomcat 10.1 on Java 21, direct HTTP/HTTPS, MariaDB startup, and multi-user runtime path
  • focused retained evidence passed anonymous manager denial, authenticated manager and host-manager access, server-info, and WAR deploy/read/undeploy
  • the exact-tip product test exited opaquely before producing a complete harness PASS; the reviewer classified this as a nonblocking test-evidence gap, not a product failure
  • bash -n conf.d/main tests/v19.sh
  • shellcheck -x conf.d/main tests/v19.sh
  • git diff --check origin/master...HEAD

Move the packaged Java runtime to OpenJDK 21 while retaining Debian Tomcat 10.1 and its normal APT update path. Keep the standalone direct connectors and correct the bundled documentation link for the packaged Tomcat generation.

Add functional acceptance for normal service startup, HTTP and HTTPS, generated manager credentials, a complete WAR deploy/read/undeploy flow, MariaDB, Webmin, and signed Trixie package candidates. Document the README crosswalk, inherited Core evidence, and the harmless legacy authbind compatibility files.

Verified with a disposable Trixie package probe, git diff --check, and Bash syntax checks. The exact appliance acceptance remains the next gate.
The shared Trixie cipher substitution preserved its quoted placeholder after inserting the selected list. That produced malformed server.xml, so normal boot left tomcat10.service failed before any HTTP flow could run.

Normalize only the invalid suffix after shared configuration. This keeps the selected shared cipher list intact and restores valid Tomcat XML without changing the TLS policy.

Verified by reproducing the shared substitution against the shipped server.xml, applying the normalization, parsing the result with Python XML tooling, and rerunning Bash syntax and diff checks. Exact acceptance loop 1 evidence is retained under run 20260824t120525z-6979-20860.
Debian deploys the manager, host manager, and documentation from package directories under /usr/share through context descriptors. The first runtime test incorrectly expected those package payloads in the writable application directory and exited before exercising the documented flow.

Check the actual Debian-owned paths and allow the initial landing request to wait while Tomcat completes normal ROOT deployment. Subsequent requests remain immediate, and the WAR flow still proves the writable webapps deployment contract.

Verified the three package paths in a disposable Trixie container, then reran Bash syntax and diff checks. Exact acceptance loop 2 proved normal boot and active Tomcat before this focused test correction.
Tomcat 10.1 returns an authenticated text-manager status line of `OK - Server info`; the acceptance test expected a different label and stopped after otherwise successful manager authentication.

Assert the actual status line and the following Tomcat 10.1 version field. A disposable Trixie runtime proved the anonymous denial, both authenticated manager pages, server-info output, and the complete WAR deploy, read, undeploy, and 404 flow before this correction.
TurnKey firstboot assigns the MariaDB root password from the database credential, so the acceptance roundtrip could not use Debian package-time passwordless access after normal initialization.

Authenticate database creation, write, read, deletion, and failure cleanup with `TKL_TEST_DB_PASS`, matching the established v19 MariaDB appliance tests. Tomcat manager authentication and the full WAR lifecycle were already proven separately as the unprivileged service account.

Verified with Bash syntax and diff checks against the retained loop 4 evidence from run 20260824t130248z-2552-25810.
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