Unverified Commit 71204983 authored by Alois Wohlschlager's avatar Alois Wohlschlager
Browse files

nixos/bees: use the upstream service file

Instead of duplicating the options from the upstream service file and letting
them get out of sync, use the file directly and only configure the needed
overrides. In particular, the upstream improvements include the mounts not
being globally visible any more, so they can't be used for bypassing nosuid and
the like, and the custom cleanup script that performed the unmount becomes
unnecessary.
parent 2c8d3f48
Loading
Loading
Loading
Loading
+19 −32
Original line number Diff line number Diff line
@@ -97,14 +97,14 @@ in
      '';
    };
  };
  config = {
  config = lib.mkIf (cfg.filesystems != { }) {
    systemd.packages = [ pkgs.bees ];
    systemd.services = lib.mapAttrs' (
      name: fs:
      lib.nameValuePair "beesd@${name}" {
        description = "Block-level BTRFS deduplication for %i";
        after = [ "sysinit.target" ];

        serviceConfig =
        overrideStrategy = "asDropin";
        serviceConfig = {
          ExecStart =
            let
              configOpts = [
                fs.spec
@@ -114,23 +114,10 @@ in
              ];
              configOptsStr = lib.escapeShellArgs configOpts;
            in
          {
            # Values from https://github.com/Zygo/bees/blob/v0.6.5/scripts/beesd@.service.in
            ExecStart = "${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${lib.escapeShellArgs fs.extraOptions}";
            ExecStopPost = "${pkgs.bees}/bin/bees-service-wrapper cleanup ${configOptsStr}";
            CPUAccounting = true;
            CPUSchedulingPolicy = "batch";
            CPUWeight = 12;
            IOSchedulingClass = "idle";
            IOSchedulingPriority = 7;
            IOWeight = 10;
            KillMode = "control-group";
            KillSignal = "SIGTERM";
            MemoryAccounting = true;
            Nice = 19;
            Restart = "on-abnormal";
            StartupCPUWeight = 25;
            StartupIOWeight = 25;
            [
              ""
              "${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${lib.escapeShellArgs fs.extraOptions}"
            ];
          SyslogIdentifier = "beesd"; # would otherwise be "bees-service-wrapper"
        };
        unitConfig.RequiresMountsFor = lib.mkIf (lib.hasPrefix "/" fs.spec) fs.spec;