From 6d43ace2744860de1b0d51695fb1e9a39f68abf8 Mon Sep 17 00:00:00 2001 From: Erin of Yukis Date: Sat, 4 Apr 2026 22:05:25 +0200 Subject: [PATCH 1/2] Depend on PostgreSQL token server if building PostgreSQL sync server --- syncserver/Cargo.toml | 6 +++--- tokenserver-db/Cargo.toml | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/syncserver/Cargo.toml b/syncserver/Cargo.toml index 3f658f6cbe..461a0df017 100644 --- a/syncserver/Cargo.toml +++ b/syncserver/Cargo.toml @@ -70,7 +70,7 @@ slog-journald = "2.2.0" default = ["mysql", "py_verifier"] no_auth = [] py_verifier = ["tokenserver-auth/py", "tokenserver-common/py"] -mysql = ["syncstorage-db/mysql"] -postgres = ["syncstorage-db/postgres"] -spanner = ["syncstorage-db/spanner"] +mysql = ["syncstorage-db/mysql", "tokenserver-db/mysql"] +postgres = ["syncstorage-db/postgres", "tokenserver-db/postgres"] +spanner = ["syncstorage-db/spanner", "tokenserver-db/mysql"] actix-compress = ["actix-web/compress-brotli", "actix-web/compress-gzip", "actix-web/compress-zstd"] diff --git a/tokenserver-db/Cargo.toml b/tokenserver-db/Cargo.toml index c55b77f95a..ee68f92757 100644 --- a/tokenserver-db/Cargo.toml +++ b/tokenserver-db/Cargo.toml @@ -25,6 +25,5 @@ temp-env.workspace = true syncserver-settings = { path = "../syncserver-settings" } [features] -default = ["mysql"] mysql = ['tokenserver-mysql'] postgres = ['tokenserver-postgres'] From 9c92cf7c1221c596dcf720c2e7ff9620f9a0ac12 Mon Sep 17 00:00:00 2001 From: Erin of Yukis Date: Wed, 8 Apr 2026 21:49:20 +0200 Subject: [PATCH 2/2] Do not assume that TokenServer build will always include the MySQL backend when testing As of the previous commit, the MySQL TokenServer backend is only enabled if SyncServer is also using MySQL or Spanner, otherwise it needs to be enabled explicitely. --- Dockerfile | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 184964552b..0da62452f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,7 @@ RUN apt-get -q update && \ apt-get -q update ; \ fi; \ fi && \ - if [ "$TOKENSERVER_DATABASE_BACKEND" = "postgres" ]; then \ + if [ "$SYNCSTORAGE_DATABASE_BACKEND" = "postgres" ] || [ "$TOKENSERVER_DATABASE_BACKEND" = "postgres" ]; then \ POSTGRES_DEV_PKG="libpq-dev"; \ fi && \ apt-get -q install -y --no-install-recommends $MYSQL_PKG $POSTGRES_DEV_PKG cmake python3-dev python3-pip python3-setuptools python3-wheel python3-venv pkg-config && \ @@ -45,11 +45,7 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked \ --mount=type=cache,target=/usr/local/cargo/git,sharing=locked \ --mount=type=cache,target=/app/target,sharing=locked \ set -x && \ - TOKENSERVER_FEATURES="" && \ - if [ "$TOKENSERVER_DATABASE_BACKEND" = "postgres" ]; then \ - TOKENSERVER_FEATURES="--features=tokenserver-db/postgres"; \ - fi && \ - cargo chef cook --release --no-default-features --features=syncstorage-db/$SYNCSTORAGE_DATABASE_BACKEND $TOKENSERVER_FEATURES --features=py_verifier --recipe-path recipe.json + cargo chef cook --release --no-default-features --features=syncstorage-db/$SYNCSTORAGE_DATABASE_BACKEND --features=tokenserver-db/$TOKENSERVER_DATABASE_BACKEND --features=py_verifier --recipe-path recipe.json ENV POETRY_HOME="/opt/poetry" \ POETRY_VIRTUALENVS_IN_PROJECT=1 \ @@ -96,13 +92,9 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked \ --mount=type=cache,target=/usr/local/cargo/git,sharing=locked \ --mount=type=cache,target=/app/target,sharing=locked \ set -x && \ - TOKENSERVER_FEATURES="" && \ - if [ "$TOKENSERVER_DATABASE_BACKEND" = "postgres" ]; then \ - TOKENSERVER_FEATURES="--features=tokenserver-db/postgres"; \ - fi && \ cargo --version && \ rustc --version && \ - cargo install --path ./syncserver --no-default-features --features=syncstorage-db/$SYNCSTORAGE_DATABASE_BACKEND $TOKENSERVER_FEATURES --features=py_verifier --locked --root /app + cargo install --path ./syncserver --no-default-features --features=syncstorage-db/$SYNCSTORAGE_DATABASE_BACKEND --features=tokenserver-db/$TOKENSERVER_DATABASE_BACKEND --features=py_verifier --locked --root /app FROM docker.io/library/debian:bookworm-slim ARG SYNCSTORAGE_DATABASE_BACKEND