summary refs log tree commit diff
diff options
context:
space:
mode:
authortalyz <kim.lindberger@gmail.com>2021-06-07 13:01:49 +0200
committertalyz <kim.lindberger@gmail.com>2021-06-07 13:01:49 +0200
commitba4d2bd03c0b30c888876f8b80bb5e42747d09de (patch)
tree1f8e6344fe8ff01c400f4fe24845c254cfef627b
parent7cf55d1f4edba3e907dcff5958be4dc0bda0897d (diff)
downloadnixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar.gz
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar.bz2
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar.lz
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar.xz
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.tar.zst
nixpkgs-ba4d2bd03c0b30c888876f8b80bb5e42747d09de.zip
nixos/geoipupdate: Create database directory in a separate unit
The database directory needs to be created before the
geoipupdate.service unit is activated; otherwise, systemd will not be
able to set up the mount namespacing to grant the service read-write
access.
-rw-r--r--nixos/modules/services/misc/geoipupdate.nix17
1 files changed, 14 insertions, 3 deletions
diff --git a/nixos/modules/services/misc/geoipupdate.nix b/nixos/modules/services/misc/geoipupdate.nix
index 836802e3830..3cf8e5e1099 100644
--- a/nixos/modules/services/misc/geoipupdate.nix
+++ b/nixos/modules/services/misc/geoipupdate.nix
@@ -99,9 +99,22 @@ in
       LockFile = "/run/geoipupdate/.lock";
     };
 
+    systemd.services.geoipupdate-create-db-dir = {
+      serviceConfig.Type = "oneshot";
+      script = ''
+        mkdir -p ${cfg.settings.DatabaseDirectory}
+        chmod 0755 ${cfg.settings.DatabaseDirectory}
+      '';
+    };
+
     systemd.services.geoipupdate = {
       description = "GeoIP Updater";
-      after = [ "network-online.target" "nss-lookup.target" ];
+      requires = [ "geoipupdate-create-db-dir.service" ];
+      after = [
+        "geoipupdate-create-db-dir.service"
+        "network-online.target"
+        "nss-lookup.target"
+      ];
       wants = [ "network-online.target" ];
       startAt = cfg.interval;
       serviceConfig = {
@@ -122,8 +135,6 @@ in
             geoipupdateConf = pkgs.writeText "geoipupdate.conf" (geoipupdateKeyValue cfg.settings);
 
             script = ''
-              mkdir -p "${cfg.settings.DatabaseDirectory}"
-              chmod 755 "${cfg.settings.DatabaseDirectory}"
               chown geoip "${cfg.settings.DatabaseDirectory}"
 
               cp ${geoipupdateConf} /run/geoipupdate/GeoIP.conf