anchor.diff:        wantedBy = [ "sockets.target" ];
         # We also include "%t/ipfs.sock" because there is no way to put the "%t"
         # in the multiaddr.
  -      socketConfig.ListenStream = let
  +      socketConfig.ListenStream =
  +        let
             fromCfg = multiaddrToListenStream cfg.apiAddress;
  -        in [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
  +        in
  +        [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
       };
   
     };
  
positive.code:         ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
          ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
        '' + concatStringsSep "\n" (collect
              isString
              (mapAttrsRecursive
                (path: value:
                # Using heredoc below so that the value is never improperly quoted
                ''
                  read value <<EOF
                  ${builtins.toJSON value}
                  EOF
                  ipfs --offline config --json "${concatStringsSep "." path}" "$value"
                '')
                ({ Addresses.API = cfg.apiAddress;
                   Addresses.Gateway = cfg.gatewayAddress;
                   Addresses.Swarm = cfg.swarmAddress;
                } //
                cfg.extraConfig))
            );
        serviceConfig = {
          ExecStart = ["" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}"];
          User = cfg.user;
          Group = cfg.group;
        } // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
  
negative.code:         type = types.nullOr types.int;
          default = null;
          description = "The fdlimit for the IPFS systemd unit or <literal>null</literal> to have the daemon attempt to manage it";
          example = 64 * 1024;
        };
  
        startWhenNeeded = mkOption {
  