Commit a4177afa authored by Aaron VerDow's avatar Aaron VerDow
Browse files

nixos/x2goserver: add package option

parent 458f0558
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -37,6 +37,15 @@ in
      '';
    };

    package = mkOption {
      type = types.package;
      default = pkgs.x2goserver;
      defaultText = literalExpression "pkgs.x2goserver";
      description = ''
        The x2goserver package to use.
      '';
    };

    superenicer = {
      enable = mkEnableOption "superenicer" // {
        description = ''
@@ -87,7 +96,7 @@ in
      icons.enable = true;
    };

    environment.systemPackages = [ pkgs.x2goserver ];
    environment.systemPackages = [ cfg.package ];

    users.groups.x2go = { };
    users.users.x2go = {
@@ -97,14 +106,14 @@ in
    };

    security.wrappers.x2gosqliteWrapper = {
      source = "${pkgs.x2goserver}/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl";
      source = "${cfg.package}/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl";
      owner = "x2go";
      group = "x2go";
      setuid = false;
      setgid = true;
    };
    security.wrappers.x2goprintWrapper = {
      source = "${pkgs.x2goserver}/bin/x2goprint";
      source = "${cfg.package}/bin/x2goprint";
      owner = "x2go";
      group = "x2go";
      setuid = false;
@@ -123,7 +132,7 @@ in
        # x2goclient sends SSH commands with preset PATH set to
        # "/usr/local/bin;/usr/bin;/bin". Since we cannot filter arbitrary ssh
        # commands, we have to make the following executables available.
        map (f: "L+ /usr/local/bin/${f} - - - - ${x2goserver}/bin/${f}") [
        map (f: "L+ /usr/local/bin/${f} - - - - ${cfg.package}/bin/${f}") [
          "x2goagent"
          "x2gobasepath"
          "x2gocleansessions"
@@ -173,7 +182,7 @@ in
      unitConfig.Documentation = "man:x2goserver.conf(5)";
      serviceConfig = {
        Type = "forking";
        ExecStart = "${pkgs.x2goserver}/bin/x2gocleansessions";
        ExecStart = "${cfg.package}/bin/x2gocleansessions";
        PIDFile = "/run/x2go/x2goserver.pid";
        User = "x2go";
        Group = "x2go";
@@ -184,10 +193,10 @@ in
        if [ ! -e /var/lib/x2go/setup_ran ]
        then
          mkdir -p /var/lib/x2go/conf
          cp -r ${pkgs.x2goserver}/etc/x2go/* /var/lib/x2go/conf/
          cp -r ${cfg.package}/etc/x2go/* /var/lib/x2go/conf/
          ln -sf ${x2goServerConf} /var/lib/x2go/conf/x2goserver.conf
          ln -sf ${x2goAgentOptions} /var/lib/x2go/conf/x2goagent.options
          ${pkgs.x2goserver}/bin/x2godbadmin --createdb
          ${cfg.package}/bin/x2godbadmin --createdb
          touch /var/lib/x2go/setup_ran
        fi
      '';