Skip to content

fix: provisioning facts re-derived from their sources - #61

Merged
grojof merged 2 commits into
mainfrom
fix/provisioning-facts
Oct 8, 2026
Merged

grojof merged 2 commits into
mainfrom
fix/provisioning-facts

Conversation

@grojof

@grojof grojof commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Second audit, group D. Every version, flag and package was re-checked against its source: Odoo's checkouts, PyPI, nginx.org, the wkhtmltopdf release, and runs of the real tools.

  • Python
    • Odoo 15–18 state MAX_PY_VERSION; Odoo 16's maximum is 3.12, not 3.13.
    • Hosts that would hit the gevent==21.8.0 row now get uv's interpreter: Odoo 14 above 3.9, 15 on 3.10–3.11, 16–19 on 3.10.
    • Corrected the stated reason for the setuptools pin (pkg_resources was removed in 82, not 81); the <81 pin itself is unchanged.
  • PostgreSQL
    • Passwords are stored as scram, so PostgreSQL 13 works with the scram pg_hba rule.
    • When the role already exists, the operator chooses whether to set the new password or keep the current one.
    • Local psql now passes -p.
    • Remote access uses ALTER SYSTEM, which a conf.d file cannot override. PostgreSQL restarts only when the setting changes, and only reloads for pg_hba.
    • The login check uses odoo.conf's SSL mode.
  • nginx: the installed version or apt's candidate is used; an unknown version is treated as old. proxy_cookie_flags is written from 1.19.3. This fixes the first HTTPS install on Ubuntu 22.04 and Debian 11.
  • odoo.conf: read as Odoo reads it. Update configuration keeps other sections and multi-line values, and writes each key once.
  • uv is called at /usr/local/bin/uv, its version is checked, and interpreters are installed with --no-bin.
  • wkhtmltopdf: arm64 builds were added, with checksums computed from the release. The distro package is offered only when apt has one.

Verified:

  • verify_postgres_setup (new, CI) runs against a cluster on another port that stores md5 by default and has a conf.d.
  • verify_secrets checks that passwords are stored as scram.
  • verify_install_runtime builds and starts real Odoo 14 (uv 3.8) and Odoo 16 (host 3.12), including the setuptools negative control.
  • Odoo 18's own config parser reads a merged odoo.conf.

OpenSpec: 2026-10-08-provisioning-facts.

Assisted-by: Claude

grojof added 2 commits October 8, 2026 15:17
- Python: official maxima for Odoo 15-18 (MAX_PY_VERSION; 16 is 3.12),
  and the gevent==21.8.0 rows per branch (14 above 3.9, 15 3.10-3.11,
  16-19 3.10) avoided with uv's interpreter.
- setuptools removed pkg_resources in 82 (the <81 pin stays; the reason
  is corrected).
- PostgreSQL: passwords stored as scram (13 defaults to md5); an
  existing role's password set or kept as the operator chooses; local
  psql names the port; remote access with ALTER SYSTEM, restart only on
  change, reload for pg_hba; login check with odoo.conf's SSL mode.
- nginx: installed or apt-candidate version, unknown taken as old;
  proxy_cookie_flags from 1.19.3.
- odoo.conf read as Odoo reads it; the update keeps other sections and
  multi-line values and writes each key once.
- uv at /usr/local/bin with its version checked, interpreters --no-bin.
- wkhtmltopdf per codename and machine (arm64 checksums computed); the
  distro package only when apt has one.
- Distinct HTTP and gevent ports; the CLI hint runs as the instance
  user; the unused PostgreSQL probe is removed.
- tools/verify_postgres_setup.py (CI) runs the PostgreSQL steps.
@grojof
grojof merged commit 8770272 into main Oct 8, 2026
1 check passed
@grojof
grojof deleted the fix/provisioning-facts branch October 8, 2026 13:19
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