diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix index a01e34d7362..87999c3614f 100644 --- a/nixos/modules/services/misc/matrix-synapse.nix +++ b/nixos/modules/services/misc/matrix-synapse.nix @@ -651,16 +651,12 @@ in { services.postgresql.enable = mkIf usePostgresql (mkDefault true); - systemd.services.matrix-synapse = - let - python = (pkgs.python3.withPackages (ps: with ps; [ (ps.toPythonModule cfg.package) ])); - in - { + systemd.services.matrix-synapse = { description = "Synapse Matrix homeserver"; after = [ "network.target" "postgresql.service" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - ${python.interpreter} -m synapse.app.homeserver \ + ${cfg.package}/bin/homeserver \ --config-path ${configFile} \ --keys-directory ${cfg.dataDir} \ --generate-keys @@ -691,7 +687,7 @@ in { WorkingDirectory = cfg.dataDir; PermissionsStartOnly = true; ExecStart = '' - ${python.interpreter} -m synapse.app.homeserver \ + ${cfg.package}/bin/homeserver \ ${ concatMapStringsSep "\n " (x: "--config-path ${x} \\") ([ configFile ] ++ cfg.extraConfigFiles) } --keys-directory ${cfg.dataDir} ''; diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index 46d74c06013..1b97e0049ed 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -30,6 +30,11 @@ in buildPythonApplication rec { sha256 = "1ych13x3c2cam7af4q2ariwvzwvr65g3j2x8ajjn33ydwxxbqbg6"; }; + patches = [ + # adds an entry point for the service + ./homeserver-script.patch + ]; + propagatedBuildInputs = [ bcrypt bleach @@ -77,6 +82,6 @@ in buildPythonApplication rec { homepage = https://matrix.org; description = "Matrix reference homeserver"; license = licenses.asl20; - maintainers = with maintainers; [ ralith roblabla ekleog ]; + maintainers = with maintainers; [ ralith roblabla ekleog pacien ]; }; } diff --git a/pkgs/servers/matrix-synapse/homeserver-script.patch b/pkgs/servers/matrix-synapse/homeserver-script.patch new file mode 100644 index 00000000000..95e28196a22 --- /dev/null +++ b/pkgs/servers/matrix-synapse/homeserver-script.patch @@ -0,0 +1,21 @@ +diff --git a/homeserver b/homeserver +new file mode 120000 +index 0000000..2f1d413 +--- /dev/null ++++ b/homeserver +@@ -0,0 +1,1 @@ ++synapse/app/homeserver.py +\ No newline at end of file +diff --git a/setup.py b/setup.py +index b00c2af..c7f6e0a 100755 +--- a/setup.py ++++ b/setup.py +@@ -92,6 +92,6 @@ setup( + include_package_data=True, + zip_safe=False, + long_description=long_description, +- scripts=["synctl"] + glob.glob("scripts/*"), ++ scripts=["synctl", "homeserver"] + glob.glob("scripts/*"), + cmdclass={'test': TestCommand}, + ) +