nzbget: 16.4 -> 17.0-r1686 and nzbget service

+94 -5
+2
nixos/modules/misc/ids.nix
··· 266 266 emby = 242; 267 267 graylog = 243; 268 268 sniproxy = 244; 269 + nzbget = 245; 269 270 270 271 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! 271 272 ··· 502 503 factorio = 241; 503 504 emby = 242; 504 505 sniproxy = 244; 506 + nzbget = 245; 505 507 506 508 # When adding a gid, make sure it doesn't match an existing 507 509 # uid. Users and groups with the same name should have equal
+1
nixos/modules/module-list.nix
··· 239 239 ./services/misc/nix-gc.nix 240 240 ./services/misc/nixos-manual.nix 241 241 ./services/misc/nix-ssh-serve.nix 242 + ./services/misc/nzbget.nix 242 243 ./services/misc/octoprint.nix 243 244 ./services/misc/parsoid.nix 244 245 ./services/misc/phd.nix
+85
nixos/modules/services/misc/nzbget.nix
··· 1 + { config, pkgs, lib, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.nzbget; 7 + nzbget = pkgs.nzbget; 8 + in 9 + { 10 + options = { 11 + services.nzbget = { 12 + enable = mkEnableOption "NZBGet"; 13 + 14 + package = mkOption { 15 + type = types.package; 16 + default = pkgs.nzbget; 17 + defaultText = "pkgs.nzbget"; 18 + description = "The NZBGet package to use"; 19 + }; 20 + 21 + user = mkOption { 22 + type = types.str; 23 + default = "nzbget"; 24 + description = "User account under which NZBGet runs"; 25 + }; 26 + 27 + group = mkOption { 28 + type = types.str; 29 + default = "nzbget"; 30 + description = "Group under which NZBGet runs"; 31 + }; 32 + }; 33 + }; 34 + 35 + config = mkIf cfg.enable { 36 + systemd.services.nzbget = { 37 + description = "NZBGet Daemon"; 38 + after = [ "network.target" ]; 39 + wantedBy = [ "multi-user.target" ]; 40 + path = with pkgs; [ 41 + unrar 42 + p7zip 43 + ]; 44 + preStart = '' 45 + test -d /var/lib/nzbget || { 46 + echo "Creating nzbget state directoy in /var/lib/" 47 + mkdir -p /var/lib/nzbget 48 + } 49 + test -f /var/lib/nzbget/nzbget.conf || { 50 + echo "nzbget.conf not found. Copying default config to /var/lib/nzbget/nzbget.conf" 51 + cp ${cfg.package}/share/nzbget/nzbget.conf /var/lib/nzbget/nzbget.conf 52 + echo "Setting file mode of nzbget.conf to 0700 (needs to be written and contains plaintext credentials)" 53 + chmod 0700 /var/lib/nzbget/nzbget.conf 54 + echo "Setting temporary \$MAINDIR variable in default config required in order to allow nzbget to complete initial start" 55 + echo "Remember to change this to a proper value once NZBGet startup has been completed" 56 + sed -i -e 's/MainDir=.*/MainDir=\/tmp/g' /var/lib/nzbget/nzbget.conf 57 + } 58 + echo "Ensuring proper ownership of /var/lib/nzbget (${cfg.user}:${cfg.group})." 59 + chown -R ${cfg.user}:${cfg.group} /var/lib/nzbget 60 + ''; 61 + 62 + serviceConfig = { 63 + Type = "forking"; 64 + User = cfg.user; 65 + Group = cfg.group; 66 + PermissionsStartOnly = "true"; 67 + ExecStart = "${cfg.package}/bin/nzbget --daemon --configfile /var/lib/nzbget/nzbget.conf"; 68 + Restart = "on-failure"; 69 + }; 70 + }; 71 + 72 + users.extraUsers = mkIf (cfg.user == "nzbget") { 73 + nzbget = { 74 + group = cfg.group; 75 + uid = config.ids.uids.nzbget; 76 + }; 77 + }; 78 + 79 + users.extraGroups = mkIf (cfg.group == "nzbget") { 80 + nzbget = { 81 + gid = config.ids.gids.nzbget; 82 + }; 83 + }; 84 + }; 85 + }
+6 -5
pkgs/tools/networking/nzbget/default.nix
··· 1 1 { stdenv, fetchurl, pkgconfig, libxml2, ncurses, libsigcxx, libpar2 2 - , gnutls, libgcrypt, zlib }: 2 + , gnutls, libgcrypt, zlib, openssl }: 3 3 4 4 stdenv.mkDerivation rec { 5 5 name = "nzbget-${version}"; 6 - version = "16.4"; 6 + version = "17.0-r1686"; 7 + filename = "nzbget-17.0-testing-r1686"; 7 8 8 9 src = fetchurl { 9 - url = "http://github.com/nzbget/nzbget/releases/download/v${version}/${name}-src.tar.gz"; 10 - sha256 = "03sdzxxsjpxp82jpk593xls96yk29989z05j73jah21dbpkkx7lf"; 10 + url = "http://github.com/nzbget/nzbget/releases/download/v${version}/${filename}-src.tar.gz"; 11 + sha256 = "0hk0hiccdk3bivdnc2635kqqdwgwf73wvis1wl9k0snds25dwfiw"; 11 12 }; 12 13 13 14 buildInputs = [ pkgconfig libxml2 ncurses libsigcxx libpar2 gnutls 14 - libgcrypt zlib ]; 15 + libgcrypt zlib openssl ]; 15 16 16 17 enableParallelBuilding = true; 17 18