From 59e79d64ffba49d77276e2547e615cf0145b3e53 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 27 Nov 2025 02:04:47 +0100 Subject: [PATCH 1/3] nixos/firefox-syncserver: fix local database access Local database creation always assumed UNIX socket accces. During the 25.11 release cycle this seemingly changed and we now need to be explicit. --- nixos/modules/services/networking/firefox-syncserver.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/firefox-syncserver.nix b/nixos/modules/services/networking/firefox-syncserver.nix index 56f204c50c7c..6a50e49fc096 100644 --- a/nixos/modules/services/networking/firefox-syncserver.nix +++ b/nixos/modules/services/networking/firefox-syncserver.nix @@ -13,7 +13,7 @@ let defaultUser = "firefox-syncserver"; dbIsLocal = cfg.database.host == "localhost"; - dbURL = "mysql://${cfg.database.user}@${cfg.database.host}/${cfg.database.name}"; + dbURL = "mysql://${cfg.database.user}@${cfg.database.host}/${cfg.database.name}${lib.optionalString dbIsLocal "?socket=/run/mysqld/mysqld.sock"}"; format = pkgs.formats.toml { }; settings = { From 83b9440abb6154b13916dd7557bbd241bb991086 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 27 Nov 2025 02:30:39 +0100 Subject: [PATCH 2/3] nixos/firefox-syncserver: init Regular tests of this service make it easier to notice when and why it broke. --- nixos/tests/all-tests.nix | 1 + nixos/tests/firefox-syncserver.nix | 32 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 nixos/tests/firefox-syncserver.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index fcdb5d23b124..2dbe012709bf 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -569,6 +569,7 @@ in imports = [ ./firefox.nix ]; _module.args.firefoxPackage = pkgs.firefox-esr-140; }; + firefox-syncserver = runTest ./firefox-syncserver.nix; firefoxpwa = runTest ./firefoxpwa.nix; firejail = runTest ./firejail.nix; firewall = runTest { diff --git a/nixos/tests/firefox-syncserver.nix b/nixos/tests/firefox-syncserver.nix new file mode 100644 index 000000000000..04b6fdc88711 --- /dev/null +++ b/nixos/tests/firefox-syncserver.nix @@ -0,0 +1,32 @@ +{ + pkgs, + ... +}: + +{ + name = "firefox-syncserver"; + nodes.machine = { + services.mysql = { + enable = true; + package = pkgs.mariadb; + }; + + services.firefox-syncserver = { + enable = true; + secrets = pkgs.writeText "secret" "this-is-a-test"; + singleNode = { + enable = true; + hostname = "firefox-syncserver.local"; + capacity = 1; + }; + }; + }; + + testScript = '' + machine.wait_for_unit("firefox-syncserver.service") + machine.wait_for_open_port(5000) + + machine.wait_until_succeeds("curl --fail http://127.0.0.1:5000") + + ''; +} From 67af782e1158171c4fa00dd280a8a396bf240afd Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 27 Nov 2025 02:32:56 +0100 Subject: [PATCH 3/3] syncstorage-rs: link up firefox-syncserver test --- pkgs/by-name/sy/syncstorage-rs/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/sy/syncstorage-rs/package.nix b/pkgs/by-name/sy/syncstorage-rs/package.nix index 8d91b26ae515..43e6eaa62bf2 100644 --- a/pkgs/by-name/sy/syncstorage-rs/package.nix +++ b/pkgs/by-name/sy/syncstorage-rs/package.nix @@ -8,6 +8,7 @@ makeBinaryWrapper, lib, nix-update-script, + nixosTests, }: let @@ -54,6 +55,8 @@ rustPlatform.buildRustPackage rec { passthru.updateScript = nix-update-script { }; + passthru.tests = { inherit (nixosTests) firefox-syncserver; }; + meta = { description = "Mozilla Sync Storage built with Rust"; homepage = "https://github.com/mozilla-services/syncstorage-rs";