From 11797ea564bb72f556e0aada82c33bad28702cae Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 24 Aug 2016 17:51:22 +0200 Subject: m 3 rtorrent -> k 3 rtorrent --- krebs/3modules/default.nix | 1 + krebs/3modules/rtorrent.nix | 348 +++++++++++++++++++++++++++++++++++++ krebs/5pkgs/rutorrent/default.nix | 15 ++ makefu/2configs/torrent.nix | 2 +- makefu/3modules/default.nix | 1 - makefu/3modules/rtorrent.nix | 348 ------------------------------------- makefu/5pkgs/default.nix | 1 - makefu/5pkgs/rutorrent/default.nix | 15 -- 8 files changed, 365 insertions(+), 366 deletions(-) create mode 100644 krebs/3modules/rtorrent.nix create mode 100644 krebs/5pkgs/rutorrent/default.nix delete mode 100644 makefu/3modules/rtorrent.nix delete mode 100644 makefu/5pkgs/rutorrent/default.nix diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index 17eae177..a4a5f9ca 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -33,6 +33,7 @@ let ./realwallpaper.nix ./retiolum-bootstrap.nix ./retiolum.nix + ./rtorrent.nix ./secret.nix ./setuid.nix ./tinc_graphs.nix diff --git a/krebs/3modules/rtorrent.nix b/krebs/3modules/rtorrent.nix new file mode 100644 index 00000000..3ab23ec5 --- /dev/null +++ b/krebs/3modules/rtorrent.nix @@ -0,0 +1,348 @@ +{ config, lib, pkgs, ... }: + +with config.krebs.lib; +let + cfg = config.krebs.rtorrent; + webcfg = config.krebs.rtorrent.web; + rucfg = config.krebs.rtorrent.rutorrent; + + nginx-user = config.services.nginx.user; + nginx-group = config.services.nginx.group; + fpm-socket = "/var/run/php5-fpm-rutorrent.sock"; + + webdir = rucfg.webdir; + systemd-logfile = cfg.workDir + "/rtorrent-systemd.log"; + + # rutorrent requires a couple of binaries to be available to either the + # rtorrent process or to phpfpm + + rutorrent-deps = with pkgs; [ curl php coreutils procps ffmpeg mediainfo ] ++ + (if (config.nixpkgs.config.allowUnfree or false) then + trace "enabling unfree packages for rutorrent" [ unrar unzip ] else + trace "not enabling unfree packages for rutorrent because allowUnfree is unset" []); + + configFile = pkgs.writeText "rtorrent-config" '' + # THIS FILE IS AUTOGENERATED + ${optionalString (cfg.listenPort != null) '' + port_range = ${toString cfg.listenPort}-${toString cfg.listenPort} + port_random = no + ''} + + ${optionalString (cfg.watchDir != null) '' + schedule = watch_directory,5,5,load_start=${cfg.watchDir}/*.torrent + ''} + + directory = ${cfg.downloadDir} + session = ${cfg.sessionDir} + + ${optionalString (cfg.enableXMLRPC ) '' + # prepare socket and set permissions. rtorrent user is part of group nginx + # TODO: configure a shared torrent group + execute_nothrow = rm,${cfg.xmlrpc-socket} + scgi_local = ${cfg.xmlrpc-socket} + schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"ug+w,o=\",${cfg.xmlrpc-socket}" + ''} + + system.file_allocate.set = ${if cfg.preAllocate then "yes" else "no"} + + # Prepare systemd logging + log.open_file = "rtorrent-systemd", ${systemd-logfile} + log.add_output = "warn", "rtorrent-systemd" + log.add_output = "notice", "rtorrent-systemd" + log.add_output = "info", "rtorrent-systemd" + # log.add_output = "debug", "rtorrent-systemd" + ${cfg.extraConfig} + ''; + + out = { + options.krebs.rtorrent = api; + # This only works because none of the attrsets returns the same key + config = with lib; mkIf cfg.enable (lib.mkMerge [ + (lib.mkIf webcfg.enable rpcweb-imp) + # only build rutorrent-imp if webcfg is enabled as well + (lib.mkIf (webcfg.enable && rucfg.enable) rutorrent-imp) + imp + ]); + }; + + api = { + enable = mkEnableOption "rtorrent"; + + web = { + # configure NGINX to provide /RPC2 for listen address + # authentication also applies to rtorrent.rutorrent + enable = mkEnableOption "rtorrent nginx web RPC"; + + listenAddress = mkOption { + type = types.str; + description ='' + nginx listen address for rtorrent web + ''; + default = "localhost:8006"; + }; + + enableAuth = mkEnableOption "rutorrent authentication"; + authfile = mkOption { + type = types.path; + description = '' + basic authentication file to be used. + Use `${pkgs.apacheHttpd}/bin/htpasswd -c ` to create the file. + Only in use if authentication is enabled. + ''; + }; + }; + + rutorrent = { + enable = mkEnableOption "rutorrent"; # requires rtorrent.web.enable + + package = mkOption { + type = types.package; + description = '' + path to rutorrent package. When using your own ruTorrent package, + scgi_port and scgi_host will be patched on startup. + ''; + default = pkgs.rutorrent; + }; + + + webdir = mkOption { + type = types.path; + description = '' + rutorrent php files will be written to this folder. + when using nginx, be aware that the the folder should be readable by nginx. + because rutorrent does not hold mutable data in a separate folder + these files must be writable. + ''; + default = "/var/lib/rutorrent"; + }; + + }; + + package = mkOption { + type = types.package; + default = pkgs.rtorrent; + }; + + # TODO: enable xmlrpc with web.enable + enableXMLRPC = mkEnableOption "rtorrent xmlrpc via socket"; + xmlrpc-socket = mkOption { + type = types.str; + description = '' + enable xmlrpc at given socket. Required for web-interface. + + for documentation see: + https://github.com/rakshasa/rtorrent/wiki/RPC-Setup-XMLRPC + ''; + default = cfg.workDir + "/rtorrent.sock"; + }; + + preAllocate = mkOption { + type = types.bool; + description = '' + Pre-Allocate torrent files + ''; + default = true; + }; + + downloadDir = mkOption { + type = types.path; + description = '' + directory where torrents are stored + ''; + default = cfg.workDir + "/downloads"; + }; + + sessionDir = mkOption { + type = types.path; + description = '' + directory where torrent progress is stored + ''; + default = cfg.workDir + "/rtorrent-session"; + }; + + watchDir = mkOption { + type = with types; nullOr str; + description = '' + directory to watch for torrent files. + If unset, no watch directory will be configured + ''; + default = null; + }; + + listenPort = mkOption { + type = with types; nullOr int; + description ='' + listening port. if you want multiple ports, use extraConfig port_range + ''; + }; + + extraConfig = mkOption { + type = types.string; + description = '' + config to be placed into ${cfg.workDir}/.rtorrent.rc + + see ${cfg.package}/share/doc/rtorrent/rtorrent.rc + ''; + example = literalExample '' + log.execute = ${cfg.workDir}/execute.log + log.xmlrpc = ${cfg.workDir}/xmlrpc.log + ''; + default = ""; + }; + + user = mkOption { + description = '' + user which will run rtorrent. if kept default a new user will be created + ''; + type = types.str; + default = "rtorrent"; + }; + + workDir = mkOption { + description = '' + working directory. rtorrent will search in HOME for `.rtorrent.rc` + ''; + type = types.str; + default = "/var/lib/rtorrent"; + }; + + }; + + imp = { + systemd.services = { + rtorrent-daemon = { + description = "rtorrent headless"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + restartIfChanged = true; + serviceConfig = { + Type = "forking"; + ExecStartPre = pkgs.writeDash "prepare-folder" '' + mkdir -p ${cfg.workDir} ${cfg.sessionDir} + chmod 770 ${cfg.workDir} ${cfg.sessionDir} + touch ${systemd-logfile} + cp -f ${configFile} ${cfg.workDir}/.rtorrent.rc + ''; + ExecStart = "${pkgs.tmux.bin}/bin/tmux new-session -s rt -n rtorrent -d 'PATH=/bin:/usr/bin:${makeBinPath rutorrent-deps} ${cfg.package}/bin/rtorrent'"; + + ## you can simply sudo -u rtorrent tmux a if privateTmp is set to false + ## otherwise the tmux session is stored in some private folder in /tmp + PrivateTmp = false; + + WorkingDirectory = cfg.workDir; + Restart = "on-failure"; + User = "${cfg.user}"; + }; + }; + rtorrent-log = { + after = [ "rtorrent-daemon.service" ]; + bindsTo = [ "rtorrent-daemon.service" ]; + wantedBy = [ "rtorrent-daemon.service" ]; + serviceConfig = { + ExecStart = "${pkgs.coreutils}/bin/tail -f ${systemd-logfile}"; + User = "${cfg.user}"; + }; + }; + } // (optionalAttrs webcfg.enable { + rutorrent-prepare = { + after = [ "rtorrent-daemon.service" ]; + wantedBy = [ "rtorrent-daemon.service" ]; + serviceConfig = { + Type = "oneshot"; + # we create the folder and set the permissions to allow nginx + # TODO: update files if the version of rutorrent changed + ExecStart = pkgs.writeDash "create-webconfig-dir" '' + if [ ! -e ${webdir} ];then + echo "creating webconfiguration directory for rutorrent: ${webdir}" + cp -vr ${rucfg.package} ${webdir} + echo "setting permissions for webdir to ${cfg.user}:${nginx-group}" + chown -R ${cfg.user}:${nginx-group} ${webdir} + chmod -R 770 ${webdir} + else + echo "not overwriting ${webdir}" + + fi + echo "updating xmlrpc-socket with unix://${cfg.xmlrpc-socket}" + sed -i -e 's#^\s*$scgi_port.*#$scgi_port = 0;#' \ + -e 's#^\s*$scgi_host.*#$scgi_host = "unix://${cfg.xmlrpc-socket}";#' \ + "${webdir}/conf/config.php" + ''; + }; + }; + }) + // (optionalAttrs rucfg.enable { }); + + users = lib.mkIf (cfg.user == "rtorrent") { + users.rtorrent = { + uid = genid "rtorrent"; + home = cfg.workDir; + group = nginx-group; # required for rutorrent to work + shell = "/bin/sh"; #required for tmux + isSystemUser = true; + createHome = true; + }; + groups.rtorrent.gid = genid "rtorrent"; + }; + }; + + rpcweb-imp = { + krebs.nginx.enable = mkDefault true; + krebs.nginx.servers.rtorrent = { + listen = [ webcfg.listenAddress ]; + server-names = [ "default" ]; + extraConfig = '' + ${optionalString webcfg.enableAuth '' + auth_basic "rtorrent"; + auth_basic_user_file ${webcfg.authfile}; + ''} + ${optionalString rucfg.enable '' + root ${webdir}; + ''} + ''; + locations = [ + (nameValuePair "/RPC2" '' + include ${pkgs.nginx}/conf/scgi_params; + scgi_param SCRIPT_NAME /RPC2; + scgi_pass unix:${cfg.xmlrpc-socket}; + '') + ] ++ (optional rucfg.enable + (nameValuePair "~ \.php$" '' + client_max_body_size 200M; + root ${webdir}; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:${fpm-socket}; + try_files $uri =404; + fastcgi_index index.php; + include ${pkgs.nginx}/conf/fastcgi_params; + include ${pkgs.nginx}/conf/fastcgi.conf; + '') + ); + }; + }; + + rutorrent-imp = { + services.phpfpm = { + # phpfpm does not have an enable option + poolConfigs = { + rutorrent = '' + user = ${nginx-user} + group = ${nginx-group} + listen = ${fpm-socket} + listen.owner = ${nginx-user} + listen.group = ${nginx-group} + pm = dynamic + pm.max_children = 5 + pm.start_servers = 2 + pm.min_spare_servers = 1 + pm.max_spare_servers = 3 + chdir = / + # errors to journal + php_admin_value[error_log] = 'stderr' + php_admin_flag[log_errors] = on + catch_workers_output = yes + env[PATH] = ${makeBinPath rutorrent-deps} + ''; + }; + }; + }; +in out diff --git a/krebs/5pkgs/rutorrent/default.nix b/krebs/5pkgs/rutorrent/default.nix new file mode 100644 index 00000000..5a225955 --- /dev/null +++ b/krebs/5pkgs/rutorrent/default.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: +pkgs.stdenv.mkDerivation { + name = "rutorrent-src-3.7"; + src = pkgs.fetchFromGitHub { + owner = "Novik"; + repo = "rutorrent"; + rev = "b727523a153454d4976f04b0c47336ae57cc50d5"; + sha256 = "0s5wa0jnck781amln9c2p4pc0i5mq3j5693ra151lnwhz63aii4a"; + }; + + phases = [ "installPhase" ]; + installPhase = '' + cp -r $src $out + ''; +} diff --git a/makefu/2configs/torrent.nix b/makefu/2configs/torrent.nix index 1c9b054d..28f21b65 100644 --- a/makefu/2configs/torrent.nix +++ b/makefu/2configs/torrent.nix @@ -49,7 +49,7 @@ in { }; }; - makefu.rtorrent = { + krebs.rtorrent = { enable = true; web = { enable = true; diff --git a/makefu/3modules/default.nix b/makefu/3modules/default.nix index bddd96aa..855e134a 100644 --- a/makefu/3modules/default.nix +++ b/makefu/3modules/default.nix @@ -8,7 +8,6 @@ _: ./forward-journal.nix ./opentracker.nix ./ps3netsrv.nix - ./rtorrent.nix ./snapraid.nix ./taskserver.nix ./udpt.nix diff --git a/makefu/3modules/rtorrent.nix b/makefu/3modules/rtorrent.nix deleted file mode 100644 index d6e22a08..00000000 --- a/makefu/3modules/rtorrent.nix +++ /dev/null @@ -1,348 +0,0 @@ -{ config, lib, pkgs, ... }: - -with config.krebs.lib; -let - cfg = config.makefu.rtorrent; - webcfg = config.makefu.rtorrent.web; - rucfg = config.makefu.rtorrent.rutorrent; - - nginx-user = config.services.nginx.user; - nginx-group = config.services.nginx.group; - fpm-socket = "/var/run/php5-fpm-rutorrent.sock"; - - webdir = rucfg.webdir; - systemd-logfile = cfg.workDir + "/rtorrent-systemd.log"; - - # rutorrent requires a couple of binaries to be available to either the - # rtorrent process or to phpfpm - - rutorrent-deps = with pkgs; [ curl php coreutils procps ffmpeg mediainfo ] ++ - (if (config.nixpkgs.config.allowUnfree or false) then - trace "enabling unfree packages for rutorrent" [ unrar unzip ] else - trace "not enabling unfree packages for rutorrent because allowUnfree is unset" []); - - configFile = pkgs.writeText "rtorrent-config" '' - # THIS FILE IS AUTOGENERATED - ${optionalString (cfg.listenPort != null) '' - port_range = ${toString cfg.listenPort}-${toString cfg.listenPort} - port_random = no - ''} - - ${optionalString (cfg.watchDir != null) '' - schedule = watch_directory,5,5,load_start=${cfg.watchDir}/*.torrent - ''} - - directory = ${cfg.downloadDir} - session = ${cfg.sessionDir} - - ${optionalString (cfg.enableXMLRPC ) '' - # prepare socket and set permissions. rtorrent user is part of group nginx - # TODO: configure a shared torrent group - execute_nothrow = rm,${cfg.xmlrpc-socket} - scgi_local = ${cfg.xmlrpc-socket} - schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"ug+w,o=\",${cfg.xmlrpc-socket}" - ''} - - system.file_allocate.set = ${if cfg.preAllocate then "yes" else "no"} - - # Prepare systemd logging - log.open_file = "rtorrent-systemd", ${systemd-logfile} - log.add_output = "warn", "rtorrent-systemd" - log.add_output = "notice", "rtorrent-systemd" - log.add_output = "info", "rtorrent-systemd" - # log.add_output = "debug", "rtorrent-systemd" - ${cfg.extraConfig} - ''; - - out = { - options.makefu.rtorrent = api; - # This only works because none of the attrsets returns the same key - config = with lib; mkIf cfg.enable (lib.mkMerge [ - (lib.mkIf webcfg.enable rpcweb-imp) - # only build rutorrent-imp if webcfg is enabled as well - (lib.mkIf (webcfg.enable && rucfg.enable) rutorrent-imp) - imp - ]); - }; - - api = { - enable = mkEnableOption "rtorrent"; - - web = { - # configure NGINX to provide /RPC2 for listen address - # authentication also applies to rtorrent.rutorrent - enable = mkEnableOption "rtorrent nginx web RPC"; - - listenAddress = mkOption { - type = types.str; - description ='' - nginx listen address for rtorrent web - ''; - default = "localhost:8006"; - }; - - enableAuth = mkEnableOption "rutorrent authentication"; - authfile = mkOption { - type = types.path; - description = '' - basic authentication file to be used. - Use `${pkgs.apacheHttpd}/bin/htpasswd -c ` to create the file. - Only in use if authentication is enabled. - ''; - }; - }; - - rutorrent = { - enable = mkEnableOption "rutorrent"; # requires rtorrent.web.enable - - package = mkOption { - type = types.package; - description = '' - path to rutorrent package. When using your own ruTorrent package, - scgi_port and scgi_host will be patched on startup. - ''; - default = pkgs.rutorrent; - }; - - - webdir = mkOption { - type = types.path; - description = '' - rutorrent php files will be written to this folder. - when using nginx, be aware that the the folder should be readable by nginx. - because rutorrent does not hold mutable data in a separate folder - these files must be writable. - ''; - default = "/var/lib/rutorrent"; - }; - - }; - - package = mkOption { - type = types.package; - default = pkgs.rtorrent; - }; - - # TODO: enable xmlrpc with web.enable - enableXMLRPC = mkEnableOption "rtorrent xmlrpc via socket"; - xmlrpc-socket = mkOption { - type = types.str; - description = '' - enable xmlrpc at given socket. Required for web-interface. - - for documentation see: - https://github.com/rakshasa/rtorrent/wiki/RPC-Setup-XMLRPC - ''; - default = cfg.workDir + "/rtorrent.sock"; - }; - - preAllocate = mkOption { - type = types.bool; - description = '' - Pre-Allocate torrent files - ''; - default = true; - }; - - downloadDir = mkOption { - type = types.path; - description = '' - directory where torrents are stored - ''; - default = cfg.workDir + "/downloads"; - }; - - sessionDir = mkOption { - type = types.path; - description = '' - directory where torrent progress is stored - ''; - default = cfg.workDir + "/rtorrent-session"; - }; - - watchDir = mkOption { - type = with types; nullOr str; - description = '' - directory to watch for torrent files. - If unset, no watch directory will be configured - ''; - default = null; - }; - - listenPort = mkOption { - type = with types; nullOr int; - description ='' - listening port. if you want multiple ports, use extraConfig port_range - ''; - }; - - extraConfig = mkOption { - type = types.string; - description = '' - config to be placed into ${cfg.workDir}/.rtorrent.rc - - see ${cfg.package}/share/doc/rtorrent/rtorrent.rc - ''; - example = literalExample '' - log.execute = ${config.makefu.rtorrent.workDir}/execute.log - log.xmlrpc = ${config.makefu.rtorrent.workDir}/xmlrpc.log - ''; - default = ""; - }; - - user = mkOption { - description = '' - user which will run rtorrent. if kept default a new user will be created - ''; - type = types.str; - default = "rtorrent"; - }; - - workDir = mkOption { - description = '' - working directory. rtorrent will search in HOME for `.rtorrent.rc` - ''; - type = types.str; - default = "/var/lib/rtorrent"; - }; - - }; - - imp = { - systemd.services = { - rtorrent-daemon = { - description = "rtorrent headless"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - restartIfChanged = true; - serviceConfig = { - Type = "forking"; - ExecStartPre = pkgs.writeDash "prepare-folder" '' - mkdir -p ${cfg.workDir} ${cfg.sessionDir} - chmod 770 ${cfg.workDir} ${cfg.sessionDir} - touch ${systemd-logfile} - cp -f ${configFile} ${cfg.workDir}/.rtorrent.rc - ''; - ExecStart = "${pkgs.tmux.bin}/bin/tmux new-session -s rt -n rtorrent -d 'PATH=/bin:/usr/bin:${makeBinPath rutorrent-deps} ${cfg.package}/bin/rtorrent'"; - - ## you can simply sudo -u rtorrent tmux a if privateTmp is set to false - ## otherwise the tmux session is stored in some private folder in /tmp - PrivateTmp = false; - - WorkingDirectory = cfg.workDir; - Restart = "on-failure"; - User = "${cfg.user}"; - }; - }; - rtorrent-log = { - after = [ "rtorrent-daemon.service" ]; - bindsTo = [ "rtorrent-daemon.service" ]; - wantedBy = [ "rtorrent-daemon.service" ]; - serviceConfig = { - ExecStart = "${pkgs.coreutils}/bin/tail -f ${systemd-logfile}"; - User = "${cfg.user}"; - }; - }; - } // (optionalAttrs webcfg.enable { - rutorrent-prepare = { - after = [ "rtorrent-daemon.service" ]; - wantedBy = [ "rtorrent-daemon.service" ]; - serviceConfig = { - Type = "oneshot"; - # we create the folder and set the permissions to allow nginx - # TODO: update files if the version of rutorrent changed - ExecStart = pkgs.writeDash "create-webconfig-dir" '' - if [ ! -e ${webdir} ];then - echo "creating webconfiguration directory for rutorrent: ${webdir}" - cp -vr ${rucfg.package} ${webdir} - echo "setting permissions for webdir to ${cfg.user}:${nginx-group}" - chown -R ${cfg.user}:${nginx-group} ${webdir} - chmod -R 770 ${webdir} - else - echo "not overwriting ${webdir}" - - fi - echo "updating xmlrpc-socket with unix://${cfg.xmlrpc-socket}" - sed -i -e 's#^\s*$scgi_port.*#$scgi_port = 0;#' \ - -e 's#^\s*$scgi_host.*#$scgi_host = "unix://${cfg.xmlrpc-socket}";#' \ - "${webdir}/conf/config.php" - ''; - }; - }; - }) - // (optionalAttrs rucfg.enable { }); - - users = lib.mkIf (cfg.user == "rtorrent") { - users.rtorrent = { - uid = genid "rtorrent"; - home = cfg.workDir; - group = nginx-group; # required for rutorrent to work - shell = "/bin/sh"; #required for tmux - isSystemUser = true; - createHome = true; - }; - groups.rtorrent.gid = genid "rtorrent"; - }; - }; - - rpcweb-imp = { - krebs.nginx.enable = mkDefault true; - krebs.nginx.servers.rtorrent = { - listen = [ webcfg.listenAddress ]; - server-names = [ "default" ]; - extraConfig = '' - ${optionalString webcfg.enableAuth '' - auth_basic "rtorrent"; - auth_basic_user_file ${webcfg.authfile}; - ''} - ${optionalString rucfg.enable '' - root ${webdir}; - ''} - ''; - locations = [ - (nameValuePair "/RPC2" '' - include ${pkgs.nginx}/conf/scgi_params; - scgi_param SCRIPT_NAME /RPC2; - scgi_pass unix:${cfg.xmlrpc-socket}; - '') - ] ++ (optional rucfg.enable - (nameValuePair "~ \.php$" '' - client_max_body_size 200M; - root ${webdir}; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:${fpm-socket}; - try_files $uri =404; - fastcgi_index index.php; - include ${pkgs.nginx}/conf/fastcgi_params; - include ${pkgs.nginx}/conf/fastcgi.conf; - '') - ); - }; - }; - - rutorrent-imp = { - services.phpfpm = { - # phpfpm does not have an enable option - poolConfigs = { - rutorrent = '' - user = ${nginx-user} - group = ${nginx-group} - listen = ${fpm-socket} - listen.owner = ${nginx-user} - listen.group = ${nginx-group} - pm = dynamic - pm.max_children = 5 - pm.start_servers = 2 - pm.min_spare_servers = 1 - pm.max_spare_servers = 3 - chdir = / - # errors to journal - php_admin_value[error_log] = 'stderr' - php_admin_flag[log_errors] = on - catch_workers_output = yes - env[PATH] = ${makeBinPath rutorrent-deps} - ''; - }; - }; - }; -in out diff --git a/makefu/5pkgs/default.nix b/makefu/5pkgs/default.nix index eaa916f9..51987c35 100644 --- a/makefu/5pkgs/default.nix +++ b/makefu/5pkgs/default.nix @@ -18,7 +18,6 @@ in mycube-flask = callPackage ./mycube-flask {}; nodemcu-uploader = callPackage ./nodemcu-uploader {}; ps3netsrv = callPackage ./ps3netsrv {}; - rutorrent = callPackage ./rutorrent {}; tw-upload-plugin = callPackage ./tw-upload-plugin {}; skytraq-logger = callPackage ./skytraq-logger {}; taskserver = callPackage ./taskserver {}; diff --git a/makefu/5pkgs/rutorrent/default.nix b/makefu/5pkgs/rutorrent/default.nix deleted file mode 100644 index 5a225955..00000000 --- a/makefu/5pkgs/rutorrent/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -pkgs.stdenv.mkDerivation { - name = "rutorrent-src-3.7"; - src = pkgs.fetchFromGitHub { - owner = "Novik"; - repo = "rutorrent"; - rev = "b727523a153454d4976f04b0c47336ae57cc50d5"; - sha256 = "0s5wa0jnck781amln9c2p4pc0i5mq3j5693ra151lnwhz63aii4a"; - }; - - phases = [ "installPhase" ]; - installPhase = '' - cp -r $src $out - ''; -} -- cgit v1.2.3