diff options
author | Joachim F <joachifm@users.noreply.github.com> | 2018-02-17 10:09:42 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-17 10:09:42 +0000 |
commit | faf072166b717091bfc2fb8d8bcb54379197ac32 (patch) | |
tree | 09fcef6a868ababa9b21b9f053bbca435b448a6e | |
parent | 67c5cb23e9231ebb302ce04e33f2045dbf288ec2 (diff) | |
parent | 9f5d779641389e135fda838e5559eca09edd4cff (diff) | |
download | nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar.gz nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar.bz2 nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar.lz nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar.xz nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.tar.zst nixlib-faf072166b717091bfc2fb8d8bcb54379197ac32.zip |
Merge pull request #29869 from Nadrieril/syncserver-fup
syncserver service: follow-up of #28189
-rw-r--r-- | lib/maintainers.nix | 1 | ||||
-rw-r--r-- | nixos/modules/rename.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/networking/firefox/sync-server.nix | 52 |
3 files changed, 25 insertions, 30 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 0deb63cfcb56..3b3294652f47 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -479,6 +479,7 @@ mudri = "James Wood <lamudri@gmail.com>"; muflax = "Stefan Dorn <mail@muflax.com>"; myrl = "Myrl Hex <myrl.0xf@gmail.com>"; + nadrieril = "Nadrieril Feneanar <nadrieril@gmail.com>"; namore = "Roman Naumann <namor@hemio.de>"; nand0p = "Fernando Jose Pando <nando@hex7.com>"; Nate-Devv = "Nathan Moore <natedevv@gmail.com>"; diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 7351482f957f..710387ebc1d6 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -205,6 +205,8 @@ with lib; "See the 16.09 release notes for more information.") (mkRemovedOptionModule [ "services" "phpfpm" "phpIni" ] "") (mkRemovedOptionModule [ "services" "dovecot2" "package" ] "") + (mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "") + (mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "") (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ] "Set the option `services.xserver.displayManager.sddm.package' instead.") diff --git a/nixos/modules/services/networking/firefox/sync-server.nix b/nixos/modules/services/networking/firefox/sync-server.nix index a9f3fd65d76b..97d223a56cab 100644 --- a/nixos/modules/services/networking/firefox/sync-server.nix +++ b/nixos/modules/services/networking/firefox/sync-server.nix @@ -33,6 +33,8 @@ let in { + meta.maintainers = with lib.maintainers; [ nadrieril ]; + options = { services.firefox.syncserver = { enable = mkOption { @@ -70,18 +72,6 @@ in ''; }; - user = mkOption { - type = types.str; - default = "syncserver"; - description = "User account under which syncserver runs."; - }; - - group = mkOption { - type = types.str; - default = "syncserver"; - description = "Group account under which syncserver runs."; - }; - publicUrl = mkOption { type = types.str; default = "http://localhost:5000/"; @@ -137,7 +127,9 @@ in config = mkIf cfg.enable { systemd.services.syncserver = let - syncServerEnv = pkgs.python.withPackages(ps: with ps; [ syncserver pasteScript ]); + syncServerEnv = pkgs.python.withPackages(ps: with ps; [ syncserver pasteScript requests ]); + user = "syncserver"; + group = "syncserver"; in { after = [ "network.target" ]; description = "Firefox Sync Server"; @@ -145,43 +137,43 @@ in path = [ pkgs.coreutils syncServerEnv ]; serviceConfig = { - User = cfg.user; - Group = cfg.group; + User = user; + Group = group; PermissionsStartOnly = true; }; preStart = '' if ! test -e ${cfg.privateConfig}; then - mkdir -m 700 -p $(dirname ${cfg.privateConfig}) + mkdir -p $(dirname ${cfg.privateConfig}) echo > ${cfg.privateConfig} '[syncserver]' + chmod 600 ${cfg.privateConfig} echo >> ${cfg.privateConfig} "secret = $(head -c 20 /dev/urandom | sha1sum | tr -d ' -')" fi - chown ${cfg.user}:${cfg.group} ${cfg.privateConfig} + chmod 600 ${cfg.privateConfig} + chmod 755 $(dirname ${cfg.privateConfig}) + chown ${user}:${group} ${cfg.privateConfig} + '' + optionalString (cfg.sqlUri == defaultSqlUri) '' if ! test -e $(dirname ${defaultDbLocation}); then mkdir -m 700 -p $(dirname ${defaultDbLocation}) - chown ${cfg.user}:${cfg.group} $(dirname ${defaultDbLocation}) + chown ${user}:${group} $(dirname ${defaultDbLocation}) fi + # Move previous database file if it exists oldDb="/var/db/firefox-sync-server.db" if test -f $oldDb; then mv $oldDb ${defaultDbLocation} - chown ${cfg.user}:${cfg.group} ${defaultDbLocation} + chown ${user}:${group} ${defaultDbLocation} fi ''; serviceConfig.ExecStart = "${syncServerEnv}/bin/paster serve ${syncServerIni}"; }; - users.extraUsers = optionalAttrs (cfg.user == "syncserver") - (singleton { - name = "syncserver"; - group = cfg.group; - isSystemUser = true; - }); - - users.extraGroups = optionalAttrs (cfg.group == "syncserver") - (singleton { - name = "syncserver"; - }); + users.users.syncserver = { + group = "syncserver"; + isSystemUser = true; + }; + + users.groups.syncserver = {}; }; } |