From bb6eb9b13e3d40a22633fb80cbc75347af5bed3c Mon Sep 17 00:00:00 2001 From: eyjhb Date: Wed, 29 Jul 2020 23:59:08 +0200 Subject: [PATCH] dropbox: fix bug caused by Python `gi` import When running the service start script with `DISPLAY` set, a `gi` import error is triggered. Blanking the variable will make the script use a different code path that does not attempt to import `gi`. Also moves activation script up into start of script instead. PR #1415 --- modules/services/dropbox.nix | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/services/dropbox.nix b/modules/services/dropbox.nix index fa8a2fc5..bcf3ba2b 100644 --- a/modules/services/dropbox.nix +++ b/modules/services/dropbox.nix @@ -36,7 +36,7 @@ in { Install = { WantedBy = [ "default.target" ]; }; Service = { - Environment = [ "HOME=${homeBaseDir}" ]; + Environment = [ "HOME=${homeBaseDir}" "DISPLAY=" ]; Type = "forking"; PIDFile = "${homeBaseDir}/.dropbox/dropbox.pid"; @@ -49,6 +49,22 @@ in { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; ExecStop = "${dropboxCmd} stop"; ExecStart = toString (pkgs.writeShellScript "dropbox-start" '' + # ensure we have the dirs we need + $DRY_RUN_CMD ${pkgs.coreutils}/bin/mkdir $VERBOSE_ARG -p \ + ${homeBaseDir}/{.dropbox,.dropbox-dist,Dropbox} + + # symlink them as needed + if [[ ! -d ${config.home.homeDirectory}/.dropbox ]]; then + $DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \ + ${homeBaseDir}/.dropbox ${config.home.homeDirectory}/.dropbox + fi + + if [[ ! -d ${escapeShellArg cfg.path} ]]; then + $DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \ + ${homeBaseDir}/Dropbox ${escapeShellArg cfg.path} + fi + + # get the dropbox bins if needed if [[ ! -f $HOME/.dropbox-dist/VERSION ]]; then ${pkgs.coreutils}/bin/yes | ${dropboxCmd} update fi @@ -57,21 +73,5 @@ in { ''); }; }; - - home.activation.dropbox = hm.dag.entryAfter [ "writeBoundary" ] '' - # ensure we have the dirs we need - $DRY_RUN_CMD ${pkgs.coreutils}/bin/mkdir $VERBOSE_ARG -p \ - ${homeBaseDir}/{.dropbox,.dropbox-dist,Dropbox} - - # symlink them as needed - if [[ ! -d ${config.home.homeDirectory}/.dropbox ]]; then - $DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \ - ${homeBaseDir}/.dropbox ${config.home.homeDirectory}/.dropbox - fi - if [[ ! -d ${escapeShellArg cfg.path} ]]; then - $DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \ - ${homeBaseDir}/Dropbox ${escapeShellArg cfg.path} - fi - ''; }; }