From d2b1a168d6cf51ac37187b30c8c6a9d82b6fdbc3 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 13 Apr 2022 23:43:51 +0200 Subject: [PATCH 1/2] syncplay: Allow disabling GUI The GUI brings a huge closure size with it, about 1.64GB, or 90.5% of the total. Turning the GUI off brings the closure size down to just 177MB --- pkgs/applications/networking/syncplay/default.nix | 10 ++++++---- pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix index b3c40b0f2fcd..4927bc51b232 100644 --- a/pkgs/applications/networking/syncplay/default.nix +++ b/pkgs/applications/networking/syncplay/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }: +{ lib, fetchFromGitHub, buildPythonApplication, pyside2, twisted, certifi, qt5, enableGUI ? true }: buildPythonApplication rec { pname = "syncplay"; @@ -13,12 +13,14 @@ buildPythonApplication rec { sha256 = "0qm3qn4a1nahhs7q81liz514n9blsi107g9s9xfw2i8pzi7v9v0v"; }; - propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls; - nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + propagatedBuildInputs = [ twisted certifi ] + ++ twisted.extras.tls + ++ lib.optional enableGUI pyside2; + nativeBuildInputs = lib.optionals enableGUI [ qt5.wrapQtAppsHook ]; makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ]; - postFixup = '' + postFixup = lib.optionalString enableGUI '' wrapQtApp $out/bin/syncplay ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 27e83d8d1e77..989fabbb92eb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29309,6 +29309,8 @@ with pkgs; syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { }; + syncplay-nogui = syncplay.override { enableGUI = false; }; + syncterm = callPackage ../applications/terminal-emulators/syncterm { }; inherit (callPackages ../applications/networking/syncthing { }) From bf123996f91803bfa36945aa0b5e6036111da8d9 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 13 Apr 2022 23:58:51 +0200 Subject: [PATCH 2/2] nixos/syncplay: Switch to version without GUI --- nixos/modules/services/networking/syncplay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/syncplay.nix b/nixos/modules/services/networking/syncplay.nix index c17426ecced7..7694b4bf990b 100644 --- a/nixos/modules/services/networking/syncplay.nix +++ b/nixos/modules/services/networking/syncplay.nix @@ -89,7 +89,7 @@ in ${lib.optionalString (cfg.passwordFile != null) '' export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password") ''} - exec ${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs} + exec ${pkgs.syncplay-nogui}/bin/syncplay-server ${escapeShellArgs cmdArgs} ''; }; };