From a89e7a5c75204c5d1ad825f25430830f718a0411 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 16 May 2017 22:03:42 +0200 Subject: krebs.tinc: expose confDir --- krebs/3modules/retiolum.nix | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/krebs/3modules/retiolum.nix b/krebs/3modules/retiolum.nix index 0a3d7ed2f..67d383bb1 100644 --- a/krebs/3modules/retiolum.nix +++ b/krebs/3modules/retiolum.nix @@ -18,6 +18,26 @@ let enable = mkEnableOption "krebs.tinc.${netname}" // { default = true; }; + confDir = mkOption { + type = types.package; + default = pkgs.linkFarm "${netname}-etc-tinc" + (mapAttrsToList (name: path: { inherit name path; }) { + "hosts" = tinc.config.hostsPackage; + "tinc.conf" = pkgs.writeText "${netname}-tinc.conf" '' + Name = ${tinc.config.host.name} + Interface = ${netname} + ${concatMapStrings (c: "ConnectTo = ${c}\n") tinc.config.connectTo} + PrivateKeyFile = ${tinc.config.privkey.path} + Port = ${toString tinc.config.host.nets.${netname}.tinc.port} + ${tinc.config.extraConfig} + ''; + "tinc-up" = pkgs.writeDash "${netname}-tinc-up" '' + ${tinc.config.iproutePackage}/sbin/ip link set ${netname} up + ${tinc.config.tincUp} + ''; + }); + }; + host = mkOption { type = types.host; default = config.krebs.build.host; @@ -179,25 +199,6 @@ let let tinc = cfg.tincPackage; iproute = cfg.iproutePackage; - - confDir = let - namePathPair = name: path: { inherit name path; }; - in pkgs.linkFarm "${netname}-etc-tinc" (mapAttrsToList namePathPair { - "hosts" = cfg.hostsPackage; - "tinc.conf" = pkgs.writeText "${cfg.netname}-tinc.conf" '' - Name = ${cfg.host.name} - Interface = ${netname} - ${concatStrings (map (c: "ConnectTo = ${c}\n") cfg.connectTo)} - PrivateKeyFile = ${cfg.privkey.path} - Port = ${toString cfg.host.nets.${cfg.netname}.tinc.port} - ${cfg.extraConfig} - ''; - "tinc-up" = pkgs.writeDash "${netname}-tinc-up" '' - ${iproute}/sbin/ip link set ${netname} up - ${cfg.tincUp} - ''; - } - ); in { description = "Tinc daemon for ${netname}"; after = [ "network.target" ]; @@ -206,7 +207,7 @@ let path = [ tinc iproute ]; serviceConfig = rec { Restart = "always"; - ExecStart = "${tinc}/sbin/tincd -c ${confDir} -d 0 -U ${cfg.user.name} -D --pidfile=/var/run/tinc.${SyslogIdentifier}.pid"; + ExecStart = "${tinc}/sbin/tincd -c ${cfg.confDir} -d 0 -U ${cfg.user.name} -D --pidfile=/var/run/tinc.${SyslogIdentifier}.pid"; SyslogIdentifier = netname; }; } -- cgit v1.2.3 From fe639f585e9054096c2cee6e1a3cef9f22a37c78 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 16 May 2017 22:06:31 +0200 Subject: k3: retiolum.nix -> tinc.nix --- krebs/3modules/default.nix | 2 +- krebs/3modules/retiolum.nix | 216 -------------------------------------------- krebs/3modules/tinc.nix | 216 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+), 217 deletions(-) delete mode 100644 krebs/3modules/retiolum.nix create mode 100644 krebs/3modules/tinc.nix diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index daa963bc8..227eb209b 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -34,10 +34,10 @@ let ./Reaktor.nix ./realwallpaper.nix ./retiolum-bootstrap.nix - ./retiolum.nix ./rtorrent.nix ./secret.nix ./setuid.nix + ./tinc.nix ./tinc_graphs.nix ./urlwatch.nix ./repo-sync.nix diff --git a/krebs/3modules/retiolum.nix b/krebs/3modules/retiolum.nix deleted file mode 100644 index 67d383bb1..000000000 --- a/krebs/3modules/retiolum.nix +++ /dev/null @@ -1,216 +0,0 @@ -{ config, pkgs, lib, ... }: -with import ; -let - out = { - options.krebs.tinc = api; - config = imp; - }; - - api = mkOption { - default = {}; - description = '' - define a tinc network - ''; - type = with types; attrsOf (submodule (tinc: { - options = let - netname = tinc.config._module.args.name; - in { - - enable = mkEnableOption "krebs.tinc.${netname}" // { default = true; }; - - confDir = mkOption { - type = types.package; - default = pkgs.linkFarm "${netname}-etc-tinc" - (mapAttrsToList (name: path: { inherit name path; }) { - "hosts" = tinc.config.hostsPackage; - "tinc.conf" = pkgs.writeText "${netname}-tinc.conf" '' - Name = ${tinc.config.host.name} - Interface = ${netname} - ${concatMapStrings (c: "ConnectTo = ${c}\n") tinc.config.connectTo} - PrivateKeyFile = ${tinc.config.privkey.path} - Port = ${toString tinc.config.host.nets.${netname}.tinc.port} - ${tinc.config.extraConfig} - ''; - "tinc-up" = pkgs.writeDash "${netname}-tinc-up" '' - ${tinc.config.iproutePackage}/sbin/ip link set ${netname} up - ${tinc.config.tincUp} - ''; - }); - }; - - host = mkOption { - type = types.host; - default = config.krebs.build.host; - }; - - netname = mkOption { - type = types.enum (attrNames tinc.config.host.nets); - default = netname; - description = '' - The tinc network name. - It is used to name the TUN device and to generate the default value for - config.krebs.tinc.retiolum.hosts. - ''; - }; - - extraConfig = mkOption { - type = types.str; - default = ""; - description = '' - Extra Configuration to be appended to tinc.conf - ''; - }; - tincUp = mkOption { - type = types.string; - default = let - net = tinc.config.host.nets.${netname}; - iproute = tinc.config.iproutePackage; - in '' - ${optionalString (net.ip4 != null) /* sh */ '' - ${iproute}/sbin/ip -4 addr add ${net.ip4.addr} dev ${netname} - ${iproute}/sbin/ip -4 route add ${net.ip4.prefix} dev ${netname} - ''} - ${optionalString (net.ip6 != null) /* sh */ '' - ${iproute}/sbin/ip -6 addr add ${net.ip6.addr} dev ${netname} - ${iproute}/sbin/ip -6 route add ${net.ip6.prefix} dev ${netname} - ''} - ''; - description = '' - tinc-up script to be used. Defaults to setting the - krebs.host.nets..ip4 and ip6 for the new ips and - configures forwarding of the respecitive netmask as subnet. - ''; - }; - - tincPackage = mkOption { - type = types.package; - default = pkgs.tinc; - description = "Tincd package to use."; - }; - - hosts = mkOption { - type = with types; attrsOf host; - default = - filterAttrs (_: h: hasAttr tinc.config.netname h.nets) config.krebs.hosts; - description = '' - Hosts to generate config.krebs.tinc.retiolum.hostsPackage. - Note that these hosts must have a network named - config.krebs.tinc.retiolum.netname. - ''; - }; - - hostsArchive = mkOption { - type = types.package; - default = pkgs.runCommand "retiolum-hosts.tar.bz2" {} '' - ${pkgs.coreutils}/bin/ln -s ${tinc.config.hostsPackage} hosts - ${pkgs.gnutar}/bin/tar -hcjf $out hosts - ''; - readOnly = true; - }; - - hostsPackage = mkOption { - type = types.package; - default = pkgs.stdenv.mkDerivation { - name = "${tinc.config.netname}-tinc-hosts"; - phases = [ "installPhase" ]; - installPhase = '' - mkdir $out - ${concatStrings (lib.mapAttrsToList (_: host: '' - echo ${shell.escape host.nets."${tinc.config.netname}".tinc.config} \ - > $out/${shell.escape host.name} - '') tinc.config.hosts)} - ''; - }; - description = '' - Package of tinc host configuration files. By default, a package will - be generated from config.krebs.${tinc.config.netname}.hosts. This - option's main purpose is to expose the generated hosts package to other - modules, like config.krebs.tinc_graphs. But it can - also be used to provide a custom hosts directory. - ''; - example = literalExample '' - (pkgs.stdenv.mkDerivation { - name = "my-tinc-hosts"; - src = /home/tv/my-tinc-hosts; - installPhase = "cp -R . $out"; - }) - ''; - }; - - iproutePackage = mkOption { - type = types.package; - default = pkgs.iproute; - description = "Iproute2 package to use."; - }; - - privkey = mkOption { - type = types.secret-file; - default = { - path = "${tinc.config.user.home}/tinc.rsa_key.priv"; - owner = tinc.config.user; - source-path = toString + "/${tinc.config.netname}.rsa_key.priv"; - }; - }; - - connectTo = mkOption { - type = types.listOf types.str; - ${if tinc.config.netname == "retiolum" then "default" else null} = [ - "gum" - "ni" - "prism" - ]; - description = '' - The list of hosts in the network which the client will try to connect - to. These hosts should have an 'Address' configured which points to a - routeable IPv4 or IPv6 address. - - In stockholm this can be done by configuring: - krebs.hosts.${connect-host}.nets.${netname?"retiolum"}.via.ip4.addr = external-ip - krebs.hosts.${connect-host}.nets.${netname?"retiolum"}.tinc.port = 1655; - ''; - }; - - user = mkOption { - type = types.user; - default = { - name = tinc.config.netname; - home = "/var/lib/${tinc.config.user.name}"; - }; - }; - }; - })); - }; - - imp = { - # TODO `environment.systemPackages = [ cfg.tincPackage cfg.iproutePackage ]` for each network, - # avoid conflicts in environment if the packages differ - - krebs.secret.files = mapAttrs' (netname: cfg: - nameValuePair "${netname}.rsa_key.priv" cfg.privkey ) config.krebs.tinc; - - users.users = mapAttrs' (netname: cfg: - nameValuePair "${netname}" { - inherit (cfg.user) home name uid; - createHome = true; - } - ) config.krebs.tinc; - - systemd.services = mapAttrs (netname: cfg: - let - tinc = cfg.tincPackage; - iproute = cfg.iproutePackage; - in { - description = "Tinc daemon for ${netname}"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - requires = [ "secret.service" ]; - path = [ tinc iproute ]; - serviceConfig = rec { - Restart = "always"; - ExecStart = "${tinc}/sbin/tincd -c ${cfg.confDir} -d 0 -U ${cfg.user.name} -D --pidfile=/var/run/tinc.${SyslogIdentifier}.pid"; - SyslogIdentifier = netname; - }; - } - ) config.krebs.tinc; - }; -in out diff --git a/krebs/3modules/tinc.nix b/krebs/3modules/tinc.nix new file mode 100644 index 000000000..67d383bb1 --- /dev/null +++ b/krebs/3modules/tinc.nix @@ -0,0 +1,216 @@ +{ config, pkgs, lib, ... }: +with import ; +let + out = { + options.krebs.tinc = api; + config = imp; + }; + + api = mkOption { + default = {}; + description = '' + define a tinc network + ''; + type = with types; attrsOf (submodule (tinc: { + options = let + netname = tinc.config._module.args.name; + in { + + enable = mkEnableOption "krebs.tinc.${netname}" // { default = true; }; + + confDir = mkOption { + type = types.package; + default = pkgs.linkFarm "${netname}-etc-tinc" + (mapAttrsToList (name: path: { inherit name path; }) { + "hosts" = tinc.config.hostsPackage; + "tinc.conf" = pkgs.writeText "${netname}-tinc.conf" '' + Name = ${tinc.config.host.name} + Interface = ${netname} + ${concatMapStrings (c: "ConnectTo = ${c}\n") tinc.config.connectTo} + PrivateKeyFile = ${tinc.config.privkey.path} + Port = ${toString tinc.config.host.nets.${netname}.tinc.port} + ${tinc.config.extraConfig} + ''; + "tinc-up" = pkgs.writeDash "${netname}-tinc-up" '' + ${tinc.config.iproutePackage}/sbin/ip link set ${netname} up + ${tinc.config.tincUp} + ''; + }); + }; + + host = mkOption { + type = types.host; + default = config.krebs.build.host; + }; + + netname = mkOption { + type = types.enum (attrNames tinc.config.host.nets); + default = netname; + description = '' + The tinc network name. + It is used to name the TUN device and to generate the default value for + config.krebs.tinc.retiolum.hosts. + ''; + }; + + extraConfig = mkOption { + type = types.str; + default = ""; + description = '' + Extra Configuration to be appended to tinc.conf + ''; + }; + tincUp = mkOption { + type = types.string; + default = let + net = tinc.config.host.nets.${netname}; + iproute = tinc.config.iproutePackage; + in '' + ${optionalString (net.ip4 != null) /* sh */ '' + ${iproute}/sbin/ip -4 addr add ${net.ip4.addr} dev ${netname} + ${iproute}/sbin/ip -4 route add ${net.ip4.prefix} dev ${netname} + ''} + ${optionalString (net.ip6 != null) /* sh */ '' + ${iproute}/sbin/ip -6 addr add ${net.ip6.addr} dev ${netname} + ${iproute}/sbin/ip -6 route add ${net.ip6.prefix} dev ${netname} + ''} + ''; + description = '' + tinc-up script to be used. Defaults to setting the + krebs.host.nets..ip4 and ip6 for the new ips and + configures forwarding of the respecitive netmask as subnet. + ''; + }; + + tincPackage = mkOption { + type = types.package; + default = pkgs.tinc; + description = "Tincd package to use."; + }; + + hosts = mkOption { + type = with types; attrsOf host; + default = + filterAttrs (_: h: hasAttr tinc.config.netname h.nets) config.krebs.hosts; + description = '' + Hosts to generate config.krebs.tinc.retiolum.hostsPackage. + Note that these hosts must have a network named + config.krebs.tinc.retiolum.netname. + ''; + }; + + hostsArchive = mkOption { + type = types.package; + default = pkgs.runCommand "retiolum-hosts.tar.bz2" {} '' + ${pkgs.coreutils}/bin/ln -s ${tinc.config.hostsPackage} hosts + ${pkgs.gnutar}/bin/tar -hcjf $out hosts + ''; + readOnly = true; + }; + + hostsPackage = mkOption { + type = types.package; + default = pkgs.stdenv.mkDerivation { + name = "${tinc.config.netname}-tinc-hosts"; + phases = [ "installPhase" ]; + installPhase = '' + mkdir $out + ${concatStrings (lib.mapAttrsToList (_: host: '' + echo ${shell.escape host.nets."${tinc.config.netname}".tinc.config} \ + > $out/${shell.escape host.name} + '') tinc.config.hosts)} + ''; + }; + description = '' + Package of tinc host configuration files. By default, a package will + be generated from config.krebs.${tinc.config.netname}.hosts. This + option's main purpose is to expose the generated hosts package to other + modules, like config.krebs.tinc_graphs. But it can + also be used to provide a custom hosts directory. + ''; + example = literalExample '' + (pkgs.stdenv.mkDerivation { + name = "my-tinc-hosts"; + src = /home/tv/my-tinc-hosts; + installPhase = "cp -R . $out"; + }) + ''; + }; + + iproutePackage = mkOption { + type = types.package; + default = pkgs.iproute; + description = "Iproute2 package to use."; + }; + + privkey = mkOption { + type = types.secret-file; + default = { + path = "${tinc.config.user.home}/tinc.rsa_key.priv"; + owner = tinc.config.user; + source-path = toString + "/${tinc.config.netname}.rsa_key.priv"; + }; + }; + + connectTo = mkOption { + type = types.listOf types.str; + ${if tinc.config.netname == "retiolum" then "default" else null} = [ + "gum" + "ni" + "prism" + ]; + description = '' + The list of hosts in the network which the client will try to connect + to. These hosts should have an 'Address' configured which points to a + routeable IPv4 or IPv6 address. + + In stockholm this can be done by configuring: + krebs.hosts.${connect-host}.nets.${netname?"retiolum"}.via.ip4.addr = external-ip + krebs.hosts.${connect-host}.nets.${netname?"retiolum"}.tinc.port = 1655; + ''; + }; + + user = mkOption { + type = types.user; + default = { + name = tinc.config.netname; + home = "/var/lib/${tinc.config.user.name}"; + }; + }; + }; + })); + }; + + imp = { + # TODO `environment.systemPackages = [ cfg.tincPackage cfg.iproutePackage ]` for each network, + # avoid conflicts in environment if the packages differ + + krebs.secret.files = mapAttrs' (netname: cfg: + nameValuePair "${netname}.rsa_key.priv" cfg.privkey ) config.krebs.tinc; + + users.users = mapAttrs' (netname: cfg: + nameValuePair "${netname}" { + inherit (cfg.user) home name uid; + createHome = true; + } + ) config.krebs.tinc; + + systemd.services = mapAttrs (netname: cfg: + let + tinc = cfg.tincPackage; + iproute = cfg.iproutePackage; + in { + description = "Tinc daemon for ${netname}"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + requires = [ "secret.service" ]; + path = [ tinc iproute ]; + serviceConfig = rec { + Restart = "always"; + ExecStart = "${tinc}/sbin/tincd -c ${cfg.confDir} -d 0 -U ${cfg.user.name} -D --pidfile=/var/run/tinc.${SyslogIdentifier}.pid"; + SyslogIdentifier = netname; + }; + } + ) config.krebs.tinc; + }; +in out -- cgit v1.2.3 From e1350904390ca40e9ab8186c0ff27d088431a430 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 16 May 2017 23:18:28 +0200 Subject: l 2 retiolum: don't open smtp --- lass/2configs/retiolum.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/lass/2configs/retiolum.nix b/lass/2configs/retiolum.nix index 7a7bf95be..647327de5 100644 --- a/lass/2configs/retiolum.nix +++ b/lass/2configs/retiolum.nix @@ -5,7 +5,6 @@ krebs.iptables = { tables = { filter.INPUT.rules = [ - { predicate = "-p tcp --dport smtp"; target = "ACCEPT"; } { predicate = "-p tcp --dport tinc"; target = "ACCEPT"; } { predicate = "-p udp --dport tinc"; target = "ACCEPT"; } ]; -- cgit v1.2.3 From 0c2dc4ff66eded9f718a242bb342b366ee6c6978 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 16 May 2017 23:19:08 +0200 Subject: tinc module: add option enableLegacy --- krebs/3modules/tinc.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/krebs/3modules/tinc.nix b/krebs/3modules/tinc.nix index 67d383bb1..8af15c13b 100644 --- a/krebs/3modules/tinc.nix +++ b/krebs/3modules/tinc.nix @@ -17,6 +17,7 @@ let in { enable = mkEnableOption "krebs.tinc.${netname}" // { default = true; }; + enableLegacy = mkEnableOption "/etc/tinc/${netname}"; confDir = mkOption { type = types.package; @@ -195,6 +196,12 @@ let } ) config.krebs.tinc; + environment.etc = mapAttrs' (netname: cfg: + nameValuePair "tinc/${netname}" (mkIf cfg.enableLegacy { + source = cfg.confDir; + }) + ) config.krebs.tinc; + systemd.services = mapAttrs (netname: cfg: let tinc = cfg.tincPackage; -- cgit v1.2.3 From f27676c5ea34a8d400988027e326c7022914bcf0 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 16 May 2017 23:18:50 +0200 Subject: l 2 retiolum: enable legacy /etc/tinc --- lass/2configs/retiolum.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lass/2configs/retiolum.nix b/lass/2configs/retiolum.nix index 647327de5..7f1b36c96 100644 --- a/lass/2configs/retiolum.nix +++ b/lass/2configs/retiolum.nix @@ -12,6 +12,7 @@ }; krebs.tinc.retiolum = { + enableLegacy = true; enable = true; connectTo = [ "prism" -- cgit v1.2.3 From 015649b9b32c39d1f1c90ebba8d9aadb733ba8b8 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 16 May 2017 23:30:09 +0200 Subject: whatsupnix: init Import from https://github.com/NixOS/nix/issues/443#issuecomment-296752535 --- krebs/5pkgs/whatsupnix/default.nix | 15 ++++++++++++ krebs/5pkgs/whatsupnix/whatsupnix.bash | 44 ++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 krebs/5pkgs/whatsupnix/default.nix create mode 100644 krebs/5pkgs/whatsupnix/whatsupnix.bash diff --git a/krebs/5pkgs/whatsupnix/default.nix b/krebs/5pkgs/whatsupnix/default.nix new file mode 100644 index 000000000..1a108c5e9 --- /dev/null +++ b/krebs/5pkgs/whatsupnix/default.nix @@ -0,0 +1,15 @@ +{ bash, coreutils, gawk, nix, makeWrapper, stdenv }: + +stdenv.mkDerivation { + name = "whatsupnix"; + phases = [ "installPhase" ]; + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out/bin + cat - ${./whatsupnix.bash} > $out/bin/whatsupnix <<\EOF + #! ${bash}/bin/bash + export PATH=${stdenv.lib.makeBinPath [ coreutils gawk nix ]} + EOF + chmod +x $out/bin/whatsupnix + ''; +} diff --git a/krebs/5pkgs/whatsupnix/whatsupnix.bash b/krebs/5pkgs/whatsupnix/whatsupnix.bash new file mode 100644 index 000000000..a19410055 --- /dev/null +++ b/krebs/5pkgs/whatsupnix/whatsupnix.bash @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# Prints build logs for failed derivations in quiet build mode (-Q). +# See https://github.com/NixOS/nix/issues/443 +# +# Usage: +# +# set -o pipefail +# nix-build ... -Q ... | whatsupnix +# + + +GAWK=${GAWK:-gawk} +NIX_STORE=${NIX_STORE:-nix-store} + +broken=$(mktemp) +trap 'rm -f -- "$broken"' EXIT + +exec >&2 + +$GAWK -v broken="$broken" -f <(cat - <<- 'AWK' + match($0, /builder for .*(\/nix\/store\/.+\.drv).* failed/, m) { + print m[1] >> broken + } + { print $0 } +AWK +) + +export NIX_PAGER='' # for nix-store +while read -r drv; do + title="** FAILED $drv LOG **" + frame=${title//?/*} + + echo "$frame" + echo "$title" + echo "$frame" + echo + + $NIX_STORE -l "$drv" + + echo +done < "$broken" + +exit 0 -- cgit v1.2.3 From 0901d6e6f8e5357cd06b0d6832bdbde6251b7de3 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 19 May 2017 00:24:52 +0200 Subject: lib/types: add managed bool to host type --- lib/types.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/types.nix b/lib/types.nix index 30de5e177..530cd1e69 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -31,6 +31,13 @@ rec { default = null; }; + managed = mkOption { + description = '' + If true, then the host's configuration is defined in stockholm. + ''; + type = bool; + }; + owner = mkOption { type = user; }; -- cgit v1.2.3 From a9f0332f9c70088101b85c73d55e265813d94fd7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 19 May 2017 00:25:27 +0200 Subject: k 3 l: define `managed` for every host --- krebs/3modules/lass/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index b86e05319..0e1cbd876 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -3,7 +3,10 @@ with import ; { - hosts = mapAttrs (_: setAttr "owner" config.krebs.users.lass) { + hosts = mapAttrs (_: recursiveUpdate { + owner = config.krebs.users.lass; + managed = true; + }) { dishfire = { cores = 4; nets = rec { @@ -124,6 +127,7 @@ with import ; ssh.port = 2223; }; }; + managed = false; }; cloudkrebs = { cores = 1; @@ -300,6 +304,7 @@ with import ; }; iso = { cores = 1; + managed = false; }; sokrateslaptop = { nets = { @@ -321,6 +326,7 @@ with import ; ''; }; }; + managed = false; }; }; users = { -- cgit v1.2.3 From fa08ca88dee73ac0a0b888e114ab1df3ecf4c0fa Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 19 May 2017 00:27:25 +0200 Subject: l 3 hosts: filter unmanaged hosts --- lass/3modules/hosts.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lass/3modules/hosts.nix b/lass/3modules/hosts.nix index 125819bb0..7e3af10be 100644 --- a/lass/3modules/hosts.nix +++ b/lass/3modules/hosts.nix @@ -6,7 +6,7 @@ with import ; options.lass.hosts = mkOption { type = types.attrsOf types.host; default = - filterAttrs (_: host: host.owner.name == "lass") + filterAttrs (_: host: host.owner.name == "lass" && host.managed) config.krebs.hosts; }; } -- cgit v1.2.3 From 6ff1f811366215b82e892cb75dd9419a6de06f4d Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 22 May 2017 17:20:58 +0200 Subject: l 2 baseX: enable X forwarding --- lass/2configs/baseX.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lass/2configs/baseX.nix b/lass/2configs/baseX.nix index 9c51effdc..65dc6b6e9 100644 --- a/lass/2configs/baseX.nix +++ b/lass/2configs/baseX.nix @@ -33,6 +33,7 @@ in { time.timeZone = "Europe/Berlin"; programs.ssh.startAgent = false; + services.openssh.forwardX11 = true; services.printing = { enable = true; -- cgit v1.2.3 From a5390438dc08684a543e7260ff3377001c8bd5b0 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 22 May 2017 17:22:28 +0200 Subject: l 2 retiolum: add tinc to systemPackages --- lass/2configs/retiolum.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lass/2configs/retiolum.nix b/lass/2configs/retiolum.nix index 7f1b36c96..e7779f53e 100644 --- a/lass/2configs/retiolum.nix +++ b/lass/2configs/retiolum.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { @@ -25,4 +25,8 @@ nixpkgs.config.packageOverrides = pkgs: { tinc = pkgs.tinc_pre; }; + + environment.systemPackages = [ + pkgs.tinc + ]; } -- cgit v1.2.3 From fee2fa19585403a568242f3bdd870477b9cf97e7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 22 May 2017 17:24:58 +0200 Subject: l 2 nixpkgs: 2bb9c1c -> f469354 --- lass/2configs/nixpkgs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lass/2configs/nixpkgs.nix b/lass/2configs/nixpkgs.nix index 49c44aa88..c6620afaa 100644 --- a/lass/2configs/nixpkgs.nix +++ b/lass/2configs/nixpkgs.nix @@ -3,6 +3,6 @@ { krebs.build.source.nixpkgs.git = { url = https://cgit.lassul.us/nixpkgs; - ref = "2bb9c1c"; + ref = "f469354"; }; } -- cgit v1.2.3 From 7545d799ddb4d4cb79a51fda3ac95262bdc15d22 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 22 May 2017 17:28:19 +0200 Subject: il 2: move dnscrypt & dnsmasq to dns-stuff.nix --- lass/2configs/baseX.nix | 1 + lass/2configs/default.nix | 9 --------- lass/2configs/dns-stuff.nix | 31 +++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 lass/2configs/dns-stuff.nix diff --git a/lass/2configs/baseX.nix b/lass/2configs/baseX.nix index 65dc6b6e9..3e2e325d8 100644 --- a/lass/2configs/baseX.nix +++ b/lass/2configs/baseX.nix @@ -10,6 +10,7 @@ in { ./copyq.nix ./xresources.nix ./livestream.nix + ./dns-stuff.nix { hardware.pulseaudio = { enable = true; diff --git a/lass/2configs/default.nix b/lass/2configs/default.nix index ffed5bb70..d7deb3165 100644 --- a/lass/2configs/default.nix +++ b/lass/2configs/default.nix @@ -63,15 +63,6 @@ with import ; pkgs.pythonPackages.python ]; } - { - services.dnscrypt-proxy = { - enable = true; - resolverName = "cs-de"; - }; - networking.extraResolvconfConf = '' - name_servers='127.0.0.1' - ''; - } ]; networking.hostName = config.krebs.build.host.name; diff --git a/lass/2configs/dns-stuff.nix b/lass/2configs/dns-stuff.nix new file mode 100644 index 000000000..b52d3050b --- /dev/null +++ b/lass/2configs/dns-stuff.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: +with import ; +{ + services.dnscrypt-proxy = { + enable = true; + localAddress = "127.1.0.1"; + resolverName = "cs-de"; + }; + services.dnsmasq = { + enable = true; + extraConfig = '' + server=127.1.0.1 + server=/dn42/172.23.75.6 + #no-resolv + cache-size=1000 + min-cache-ttl=3600 + bind-dynamic + all-servers + dnssec + trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 + address=/blog/127.0.0.1 + address=/blog/::1 + rebind-domain-ok=/onion/ + server=/.onion/127.0.0.1#9053 + port=53 + ''; + }; + networking.extraResolvconfConf = '' + name_servers='127.0.0.1' + ''; +} -- cgit v1.2.3 From 28b6e5d218ca984c3e34fd5385ea343a0bd3d39a Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 23 May 2017 19:57:03 +0200 Subject: l 1 mors: enable elasticsearch --- lass/1systems/mors.nix | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lass/1systems/mors.nix b/lass/1systems/mors.nix index c8d9465d5..dd3777c64 100644 --- a/lass/1systems/mors.nix +++ b/lass/1systems/mors.nix @@ -32,14 +32,11 @@ with import ; { predicate = "-p tcp --dport 11100"; target = "ACCEPT"; } ]; } - #{ - # services.elasticsearch = { - # enable = true; - # plugins = [ - # # pkgs.elasticsearchPlugins.elasticsearch_kopf - # ]; - # }; - #} + { + services.elasticsearch = { + enable = true; + }; + } { #zalando project services.postgresql = { -- cgit v1.2.3 From a44e215d31c019fda6b0783f0d07cbd8072f919e Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 23 May 2017 20:34:12 +0200 Subject: l 2 websites domsen: remove www. from domains --- lass/2configs/websites/domsen.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lass/2configs/websites/domsen.nix b/lass/2configs/websites/domsen.nix index 581b37d91..62945755d 100644 --- a/lass/2configs/websites/domsen.nix +++ b/lass/2configs/websites/domsen.nix @@ -25,8 +25,8 @@ in { imports = [ ./sqlBackup.nix (servePage [ "reich-gebaeudereinigung.de" "www.reich-gebaeudereinigung.de" ]) - (servePage [ "karlaskop.de" "www.karlaskop.de" ]) - (servePage [ "makeup.apanowicz.de" "www.makeup.apanowicz.de" ]) + (servePage [ "karlaskop.de" ]) + (servePage [ "makeup.apanowicz.de" ]) (servePage [ "pixelpocket.de" ]) (serveOwncloud [ "o.ubikmedia.de" ]) (serveWordpress [ -- cgit v1.2.3 From d1321d64118fa50d0082e79a8fc74613aa0cb66a Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 23 May 2017 20:35:42 +0200 Subject: l 2 websites habsys.*: fritz -> domsen --- lass/2configs/websites/domsen.nix | 1 + lass/2configs/websites/fritz.nix | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lass/2configs/websites/domsen.nix b/lass/2configs/websites/domsen.nix index 62945755d..b0d28d4da 100644 --- a/lass/2configs/websites/domsen.nix +++ b/lass/2configs/websites/domsen.nix @@ -28,6 +28,7 @@ in { (servePage [ "karlaskop.de" ]) (servePage [ "makeup.apanowicz.de" ]) (servePage [ "pixelpocket.de" ]) + (servePage [ "habsys.de" "habsys.eu" ]) (serveOwncloud [ "o.ubikmedia.de" ]) (serveWordpress [ "ubikmedia.de" diff --git a/lass/2configs/websites/fritz.nix b/lass/2configs/websites/fritz.nix index 9bf7e4a9c..45927b102 100644 --- a/lass/2configs/websites/fritz.nix +++ b/lass/2configs/websites/fritz.nix @@ -40,8 +40,6 @@ in { (serveWordpress [ "eastuttgart.de" "www.eastuttgart.de" ]) - (servePage [ "habsys.de" "www.habsys.de" "habsys.eu" "www.habsys.eu" ]) - (serveWordpress [ "goldbarrendiebstahl.radical-dreamers.de" ]) ]; -- cgit v1.2.3 From ad1e4cb239bfbb39be977c3fdf2f5f172bb5a4f5 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 23 May 2017 20:36:23 +0200 Subject: l 3 pyload: init --- lass/3modules/default.nix | 1 + lass/3modules/pyload.nix | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 lass/3modules/pyload.nix diff --git a/lass/3modules/default.nix b/lass/3modules/default.nix index 73692446a..fd353e008 100644 --- a/lass/3modules/default.nix +++ b/lass/3modules/default.nix @@ -6,6 +6,7 @@ _: ./hosts.nix ./mysql-backup.nix ./news.nix + ./pyload.nix ./umts.nix ./usershadow.nix ./xresources.nix diff --git a/lass/3modules/pyload.nix b/lass/3modules/pyload.nix new file mode 100644 index 000000000..6f29ffb17 --- /dev/null +++ b/lass/3modules/pyload.nix @@ -0,0 +1,55 @@ +{ config, lib, pkgs, ... }: + +with import ; + +let + cfg = config.lass.pyload; + + out = { + options.lass.pyload = api; + config = lib.mkIf cfg.enable imp; + }; + + api = { + enable = mkEnableOption "pyload"; + user = mkOption { + type = types.str; + default = "download"; + }; + }; + + imp = { + + krebs.per-user.${cfg.user}.packages = [ + pkgs.pyload + pkgs.spidermonkey + pkgs.tesseract + ]; + + krebs.iptables.tables.filter.INPUT.rules = [ + { predicate = "-p tcp --dport 9099"; target = "ACCEPT"; } + ]; + systemd.services.pyload = { + description = "pyload"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + path = with pkgs; [ + pyload + spidermonkey + tesseract + dnsmasq + ]; + + restartIfChanged = true; + + serviceConfig = { + Restart = "always"; + ExecStart = "${pkgs.pyload}/bin/pyLoadCore"; + User = cfg.user; + }; + }; + + }; + +in out -- cgit v1.2.3 From 2d2550c5b5bdb10e4c2958425add337572347a11 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 23 May 2017 21:22:25 +0200 Subject: kirk: 1.0.0 -> 1.0.1 --- krebs/5pkgs/haskell-overrides/kirk.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/krebs/5pkgs/haskell-overrides/kirk.nix b/krebs/5pkgs/haskell-overrides/kirk.nix index 2cd6bb134..073e5d505 100644 --- a/krebs/5pkgs/haskell-overrides/kirk.nix +++ b/krebs/5pkgs/haskell-overrides/kirk.nix @@ -3,16 +3,19 @@ }: mkDerivation { pname = "kirk"; - version = "1.0.0"; + version = "1.0.1"; src = fetchgit { url = "http://cgit.krebsco.de/kirk"; - sha256 = "0w4drg2lyyw45abfn3g55zd6m7pl7yqxql5rpyy6qqdbvnyak94w"; - rev = "c78f3c62c0ba76465e39d1570073f867aa2d4240"; + sha256 = "1acsmmc485c54axpy9bd0320j18hs261vl1vdxns4n04sxzqd7k0"; + rev = "cdf3cb373af8f9b03a9487a63eb32e0226913589"; }; - isLibrary = false; + isLibrary = true; isExecutable = true; + libraryHaskellDepends = [ + base bytestring network optparse-applicative text + ]; executableHaskellDepends = [ - async base bytestring network optparse-applicative text + async base network optparse-applicative text ]; license = stdenv.lib.licenses.mit; } -- cgit v1.2.3 From 71719f2929c2dae1c431c09c517d8c49c7610b30 Mon Sep 17 00:00:00 2001 From: nin Date: Tue, 23 May 2017 22:45:52 +0200 Subject: n 2: change search-domain to r --- nin/2configs/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nin/2configs/default.nix b/nin/2configs/default.nix index a1ed76d98..cb02521ce 100644 --- a/nin/2configs/default.nix +++ b/nin/2configs/default.nix @@ -59,7 +59,7 @@ with import ; krebs = { enable = true; - search-domain = "retiolum"; + search-domain = "r"; build = { user = config.krebs.users.nin; source = let inherit (config.krebs.build) host; in { -- cgit v1.2.3 From 5f92b6b0a27ac6ed3289c0df96ebb9be664c0464 Mon Sep 17 00:00:00 2001 From: nin Date: Tue, 23 May 2017 22:51:09 +0200 Subject: n 2 nixpkgs: 5b0c9d4 -> 0afb6d7 --- nin/2configs/nixpkgs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nin/2configs/nixpkgs.nix b/nin/2configs/nixpkgs.nix index 9c3eafffd..14ddb7920 100644 --- a/nin/2configs/nixpkgs.nix +++ b/nin/2configs/nixpkgs.nix @@ -3,6 +3,6 @@ { krebs.build.source.nixpkgs.git = { url = https://github.com/nixos/nixpkgs; - ref = "5b0c9d4"; + ref = "0afb6d7"; }; } -- cgit v1.2.3 From e497faf8ec755da17e790782909a7aa8de7e0677 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 23 May 2017 23:35:31 +0200 Subject: l 2 bepasty: allow write for externals --- lass/2configs/bepasty.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lass/2configs/bepasty.nix b/lass/2configs/bepasty.nix index c2bc3f3cd..b2d40d4f3 100644 --- a/lass/2configs/bepasty.nix +++ b/lass/2configs/bepasty.nix @@ -35,7 +35,7 @@ in { forceSSL = true; enableACME = true; }; - defaultPermissions = "read"; + defaultPermissions = "read,create"; secretKey = secKey; }); }; -- cgit v1.2.3 From 061e702a6fc0e6046d39c3975c9034a69499c45f Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 23 May 2017 23:44:17 +0200 Subject: turn krebs/5pkgs into an overlay --- krebs/5pkgs/default.nix | 14 ++++---------- krebs/5pkgs/writers.nix | 8 +++----- krebs/default.nix | 2 +- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 8bb244cd3..81481e14b 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -1,11 +1,6 @@ -{ config, lib, pkgs, ... }@args: +pkgs: oldpkgs: with import ; -{ - imports = [ - ./writers.nix - ]; - nixpkgs.config.packageOverrides = oldpkgs: let - + let # This callPackage will try to detect obsolete overrides. callPackage = path: args: let override = pkgs.callPackage path args; @@ -16,8 +11,8 @@ with import ; compareVersions upstream.name override.name != -1 then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override else override; - in {} + // import ./writers.nix pkgs oldpkgs // mapAttrs (_: flip callPackage {}) (filterAttrs (_: dir: pathExists (dir + "/default.nix")) (subdirsOf ./.)) @@ -60,5 +55,4 @@ with import ; test = { infest-cac-centos7 = callPackage ./test/infest-cac-centos7 {}; }; - }; -} + } diff --git a/krebs/5pkgs/writers.nix b/krebs/5pkgs/writers.nix index d14090323..8ea9c37d5 100644 --- a/krebs/5pkgs/writers.nix +++ b/krebs/5pkgs/writers.nix @@ -1,7 +1,6 @@ -{ pkgs, ... }: +pkgs: oldpkgs: with import ; -{ - nixpkgs.config.packageOverrides = _: { + { # Combine a list of derivations using symlinks. Paths in later derivations # take precedence over earlier ones. @@ -323,5 +322,4 @@ with import ; }; writeSed = pkgs.makeScriptWriter "${pkgs.gnused}/bin/sed -f"; - }; -} + } diff --git a/krebs/default.nix b/krebs/default.nix index e5e8cbc49..55bf66f77 100644 --- a/krebs/default.nix +++ b/krebs/default.nix @@ -3,6 +3,6 @@ with import ; { imports = [ ./3modules - ./5pkgs ]; + nixpkgs.config.packageOverrides = import ./5pkgs pkgs; } -- cgit v1.2.3 From f0b98bd0114df1e1ebb82ff300f9532d86b3eb18 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 01:43:50 +0200 Subject: krebs/5pkgs: move simple pkgs to a subdir --- krebs/5pkgs/Reaktor/default.nix | 22 - krebs/5pkgs/Reaktor/plugins.nix | 131 -- krebs/5pkgs/Reaktor/scripts/random-emoji.sh | 6 - krebs/5pkgs/Reaktor/scripts/random-issue.sh | 20 - krebs/5pkgs/Reaktor/scripts/sed-plugin.py | 41 - krebs/5pkgs/Reaktor/scripts/shack-correct.sh | 6 - krebs/5pkgs/apt-cacher-ng/default.nix | 21 - krebs/5pkgs/bepasty-client-cli/default.nix | 23 - krebs/5pkgs/buildbot/default.nix | 82 - krebs/5pkgs/buildbot/worker.nix | 24 - krebs/5pkgs/cac-api/default.nix | 43 - krebs/5pkgs/cac-cert/cac.pem | 88 - krebs/5pkgs/cac-cert/default.nix | 2 - krebs/5pkgs/cac-panel/default.nix | 18 - krebs/5pkgs/collectd-connect-time/default.nix | 15 - krebs/5pkgs/default.nix | 11 +- krebs/5pkgs/dic/default.nix | 36 - krebs/5pkgs/drivedroid-gen-repo/default.nix | 22 - krebs/5pkgs/fortclientsslvpn/default.nix | 92 -- krebs/5pkgs/games-user-env/default.nix | 34 - krebs/5pkgs/get/default.nix | 37 - krebs/5pkgs/git-hooks/default.nix | 107 -- krebs/5pkgs/github-hosts-sync/default.nix | 37 - krebs/5pkgs/go-shortener/default.nix | 57 - krebs/5pkgs/go-shortener/packages.nix | 44 - krebs/5pkgs/goify/default.nix | 18 - krebs/5pkgs/hashPassword/default.nix | 15 - krebs/5pkgs/htgen/default.nix | 28 - krebs/5pkgs/irc-announce/default.nix | 66 - krebs/5pkgs/kpaste/default.nix | 5 - krebs/5pkgs/krebspaste/default.nix | 6 - krebs/5pkgs/krebszones/default.nix | 25 - krebs/5pkgs/logf/default.nix | 114 -- krebs/5pkgs/much/cabal.nix | 28 - krebs/5pkgs/much/default.nix | 3 - krebs/5pkgs/netcup/default.nix | 32 - krebs/5pkgs/newsbot-js/default.nix | 60 - krebs/5pkgs/newsbot-js/packages.nix | 1747 -------------------- krebs/5pkgs/noVNC/default.nix | 21 - krebs/5pkgs/painload/default.nix | 7 - krebs/5pkgs/passwdqc-utils/default.nix | 37 - krebs/5pkgs/populate/default.nix | 36 - krebs/5pkgs/posix-array/default.nix | 30 - krebs/5pkgs/pssh/default.nix | 36 - krebs/5pkgs/push/default.nix | 49 - krebs/5pkgs/realwallpaper/default.nix | 24 - krebs/5pkgs/repo-sync/default.nix | 21 - krebs/5pkgs/retiolum-bootstrap/default.nix | 29 - krebs/5pkgs/rutorrent/default.nix | 15 - krebs/5pkgs/simple/Reaktor/default.nix | 22 + krebs/5pkgs/simple/Reaktor/plugins.nix | 131 ++ krebs/5pkgs/simple/Reaktor/scripts/random-emoji.sh | 6 + krebs/5pkgs/simple/Reaktor/scripts/random-issue.sh | 20 + krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py | 41 + .../5pkgs/simple/Reaktor/scripts/shack-correct.sh | 6 + krebs/5pkgs/simple/apt-cacher-ng/default.nix | 21 + krebs/5pkgs/simple/bepasty-client-cli/default.nix | 23 + krebs/5pkgs/simple/buildbot/default.nix | 82 + krebs/5pkgs/simple/buildbot/worker.nix | 24 + krebs/5pkgs/simple/cac-api/default.nix | 43 + krebs/5pkgs/simple/cac-cert/cac.pem | 88 + krebs/5pkgs/simple/cac-cert/default.nix | 2 + krebs/5pkgs/simple/cac-panel/default.nix | 18 + .../5pkgs/simple/collectd-connect-time/default.nix | 15 + krebs/5pkgs/simple/default.nix | 10 + krebs/5pkgs/simple/dic/default.nix | 36 + krebs/5pkgs/simple/drivedroid-gen-repo/default.nix | 22 + krebs/5pkgs/simple/fortclientsslvpn/default.nix | 92 ++ krebs/5pkgs/simple/games-user-env/default.nix | 34 + krebs/5pkgs/simple/get/default.nix | 37 + krebs/5pkgs/simple/git-hooks/default.nix | 107 ++ krebs/5pkgs/simple/github-hosts-sync/default.nix | 37 + krebs/5pkgs/simple/go-shortener/default.nix | 57 + krebs/5pkgs/simple/go-shortener/packages.nix | 44 + krebs/5pkgs/simple/goify/default.nix | 18 + krebs/5pkgs/simple/hashPassword/default.nix | 15 + krebs/5pkgs/simple/htgen/default.nix | 28 + krebs/5pkgs/simple/irc-announce/default.nix | 66 + krebs/5pkgs/simple/kpaste/default.nix | 5 + krebs/5pkgs/simple/krebspaste/default.nix | 6 + krebs/5pkgs/simple/krebszones/default.nix | 25 + krebs/5pkgs/simple/logf/default.nix | 114 ++ krebs/5pkgs/simple/much/cabal.nix | 28 + krebs/5pkgs/simple/much/default.nix | 3 + krebs/5pkgs/simple/netcup/default.nix | 32 + krebs/5pkgs/simple/newsbot-js/default.nix | 60 + krebs/5pkgs/simple/newsbot-js/packages.nix | 1747 ++++++++++++++++++++ krebs/5pkgs/simple/noVNC/default.nix | 21 + krebs/5pkgs/simple/painload/default.nix | 7 + krebs/5pkgs/simple/passwdqc-utils/default.nix | 37 + krebs/5pkgs/simple/populate/default.nix | 36 + krebs/5pkgs/simple/posix-array/default.nix | 30 + krebs/5pkgs/simple/pssh/default.nix | 36 + krebs/5pkgs/simple/push/default.nix | 49 + krebs/5pkgs/simple/realwallpaper/default.nix | 24 + krebs/5pkgs/simple/repo-sync/default.nix | 21 + krebs/5pkgs/simple/retiolum-bootstrap/default.nix | 29 + krebs/5pkgs/simple/rutorrent/default.nix | 15 + krebs/5pkgs/simple/tarantool/default.nix | 21 + krebs/5pkgs/simple/tinc_graphs/default.nix | 26 + krebs/5pkgs/simple/translate-shell/default.nix | 43 + krebs/5pkgs/simple/treq/default.nix | 17 + krebs/5pkgs/simple/untilport/default.nix | 18 + krebs/5pkgs/simple/urlwatch/default.nix | 24 + krebs/5pkgs/simple/weechat/default.nix | 80 + krebs/5pkgs/simple/whatsupnix/default.nix | 15 + krebs/5pkgs/simple/whatsupnix/whatsupnix.bash | 44 + krebs/5pkgs/simple/with-tmpdir/default.nix | 29 + krebs/5pkgs/simple/youtube-tools/default.nix | 21 + krebs/5pkgs/simple/zandronum-bin/default.nix | 83 + krebs/5pkgs/tarantool/default.nix | 21 - krebs/5pkgs/tinc_graphs/default.nix | 26 - krebs/5pkgs/translate-shell/default.nix | 43 - krebs/5pkgs/treq/default.nix | 17 - krebs/5pkgs/untilport/default.nix | 18 - krebs/5pkgs/urlwatch/default.nix | 24 - krebs/5pkgs/weechat/default.nix | 80 - krebs/5pkgs/whatsupnix/default.nix | 15 - krebs/5pkgs/whatsupnix/whatsupnix.bash | 44 - krebs/5pkgs/with-tmpdir/default.nix | 29 - krebs/5pkgs/youtube-tools/default.nix | 21 - krebs/5pkgs/zandronum-bin/default.nix | 83 - 122 files changed, 3895 insertions(+), 3888 deletions(-) delete mode 100644 krebs/5pkgs/Reaktor/default.nix delete mode 100644 krebs/5pkgs/Reaktor/plugins.nix delete mode 100644 krebs/5pkgs/Reaktor/scripts/random-emoji.sh delete mode 100644 krebs/5pkgs/Reaktor/scripts/random-issue.sh delete mode 100644 krebs/5pkgs/Reaktor/scripts/sed-plugin.py delete mode 100644 krebs/5pkgs/Reaktor/scripts/shack-correct.sh delete mode 100644 krebs/5pkgs/apt-cacher-ng/default.nix delete mode 100644 krebs/5pkgs/bepasty-client-cli/default.nix delete mode 100644 krebs/5pkgs/buildbot/default.nix delete mode 100644 krebs/5pkgs/buildbot/worker.nix delete mode 100644 krebs/5pkgs/cac-api/default.nix delete mode 100644 krebs/5pkgs/cac-cert/cac.pem delete mode 100644 krebs/5pkgs/cac-cert/default.nix delete mode 100644 krebs/5pkgs/cac-panel/default.nix delete mode 100644 krebs/5pkgs/collectd-connect-time/default.nix delete mode 100644 krebs/5pkgs/dic/default.nix delete mode 100644 krebs/5pkgs/drivedroid-gen-repo/default.nix delete mode 100644 krebs/5pkgs/fortclientsslvpn/default.nix delete mode 100644 krebs/5pkgs/games-user-env/default.nix delete mode 100644 krebs/5pkgs/get/default.nix delete mode 100644 krebs/5pkgs/git-hooks/default.nix delete mode 100644 krebs/5pkgs/github-hosts-sync/default.nix delete mode 100644 krebs/5pkgs/go-shortener/default.nix delete mode 100644 krebs/5pkgs/go-shortener/packages.nix delete mode 100644 krebs/5pkgs/goify/default.nix delete mode 100644 krebs/5pkgs/hashPassword/default.nix delete mode 100644 krebs/5pkgs/htgen/default.nix delete mode 100644 krebs/5pkgs/irc-announce/default.nix delete mode 100644 krebs/5pkgs/kpaste/default.nix delete mode 100644 krebs/5pkgs/krebspaste/default.nix delete mode 100644 krebs/5pkgs/krebszones/default.nix delete mode 100644 krebs/5pkgs/logf/default.nix delete mode 100644 krebs/5pkgs/much/cabal.nix delete mode 100644 krebs/5pkgs/much/default.nix delete mode 100644 krebs/5pkgs/netcup/default.nix delete mode 100644 krebs/5pkgs/newsbot-js/default.nix delete mode 100644 krebs/5pkgs/newsbot-js/packages.nix delete mode 100644 krebs/5pkgs/noVNC/default.nix delete mode 100644 krebs/5pkgs/painload/default.nix delete mode 100644 krebs/5pkgs/passwdqc-utils/default.nix delete mode 100644 krebs/5pkgs/populate/default.nix delete mode 100644 krebs/5pkgs/posix-array/default.nix delete mode 100644 krebs/5pkgs/pssh/default.nix delete mode 100644 krebs/5pkgs/push/default.nix delete mode 100644 krebs/5pkgs/realwallpaper/default.nix delete mode 100644 krebs/5pkgs/repo-sync/default.nix delete mode 100644 krebs/5pkgs/retiolum-bootstrap/default.nix delete mode 100644 krebs/5pkgs/rutorrent/default.nix create mode 100644 krebs/5pkgs/simple/Reaktor/default.nix create mode 100644 krebs/5pkgs/simple/Reaktor/plugins.nix create mode 100644 krebs/5pkgs/simple/Reaktor/scripts/random-emoji.sh create mode 100644 krebs/5pkgs/simple/Reaktor/scripts/random-issue.sh create mode 100644 krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py create mode 100644 krebs/5pkgs/simple/Reaktor/scripts/shack-correct.sh create mode 100644 krebs/5pkgs/simple/apt-cacher-ng/default.nix create mode 100644 krebs/5pkgs/simple/bepasty-client-cli/default.nix create mode 100644 krebs/5pkgs/simple/buildbot/default.nix create mode 100644 krebs/5pkgs/simple/buildbot/worker.nix create mode 100644 krebs/5pkgs/simple/cac-api/default.nix create mode 100644 krebs/5pkgs/simple/cac-cert/cac.pem create mode 100644 krebs/5pkgs/simple/cac-cert/default.nix create mode 100644 krebs/5pkgs/simple/cac-panel/default.nix create mode 100644 krebs/5pkgs/simple/collectd-connect-time/default.nix create mode 100644 krebs/5pkgs/simple/default.nix create mode 100644 krebs/5pkgs/simple/dic/default.nix create mode 100644 krebs/5pkgs/simple/drivedroid-gen-repo/default.nix create mode 100644 krebs/5pkgs/simple/fortclientsslvpn/default.nix create mode 100644 krebs/5pkgs/simple/games-user-env/default.nix create mode 100644 krebs/5pkgs/simple/get/default.nix create mode 100644 krebs/5pkgs/simple/git-hooks/default.nix create mode 100644 krebs/5pkgs/simple/github-hosts-sync/default.nix create mode 100644 krebs/5pkgs/simple/go-shortener/default.nix create mode 100644 krebs/5pkgs/simple/go-shortener/packages.nix create mode 100644 krebs/5pkgs/simple/goify/default.nix create mode 100644 krebs/5pkgs/simple/hashPassword/default.nix create mode 100644 krebs/5pkgs/simple/htgen/default.nix create mode 100644 krebs/5pkgs/simple/irc-announce/default.nix create mode 100644 krebs/5pkgs/simple/kpaste/default.nix create mode 100644 krebs/5pkgs/simple/krebspaste/default.nix create mode 100644 krebs/5pkgs/simple/krebszones/default.nix create mode 100644 krebs/5pkgs/simple/logf/default.nix create mode 100644 krebs/5pkgs/simple/much/cabal.nix create mode 100644 krebs/5pkgs/simple/much/default.nix create mode 100644 krebs/5pkgs/simple/netcup/default.nix create mode 100644 krebs/5pkgs/simple/newsbot-js/default.nix create mode 100644 krebs/5pkgs/simple/newsbot-js/packages.nix create mode 100644 krebs/5pkgs/simple/noVNC/default.nix create mode 100644 krebs/5pkgs/simple/painload/default.nix create mode 100644 krebs/5pkgs/simple/passwdqc-utils/default.nix create mode 100644 krebs/5pkgs/simple/populate/default.nix create mode 100644 krebs/5pkgs/simple/posix-array/default.nix create mode 100644 krebs/5pkgs/simple/pssh/default.nix create mode 100644 krebs/5pkgs/simple/push/default.nix create mode 100644 krebs/5pkgs/simple/realwallpaper/default.nix create mode 100644 krebs/5pkgs/simple/repo-sync/default.nix create mode 100644 krebs/5pkgs/simple/retiolum-bootstrap/default.nix create mode 100644 krebs/5pkgs/simple/rutorrent/default.nix create mode 100644 krebs/5pkgs/simple/tarantool/default.nix create mode 100644 krebs/5pkgs/simple/tinc_graphs/default.nix create mode 100644 krebs/5pkgs/simple/translate-shell/default.nix create mode 100644 krebs/5pkgs/simple/treq/default.nix create mode 100644 krebs/5pkgs/simple/untilport/default.nix create mode 100644 krebs/5pkgs/simple/urlwatch/default.nix create mode 100644 krebs/5pkgs/simple/weechat/default.nix create mode 100644 krebs/5pkgs/simple/whatsupnix/default.nix create mode 100644 krebs/5pkgs/simple/whatsupnix/whatsupnix.bash create mode 100644 krebs/5pkgs/simple/with-tmpdir/default.nix create mode 100644 krebs/5pkgs/simple/youtube-tools/default.nix create mode 100644 krebs/5pkgs/simple/zandronum-bin/default.nix delete mode 100644 krebs/5pkgs/tarantool/default.nix delete mode 100644 krebs/5pkgs/tinc_graphs/default.nix delete mode 100644 krebs/5pkgs/translate-shell/default.nix delete mode 100644 krebs/5pkgs/treq/default.nix delete mode 100644 krebs/5pkgs/untilport/default.nix delete mode 100644 krebs/5pkgs/urlwatch/default.nix delete mode 100644 krebs/5pkgs/weechat/default.nix delete mode 100644 krebs/5pkgs/whatsupnix/default.nix delete mode 100644 krebs/5pkgs/whatsupnix/whatsupnix.bash delete mode 100644 krebs/5pkgs/with-tmpdir/default.nix delete mode 100644 krebs/5pkgs/youtube-tools/default.nix delete mode 100644 krebs/5pkgs/zandronum-bin/default.nix diff --git a/krebs/5pkgs/Reaktor/default.nix b/krebs/5pkgs/Reaktor/default.nix deleted file mode 100644 index fc3710820..000000000 --- a/krebs/5pkgs/Reaktor/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, pkgs,python3Packages,fetchurl, ... }: - -python3Packages.buildPythonPackage rec { - name = "Reaktor-${version}"; - version = "0.5.1"; - - doCheck = false; - - propagatedBuildInputs = with pkgs;[ - python3Packages.docopt - python3Packages.requests2 - ]; - src = fetchurl { - url = "https://pypi.python.org/packages/source/R/Reaktor/Reaktor-${version}.tar.gz"; - sha256 = "0dn9r0cyxi1sji2pnybsrc4hhaaq7hmf235nlgkrxqlsdb7y6n6n"; - }; - meta = { - homepage = http://krebsco.de/; - description = "An IRC bot based on asynchat"; - license = lib.licenses.wtfpl; - }; -} diff --git a/krebs/5pkgs/Reaktor/plugins.nix b/krebs/5pkgs/Reaktor/plugins.nix deleted file mode 100644 index e85e41cfe..000000000 --- a/krebs/5pkgs/Reaktor/plugins.nix +++ /dev/null @@ -1,131 +0,0 @@ -{ stdenv, lib, pkgs, makeWrapper }: - -rec { - # Begin API - buildBaseReaktorPlugin = { name - , config # python extra configuration for plugin - , phases ? [] - , ... } @ attrs: - stdenv.mkDerivation (attrs // { - name = "Reaktor-plugin-" + name; - isReaktorPlugin = true; - }); - - buildSimpleReaktorPlugin = name: { script - , path ? [] - , env ? {} - , append_rule ? false # append the rule instead of insert - , pattern ? "" - , ... } @ attrs: - let - path_env = { "PATH" = lib.makeSearchPath "bin" (path ++ [ pkgs.coreutils ]); }; - src_dir = pkgs.substituteAll ( { - inherit name; - dir = "bin"; - isExecutable = true; - src = script; - }); - src_file = "${src_dir}/bin/${name}"; - config = '' - public_commands.${if append_rule then "append(" else "insert(0," }{ - 'capname' : "${name}", - 'pattern' : ${if pattern == "" then - ''indirect_pattern.format("${name}")'' else - ''"${pattern}"'' }, - 'argv' : ["${src_file}"], - 'env' : ${builtins.toJSON (path_env // env)} }) - ''; - config_file = pkgs.writeText "plugin.py" config; - in buildBaseReaktorPlugin (attrs // rec { - inherit name config; - - phases = [ "installPhase" ]; - buildInputs = [ makeWrapper ]; - installPhase = '' - mkdir -p $out/bin $out/etc/Reaktor - ln -s ${src_file} $out/bin - wrapProgram $out/bin/${name} \ - --prefix PATH : ${path_env.PATH} - ln -s ${config_file} $out/etc/Reaktor/plugin.py - ''; - - }); - # End API - - # Begin Plugins - random-emoji = buildSimpleReaktorPlugin "emoji" { - path = with pkgs; [ gnused gnugrep xmlstarlet curl ]; - script = ./scripts/random-emoji.sh; - }; - - sed-plugin = buildSimpleReaktorPlugin "sed-plugin" { - path = [ pkgs.gnused pkgs.python3 ]; - # only support s///gi the plugin needs to see every msg - # TODO: this will eat up the last regex, fix Reaktor to support fallthru - append_rule = true; - pattern = "^(?P.*)$$"; - script = ./scripts/sed-plugin.py; - }; - - shack-correct = buildSimpleReaktorPlugin "shack-correct" { - path = [ pkgs.gnused ]; - pattern = "^(?P.*Shack.*)$$"; - script = ./scripts/shack-correct.sh; - }; - - nixos-version = buildSimpleReaktorPlugin "nixos-version" { - script = pkgs.writeDash "nixos-version" '' - . /etc/os-release - echo "$PRETTY_NAME" - ''; - }; - stockholm-issue = buildSimpleReaktorPlugin "stockholm-issue" { - script = ./scripts/random-issue.sh; - path = with pkgs; [ git gnused haskellPackages.lentil ]; - env = { "origin" = "http://cgit.gum/stockholm"; }; - }; - - titlebot = - let - pypkgs = pkgs.python3Packages; - titlebot_cmds = pypkgs.buildPythonPackage { - name = "titlebot_cmds"; - propagatedBuildInputs = with pypkgs; [ setuptools ]; - src = pkgs.fetchurl { - url = "https://github.com/makefu/reaktor-titlebot/archive/2.1.0.tar.gz"; - sha256 = "0wvf09wmk8b52f9j65qrw81nwrhs9pfhijwrlkzp5l7l2q8cjkp6"; - }; - }; - in buildBaseReaktorPlugin rec { - name = "titlebot"; - phases = [ "installPhase" ]; - installPhase = '' - mkdir -p $out - ln -s ${titlebot_cmds}/* $out - ''; - config = '' - def titlebot_cmd(cmd): - from os import environ - return { 'capname': None, - 'env': { 'TITLEDB': - environ['state_dir']+'/suggestions.json' }, - 'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P.*))?$$', - 'argv': [ '${titlebot_cmds}/bin/' + cmd ] } - for i in ['up','help','list','top','new']: - public_commands.insert(0,titlebot_cmd(i)) - commands.insert(0,titlebot_cmd('clear')) - ''; - }; - - url-title = (buildSimpleReaktorPlugin "url-title" { - pattern = "^.*(?Phttp[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+).*$$"; - path = with pkgs; [ curl perl ]; - script = pkgs.writeDash "lambda-pl" '' - if [ "$#" -gt 0 ]; then - curl -SsL --max-time 5 "$1" | - perl -l -0777 -ne 'print $1 if /\s*(.*?)(?: - youtube)?\s*<\/title/si' - fi - ''; - }); - -} diff --git a/krebs/5pkgs/Reaktor/scripts/random-emoji.sh b/krebs/5pkgs/Reaktor/scripts/random-emoji.sh deleted file mode 100644 index 386aa68b9..000000000 --- a/krebs/5pkgs/Reaktor/scripts/random-emoji.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -curl http://emojicons.com/random -s | \ - grep data-text | \ - sed -n 's/.*>\(.*\)<\/textarea>/\1/p' | \ - head -n 1 | \ - xmlstarlet unesc diff --git a/krebs/5pkgs/Reaktor/scripts/random-issue.sh b/krebs/5pkgs/Reaktor/scripts/random-issue.sh deleted file mode 100644 index 5c47c6156..000000000 --- a/krebs/5pkgs/Reaktor/scripts/random-issue.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/sh -set -eu -# requires env: -# $state_dir -# $origin - -# in PATH: git,lentil,coreutils -subdir=`echo "$1" | tr -dc "[:alnum:]"` -name=`echo "$origin" | tr -dc "[:alnum:]"` -track="$state_dir/$name-checkout" -(if test -e "$track" ;then - cd "$track" - git fetch origin master - git reset --hard origin/master -else - git clone "$origin" "$track" -fi) >&2 - -cd "$track" -lentil "${subdir:-.}" -f csv | sed 1d | shuf | head -1 diff --git a/krebs/5pkgs/Reaktor/scripts/sed-plugin.py b/krebs/5pkgs/Reaktor/scripts/sed-plugin.py deleted file mode 100644 index da8e2f726..000000000 --- a/krebs/5pkgs/Reaktor/scripts/sed-plugin.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python3 - -# Usage: -# _from=krebs state_dir=. python sed-plugin.py 'dick butt' -# _from=krebs state_dir=. python sed-plugin.py 's/t/l/g' -# > dick bull -import shelve -from os import environ -from os.path import join -from sys import argv -import re - -d = shelve.open(join(environ['state_dir'], 'sed-plugin.shelve'), writeback=True) -usr = environ['_from'] - - -def is_regex(line): - myre = re.compile(r'^s/(?:\\/|[^/])+/(?:\\/|[^/])*/[ig]?$') - return myre.match(line) - -line = argv[1] - -if is_regex(line): - last = d.get(usr, None) - if last: - from subprocess import Popen, PIPE - p = Popen(['sed', line], stdin=PIPE, stdout=PIPE) - so, se = p.communicate(bytes("{}\n".format(last), "UTF-8")) - if p.returncode: - print("something went wrong when trying to process your regex: {}".format(se.decode())) - ret = so.decode() - print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip())) - if ret: - d[usr] = ret - - else: - print("no last message") -else: - d[usr] = line - -d.close() diff --git a/krebs/5pkgs/Reaktor/scripts/shack-correct.sh b/krebs/5pkgs/Reaktor/scripts/shack-correct.sh deleted file mode 100644 index 3b4d04f80..000000000 --- a/krebs/5pkgs/Reaktor/scripts/shack-correct.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/sh -set -eu -printf "Sie meinten wohl \"" -echo -n $@ | sed 's/Shack/shack/g' -echo "\"" -echo "${_from}--" diff --git a/krebs/5pkgs/apt-cacher-ng/default.nix b/krebs/5pkgs/apt-cacher-ng/default.nix deleted file mode 100644 index e3986713b..000000000 --- a/krebs/5pkgs/apt-cacher-ng/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchurl, cmake, doxygen, zlib, openssl, bzip2, pkgconfig, libpthreadstubs }: - -stdenv.mkDerivation rec { - name = "apt-cacher-ng-${version}"; - version = "2"; - - src = fetchurl { - url = "http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz"; - sha256 = "0bkc3012vinridl5ch46pwnxjalymx4wf6nxax64nm7bdkcj9azf"; - }; - - NIX_LDFLAGS = "-lpthread"; - buildInputs = [ doxygen cmake zlib openssl bzip2 pkgconfig libpthreadstubs ]; - - meta = { - description = "A caching proxy specialized for linux distribution files"; - homepage = http://www.unix-ag.uni-kl.de/~bloch/acng/; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.makefu ]; - }; -} diff --git a/krebs/5pkgs/bepasty-client-cli/default.nix b/krebs/5pkgs/bepasty-client-cli/default.nix deleted file mode 100644 index c58e637b3..000000000 --- a/krebs/5pkgs/bepasty-client-cli/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, pkgs, pythonPackages, fetchFromGitHub, ... }: - -with pythonPackages; buildPythonPackage rec { - name = "bepasty-client-cli"; - propagatedBuildInputs = [ - python_magic - click - requests2 - ]; - - src = fetchFromGitHub { - owner = "bepasty"; - repo = "bepasty-client-cli"; - rev = "4b7135ba8ba1e17501de08ad7b6aca73c0d949d2"; - sha256 = "1svchyk9zai1vip9ppm12jm7wfjbdr9ijhgcd2n10xh73jrn9cnc"; - }; - - meta = { - homepage = https://github.com/bepasty/bepasty-client-cli; - description = "CLI client for bepasty-server"; - license = lib.licenses.bsd2; - }; -} diff --git a/krebs/5pkgs/buildbot/default.nix b/krebs/5pkgs/buildbot/default.nix deleted file mode 100644 index 37eea5fd9..000000000 --- a/krebs/5pkgs/buildbot/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ pkgs, stdenv, pythonPackages, fetchurl, coreutils, plugins ? [] }: - -pythonPackages.buildPythonApplication (rec { - name = "${pname}-${version}"; - pname = "buildbot"; - version = "0.9.4"; - src = fetchurl { - url = "mirror://pypi/b/${pname}/${name}.tar.gz"; - sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; - }; - doCheck = false; - buildInputs = with pythonPackages; [ - lz4 - txrequests - pyjade - boto3 - moto - txgithub - mock - setuptoolsTrial - isort - pylint - astroid - pyflakes - pyjwt - ]; - - propagatedBuildInputs = with pythonPackages; [ - - # core - twisted - jinja2 - zope_interface - future - sqlalchemy - sqlalchemy_migrate - future - dateutil - txaio - autobahn - - # tls - pyopenssl - service-identity - idna - pkgs.treq - - # docs - sphinx - sphinxcontrib-blockdiag - sphinxcontrib-spelling - pyenchant - docutils - ramlfications - sphinx-jinja - - ] ++ plugins; - - preInstall = '' - # writes out a file that can't be read properly - sed -i.bak -e '69,84d' buildbot/test/unit/test_www_config.py - - # re-hardcode path to tail - sed -i.bak 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py - ''; - - postFixup = '' - mv -v $out/bin/buildbot $out/bin/.wrapped-buildbot - echo "#!/bin/sh" > $out/bin/buildbot - echo "export PYTHONPATH=$PYTHONPATH" >> $out/bin/buildbot - echo "exec $out/bin/.wrapped-buildbot \"\$@\"" >> $out/bin/buildbot - chmod -c 555 $out/bin/buildbot - ''; - - meta = with stdenv.lib; { - homepage = http://buildbot.net/; - description = "Continuous integration system that automates the build/test cycle"; - maintainers = with maintainers; [ nand0p ryansydnor ]; - platforms = platforms.all; - license = licenses.gpl2; - }; -}) diff --git a/krebs/5pkgs/buildbot/worker.nix b/krebs/5pkgs/buildbot/worker.nix deleted file mode 100644 index 34e526858..000000000 --- a/krebs/5pkgs/buildbot/worker.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ pkgs, stdenv, fetchurl, pythonPackages }: -pythonPackages.buildPythonApplication (rec { - name = "${pname}-${version}"; - pname = "buildbot-worker"; - version = "0.9.4"; - - doCheck = false; - src = fetchurl { - url = "mirror://pypi/b/${pname}/${name}.tar.gz"; - sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj"; - }; - - buildInputs = with pythonPackages; [ setuptoolsTrial mock ]; - propagatedBuildInputs = with pythonPackages; [ twisted future pkgs.treq ]; - - meta = with stdenv.lib; { - homepage = http://buildbot.net/; - description = "Buildbot Worker Daemon"; - maintainers = with maintainers; [ nand0p ryansydnor ]; - platforms = platforms.all; - license = licenses.gpl2; - }; -}) - diff --git a/krebs/5pkgs/cac-api/default.nix b/krebs/5pkgs/cac-api/default.nix deleted file mode 100644 index e2bd8c148..000000000 --- a/krebs/5pkgs/cac-api/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ stdenv, fetchgit, bc, cac-cert, coreutils, curl, dash, gnugrep, gnused, inotifyTools, jq, ncurses, openssh, sshpass, ... }: - -stdenv.mkDerivation { - name = "cac-api-1.1.2"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/cac-api; - rev = "67e93510e7742acae44db30275abbfe671aa9b7b"; - sha256 = "1vxh57j7vrq5sg9j1sam0538kkkhqpgf230vvdz2ifzgkj01z27l"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - mkdir -p $out/bin - { cat <<\EOF - #! ${dash}/bin/dash - export PATH=${stdenv.lib.makeBinPath [ - bc - coreutils - curl - gnugrep - gnused - inotifyTools - jq - ncurses - openssh - sshpass - ]}:"$PATH" - EOF - # [1]: Disable fetching tasks; listtasks is currently broken: - # Unknown column 'iod.apitask.cid' in 'field list' - sed ' - /^\s*tasks \\$/d; # [1] - s|\<_cac_exec curl|<${cac-cert} & --cacert /dev/stdin| - ' cac-api - } > $out/bin/cac-api - chmod +x $out/bin/cac-api - ''; -} diff --git a/krebs/5pkgs/cac-cert/cac.pem b/krebs/5pkgs/cac-cert/cac.pem deleted file mode 100644 index 9d02b6bcf..000000000 --- a/krebs/5pkgs/cac-cert/cac.pem +++ /dev/null @@ -1,88 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFWzCCBEOgAwIBAgIQXWIKGWRZf838+wW1zLdK0DANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlk -YXRpb24gU2VjdXJlIFNlcnZlciBDQTAeFw0xNTEwMjMwMDAwMDBaFw0xODEwMjIyMzU5NTlaMF8x -ITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UECxMVRXNzZW50aWFsU1NM -IFdpbGRjYXJkMRowGAYDVQQDDBEqLmNsb3VkYXRjb3N0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAM9CyL8uUPoE3zYbvnwtUW69h0f+rkND1/Jsi15EEBFPQqiYCmPiSaJLn6JB -Hri34t4lArGrPA6K01x18LJqFoYDy5ya37J8Bd4jF3cijWe/IQEWAw0r2ufhd4LTNMvEyJIECida -LMhBxpORRdijmvEXCf9D0OEGBV3qfizcCH7+VPordCY3y9fwgbk0wAB1lAk29aRosK3gZJceu57Q -YkEKjee6pZ473+xpCjaeTBUlPuGA95A2jPf8c+QSPegczOd9Hwo4JqAJSjTzzuHiSbEhd+8JIC/P -6GYVOvwnNqCPuuXsoBy8xBQ8lHuZcWd5sh4MDRvm5YxVFhYN6kOgf1ECAwEAAaOCAd8wggHbMB8G -A1UdIwQYMBaAFJCvajqUWgvYkOoSVnPfQ7Q6KNrnMB0GA1UdDgQWBBSC9dSGoIEPHBTUQJjOxxPg -lhRLPDAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYI -KwYBBQUHAwIwTwYDVR0gBEgwRjA6BgsrBgEEAbIxAQICBzArMCkGCCsGAQUFBwIBFh1odHRwczov -L3NlY3VyZS5jb21vZG8uY29tL0NQUzAIBgZngQwBAgEwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDov -L2NybC5jb21vZG9jYS5jb20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNB -LmNybDCBhQYIKwYBBQUHAQEEeTB3ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LmNvbW9kb2NhLmNv -bS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3J0MCQGCCsGAQUFBzAB -hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wLQYDVR0RBCYwJIIRKi5jbG91ZGF0Y29zdC5jb22C -D2Nsb3VkYXRjb3N0LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAPfUXBGDYOQnJuykm8I9cB2rBFVvt -HgzKIM+SXRz/jRt4HN/fsQkq2mI8SUPigWbtrtL1yim0hHdTR4m6vn7eHqj8erjjEJy16OfyRwp8 -LfjjHvcPxAxiRcFdv+8Pu/o0umqtxmRn4enyAZWhqAp3TBjkJPkJgh/toJqGpE7dN1Jw1AF75rrA -DXS8J5fcJYZQydJce+kacMHLh4C0Q37NgZKPfM+9jsygqY3Fhqh5GIt/CXNx2vlDPQP87QEtK7y7 -dCGd/MwrdKkUvOpsmqWiO1+02DesZSdIow/YW+8cUhPvYMqpM9zKbqVdRj3FJK56+/xNfNX5tiU1 -1VE7rIcEbw== ------END CERTIFICATE----- - ------BEGIN CERTIFICATE----- -MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTQwMjEyMDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRp -b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI7CAhnh -oFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28ShbXcDow+G+eMGnD4LgYqbSRutA776S9uM -IO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4Tg -llfQcBhglo/uLQeTnaG6ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh -7lgUq/51UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0nc13c -RTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQYMBaAFLuvfgI9+qbx -PISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz30O0Oija5zAOBgNVHQ8BAf8EBAMC -AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYD -VR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNv -bW9kb2NhLmNvbS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB -AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUFkZFRy -dXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcN -AQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2pmj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx -3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsI -tG8kO3KdY3RYPBpsP0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdo -ltMYdVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc2bXhc3js -9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxGV/Iz2tDIY+3GH5QFlkoa -kdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBm -GqW5prU5wfWYQ//u+aen/e7KJD2AFsQXj4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODc -QgPmlKidrv0PJFGUzpII0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje -3WYkN5AplBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf+AZx -AeKCINT+b72x ------END CERTIFICATE----- - ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn -dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ -FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ -5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG -x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX -2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL -OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 -sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C -GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 -WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt -rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ -nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg -tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW -sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp -pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA -zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq -ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 -7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I -LaZRfyHBNVOFBkpdn627G190 ------END CERTIFICATE----- diff --git a/krebs/5pkgs/cac-cert/default.nix b/krebs/5pkgs/cac-cert/default.nix deleted file mode 100644 index d99019dca..000000000 --- a/krebs/5pkgs/cac-cert/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ writeText, ... }: -writeText "cac.pem" (builtins.readFile ./cac.pem) diff --git a/krebs/5pkgs/cac-panel/default.nix b/krebs/5pkgs/cac-panel/default.nix deleted file mode 100644 index fd4799535..000000000 --- a/krebs/5pkgs/cac-panel/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{pkgs, python3Packages, ...}: - -python3Packages.buildPythonPackage rec { - name = "cac-panel-${version}"; - version = "0.4.4"; - - src = pkgs.fetchurl { - url = "https://pypi.python.org/packages/source/c/cac-panel/cac-panel-${version}.tar.gz"; - sha256 = "16bx67fsbgwxciik42jhdnfzxx1xp5b0rimzrif3r7h4fawlnld8"; - }; - - propagatedBuildInputs = with python3Packages; [ - docopt - requests2 - beautifulsoup4 - ]; -} - diff --git a/krebs/5pkgs/collectd-connect-time/default.nix b/krebs/5pkgs/collectd-connect-time/default.nix deleted file mode 100644 index 525388029..000000000 --- a/krebs/5pkgs/collectd-connect-time/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{lib, pkgs, pythonPackages, fetchurl, ... }: - -pythonPackages.buildPythonPackage rec { - name = "collectd-connect-time-${version}"; - version = "0.3.0"; - src = fetchurl { - url = "https://pypi.python.org/packages/source/c/collectd-connect-time/collectd-connect-time-${version}.tar.gz"; - sha256 = "0vvrf9py9bwc8hk3scxwg4x2j8jlp2qva0mv4q8d9m4b4mk99c95"; - }; - meta = { - homepage = https://pypi.python.org/pypi/collectd-connect-time/; - description = "TCP Connection time plugin for collectd"; - license = lib.licenses.wtfpl; - }; -} diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 81481e14b..5af541258 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -12,10 +12,8 @@ with import ; then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override else override; in {} + // import ./simple pkgs oldpkgs // import ./writers.nix pkgs oldpkgs - // mapAttrs (_: flip callPackage {}) - (filterAttrs (_: dir: pathExists (dir + "/default.nix")) - (subdirsOf ./.)) // { empty = pkgs.runCommand "empty-1.0.0" {} "mkdir $out"; @@ -33,13 +31,12 @@ with import ; (builtins.readDir ./haskell-overrides)); }; - ReaktorPlugins = callPackage ./Reaktor/plugins.nix {}; + ReaktorPlugins = callPackage ./simple/Reaktor/plugins.nix {}; - buildbot = callPackage ./buildbot {}; - buildbot-full = callPackage ./buildbot { + buildbot-full = callPackage ./simple/buildbot { plugins = with pkgs.buildbot-plugins; [ www console-view waterfall-view ]; }; - buildbot-worker = callPackage ./buildbot/worker.nix {}; + buildbot-worker = callPackage ./simple/buildbot/worker.nix {}; # https://github.com/proot-me/PRoot/issues/106 proot = pkgs.writeDashBin "proot" '' diff --git a/krebs/5pkgs/dic/default.nix b/krebs/5pkgs/dic/default.nix deleted file mode 100644 index 963786f0c..000000000 --- a/krebs/5pkgs/dic/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, fetchgit, coreutils, curl, gnused, gnugrep, ... }: - -stdenv.mkDerivation { - name = "dic"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/dic; - rev = "refs/tags/v1.0.1"; - sha256 = "1686mba1z4m7vq70w26qpl00z1cz286c9bya9ql36g6w2pbcs8d3"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = - let - path = stdenv.lib.makeBinPath [ - coreutils - curl - gnused - gnugrep - ]; - in - '' - mkdir -p $out/bin - - sed \ - 's,^main() {$,&\n PATH=${path}; export PATH,' \ - < ./dic \ - > $out/bin/dic - - chmod +x $out/bin/dic - ''; -} diff --git a/krebs/5pkgs/drivedroid-gen-repo/default.nix b/krebs/5pkgs/drivedroid-gen-repo/default.nix deleted file mode 100644 index de8046c4a..000000000 --- a/krebs/5pkgs/drivedroid-gen-repo/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{stdenv,fetchurl,pkgs,python3Packages, ... }: - -python3Packages.buildPythonPackage rec { - name = "drivedroid-gen-repo-${version}"; - version = "0.4.4"; - - propagatedBuildInputs = with pkgs;[ - python3Packages.docopt - ]; - - src = fetchurl { - url = "https://pypi.python.org/packages/source/d/drivedroid-gen-repo/drivedroid-gen-repo-${version}.tar.gz"; - sha256 = "09p58hzp61r5fp025lak9z52y0aakmaqpi59p9w5xq42dvy2hnvl"; - }; - - meta = { - homepage = http://krebsco.de/; - description = "Generate Drivedroid repos"; - license = stdenv.lib.licenses.wtfpl; - }; -} - diff --git a/krebs/5pkgs/fortclientsslvpn/default.nix b/krebs/5pkgs/fortclientsslvpn/default.nix deleted file mode 100644 index cbcfab05f..000000000 --- a/krebs/5pkgs/fortclientsslvpn/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ stdenv, lib, fetchurl, gnome3, glib, libSM, gdk_pixbuf, libX11, libXinerama, iproute, - makeWrapper, libredirect, ppp, coreutils, gawk, pango }: -stdenv.mkDerivation rec { - name = "forticlientsslvpn"; - # forticlient will be copied into /tmp before execution. this is necessary as - # the software demands $base to be writeable - - # TODO: chroot and create the following files instead of copying files manually - # mkdir /etc/ppp ; touch /etc/ppp/options - # ln -s /run/current-system/sw/bin/tail /usr/bin/tail - # ln -s /run/current-system/sw/bin/pppd /usr/sbin/pppd - - src = fetchurl { - # archive.org mirror: - # https://archive.org/download/ForticlientsslvpnLinux4.4.23171.tar/forticlientsslvpn_linux_4.4.2317.tar.gz - url = http://www.zen.co.uk/userfiles/knowledgebase/FortigateSSLVPNClient/forticlientsslvpn_linux_4.4.2317.tar.gz; - sha256 = "19clnf9rgrnwazlpah8zz5kvz6kc8lxawrgmksx25k5ywflmbcrr"; - }; - phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; - - buildInputs = [ makeWrapper ]; - - binPath = lib.makeBinPath [ - coreutils - gawk - ]; - - - libPath = lib.makeLibraryPath [ - stdenv.cc.cc - ]; - - guiLibPath = lib.makeLibraryPath [ - gnome3.gtk - glib - libSM - gdk_pixbuf - libX11 - libXinerama - pango - ]; - - buildPhase = '' - # TODO: 32bit, use the 32bit folder - patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - --set-rpath "$libPath" \ - 64bit/forticlientsslvpn_cli - - patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - --set-rpath "$libPath:$guiLibPath" \ - 64bit/forticlientsslvpn - - patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - --set-rpath "$libPath" \ - 64bit/helper/subproc - - sed -i 's#\(export PATH=\).*#\1"${binPath}"#' 64bit/helper/waitppp.sh - ''; - - installPhase = '' - mkdir -p "$out/opt/fortinet" - - cp -r 64bit/. "$out/opt/fortinet" - wrapProgram $out/opt/fortinet/forticlientsslvpn \ - --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ - --set NIX_REDIRECTS /usr/bin/tail=${coreutils}/bin/tail:/usr/sbin/ip=${iproute}/bin/ip:/usr/sbin/pppd=${ppp}/bin/pppd - - mkdir -p "$out/bin/" - - cat > $out/bin/forticlientsslvpn < {} }: - - (pkgs.buildFHSUserEnv { - name = "simple-x11-env"; - targetPkgs = pkgs: with pkgs; [ - coreutils - ]; - multiPkgs = pkgs: with pkgs; [ - alsaLib - zlib - xorg.libXxf86vm - curl - openal - openssl_1_0_2 - xorg.libXext - xorg.libX11 - xorg.libXrandr - xorg.libXcursor - xorg.libXinerama - xorg.libXi - mesa_glu - ]; - runScript = "bash"; - }).env -''; - - -in pkgs.writeDashBin "games-user-env" '' - nix-shell ${env_nix} -'' diff --git a/krebs/5pkgs/get/default.nix b/krebs/5pkgs/get/default.nix deleted file mode 100644 index 83f6b0228..000000000 --- a/krebs/5pkgs/get/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ coreutils, gnugrep, gnused, fetchgit, jq, nix, stdenv, ... }: - -stdenv.mkDerivation { - name = "get-1.4.1"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/get; - rev = "41c0c35805ec1708729f73d14650d8ebc94a405b"; - sha256 = "0rx1qsbb4py14795yhhqwlvaibj2569fqm7x2671l868xi59h9f9"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = - let - path = stdenv.lib.makeBinPath [ - coreutils - gnugrep - gnused - jq - nix - ]; - in - '' - mkdir -p $out/bin - - sed \ - '1s,.*,&\nPATH=${path},' \ - < ./get \ - > $out/bin/get - - chmod +x $out/bin/get - ''; -} diff --git a/krebs/5pkgs/git-hooks/default.nix b/krebs/5pkgs/git-hooks/default.nix deleted file mode 100644 index 4017b873b..000000000 --- a/krebs/5pkgs/git-hooks/default.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ pkgs, ... }: - -with import ; - -{ - # TODO irc-announce should return a derivation - # but it cannot because krebs.git.repos.*.hooks :: attrsOf str - irc-announce = { nick, channel, server, port ? 6667, verbose ? false, branches ? [] }: '' - #! /bin/sh - set -euf - - export PATH=${makeBinPath (with pkgs; [ - coreutils - git - gnugrep - gnused - ])} - - green() { printf '\x0303,99%s\x0F' "$1"; } - red() { printf '\x0304,99%s\x0F' "$1"; } - orange() { printf '\x0307,99%s\x0F' "$1"; } - pink() { printf '\x0313,99%s\x0F' "$1"; } - gray() { printf '\x0314,99%s\x0F' "$1"; } - - unset message - add_message() { - message="''${message+$message - }$*" - } - - nick=${escapeShellArg nick} - channel=${escapeShellArg channel} - server=${escapeShellArg server} - port=${toString port} - - host=$nick - cgit_endpoint=http://cgit.$host.r - - empty=0000000000000000000000000000000000000000 - - while read oldrev newrev ref; do - - if [ $oldrev = $empty ]; then - receive_mode=create - elif [ $newrev = $empty ]; then - receive_mode=delete - elif [ "$(git merge-base $oldrev $newrev)" = $oldrev ]; then - receive_mode=fast-forward - else - receive_mode=non-fast-forward - fi - - h=$(echo $ref | sed 's:^refs/heads/::') - - ${optionalString (branches != []) '' - if ! (echo "$h" | grep -qE "${concatStringsSep "|" branches}"); then - echo "we are not serving this branch: $h" - exit 0 - fi - ''} - # empty_tree=$(git hash-object -t tree /dev/null) - empty_tree=4b825dc6 - - id=$(echo $newrev | cut -b-7) - id2=$(echo $oldrev | cut -b-7) - if [ $newrev = $empty ]; then id=$empty_tree; fi - if [ $oldrev = $empty ]; then id2=$empty_tree; fi - - case $receive_mode in - create) - link="$cgit_endpoint/$GIT_SSH_REPO/?h=$h" - ;; - delete) - link="$cgit_endpoint/$GIT_SSH_REPO/ ($h)" - ;; - fast-forward|non-fast-forward) - link="$cgit_endpoint/$GIT_SSH_REPO/diff/?h=$h&id=$id&id2=$id2" - ;; - esac - - #$host $GIT_SSH_REPO $ref $link - add_message $(pink push) $link $(gray "($receive_mode)") - - ${optionalString verbose '' - add_message "$( - git log \ - --format="$(orange %h) %s $(gray '(%ar)')" \ - --reverse \ - $id2..$id - - git diff --stat $id2..$id \ - | sed '$!s/\(+*\)\(-*\)$/'$(green '\1')$(red '\2')'/' - )" - ''} - - done - - if test -n "''${message-}"; then - exec ${pkgs.irc-announce}/bin/irc-announce \ - "$server" \ - "$port" \ - "$nick" \ - "$channel" \ - "$message" - fi - ''; -} diff --git a/krebs/5pkgs/github-hosts-sync/default.nix b/krebs/5pkgs/github-hosts-sync/default.nix deleted file mode 100644 index cdfed468c..000000000 --- a/krebs/5pkgs/github-hosts-sync/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ pkgs, stdenv, ... }: - -stdenv.mkDerivation { - name = "github-hosts-sync"; - - src = pkgs.painload; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = - let - ca-bundle = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; - path = stdenv.lib.makeBinPath (with pkgs; [ - coreutils - findutils - git - gnugrep - gnused - nettools - openssh - socat - ]); - in - '' - mkdir -p $out/bin - - sed \ - 's,^main() {$,&\n export PATH=${path} GIT_SSL_CAINFO=${ca-bundle},' \ - < ./retiolum/scripts/github_hosts_sync/hosts-sync \ - > $out/bin/github-hosts-sync - - chmod +x $out/bin/github-hosts-sync - ''; -} diff --git a/krebs/5pkgs/go-shortener/default.nix b/krebs/5pkgs/go-shortener/default.nix deleted file mode 100644 index 996f7072a..000000000 --- a/krebs/5pkgs/go-shortener/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: - -with lib; - -let - np = (callPackage ) { - generated = ./packages.nix; - self = np; - }; - - node_env = buildEnv { - name = "node_env"; - paths = [ - np.redis - np."formidable" - ]; - pathsToLink = [ "/lib" ]; - ignoreCollisions = true; - }; - -in np.buildNodePackage { - name = "go-shortener"; - - src = fetchgit { - url = "http://cgit.lassul.us/go/"; - rev = "05d02740e0adbb36cc461323647f0c1e7f493156"; - sha256 = "6015c9a93317375ae8099c7ab982df0aa93a59ec2b48972e253887bb6ca0004f"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - deps = (filter (v: nixType v == "derivation") (attrValues np)); - - buildInputs = [ - nodejs - makeWrapper - ]; - - installPhase = '' - mkdir -p $out/bin - - cp index.js $out/ - cat > $out/go << EOF - ${nodejs}/bin/node $out/index.js - EOF - chmod +x $out/go - - wrapProgram $out/go \ - --prefix NODE_PATH : ${node_env}/lib/node_modules - - ln -s $out/go /$out/bin/go - ''; - -} diff --git a/krebs/5pkgs/go-shortener/packages.nix b/krebs/5pkgs/go-shortener/packages.nix deleted file mode 100644 index 9acfd7658..000000000 --- a/krebs/5pkgs/go-shortener/packages.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ self, fetchurl, fetchgit ? null, lib }: - -{ - by-spec."formidable"."*" = - self.by-version."formidable"."1.0.17"; - by-version."formidable"."1.0.17" = self.buildNodePackage { - name = "formidable-1.0.17"; - version = "1.0.17"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz"; - name = "formidable-1.0.17.tgz"; - sha1 = "ef5491490f9433b705faa77249c99029ae348559"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "formidable" = self.by-version."formidable"."1.0.17"; - by-spec."redis"."*" = - self.by-version."redis"."2.1.0"; - by-version."redis"."2.1.0" = self.buildNodePackage { - name = "redis-2.1.0"; - version = "2.1.0"; - bin = false; - src = fetchurl { - url = "http://registry.npmjs.org/redis/-/redis-2.1.0.tgz"; - name = "redis-2.1.0.tgz"; - sha1 = "38acb208f90750250f9451219b73ff08ae907f94"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "redis" = self.by-version."redis"."2.1.0"; -} diff --git a/krebs/5pkgs/goify/default.nix b/krebs/5pkgs/goify/default.nix deleted file mode 100644 index 9c44aaeeb..000000000 --- a/krebs/5pkgs/goify/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: - -pkgs.writeBashBin "goify" '' - set -euf - - GO_HOST=''${GO_HOST:-go} - - while read line; do - echo "$line" | sed 's|https\?://\S*|\n&\n|g' | while read word; do - if echo "$word" | grep -q '^https\?:'; then - ${pkgs.curl}/bin/curl -Ss -F uri="$word" http://"$GO_HOST" \ - | tr -d '\r' - else - echo "$word" - fi - done | grep . | tr '\n' ' '; echo - done -'' diff --git a/krebs/5pkgs/hashPassword/default.nix b/krebs/5pkgs/hashPassword/default.nix deleted file mode 100644 index 3da65ad79..000000000 --- a/krebs/5pkgs/hashPassword/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, pkgs, ... }: - -pkgs.writeDashBin "hashPassword" '' - # usage: hashPassword - set -euf - - export PATH=${lib.makeBinPath (with pkgs; [ - coreutils - mkpasswd - openssl - ])} - - salt=$(openssl rand -base64 16 | tr -d '+=' | head -c 16) - exec mkpasswd -m sha-512 -S "$salt" -'' diff --git a/krebs/5pkgs/htgen/default.nix b/krebs/5pkgs/htgen/default.nix deleted file mode 100644 index 0fca8bdf2..000000000 --- a/krebs/5pkgs/htgen/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ coreutils, dash, fetchgit, gnused, stdenv, ucspi-tcp }: -with import ; -let - version = "1.2.2"; -in stdenv.mkDerivation { - name = "htgen-${version}"; - - src = fetchgit { - url = "http://cgit.krebsco.de/htgen"; - rev = "refs/tags/v${version}"; - sha256 = "0a8vn35vq6pxgk6d3d2cjp0vdxzq9nqf0zgkvnd6668v4cmdf91b"; - }; - - installPhase = '' - mkdir -p $out/bin - { - echo '#! ${dash}/bin/dash' - echo 'export PATH=${makeBinPath [ - coreutils - gnused - ucspi-tcp - ]}''${PATH+":$PATH"}' - sed 's:^Server=htgen$:&/${version}:' htgen - } > $out/bin/htgen - chmod +x $out/bin/htgen - cp -r examples $out - ''; -} diff --git a/krebs/5pkgs/irc-announce/default.nix b/krebs/5pkgs/irc-announce/default.nix deleted file mode 100644 index e1f4919d5..000000000 --- a/krebs/5pkgs/irc-announce/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ pkgs, lib, ... }: - -with lib; - -pkgs.writeDashBin "irc-announce" '' - set -euf - - export PATH=${makeSearchPath "bin" (with pkgs; [ - coreutils - gawk - gnused - netcat - nettools - ])} - - IRC_SERVER=$1 - IRC_PORT=$2 - IRC_NICK=$3$$ - IRC_CHANNEL=$4 - message=$5 - - export IRC_CHANNEL # for privmsg_cat - - # echo2 and cat2 are used output to both, stdout and stderr - # This is used to see what we send to the irc server. (debug output) - echo2() { echo "$*"; echo "$*" >&2; } - cat2() { tee /dev/stderr; } - - # privmsg_cat transforms stdin to a privmsg - privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; } - - # ircin is used to feed the output of netcat back to the "irc client" - # so we can implement expect-like behavior with sed^_^ - # XXX mkselfdestructingtmpfifo would be nice instead of this cruft - tmpdir=$(mktemp --tmpdir -d irc-announce_XXXXXXXX) - cd "$tmpdir" - mkfifo ircin - trap " - rm ircin - cd '$OLDPWD' - rmdir '$tmpdir' - trap - EXIT INT QUIT - " EXIT INT QUIT - - { - echo2 "USER $LOGNAME 0 * :$LOGNAME@$(hostname)" - echo2 "NICK $IRC_NICK" - - # wait for MODE message - sed -n '/^:[^ ]* MODE /q' - - echo2 "JOIN $IRC_CHANNEL" - - printf '%s' "$message" \ - | privmsg_cat \ - | cat2 - - echo2 "PART $IRC_CHANNEL" - - # wait for PART confirmation - sed -n '/:'"$IRC_NICK"'![^ ]* PART /q' - - echo2 'QUIT :Gone to have lunch' - } < ircin \ - | nc "$IRC_SERVER" "$IRC_PORT" | tee -a ircin -'' diff --git a/krebs/5pkgs/kpaste/default.nix b/krebs/5pkgs/kpaste/default.nix deleted file mode 100644 index d6823d584..000000000 --- a/krebs/5pkgs/kpaste/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ curl, writeDashBin }: - -writeDashBin "kpaste" '' - exec ${curl}/bin/curl -sS http://p.r --data-binary @- -'' diff --git a/krebs/5pkgs/krebspaste/default.nix b/krebs/5pkgs/krebspaste/default.nix deleted file mode 100644 index 31ad12780..000000000 --- a/krebs/5pkgs/krebspaste/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ writeDashBin, bepasty-client-cli }: - -# TODO use `execve` instead? -writeDashBin "krebspaste" '' - exec ${bepasty-client-cli}/bin/bepasty-cli -L 1m --url http://paste.r "$@" | sed '$ s/$/\/+inline/g' -'' diff --git a/krebs/5pkgs/krebszones/default.nix b/krebs/5pkgs/krebszones/default.nix deleted file mode 100644 index 9230192bd..000000000 --- a/krebs/5pkgs/krebszones/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, pkgs,python3Packages,fetchurl, ... }: - -# TODO: Prepare a diff of future and current -## ovh-zone export krebsco.de --config ~/secrets/krebs/cfg.json |sed 's/[ ]\+/ /g' | sort current -## sed 's/[ ]\+/ /g'/etc/zones/krebsco.de | sort > future -## diff future.sorted current.sorted - -python3Packages.buildPythonPackage rec { - name = "krebszones-${version}"; - version = "0.4.4"; - propagatedBuildInputs = with pkgs.python3Packages;[ - d2to1 # for setup to work - ovh - docopt - ]; - src = fetchurl { - url = "https://pypi.python.org/packages/source/k/krebszones/krebszones-${version}.tar.gz"; - sha256 = "1bzfc2b9468769j1yj93j12zdlccqbjiqfhql2larximh491sg4d"; - }; - meta = { - homepage = http://krebsco.de/; - description = "OVH Zone Upload"; - license = lib.licenses.wtfpl; - }; -} diff --git a/krebs/5pkgs/logf/default.nix b/krebs/5pkgs/logf/default.nix deleted file mode 100644 index ac95acb33..000000000 --- a/krebs/5pkgs/logf/default.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ lib, pkgs, ... }: - -with import ; - -let - default-host-colors = pkgs.writeJSON "logf.default-host-colors.json" { - }; - default-prio-colors = pkgs.writeJSON "logf.default-prio-colors.json" { - "0" = 196; # emerg - "1" = 160; # alert - "2" = 124; # crit - "3" = 009; # err - "4" = 011; # warning - "5" = 255; # notice - "6" = 250; # info - "7" = 139; # debug - "-" = 005; # undefined priority - }; - default-urgent = pkgs.writeJSON "logf.default-urgent.json" [ - ]; -in - -pkgs.writeDashBin "logf" '' - export LOGF_HOST_COLORS LOGF_PRIO_COLORS LOGF_URGENT - LOGF_HOST_COLORS=$(cat "''${LOGF_HOST_COLORS-${default-host-colors}}") - LOGF_PRIO_COLORS=$(cat "''${LOGF_PRIO_COLORS-${default-prio-colors}}") - LOGF_URGENT=$(cat "''${LOGF_URGENT-${default-urgent}}") - printf '%s\0' "$@" \ - | ${pkgs.findutils}/bin/xargs -0 -P 0 -n 1 ${pkgs.writeDash "logf-remote" '' - target=$1 - target_host=$(echo "$1" | sed 's/^.*@//;s/\..*//') - exec 3>&1 - 2>&1 1>&3 ssh "$target" -T \ - -o PreferredAuthentications=publickey \ - -o StrictHostKeyChecking=yes \ - exec journalctl -af -n 0 -o json \ - | stdbuf -oL jq -Rcf ${pkgs.writeJq "logf-remote-error.jq" '' - { - PRIORITY: "4", - MESSAGE: ., - SYSLOG_IDENTIFIER: env.target_host, - } - ''} - sleep 10m - exec "$0" "$@" - ''} \ - | ${pkgs.jq}/bin/jq -Rrf ${pkgs.writeJq "logf-filter.jq" '' - (env.LOGF_HOST_COLORS | fromjson) as $host_colors | - (env.LOGF_PRIO_COLORS | fromjson) as $prio_colors | - (env.LOGF_URGENT | fromjson | map("(\(.))") | join("|")) - as $urgent_regex | - - def when(c; f): if c then f else . end; - - # anaphoric gsub - def agsub(re; f): - # Don't try empty regex: https://github.com/stedolan/jq/issues/1206 - when(re != ""; gsub("(?\(re))"; .it | f)); - - # :: [int] -> sgr - def sgr: "\u001b[\(map(tostring) | join(";"))m"; - - # :: sgr - def rst: [] | sgr; - - # :: int -> sgr - def fg(i): [38,5,i]|sgr; - # TODO def fg(r;g;b): [38,2,r,g,b]|sgr; - # http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down - - # (sgr; sgr) | (null; any) :: str -> str - def col(a; b): when(a != null; a + . + b); - def col(a): col(a; rst); - - - def p_time: - ._SOURCE_REALTIME_TIMESTAMP - | if . != null then . | fromjson | . / 1000000 else now end - | gmtime - | todateiso8601 - | col(fg(237)); - - def p_host: - ._HOSTNAME - | if . != null then . else "-" end - | col($host_colors[.]|when(. != null; fg(.))); - - def p_ident: - if .SYSLOG_IDENTIFIER != null then .SYSLOG_IDENTIFIER - else ._COMM end - | col(fg(244)); - - def p_message: - fg($prio_colors[if has("PRIORITY") then .PRIORITY else "-" end]) - as $prio_c | - .MESSAGE - | sub("\r$"; "") - | agsub($urgent_regex; "\(.)\u0007" | col(fg(219); $prio_c)) - | col($prio_c); - - try fromjson catch { - _SOURCE_REALTIME_TIMESTAMP: now | tostring | sub("[.]"; ""), - SYSLOG_IDENTIFIER: "logf/journalctl", - MESSAGE: ., - } | - - [ p_time - , p_host - , p_ident - , p_message - ] - | join(" ") - ''} -'' diff --git a/krebs/5pkgs/much/cabal.nix b/krebs/5pkgs/much/cabal.nix deleted file mode 100644 index 09bc7b5df..000000000 --- a/krebs/5pkgs/much/cabal.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ mkDerivation, aeson, attoparsec, base, base64-bytestring -, blaze-builder, blessings, bytestring, case-insensitive -, containers, deepseq, directory, docopt, email-header, fetchgit -, filepath, friendly-time, hyphenation, linebreak, old-locale -, process, random, rosezipper, safe, scanner, split, stdenv -, terminal-size, text, time, transformers, transformers-compat -, unix, vector -}: -mkDerivation { - pname = "much"; - version = "1.1.0"; - src = fetchgit { - url = "http://cgit.ni.krebsco.de/much"; - sha256 = "1325554zymr1dd0clj8c5ygl70c791csvs0hz33jcfr6b8wysdrl"; - rev = "dfec37d848e11c00d9b7f03295af1fc7b0e83ef5"; - }; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - aeson attoparsec base base64-bytestring blaze-builder blessings - bytestring case-insensitive containers deepseq directory docopt - email-header filepath friendly-time hyphenation linebreak - old-locale process random rosezipper safe scanner split - terminal-size text time transformers transformers-compat unix - vector - ]; - license = stdenv.lib.licenses.mit; -} diff --git a/krebs/5pkgs/much/default.nix b/krebs/5pkgs/much/default.nix deleted file mode 100644 index cf55eb537..000000000 --- a/krebs/5pkgs/much/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ haskellPackages, ... }: - -haskellPackages.callPackage ./cabal.nix {} diff --git a/krebs/5pkgs/netcup/default.nix b/krebs/5pkgs/netcup/default.nix deleted file mode 100644 index d1f46299d..000000000 --- a/krebs/5pkgs/netcup/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ coreutils, curl, fetchgit, gawk, gnugrep, gnused, jq, stdenv, w3m, ... }: -with import ; -let - readJSON = path: fromJSON (readFile path); - sed.escape = replaceChars ["/"] ["\\/"]; # close enough - PATH = makeBinPath [ - coreutils - curl - gawk - gnugrep - gnused - jq - w3m - ]; -in -stdenv.mkDerivation { - name = "netcup-1.0.0"; - src = fetchgit { - url = "http://cgit.ni.krebsco.de/netcup"; - rev = "refs/tags/v1.0.0"; - sha256 = "1rn7bncfhjw0bqjbvj38m7lks4nyf5qcvkj9dg0zr99ba6dylzx5"; - }; - phases = [ "unpackPhase" "patchPhase" "installPhase" ]; - patchPhase = '' - path=${shell.escape (sed.escape PATH)} - sed -i "1s/.*/&\nPATH=$path/" vcp - ''; - installPhase = '' - mkdir -p $out/bin - cp vcp $out/bin - ''; -} diff --git a/krebs/5pkgs/newsbot-js/default.nix b/krebs/5pkgs/newsbot-js/default.nix deleted file mode 100644 index b52454ca4..000000000 --- a/krebs/5pkgs/newsbot-js/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: - -with lib; - -let - np = (callPackage ) { - generated = ./packages.nix; - self = np; - }; - - node_env = buildEnv { - name = "node_env"; - paths = [ - np.feedparser - np.form-data - np.irc - np.request - np.shell-quote - ]; - pathsToLink = [ "/lib" ]; - ignoreCollisions = true; - }; - -in np.buildNodePackage { - name = "newsbot-js"; - - src = fetchgit { - url = "http://cgit.prism/newsbot-js/"; - rev = "09e01639be4ea9691cf5b33f7d9057b68ac98079"; - sha256 = "28ffbed66c2efcd194c47823c7d5d5533c80852fc0cf9d9d4ee609c71d50c142"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - deps = (filter (v: nixType v == "derivation") (attrValues np)); - - buildInputs = [ - nodejs - makeWrapper - ]; - - installPhase = '' - mkdir -p $out/bin - - cp newsbot.js $out/ - cat > $out/newsbot << EOF - ${nodejs}/bin/node $out/newsbot.js - EOF - chmod +x $out/newsbot - - wrapProgram $out/newsbot \ - --prefix NODE_PATH : ${node_env}/lib/node_modules - - ln -s $out/newsbot /$out/bin/newsbot - ''; - -} diff --git a/krebs/5pkgs/newsbot-js/packages.nix b/krebs/5pkgs/newsbot-js/packages.nix deleted file mode 100644 index 62921cb8f..000000000 --- a/krebs/5pkgs/newsbot-js/packages.nix +++ /dev/null @@ -1,1747 +0,0 @@ -{ self, fetchurl, fetchgit ? null, lib }: - -{ - by-spec."addressparser"."^1.0.1" = - self.by-version."addressparser"."1.0.1"; - by-version."addressparser"."1.0.1" = self.buildNodePackage { - name = "addressparser-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz"; - name = "addressparser-1.0.1.tgz"; - sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ansi-regex"."^2.0.0" = - self.by-version."ansi-regex"."2.1.1"; - by-version."ansi-regex"."2.1.1" = self.buildNodePackage { - name = "ansi-regex-2.1.1"; - version = "2.1.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; - name = "ansi-regex-2.1.1.tgz"; - sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ansi-styles"."^2.2.1" = - self.by-version."ansi-styles"."2.2.1"; - by-version."ansi-styles"."2.2.1" = self.buildNodePackage { - name = "ansi-styles-2.2.1"; - version = "2.2.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; - name = "ansi-styles-2.2.1.tgz"; - sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."array-filter"."~0.0.0" = - self.by-version."array-filter"."0.0.1"; - by-version."array-filter"."0.0.1" = self.buildNodePackage { - name = "array-filter-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz"; - name = "array-filter-0.0.1.tgz"; - sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."array-indexofobject"."~0.0.1" = - self.by-version."array-indexofobject"."0.0.1"; - by-version."array-indexofobject"."0.0.1" = self.buildNodePackage { - name = "array-indexofobject-0.0.1"; - version = "0.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz"; - name = "array-indexofobject-0.0.1.tgz"; - sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."array-map"."~0.0.0" = - self.by-version."array-map"."0.0.0"; - by-version."array-map"."0.0.0" = self.buildNodePackage { - name = "array-map-0.0.0"; - version = "0.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"; - name = "array-map-0.0.0.tgz"; - sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."array-reduce"."~0.0.0" = - self.by-version."array-reduce"."0.0.0"; - by-version."array-reduce"."0.0.0" = self.buildNodePackage { - name = "array-reduce-0.0.0"; - version = "0.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"; - name = "array-reduce-0.0.0.tgz"; - sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."asn1"."~0.2.3" = - self.by-version."asn1"."0.2.3"; - by-version."asn1"."0.2.3" = self.buildNodePackage { - name = "asn1-0.2.3"; - version = "0.2.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"; - name = "asn1-0.2.3.tgz"; - sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."assert-plus"."^0.2.0" = - self.by-version."assert-plus"."0.2.0"; - by-version."assert-plus"."0.2.0" = self.buildNodePackage { - name = "assert-plus-0.2.0"; - version = "0.2.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"; - name = "assert-plus-0.2.0.tgz"; - sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."assert-plus"."^1.0.0" = - self.by-version."assert-plus"."1.0.0"; - by-version."assert-plus"."1.0.0" = self.buildNodePackage { - name = "assert-plus-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; - name = "assert-plus-1.0.0.tgz"; - sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."asynckit"."^0.4.0" = - self.by-version."asynckit"."0.4.0"; - by-version."asynckit"."0.4.0" = self.buildNodePackage { - name = "asynckit-0.4.0"; - version = "0.4.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; - name = "asynckit-0.4.0.tgz"; - sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."aws-sign2"."~0.6.0" = - self.by-version."aws-sign2"."0.6.0"; - by-version."aws-sign2"."0.6.0" = self.buildNodePackage { - name = "aws-sign2-0.6.0"; - version = "0.6.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"; - name = "aws-sign2-0.6.0.tgz"; - sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."aws4"."^1.2.1" = - self.by-version."aws4"."1.5.0"; - by-version."aws4"."1.5.0" = self.buildNodePackage { - name = "aws4-1.5.0"; - version = "1.5.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz"; - name = "aws4-1.5.0.tgz"; - sha1 = "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."bcrypt-pbkdf"."^1.0.0" = - self.by-version."bcrypt-pbkdf"."1.0.1"; - by-version."bcrypt-pbkdf"."1.0.1" = self.buildNodePackage { - name = "bcrypt-pbkdf-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"; - name = "bcrypt-pbkdf-1.0.1.tgz"; - sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; - }; - deps = { - "tweetnacl-0.14.5" = self.by-version."tweetnacl"."0.14.5"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."boom"."2.x.x" = - self.by-version."boom"."2.10.1"; - by-version."boom"."2.10.1" = self.buildNodePackage { - name = "boom-2.10.1"; - version = "2.10.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"; - name = "boom-2.10.1.tgz"; - sha1 = "39c8918ceff5799f83f9492a848f625add0c766f"; - }; - deps = { - "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."buffer-shims"."^1.0.0" = - self.by-version."buffer-shims"."1.0.0"; - by-version."buffer-shims"."1.0.0" = self.buildNodePackage { - name = "buffer-shims-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"; - name = "buffer-shims-1.0.0.tgz"; - sha1 = "9978ce317388c649ad8793028c3477ef044a8b51"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."caseless"."~0.11.0" = - self.by-version."caseless"."0.11.0"; - by-version."caseless"."0.11.0" = self.buildNodePackage { - name = "caseless-0.11.0"; - version = "0.11.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"; - name = "caseless-0.11.0.tgz"; - sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."chalk"."^1.1.1" = - self.by-version."chalk"."1.1.3"; - by-version."chalk"."1.1.3" = self.buildNodePackage { - name = "chalk-1.1.3"; - version = "1.1.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; - name = "chalk-1.1.3.tgz"; - sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; - }; - deps = { - "ansi-styles-2.2.1" = self.by-version."ansi-styles"."2.2.1"; - "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5"; - "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0"; - "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1"; - "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."combined-stream"."^1.0.5" = - self.by-version."combined-stream"."1.0.5"; - by-version."combined-stream"."1.0.5" = self.buildNodePackage { - name = "combined-stream-1.0.5"; - version = "1.0.5"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"; - name = "combined-stream-1.0.5.tgz"; - sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; - }; - deps = { - "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."combined-stream"."~1.0.5" = - self.by-version."combined-stream"."1.0.5"; - by-spec."commander"."^2.9.0" = - self.by-version."commander"."2.9.0"; - by-version."commander"."2.9.0" = self.buildNodePackage { - name = "commander-2.9.0"; - version = "2.9.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"; - name = "commander-2.9.0.tgz"; - sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4"; - }; - deps = { - "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."core-util-is"."~1.0.0" = - self.by-version."core-util-is"."1.0.2"; - by-version."core-util-is"."1.0.2" = self.buildNodePackage { - name = "core-util-is-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; - name = "core-util-is-1.0.2.tgz"; - sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."cryptiles"."2.x.x" = - self.by-version."cryptiles"."2.0.5"; - by-version."cryptiles"."2.0.5" = self.buildNodePackage { - name = "cryptiles-2.0.5"; - version = "2.0.5"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"; - name = "cryptiles-2.0.5.tgz"; - sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8"; - }; - deps = { - "boom-2.10.1" = self.by-version."boom"."2.10.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."dashdash"."^1.12.0" = - self.by-version."dashdash"."1.14.1"; - by-version."dashdash"."1.14.1" = self.buildNodePackage { - name = "dashdash-1.14.1"; - version = "1.14.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; - name = "dashdash-1.14.1.tgz"; - sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; - }; - deps = { - "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."delayed-stream"."~1.0.0" = - self.by-version."delayed-stream"."1.0.0"; - by-version."delayed-stream"."1.0.0" = self.buildNodePackage { - name = "delayed-stream-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; - name = "delayed-stream-1.0.0.tgz"; - sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."ecc-jsbn"."~0.1.1" = - self.by-version."ecc-jsbn"."0.1.1"; - by-version."ecc-jsbn"."0.1.1" = self.buildNodePackage { - name = "ecc-jsbn-0.1.1"; - version = "0.1.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; - name = "ecc-jsbn-0.1.1.tgz"; - sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; - }; - deps = { - "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."escape-string-regexp"."^1.0.2" = - self.by-version."escape-string-regexp"."1.0.5"; - by-version."escape-string-regexp"."1.0.5" = self.buildNodePackage { - name = "escape-string-regexp-1.0.5"; - version = "1.0.5"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; - name = "escape-string-regexp-1.0.5.tgz"; - sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."extend"."~3.0.0" = - self.by-version."extend"."3.0.0"; - by-version."extend"."3.0.0" = self.buildNodePackage { - name = "extend-3.0.0"; - version = "3.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"; - name = "extend-3.0.0.tgz"; - sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."extsprintf"."1.0.2" = - self.by-version."extsprintf"."1.0.2"; - by-version."extsprintf"."1.0.2" = self.buildNodePackage { - name = "extsprintf-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"; - name = "extsprintf-1.0.2.tgz"; - sha1 = "e1080e0658e300b06294990cc70e1502235fd550"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."feedparser"."*" = - self.by-version."feedparser"."2.1.0"; - by-version."feedparser"."2.1.0" = self.buildNodePackage { - name = "feedparser-2.1.0"; - version = "2.1.0"; - bin = true; - src = fetchurl { - url = "https://registry.npmjs.org/feedparser/-/feedparser-2.1.0.tgz"; - name = "feedparser-2.1.0.tgz"; - sha1 = "4cd98bf04e18db5b8644f91e98da89dd179f1fe7"; - }; - deps = { - "addressparser-1.0.1" = self.by-version."addressparser"."1.0.1"; - "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1"; - "lodash.assign-4.2.0" = self.by-version."lodash.assign"."4.2.0"; - "lodash.get-4.4.2" = self.by-version."lodash.get"."4.4.2"; - "lodash.has-4.5.2" = self.by-version."lodash.has"."4.5.2"; - "lodash.uniq-4.5.0" = self.by-version."lodash.uniq"."4.5.0"; - "readable-stream-2.2.2" = self.by-version."readable-stream"."2.2.2"; - "sax-1.2.1" = self.by-version."sax"."1.2.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "feedparser" = self.by-version."feedparser"."2.1.0"; - by-spec."forever-agent"."~0.6.1" = - self.by-version."forever-agent"."0.6.1"; - by-version."forever-agent"."0.6.1" = self.buildNodePackage { - name = "forever-agent-0.6.1"; - version = "0.6.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; - name = "forever-agent-0.6.1.tgz"; - sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."form-data"."*" = - self.by-version."form-data"."2.1.2"; - by-version."form-data"."2.1.2" = self.buildNodePackage { - name = "form-data-2.1.2"; - version = "2.1.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz"; - name = "form-data-2.1.2.tgz"; - sha1 = "89c3534008b97eada4cbb157d58f6f5df025eae4"; - }; - deps = { - "asynckit-0.4.0" = self.by-version."asynckit"."0.4.0"; - "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; - "mime-types-2.1.14" = self.by-version."mime-types"."2.1.14"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "form-data" = self.by-version."form-data"."2.1.2"; - by-spec."form-data"."~2.1.1" = - self.by-version."form-data"."2.1.2"; - by-spec."generate-function"."^2.0.0" = - self.by-version."generate-function"."2.0.0"; - by-version."generate-function"."2.0.0" = self.buildNodePackage { - name = "generate-function-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"; - name = "generate-function-2.0.0.tgz"; - sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."generate-object-property"."^1.1.0" = - self.by-version."generate-object-property"."1.2.0"; - by-version."generate-object-property"."1.2.0" = self.buildNodePackage { - name = "generate-object-property-1.2.0"; - version = "1.2.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"; - name = "generate-object-property-1.2.0.tgz"; - sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0"; - }; - deps = { - "is-property-1.0.2" = self.by-version."is-property"."1.0.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."getpass"."^0.1.1" = - self.by-version."getpass"."0.1.6"; - by-version."getpass"."0.1.6" = self.buildNodePackage { - name = "getpass-0.1.6"; - version = "0.1.6"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz"; - name = "getpass-0.1.6.tgz"; - sha1 = "283ffd9fc1256840875311c1b60e8c40187110e6"; - }; - deps = { - "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."graceful-readlink".">= 1.0.0" = - self.by-version."graceful-readlink"."1.0.1"; - by-version."graceful-readlink"."1.0.1" = self.buildNodePackage { - name = "graceful-readlink-1.0.1"; - version = "1.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; - name = "graceful-readlink-1.0.1.tgz"; - sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."har-validator"."~2.0.6" = - self.by-version."har-validator"."2.0.6"; - by-version."har-validator"."2.0.6" = self.buildNodePackage { - name = "har-validator-2.0.6"; - version = "2.0.6"; - bin = true; - src = fetchurl { - url = "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz"; - name = "har-validator-2.0.6.tgz"; - sha1 = "cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"; - }; - deps = { - "chalk-1.1.3" = self.by-version."chalk"."1.1.3"; - "commander-2.9.0" = self.by-version."commander"."2.9.0"; - "is-my-json-valid-2.15.0" = self.by-version."is-my-json-valid"."2.15.0"; - "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."has-ansi"."^2.0.0" = - self.by-version."has-ansi"."2.0.0"; - by-version."has-ansi"."2.0.0" = self.buildNodePackage { - name = "has-ansi-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; - name = "has-ansi-2.0.0.tgz"; - sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; - }; - deps = { - "ansi-regex-2.1.1" = self.by-version."ansi-regex"."2.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hawk"."~3.1.3" = - self.by-version."hawk"."3.1.3"; - by-version."hawk"."3.1.3" = self.buildNodePackage { - name = "hawk-3.1.3"; - version = "3.1.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"; - name = "hawk-3.1.3.tgz"; - sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4"; - }; - deps = { - "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; - "boom-2.10.1" = self.by-version."boom"."2.10.1"; - "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5"; - "sntp-1.0.9" = self.by-version."sntp"."1.0.9"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."hoek"."2.x.x" = - self.by-version."hoek"."2.16.3"; - by-version."hoek"."2.16.3" = self.buildNodePackage { - name = "hoek-2.16.3"; - version = "2.16.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"; - name = "hoek-2.16.3.tgz"; - sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."http-signature"."~1.1.0" = - self.by-version."http-signature"."1.1.1"; - by-version."http-signature"."1.1.1" = self.buildNodePackage { - name = "http-signature-1.1.1"; - version = "1.1.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz"; - name = "http-signature-1.1.1.tgz"; - sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf"; - }; - deps = { - "assert-plus-0.2.0" = self.by-version."assert-plus"."0.2.0"; - "jsprim-1.3.1" = self.by-version."jsprim"."1.3.1"; - "sshpk-1.10.2" = self.by-version."sshpk"."1.10.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."iconv"."~2.2.1" = - self.by-version."iconv"."2.2.1"; - by-version."iconv"."2.2.1" = self.buildNodePackage { - name = "iconv-2.2.1"; - version = "2.2.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/iconv/-/iconv-2.2.1.tgz"; - name = "iconv-2.2.1.tgz"; - sha1 = "39b13fdd98987d26aef26c0a2f2a900911fa4584"; - }; - deps = { - "nan-2.5.1" = self.by-version."nan"."2.5.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."inherits"."~2.0.1" = - self.by-version."inherits"."2.0.3"; - by-version."inherits"."2.0.3" = self.buildNodePackage { - name = "inherits-2.0.3"; - version = "2.0.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; - name = "inherits-2.0.3.tgz"; - sha1 = "633c2c83e3da42a502f52466022480f4208261de"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."irc"."*" = - self.by-version."irc"."0.5.2"; - by-version."irc"."0.5.2" = self.buildNodePackage { - name = "irc-0.5.2"; - version = "0.5.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz"; - name = "irc-0.5.2.tgz"; - sha1 = "3714f4768365a96d0b2f776bc91166beb2464bbc"; - }; - deps = { - "irc-colors-1.3.1" = self.by-version."irc-colors"."1.3.1"; - }; - optionalDependencies = { - "iconv-2.2.1" = self.by-version."iconv"."2.2.1"; - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "irc" = self.by-version."irc"."0.5.2"; - by-spec."irc-colors"."^1.1.0" = - self.by-version."irc-colors"."1.3.1"; - by-version."irc-colors"."1.3.1" = self.buildNodePackage { - name = "irc-colors-1.3.1"; - version = "1.3.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.3.1.tgz"; - name = "irc-colors-1.3.1.tgz"; - sha1 = "a6fccee5d9ecdc010c2b1cde3fbdff1f7134aff6"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-my-json-valid"."^2.12.4" = - self.by-version."is-my-json-valid"."2.15.0"; - by-version."is-my-json-valid"."2.15.0" = self.buildNodePackage { - name = "is-my-json-valid-2.15.0"; - version = "2.15.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz"; - name = "is-my-json-valid-2.15.0.tgz"; - sha1 = "936edda3ca3c211fd98f3b2d3e08da43f7b2915b"; - }; - deps = { - "generate-function-2.0.0" = self.by-version."generate-function"."2.0.0"; - "generate-object-property-1.2.0" = self.by-version."generate-object-property"."1.2.0"; - "jsonpointer-4.0.1" = self.by-version."jsonpointer"."4.0.1"; - "xtend-4.0.1" = self.by-version."xtend"."4.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-property"."^1.0.0" = - self.by-version."is-property"."1.0.2"; - by-version."is-property"."1.0.2" = self.buildNodePackage { - name = "is-property-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"; - name = "is-property-1.0.2.tgz"; - sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."is-typedarray"."~1.0.0" = - self.by-version."is-typedarray"."1.0.0"; - by-version."is-typedarray"."1.0.0" = self.buildNodePackage { - name = "is-typedarray-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; - name = "is-typedarray-1.0.0.tgz"; - sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."isarray"."~1.0.0" = - self.by-version."isarray"."1.0.0"; - by-version."isarray"."1.0.0" = self.buildNodePackage { - name = "isarray-1.0.0"; - version = "1.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; - name = "isarray-1.0.0.tgz"; - sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."isstream"."~0.1.2" = - self.by-version."isstream"."0.1.2"; - by-version."isstream"."0.1.2" = self.buildNodePackage { - name = "isstream-0.1.2"; - version = "0.1.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; - name = "isstream-0.1.2.tgz"; - sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jodid25519"."^1.0.0" = - self.by-version."jodid25519"."1.0.2"; - by-version."jodid25519"."1.0.2" = self.buildNodePackage { - name = "jodid25519-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"; - name = "jodid25519-1.0.2.tgz"; - sha1 = "06d4912255093419477d425633606e0e90782967"; - }; - deps = { - "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jsbn"."~0.1.0" = - self.by-version."jsbn"."0.1.0"; - by-version."jsbn"."0.1.0" = self.buildNodePackage { - name = "jsbn-0.1.0"; - version = "0.1.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"; - name = "jsbn-0.1.0.tgz"; - sha1 = "650987da0dd74f4ebf5a11377a2aa2d273e97dfd"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."json-schema"."0.2.3" = - self.by-version."json-schema"."0.2.3"; - by-version."json-schema"."0.2.3" = self.buildNodePackage { - name = "json-schema-0.2.3"; - version = "0.2.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; - name = "json-schema-0.2.3.tgz"; - sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."json-stringify-safe"."~5.0.1" = - self.by-version."json-stringify-safe"."5.0.1"; - by-version."json-stringify-safe"."5.0.1" = self.buildNodePackage { - name = "json-stringify-safe-5.0.1"; - version = "5.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; - name = "json-stringify-safe-5.0.1.tgz"; - sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jsonify"."~0.0.0" = - self.by-version."jsonify"."0.0.0"; - by-version."jsonify"."0.0.0" = self.buildNodePackage { - name = "jsonify-0.0.0"; - version = "0.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"; - name = "jsonify-0.0.0.tgz"; - sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jsonpointer"."^4.0.0" = - self.by-version."jsonpointer"."4.0.1"; - by-version."jsonpointer"."4.0.1" = self.buildNodePackage { - name = "jsonpointer-4.0.1"; - version = "4.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz"; - name = "jsonpointer-4.0.1.tgz"; - sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."jsprim"."^1.2.2" = - self.by-version."jsprim"."1.3.1"; - by-version."jsprim"."1.3.1" = self.buildNodePackage { - name = "jsprim-1.3.1"; - version = "1.3.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz"; - name = "jsprim-1.3.1.tgz"; - sha1 = "2a7256f70412a29ee3670aaca625994c4dcff252"; - }; - deps = { - "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2"; - "json-schema-0.2.3" = self.by-version."json-schema"."0.2.3"; - "verror-1.3.6" = self.by-version."verror"."1.3.6"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lodash.assign"."^4.2.0" = - self.by-version."lodash.assign"."4.2.0"; - by-version."lodash.assign"."4.2.0" = self.buildNodePackage { - name = "lodash.assign-4.2.0"; - version = "4.2.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz"; - name = "lodash.assign-4.2.0.tgz"; - sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lodash.get"."^4.4.2" = - self.by-version."lodash.get"."4.4.2"; - by-version."lodash.get"."4.4.2" = self.buildNodePackage { - name = "lodash.get-4.4.2"; - version = "4.4.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"; - name = "lodash.get-4.4.2.tgz"; - sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lodash.has"."^4.5.2" = - self.by-version."lodash.has"."4.5.2"; - by-version."lodash.has"."4.5.2" = self.buildNodePackage { - name = "lodash.has-4.5.2"; - version = "4.5.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz"; - name = "lodash.has-4.5.2.tgz"; - sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."lodash.uniq"."^4.5.0" = - self.by-version."lodash.uniq"."4.5.0"; - by-version."lodash.uniq"."4.5.0" = self.buildNodePackage { - name = "lodash.uniq-4.5.0"; - version = "4.5.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; - name = "lodash.uniq-4.5.0.tgz"; - sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-db"."~1.26.0" = - self.by-version."mime-db"."1.26.0"; - by-version."mime-db"."1.26.0" = self.buildNodePackage { - name = "mime-db-1.26.0"; - version = "1.26.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - name = "mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-types"."^2.1.12" = - self.by-version."mime-types"."2.1.14"; - by-version."mime-types"."2.1.14" = self.buildNodePackage { - name = "mime-types-2.1.14"; - version = "2.1.14"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - name = "mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; - }; - deps = { - "mime-db-1.26.0" = self.by-version."mime-db"."1.26.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."mime-types"."~2.1.7" = - self.by-version."mime-types"."2.1.14"; - by-spec."nan"."^2.3.3" = - self.by-version."nan"."2.5.1"; - by-version."nan"."2.5.1" = self.buildNodePackage { - name = "nan-2.5.1"; - version = "2.5.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz"; - name = "nan-2.5.1.tgz"; - sha1 = "d5b01691253326a97a2bbee9e61c55d8d60351e2"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."nan"."^2.3.5" = - self.by-version."nan"."2.5.1"; - by-spec."oauth-sign"."~0.8.1" = - self.by-version."oauth-sign"."0.8.2"; - by-version."oauth-sign"."0.8.2" = self.buildNodePackage { - name = "oauth-sign-0.8.2"; - version = "0.8.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"; - name = "oauth-sign-0.8.2.tgz"; - sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."pinkie"."^2.0.0" = - self.by-version."pinkie"."2.0.4"; - by-version."pinkie"."2.0.4" = self.buildNodePackage { - name = "pinkie-2.0.4"; - version = "2.0.4"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; - name = "pinkie-2.0.4.tgz"; - sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."pinkie-promise"."^2.0.0" = - self.by-version."pinkie-promise"."2.0.1"; - by-version."pinkie-promise"."2.0.1" = self.buildNodePackage { - name = "pinkie-promise-2.0.1"; - version = "2.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; - name = "pinkie-promise-2.0.1.tgz"; - sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; - }; - deps = { - "pinkie-2.0.4" = self.by-version."pinkie"."2.0.4"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."process-nextick-args"."~1.0.6" = - self.by-version."process-nextick-args"."1.0.7"; - by-version."process-nextick-args"."1.0.7" = self.buildNodePackage { - name = "process-nextick-args-1.0.7"; - version = "1.0.7"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"; - name = "process-nextick-args-1.0.7.tgz"; - sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."punycode"."^1.4.1" = - self.by-version."punycode"."1.4.1"; - by-version."punycode"."1.4.1" = self.buildNodePackage { - name = "punycode-1.4.1"; - version = "1.4.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; - name = "punycode-1.4.1.tgz"; - sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."qs"."~6.3.0" = - self.by-version."qs"."6.3.0"; - by-version."qs"."6.3.0" = self.buildNodePackage { - name = "qs-6.3.0"; - version = "6.3.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz"; - name = "qs-6.3.0.tgz"; - sha1 = "f403b264f23bc01228c74131b407f18d5ea5d442"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."readable-stream"."^2.2.2" = - self.by-version."readable-stream"."2.2.2"; - by-version."readable-stream"."2.2.2" = self.buildNodePackage { - name = "readable-stream-2.2.2"; - version = "2.2.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"; - name = "readable-stream-2.2.2.tgz"; - sha1 = "a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"; - }; - deps = { - "buffer-shims-1.0.0" = self.by-version."buffer-shims"."1.0.0"; - "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2"; - "isarray-1.0.0" = self.by-version."isarray"."1.0.0"; - "inherits-2.0.3" = self.by-version."inherits"."2.0.3"; - "process-nextick-args-1.0.7" = self.by-version."process-nextick-args"."1.0.7"; - "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31"; - "util-deprecate-1.0.2" = self.by-version."util-deprecate"."1.0.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."request"."*" = - self.by-version."request"."2.79.0"; - by-version."request"."2.79.0" = self.buildNodePackage { - name = "request-2.79.0"; - version = "2.79.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/request/-/request-2.79.0.tgz"; - name = "request-2.79.0.tgz"; - sha1 = "4dfe5bf6be8b8cdc37fcf93e04b65577722710de"; - }; - deps = { - "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0"; - "aws4-1.5.0" = self.by-version."aws4"."1.5.0"; - "caseless-0.11.0" = self.by-version."caseless"."0.11.0"; - "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; - "extend-3.0.0" = self.by-version."extend"."3.0.0"; - "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1"; - "form-data-2.1.2" = self.by-version."form-data"."2.1.2"; - "har-validator-2.0.6" = self.by-version."har-validator"."2.0.6"; - "hawk-3.1.3" = self.by-version."hawk"."3.1.3"; - "http-signature-1.1.1" = self.by-version."http-signature"."1.1.1"; - "is-typedarray-1.0.0" = self.by-version."is-typedarray"."1.0.0"; - "isstream-0.1.2" = self.by-version."isstream"."0.1.2"; - "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1"; - "mime-types-2.1.14" = self.by-version."mime-types"."2.1.14"; - "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2"; - "qs-6.3.0" = self.by-version."qs"."6.3.0"; - "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5"; - "tough-cookie-2.3.2" = self.by-version."tough-cookie"."2.3.2"; - "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3"; - "uuid-3.0.1" = self.by-version."uuid"."3.0.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "request" = self.by-version."request"."2.79.0"; - by-spec."sax"."^1.2.1" = - self.by-version."sax"."1.2.1"; - by-version."sax"."1.2.1" = self.buildNodePackage { - name = "sax-1.2.1"; - version = "1.2.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz"; - name = "sax-1.2.1.tgz"; - sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."shell-quote"."*" = - self.by-version."shell-quote"."1.6.1"; - by-version."shell-quote"."1.6.1" = self.buildNodePackage { - name = "shell-quote-1.6.1"; - version = "1.6.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz"; - name = "shell-quote-1.6.1.tgz"; - sha1 = "f4781949cce402697127430ea3b3c5476f481767"; - }; - deps = { - "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0"; - "array-filter-0.0.1" = self.by-version."array-filter"."0.0.1"; - "array-reduce-0.0.0" = self.by-version."array-reduce"."0.0.0"; - "array-map-0.0.0" = self.by-version."array-map"."0.0.0"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - "shell-quote" = self.by-version."shell-quote"."1.6.1"; - by-spec."sntp"."1.x.x" = - self.by-version."sntp"."1.0.9"; - by-version."sntp"."1.0.9" = self.buildNodePackage { - name = "sntp-1.0.9"; - version = "1.0.9"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"; - name = "sntp-1.0.9.tgz"; - sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198"; - }; - deps = { - "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."sshpk"."^1.7.0" = - self.by-version."sshpk"."1.10.2"; - by-version."sshpk"."1.10.2" = self.buildNodePackage { - name = "sshpk-1.10.2"; - version = "1.10.2"; - bin = true; - src = fetchurl { - url = "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz"; - name = "sshpk-1.10.2.tgz"; - sha1 = "d5a804ce22695515638e798dbe23273de070a5fa"; - }; - deps = { - "asn1-0.2.3" = self.by-version."asn1"."0.2.3"; - "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; - "dashdash-1.14.1" = self.by-version."dashdash"."1.14.1"; - "getpass-0.1.6" = self.by-version."getpass"."0.1.6"; - }; - optionalDependencies = { - "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; - "tweetnacl-0.14.5" = self.by-version."tweetnacl"."0.14.5"; - "jodid25519-1.0.2" = self.by-version."jodid25519"."1.0.2"; - "ecc-jsbn-0.1.1" = self.by-version."ecc-jsbn"."0.1.1"; - "bcrypt-pbkdf-1.0.1" = self.by-version."bcrypt-pbkdf"."1.0.1"; - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."string_decoder"."~0.10.x" = - self.by-version."string_decoder"."0.10.31"; - by-version."string_decoder"."0.10.31" = self.buildNodePackage { - name = "string_decoder-0.10.31"; - version = "0.10.31"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; - name = "string_decoder-0.10.31.tgz"; - sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."stringstream"."~0.0.4" = - self.by-version."stringstream"."0.0.5"; - by-version."stringstream"."0.0.5" = self.buildNodePackage { - name = "stringstream-0.0.5"; - version = "0.0.5"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"; - name = "stringstream-0.0.5.tgz"; - sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."strip-ansi"."^3.0.0" = - self.by-version."strip-ansi"."3.0.1"; - by-version."strip-ansi"."3.0.1" = self.buildNodePackage { - name = "strip-ansi-3.0.1"; - version = "3.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; - name = "strip-ansi-3.0.1.tgz"; - sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; - }; - deps = { - "ansi-regex-2.1.1" = self.by-version."ansi-regex"."2.1.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."supports-color"."^2.0.0" = - self.by-version."supports-color"."2.0.0"; - by-version."supports-color"."2.0.0" = self.buildNodePackage { - name = "supports-color-2.0.0"; - version = "2.0.0"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; - name = "supports-color-2.0.0.tgz"; - sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tough-cookie"."~2.3.0" = - self.by-version."tough-cookie"."2.3.2"; - by-version."tough-cookie"."2.3.2" = self.buildNodePackage { - name = "tough-cookie-2.3.2"; - version = "2.3.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"; - name = "tough-cookie-2.3.2.tgz"; - sha1 = "f081f76e4c85720e6c37a5faced737150d84072a"; - }; - deps = { - "punycode-1.4.1" = self.by-version."punycode"."1.4.1"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tunnel-agent"."~0.4.1" = - self.by-version."tunnel-agent"."0.4.3"; - by-version."tunnel-agent"."0.4.3" = self.buildNodePackage { - name = "tunnel-agent-0.4.3"; - version = "0.4.3"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz"; - name = "tunnel-agent-0.4.3.tgz"; - sha1 = "6373db76909fe570e08d73583365ed828a74eeeb"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tweetnacl"."^0.14.3" = - self.by-version."tweetnacl"."0.14.5"; - by-version."tweetnacl"."0.14.5" = self.buildNodePackage { - name = "tweetnacl-0.14.5"; - version = "0.14.5"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; - name = "tweetnacl-0.14.5.tgz"; - sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."tweetnacl"."~0.14.0" = - self.by-version."tweetnacl"."0.14.5"; - by-spec."util-deprecate"."~1.0.1" = - self.by-version."util-deprecate"."1.0.2"; - by-version."util-deprecate"."1.0.2" = self.buildNodePackage { - name = "util-deprecate-1.0.2"; - version = "1.0.2"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; - name = "util-deprecate-1.0.2.tgz"; - sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."uuid"."^3.0.0" = - self.by-version."uuid"."3.0.1"; - by-version."uuid"."3.0.1" = self.buildNodePackage { - name = "uuid-3.0.1"; - version = "3.0.1"; - bin = true; - src = fetchurl { - url = "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"; - name = "uuid-3.0.1.tgz"; - sha1 = "6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."verror"."1.3.6" = - self.by-version."verror"."1.3.6"; - by-version."verror"."1.3.6" = self.buildNodePackage { - name = "verror-1.3.6"; - version = "1.3.6"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"; - name = "verror-1.3.6.tgz"; - sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c"; - }; - deps = { - "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2"; - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; - by-spec."xtend"."^4.0.0" = - self.by-version."xtend"."4.0.1"; - by-version."xtend"."4.0.1" = self.buildNodePackage { - name = "xtend-4.0.1"; - version = "4.0.1"; - bin = false; - src = fetchurl { - url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"; - name = "xtend-4.0.1.tgz"; - sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; - }; - deps = { - }; - optionalDependencies = { - }; - peerDependencies = []; - os = [ ]; - cpu = [ ]; - }; -} diff --git a/krebs/5pkgs/noVNC/default.nix b/krebs/5pkgs/noVNC/default.nix deleted file mode 100644 index 45c3afb3a..000000000 --- a/krebs/5pkgs/noVNC/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ fetchgit, lib, stdenv, ... }: -with builtins; -with lib; -stdenv.mkDerivation rec { - name = "${baseNameOf src.name}-${removePrefix "refs/tags/v" src.rev}"; - - src = fetchgit { - url = https://github.com/kanaka/noVNC; - rev = "refs/tags/v0.5.1"; - sha256 = "1vckvvfcawgfqmx415r5rnl6k2alx53jbqmsj49kxpbdvvxpb49d"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - cp -R . $out - ''; -} diff --git a/krebs/5pkgs/painload/default.nix b/krebs/5pkgs/painload/default.nix deleted file mode 100644 index 136ec4394..000000000 --- a/krebs/5pkgs/painload/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ fetchgit, ... }: - -fetchgit { - url = https://github.com/krebscode/painload; - rev = "c113487f73713a03b1a139b22bb34b86234d0495"; - sha256 = "1irxklnmvm8wsa70ypjahkr8rfqq7357vcy8r0x1sfncs1hy6gr6"; -} diff --git a/krebs/5pkgs/passwdqc-utils/default.nix b/krebs/5pkgs/passwdqc-utils/default.nix deleted file mode 100644 index 53e7f5482..000000000 --- a/krebs/5pkgs/passwdqc-utils/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, pam, - fetchurl, lib, - wordset-file ? null, # set your own wordset-file - ... }: - -stdenv.mkDerivation rec { - name = "passwdqc-utils-${version}"; - version = "1.3.0"; - buildInputs = [ pam ]; - - src = fetchurl { - url = "http://www.openwall.com/passwdqc/passwdqc-${version}.tar.gz"; - sha256 = "0l3zbrp4pvah0dz33m48aqlz9nx663cc1fqhnlwr0p853b10la93"; - }; - - buildTargets = "utils"; - installFlags= [ "BINDIR=$(out)/bin" - "CONFDIR=$(out)/etc" - "SHARED_LIBDIR=$(out)/lib" - "DEVEL_LIBDIR=$(out)/lib" - "SECUREDIR=$(out)/lib/security" - "INCLUDEDIR=$(out)/include" - "MANDIR=$(out)/man" ]; - - patchPhase = lib.optionalString (wordset-file != null) '' - cp -f ${wordset-file} wordset_4k.c - ''; - - installTargets = "install_lib install_utils"; - - meta = { - description = "passwdqc utils (pwqgen,pwqcheck) and library"; - license = stdenv.lib.licenses.bsd3; - maintainers = [ stdenv.lib.maintainers.makefu ]; - patforms = stdenv.lib.platforms.linux; # more installFlags must be set for Darwin,Solaris - }; -} diff --git a/krebs/5pkgs/populate/default.nix b/krebs/5pkgs/populate/default.nix deleted file mode 100644 index 3ec432229..000000000 --- a/krebs/5pkgs/populate/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ coreutils, fetchgit, git, jq, openssh, proot, rsync, stdenv, ... }: - -let - PATH = stdenv.lib.makeBinPath [ - coreutils - git - jq - openssh - proot - rsync - ]; -in - -stdenv.mkDerivation rec { - name = "populate"; - version = "1.2.0"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/populate; - rev = "refs/tags/v${version}"; - sha256 = "0q3110hkkxn9bc3a63xbx1hyd1fpzz4wrck4lng3j5a9i1y1jm07"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - sed \ - '1s,.*,&\nPATH=${PATH},' \ - -i bin/populate - - cp -r . $out - ''; -} diff --git a/krebs/5pkgs/posix-array/default.nix b/krebs/5pkgs/posix-array/default.nix deleted file mode 100644 index cfcdb29a7..000000000 --- a/krebs/5pkgs/posix-array/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ fetchgit, lib, stdenv, ... }: - -stdenv.mkDerivation rec { - name = "posix-array-${version}"; - version = "1.0.0"; - - src = fetchgit { - url = https://github.com/makefu/array.git; - rev = "refs/tags/${version}"; - sha256 = "0yzwlhdg1rgc4p64ny7gj30l7z6vikhskhppsa2qj7s9gm2gz938"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - mkdir -p $out/bin - cp -a ./array $out/bin - ''; - - meta = { - description = "POSIX-compliant array implementation"; - url = https://github.com/makefu/array; - license = lib.licenses.wtfpl; - platforms = lib.platforms.unix; - maintainers = with lib.maintainers; [ makefu ]; - }; -} diff --git a/krebs/5pkgs/pssh/default.nix b/krebs/5pkgs/pssh/default.nix deleted file mode 100644 index 2676af0cf..000000000 --- a/krebs/5pkgs/pssh/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ writeDashBin }: - -writeDashBin "pssh" '' - set -efu - case ''${1-} in - - # TODO create plog with -o json | jq ... | map date - - # usage: pssh {-j,--journal} host... - # Follow journal at each host. - -j|--journal) - shift - "$0" journalctl -n0 -ocat --follow --all ::: "$@" \ - | while read line; do - printf '%s %s\n' "$(date --rfc-3339=s)" "$line" - done - ;; - - -*) - echo $0: unknown option: $1 >&2 - exit 1 - ;; - - # usage: pssh command [arg...] ::: host... - # Run command at each host. - *) - exec parallel \ - --line-buffer \ - -j0 \ - --no-notice \ - --tagstring {} \ - ssh -T {} "$@" - ;; - - esac -'' diff --git a/krebs/5pkgs/push/default.nix b/krebs/5pkgs/push/default.nix deleted file mode 100644 index 2e0291aac..000000000 --- a/krebs/5pkgs/push/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ fetchgit, lib, stdenv -, coreutils -, git -, gnumake -, gnused -, jq -, nix -, openssh -, parallel -, ... }: - -stdenv.mkDerivation { - name = "push-1.1.2"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/push; - rev = "da5b3a4b05ef822cc41d36b6cc2071a2e78506d4"; - sha256 = "0gfxz207lm11g77rw02jcqpvzhx07j9hzgjgscbmslzl5r8icd6g"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = - let - path = lib.makeBinPath [ - coreutils - git - gnumake - gnused - jq - nix - openssh - parallel - ]; - in - '' - mkdir -p $out/bin - - sed \ - '1s,.*,&\nPATH=${path},' \ - < ./push \ - > $out/bin/push - - chmod +x $out/bin/push - ''; -} diff --git a/krebs/5pkgs/realwallpaper/default.nix b/krebs/5pkgs/realwallpaper/default.nix deleted file mode 100644 index 15cc277a5..000000000 --- a/krebs/5pkgs/realwallpaper/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenv, fetchgit, xplanet, imagemagick, curl, file }: - -stdenv.mkDerivation { - name = "realwallpaper"; - - src = fetchgit { - url = https://github.com/Lassulus/realwallpaper; - rev = "e0563289c2ab592b669ce4549fc40130246e9d79"; - sha256 = "1zgk8ips2d686216h203w62wrw7zy9z0lrndx9f8z6f1vpvjcmqc"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - buildInputs = [ - ]; - - installPhase = '' - mkdir -p $out - cp realwallpaper.sh $out/realwallpaper.sh - ''; -} diff --git a/krebs/5pkgs/repo-sync/default.nix b/krebs/5pkgs/repo-sync/default.nix deleted file mode 100644 index 7cba87b09..000000000 --- a/krebs/5pkgs/repo-sync/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, pkgs, python3Packages, fetchurl, ... }: - -with python3Packages; buildPythonPackage rec { - name = "repo-sync-${version}"; - version = "0.2.6"; - disabled = isPy26 || isPy27; - propagatedBuildInputs = [ - docopt - GitPython - pkgs.git - ]; - src = fetchurl { - url = "https://pypi.python.org/packages/source/r/repo-sync/repo-sync-${version}.tar.gz"; - sha256 = "1hqa9qw9qg7mxgniqzys9szycs05llg4yik8a9wz94a437zzarsk"; - }; - meta = { - homepage = http://github.com/makefu/repo-sync; - description = "Sync remotes to other remotes."; - license = lib.licenses.mit; - }; -} diff --git a/krebs/5pkgs/retiolum-bootstrap/default.nix b/krebs/5pkgs/retiolum-bootstrap/default.nix deleted file mode 100644 index 331b1cb7f..000000000 --- a/krebs/5pkgs/retiolum-bootstrap/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv,lib,fetchurl, ... }: -with lib; -stdenv.mkDerivation rec { - name = "retiolum-bootstrap"; - version = "4.2.3"; - - - src = fetchurl { - url = https://raw.githubusercontent.com/krebscode/painload/master/retiolum/scripts/tinc_setup/new_install.sh; - sha256 = "03kmil8q2xm3rdm2jxyah7vww84pw6w01d0c3siid9zpn2j7la9s"; - }; - - phases = [ - "installPhase" - ]; - - installPhase = '' - mkdir -p "$out" - cp -a ${src} $out/retiolum.sh - ''; - - meta = { - description = "Retiolum boostrap scripts"; - url = https://github.com/krebscode/painload; - license = licenses.wtfpl; - platforms = platforms.unix; - maintainers = with maintainers; [ makefu ]; - }; -} diff --git a/krebs/5pkgs/rutorrent/default.nix b/krebs/5pkgs/rutorrent/default.nix deleted file mode 100644 index 1084e7ce7..000000000 --- a/krebs/5pkgs/rutorrent/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -pkgs.stdenv.mkDerivation { - name = "rutorrent-src_2016-12-09"; - src = pkgs.fetchFromGitHub { - owner = "Novik"; - repo = "rutorrent"; - rev = "580bba8c538b55c1f75f3ad65310ff4ff2a153f7"; - sha256 = "1d9lgrzipy58dnx88z393p152kx6lki0x4aw40k8w9awsci4cx7p"; - }; - - phases = [ "installPhase" ]; - installPhase = '' - cp -r $src $out - ''; -} diff --git a/krebs/5pkgs/simple/Reaktor/default.nix b/krebs/5pkgs/simple/Reaktor/default.nix new file mode 100644 index 000000000..fc3710820 --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/default.nix @@ -0,0 +1,22 @@ +{ lib, pkgs,python3Packages,fetchurl, ... }: + +python3Packages.buildPythonPackage rec { + name = "Reaktor-${version}"; + version = "0.5.1"; + + doCheck = false; + + propagatedBuildInputs = with pkgs;[ + python3Packages.docopt + python3Packages.requests2 + ]; + src = fetchurl { + url = "https://pypi.python.org/packages/source/R/Reaktor/Reaktor-${version}.tar.gz"; + sha256 = "0dn9r0cyxi1sji2pnybsrc4hhaaq7hmf235nlgkrxqlsdb7y6n6n"; + }; + meta = { + homepage = http://krebsco.de/; + description = "An IRC bot based on asynchat"; + license = lib.licenses.wtfpl; + }; +} diff --git a/krebs/5pkgs/simple/Reaktor/plugins.nix b/krebs/5pkgs/simple/Reaktor/plugins.nix new file mode 100644 index 000000000..e85e41cfe --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/plugins.nix @@ -0,0 +1,131 @@ +{ stdenv, lib, pkgs, makeWrapper }: + +rec { + # Begin API + buildBaseReaktorPlugin = { name + , config # python extra configuration for plugin + , phases ? [] + , ... } @ attrs: + stdenv.mkDerivation (attrs // { + name = "Reaktor-plugin-" + name; + isReaktorPlugin = true; + }); + + buildSimpleReaktorPlugin = name: { script + , path ? [] + , env ? {} + , append_rule ? false # append the rule instead of insert + , pattern ? "" + , ... } @ attrs: + let + path_env = { "PATH" = lib.makeSearchPath "bin" (path ++ [ pkgs.coreutils ]); }; + src_dir = pkgs.substituteAll ( { + inherit name; + dir = "bin"; + isExecutable = true; + src = script; + }); + src_file = "${src_dir}/bin/${name}"; + config = '' + public_commands.${if append_rule then "append(" else "insert(0," }{ + 'capname' : "${name}", + 'pattern' : ${if pattern == "" then + ''indirect_pattern.format("${name}")'' else + ''"${pattern}"'' }, + 'argv' : ["${src_file}"], + 'env' : ${builtins.toJSON (path_env // env)} }) + ''; + config_file = pkgs.writeText "plugin.py" config; + in buildBaseReaktorPlugin (attrs // rec { + inherit name config; + + phases = [ "installPhase" ]; + buildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out/bin $out/etc/Reaktor + ln -s ${src_file} $out/bin + wrapProgram $out/bin/${name} \ + --prefix PATH : ${path_env.PATH} + ln -s ${config_file} $out/etc/Reaktor/plugin.py + ''; + + }); + # End API + + # Begin Plugins + random-emoji = buildSimpleReaktorPlugin "emoji" { + path = with pkgs; [ gnused gnugrep xmlstarlet curl ]; + script = ./scripts/random-emoji.sh; + }; + + sed-plugin = buildSimpleReaktorPlugin "sed-plugin" { + path = [ pkgs.gnused pkgs.python3 ]; + # only support s///gi the plugin needs to see every msg + # TODO: this will eat up the last regex, fix Reaktor to support fallthru + append_rule = true; + pattern = "^(?P.*)$$"; + script = ./scripts/sed-plugin.py; + }; + + shack-correct = buildSimpleReaktorPlugin "shack-correct" { + path = [ pkgs.gnused ]; + pattern = "^(?P.*Shack.*)$$"; + script = ./scripts/shack-correct.sh; + }; + + nixos-version = buildSimpleReaktorPlugin "nixos-version" { + script = pkgs.writeDash "nixos-version" '' + . /etc/os-release + echo "$PRETTY_NAME" + ''; + }; + stockholm-issue = buildSimpleReaktorPlugin "stockholm-issue" { + script = ./scripts/random-issue.sh; + path = with pkgs; [ git gnused haskellPackages.lentil ]; + env = { "origin" = "http://cgit.gum/stockholm"; }; + }; + + titlebot = + let + pypkgs = pkgs.python3Packages; + titlebot_cmds = pypkgs.buildPythonPackage { + name = "titlebot_cmds"; + propagatedBuildInputs = with pypkgs; [ setuptools ]; + src = pkgs.fetchurl { + url = "https://github.com/makefu/reaktor-titlebot/archive/2.1.0.tar.gz"; + sha256 = "0wvf09wmk8b52f9j65qrw81nwrhs9pfhijwrlkzp5l7l2q8cjkp6"; + }; + }; + in buildBaseReaktorPlugin rec { + name = "titlebot"; + phases = [ "installPhase" ]; + installPhase = '' + mkdir -p $out + ln -s ${titlebot_cmds}/* $out + ''; + config = '' + def titlebot_cmd(cmd): + from os import environ + return { 'capname': None, + 'env': { 'TITLEDB': + environ['state_dir']+'/suggestions.json' }, + 'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P.*))?$$', + 'argv': [ '${titlebot_cmds}/bin/' + cmd ] } + for i in ['up','help','list','top','new']: + public_commands.insert(0,titlebot_cmd(i)) + commands.insert(0,titlebot_cmd('clear')) + ''; + }; + + url-title = (buildSimpleReaktorPlugin "url-title" { + pattern = "^.*(?Phttp[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+).*$$"; + path = with pkgs; [ curl perl ]; + script = pkgs.writeDash "lambda-pl" '' + if [ "$#" -gt 0 ]; then + curl -SsL --max-time 5 "$1" | + perl -l -0777 -ne 'print $1 if /\s*(.*?)(?: - youtube)?\s*<\/title/si' + fi + ''; + }); + +} diff --git a/krebs/5pkgs/simple/Reaktor/scripts/random-emoji.sh b/krebs/5pkgs/simple/Reaktor/scripts/random-emoji.sh new file mode 100644 index 000000000..386aa68b9 --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/scripts/random-emoji.sh @@ -0,0 +1,6 @@ +#!/bin/sh +curl http://emojicons.com/random -s | \ + grep data-text | \ + sed -n 's/.*>\(.*\)<\/textarea>/\1/p' | \ + head -n 1 | \ + xmlstarlet unesc diff --git a/krebs/5pkgs/simple/Reaktor/scripts/random-issue.sh b/krebs/5pkgs/simple/Reaktor/scripts/random-issue.sh new file mode 100644 index 000000000..5c47c6156 --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/scripts/random-issue.sh @@ -0,0 +1,20 @@ +#! /bin/sh +set -eu +# requires env: +# $state_dir +# $origin + +# in PATH: git,lentil,coreutils +subdir=`echo "$1" | tr -dc "[:alnum:]"` +name=`echo "$origin" | tr -dc "[:alnum:]"` +track="$state_dir/$name-checkout" +(if test -e "$track" ;then + cd "$track" + git fetch origin master + git reset --hard origin/master +else + git clone "$origin" "$track" +fi) >&2 + +cd "$track" +lentil "${subdir:-.}" -f csv | sed 1d | shuf | head -1 diff --git a/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py b/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py new file mode 100644 index 000000000..da8e2f726 --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +# Usage: +# _from=krebs state_dir=. python sed-plugin.py 'dick butt' +# _from=krebs state_dir=. python sed-plugin.py 's/t/l/g' +# > dick bull +import shelve +from os import environ +from os.path import join +from sys import argv +import re + +d = shelve.open(join(environ['state_dir'], 'sed-plugin.shelve'), writeback=True) +usr = environ['_from'] + + +def is_regex(line): + myre = re.compile(r'^s/(?:\\/|[^/])+/(?:\\/|[^/])*/[ig]?$') + return myre.match(line) + +line = argv[1] + +if is_regex(line): + last = d.get(usr, None) + if last: + from subprocess import Popen, PIPE + p = Popen(['sed', line], stdin=PIPE, stdout=PIPE) + so, se = p.communicate(bytes("{}\n".format(last), "UTF-8")) + if p.returncode: + print("something went wrong when trying to process your regex: {}".format(se.decode())) + ret = so.decode() + print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip())) + if ret: + d[usr] = ret + + else: + print("no last message") +else: + d[usr] = line + +d.close() diff --git a/krebs/5pkgs/simple/Reaktor/scripts/shack-correct.sh b/krebs/5pkgs/simple/Reaktor/scripts/shack-correct.sh new file mode 100644 index 000000000..3b4d04f80 --- /dev/null +++ b/krebs/5pkgs/simple/Reaktor/scripts/shack-correct.sh @@ -0,0 +1,6 @@ +#! /bin/sh +set -eu +printf "Sie meinten wohl \"" +echo -n $@ | sed 's/Shack/shack/g' +echo "\"" +echo "${_from}--" diff --git a/krebs/5pkgs/simple/apt-cacher-ng/default.nix b/krebs/5pkgs/simple/apt-cacher-ng/default.nix new file mode 100644 index 000000000..e3986713b --- /dev/null +++ b/krebs/5pkgs/simple/apt-cacher-ng/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, cmake, doxygen, zlib, openssl, bzip2, pkgconfig, libpthreadstubs }: + +stdenv.mkDerivation rec { + name = "apt-cacher-ng-${version}"; + version = "2"; + + src = fetchurl { + url = "http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz"; + sha256 = "0bkc3012vinridl5ch46pwnxjalymx4wf6nxax64nm7bdkcj9azf"; + }; + + NIX_LDFLAGS = "-lpthread"; + buildInputs = [ doxygen cmake zlib openssl bzip2 pkgconfig libpthreadstubs ]; + + meta = { + description = "A caching proxy specialized for linux distribution files"; + homepage = http://www.unix-ag.uni-kl.de/~bloch/acng/; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.makefu ]; + }; +} diff --git a/krebs/5pkgs/simple/bepasty-client-cli/default.nix b/krebs/5pkgs/simple/bepasty-client-cli/default.nix new file mode 100644 index 000000000..c58e637b3 --- /dev/null +++ b/krebs/5pkgs/simple/bepasty-client-cli/default.nix @@ -0,0 +1,23 @@ +{ lib, pkgs, pythonPackages, fetchFromGitHub, ... }: + +with pythonPackages; buildPythonPackage rec { + name = "bepasty-client-cli"; + propagatedBuildInputs = [ + python_magic + click + requests2 + ]; + + src = fetchFromGitHub { + owner = "bepasty"; + repo = "bepasty-client-cli"; + rev = "4b7135ba8ba1e17501de08ad7b6aca73c0d949d2"; + sha256 = "1svchyk9zai1vip9ppm12jm7wfjbdr9ijhgcd2n10xh73jrn9cnc"; + }; + + meta = { + homepage = https://github.com/bepasty/bepasty-client-cli; + description = "CLI client for bepasty-server"; + license = lib.licenses.bsd2; + }; +} diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix new file mode 100644 index 000000000..37eea5fd9 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -0,0 +1,82 @@ +{ pkgs, stdenv, pythonPackages, fetchurl, coreutils, plugins ? [] }: + +pythonPackages.buildPythonApplication (rec { + name = "${pname}-${version}"; + pname = "buildbot"; + version = "0.9.4"; + src = fetchurl { + url = "mirror://pypi/b/${pname}/${name}.tar.gz"; + sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; + }; + doCheck = false; + buildInputs = with pythonPackages; [ + lz4 + txrequests + pyjade + boto3 + moto + txgithub + mock + setuptoolsTrial + isort + pylint + astroid + pyflakes + pyjwt + ]; + + propagatedBuildInputs = with pythonPackages; [ + + # core + twisted + jinja2 + zope_interface + future + sqlalchemy + sqlalchemy_migrate + future + dateutil + txaio + autobahn + + # tls + pyopenssl + service-identity + idna + pkgs.treq + + # docs + sphinx + sphinxcontrib-blockdiag + sphinxcontrib-spelling + pyenchant + docutils + ramlfications + sphinx-jinja + + ] ++ plugins; + + preInstall = '' + # writes out a file that can't be read properly + sed -i.bak -e '69,84d' buildbot/test/unit/test_www_config.py + + # re-hardcode path to tail + sed -i.bak 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py + ''; + + postFixup = '' + mv -v $out/bin/buildbot $out/bin/.wrapped-buildbot + echo "#!/bin/sh" > $out/bin/buildbot + echo "export PYTHONPATH=$PYTHONPATH" >> $out/bin/buildbot + echo "exec $out/bin/.wrapped-buildbot \"\$@\"" >> $out/bin/buildbot + chmod -c 555 $out/bin/buildbot + ''; + + meta = with stdenv.lib; { + homepage = http://buildbot.net/; + description = "Continuous integration system that automates the build/test cycle"; + maintainers = with maintainers; [ nand0p ryansydnor ]; + platforms = platforms.all; + license = licenses.gpl2; + }; +}) diff --git a/krebs/5pkgs/simple/buildbot/worker.nix b/krebs/5pkgs/simple/buildbot/worker.nix new file mode 100644 index 000000000..34e526858 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot/worker.nix @@ -0,0 +1,24 @@ +{ pkgs, stdenv, fetchurl, pythonPackages }: +pythonPackages.buildPythonApplication (rec { + name = "${pname}-${version}"; + pname = "buildbot-worker"; + version = "0.9.4"; + + doCheck = false; + src = fetchurl { + url = "mirror://pypi/b/${pname}/${name}.tar.gz"; + sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj"; + }; + + buildInputs = with pythonPackages; [ setuptoolsTrial mock ]; + propagatedBuildInputs = with pythonPackages; [ twisted future pkgs.treq ]; + + meta = with stdenv.lib; { + homepage = http://buildbot.net/; + description = "Buildbot Worker Daemon"; + maintainers = with maintainers; [ nand0p ryansydnor ]; + platforms = platforms.all; + license = licenses.gpl2; + }; +}) + diff --git a/krebs/5pkgs/simple/cac-api/default.nix b/krebs/5pkgs/simple/cac-api/default.nix new file mode 100644 index 000000000..e2bd8c148 --- /dev/null +++ b/krebs/5pkgs/simple/cac-api/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchgit, bc, cac-cert, coreutils, curl, dash, gnugrep, gnused, inotifyTools, jq, ncurses, openssh, sshpass, ... }: + +stdenv.mkDerivation { + name = "cac-api-1.1.2"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/cac-api; + rev = "67e93510e7742acae44db30275abbfe671aa9b7b"; + sha256 = "1vxh57j7vrq5sg9j1sam0538kkkhqpgf230vvdz2ifzgkj01z27l"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + mkdir -p $out/bin + { cat <<\EOF + #! ${dash}/bin/dash + export PATH=${stdenv.lib.makeBinPath [ + bc + coreutils + curl + gnugrep + gnused + inotifyTools + jq + ncurses + openssh + sshpass + ]}:"$PATH" + EOF + # [1]: Disable fetching tasks; listtasks is currently broken: + # Unknown column 'iod.apitask.cid' in 'field list' + sed ' + /^\s*tasks \\$/d; # [1] + s|\<_cac_exec curl|<${cac-cert} & --cacert /dev/stdin| + ' cac-api + } > $out/bin/cac-api + chmod +x $out/bin/cac-api + ''; +} diff --git a/krebs/5pkgs/simple/cac-cert/cac.pem b/krebs/5pkgs/simple/cac-cert/cac.pem new file mode 100644 index 000000000..9d02b6bcf --- /dev/null +++ b/krebs/5pkgs/simple/cac-cert/cac.pem @@ -0,0 +1,88 @@ +-----BEGIN CERTIFICATE----- +MIIFWzCCBEOgAwIBAgIQXWIKGWRZf838+wW1zLdK0DANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlk +YXRpb24gU2VjdXJlIFNlcnZlciBDQTAeFw0xNTEwMjMwMDAwMDBaFw0xODEwMjIyMzU5NTlaMF8x +ITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UECxMVRXNzZW50aWFsU1NM +IFdpbGRjYXJkMRowGAYDVQQDDBEqLmNsb3VkYXRjb3N0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAM9CyL8uUPoE3zYbvnwtUW69h0f+rkND1/Jsi15EEBFPQqiYCmPiSaJLn6JB +Hri34t4lArGrPA6K01x18LJqFoYDy5ya37J8Bd4jF3cijWe/IQEWAw0r2ufhd4LTNMvEyJIECida +LMhBxpORRdijmvEXCf9D0OEGBV3qfizcCH7+VPordCY3y9fwgbk0wAB1lAk29aRosK3gZJceu57Q +YkEKjee6pZ473+xpCjaeTBUlPuGA95A2jPf8c+QSPegczOd9Hwo4JqAJSjTzzuHiSbEhd+8JIC/P +6GYVOvwnNqCPuuXsoBy8xBQ8lHuZcWd5sh4MDRvm5YxVFhYN6kOgf1ECAwEAAaOCAd8wggHbMB8G +A1UdIwQYMBaAFJCvajqUWgvYkOoSVnPfQ7Q6KNrnMB0GA1UdDgQWBBSC9dSGoIEPHBTUQJjOxxPg +lhRLPDAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYI +KwYBBQUHAwIwTwYDVR0gBEgwRjA6BgsrBgEEAbIxAQICBzArMCkGCCsGAQUFBwIBFh1odHRwczov +L3NlY3VyZS5jb21vZG8uY29tL0NQUzAIBgZngQwBAgEwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDov +L2NybC5jb21vZG9jYS5jb20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNB +LmNybDCBhQYIKwYBBQUHAQEEeTB3ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LmNvbW9kb2NhLmNv +bS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3J0MCQGCCsGAQUFBzAB +hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wLQYDVR0RBCYwJIIRKi5jbG91ZGF0Y29zdC5jb22C +D2Nsb3VkYXRjb3N0LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAPfUXBGDYOQnJuykm8I9cB2rBFVvt +HgzKIM+SXRz/jRt4HN/fsQkq2mI8SUPigWbtrtL1yim0hHdTR4m6vn7eHqj8erjjEJy16OfyRwp8 +LfjjHvcPxAxiRcFdv+8Pu/o0umqtxmRn4enyAZWhqAp3TBjkJPkJgh/toJqGpE7dN1Jw1AF75rrA +DXS8J5fcJYZQydJce+kacMHLh4C0Q37NgZKPfM+9jsygqY3Fhqh5GIt/CXNx2vlDPQP87QEtK7y7 +dCGd/MwrdKkUvOpsmqWiO1+02DesZSdIow/YW+8cUhPvYMqpM9zKbqVdRj3FJK56+/xNfNX5tiU1 +1VE7rIcEbw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTQwMjEyMDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRp +b24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI7CAhnh +oFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28ShbXcDow+G+eMGnD4LgYqbSRutA776S9uM +IO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4Tg +llfQcBhglo/uLQeTnaG6ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh +7lgUq/51UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0nc13c +RTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQYMBaAFLuvfgI9+qbx +PISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz30O0Oija5zAOBgNVHQ8BAf8EBAMC +AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYD +VR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNv +bW9kb2NhLmNvbS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB +AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUFkZFRy +dXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcN +AQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2pmj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx +3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsI +tG8kO3KdY3RYPBpsP0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdo +ltMYdVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc2bXhc3js +9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxGV/Iz2tDIY+3GH5QFlkoa +kdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBm +GqW5prU5wfWYQ//u+aen/e7KJD2AFsQXj4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODc +QgPmlKidrv0PJFGUzpII0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje +3WYkN5AplBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf+AZx +AeKCINT+b72x +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- diff --git a/krebs/5pkgs/simple/cac-cert/default.nix b/krebs/5pkgs/simple/cac-cert/default.nix new file mode 100644 index 000000000..d99019dca --- /dev/null +++ b/krebs/5pkgs/simple/cac-cert/default.nix @@ -0,0 +1,2 @@ +{ writeText, ... }: +writeText "cac.pem" (builtins.readFile ./cac.pem) diff --git a/krebs/5pkgs/simple/cac-panel/default.nix b/krebs/5pkgs/simple/cac-panel/default.nix new file mode 100644 index 000000000..fd4799535 --- /dev/null +++ b/krebs/5pkgs/simple/cac-panel/default.nix @@ -0,0 +1,18 @@ +{pkgs, python3Packages, ...}: + +python3Packages.buildPythonPackage rec { + name = "cac-panel-${version}"; + version = "0.4.4"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/c/cac-panel/cac-panel-${version}.tar.gz"; + sha256 = "16bx67fsbgwxciik42jhdnfzxx1xp5b0rimzrif3r7h4fawlnld8"; + }; + + propagatedBuildInputs = with python3Packages; [ + docopt + requests2 + beautifulsoup4 + ]; +} + diff --git a/krebs/5pkgs/simple/collectd-connect-time/default.nix b/krebs/5pkgs/simple/collectd-connect-time/default.nix new file mode 100644 index 000000000..525388029 --- /dev/null +++ b/krebs/5pkgs/simple/collectd-connect-time/default.nix @@ -0,0 +1,15 @@ +{lib, pkgs, pythonPackages, fetchurl, ... }: + +pythonPackages.buildPythonPackage rec { + name = "collectd-connect-time-${version}"; + version = "0.3.0"; + src = fetchurl { + url = "https://pypi.python.org/packages/source/c/collectd-connect-time/collectd-connect-time-${version}.tar.gz"; + sha256 = "0vvrf9py9bwc8hk3scxwg4x2j8jlp2qva0mv4q8d9m4b4mk99c95"; + }; + meta = { + homepage = https://pypi.python.org/pypi/collectd-connect-time/; + description = "TCP Connection time plugin for collectd"; + license = lib.licenses.wtfpl; + }; +} diff --git a/krebs/5pkgs/simple/default.nix b/krebs/5pkgs/simple/default.nix new file mode 100644 index 000000000..2f6799759 --- /dev/null +++ b/krebs/5pkgs/simple/default.nix @@ -0,0 +1,10 @@ +with import ; + +self: super: +listToAttrs + (map + (name: nameValuePair (removeSuffix ".nix" name) + (super.callPackage (./. + "/${name}") {})) + (filter + (name: name != "default.nix" && !hasPrefix "." name) + (attrNames (readDir ./.)))) diff --git a/krebs/5pkgs/simple/dic/default.nix b/krebs/5pkgs/simple/dic/default.nix new file mode 100644 index 000000000..963786f0c --- /dev/null +++ b/krebs/5pkgs/simple/dic/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchgit, coreutils, curl, gnused, gnugrep, ... }: + +stdenv.mkDerivation { + name = "dic"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/dic; + rev = "refs/tags/v1.0.1"; + sha256 = "1686mba1z4m7vq70w26qpl00z1cz286c9bya9ql36g6w2pbcs8d3"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = + let + path = stdenv.lib.makeBinPath [ + coreutils + curl + gnused + gnugrep + ]; + in + '' + mkdir -p $out/bin + + sed \ + 's,^main() {$,&\n PATH=${path}; export PATH,' \ + < ./dic \ + > $out/bin/dic + + chmod +x $out/bin/dic + ''; +} diff --git a/krebs/5pkgs/simple/drivedroid-gen-repo/default.nix b/krebs/5pkgs/simple/drivedroid-gen-repo/default.nix new file mode 100644 index 000000000..de8046c4a --- /dev/null +++ b/krebs/5pkgs/simple/drivedroid-gen-repo/default.nix @@ -0,0 +1,22 @@ +{stdenv,fetchurl,pkgs,python3Packages, ... }: + +python3Packages.buildPythonPackage rec { + name = "drivedroid-gen-repo-${version}"; + version = "0.4.4"; + + propagatedBuildInputs = with pkgs;[ + python3Packages.docopt + ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/d/drivedroid-gen-repo/drivedroid-gen-repo-${version}.tar.gz"; + sha256 = "09p58hzp61r5fp025lak9z52y0aakmaqpi59p9w5xq42dvy2hnvl"; + }; + + meta = { + homepage = http://krebsco.de/; + description = "Generate Drivedroid repos"; + license = stdenv.lib.licenses.wtfpl; + }; +} + diff --git a/krebs/5pkgs/simple/fortclientsslvpn/default.nix b/krebs/5pkgs/simple/fortclientsslvpn/default.nix new file mode 100644 index 000000000..cbcfab05f --- /dev/null +++ b/krebs/5pkgs/simple/fortclientsslvpn/default.nix @@ -0,0 +1,92 @@ +{ stdenv, lib, fetchurl, gnome3, glib, libSM, gdk_pixbuf, libX11, libXinerama, iproute, + makeWrapper, libredirect, ppp, coreutils, gawk, pango }: +stdenv.mkDerivation rec { + name = "forticlientsslvpn"; + # forticlient will be copied into /tmp before execution. this is necessary as + # the software demands $base to be writeable + + # TODO: chroot and create the following files instead of copying files manually + # mkdir /etc/ppp ; touch /etc/ppp/options + # ln -s /run/current-system/sw/bin/tail /usr/bin/tail + # ln -s /run/current-system/sw/bin/pppd /usr/sbin/pppd + + src = fetchurl { + # archive.org mirror: + # https://archive.org/download/ForticlientsslvpnLinux4.4.23171.tar/forticlientsslvpn_linux_4.4.2317.tar.gz + url = http://www.zen.co.uk/userfiles/knowledgebase/FortigateSSLVPNClient/forticlientsslvpn_linux_4.4.2317.tar.gz; + sha256 = "19clnf9rgrnwazlpah8zz5kvz6kc8lxawrgmksx25k5ywflmbcrr"; + }; + phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; + + buildInputs = [ makeWrapper ]; + + binPath = lib.makeBinPath [ + coreutils + gawk + ]; + + + libPath = lib.makeLibraryPath [ + stdenv.cc.cc + ]; + + guiLibPath = lib.makeLibraryPath [ + gnome3.gtk + glib + libSM + gdk_pixbuf + libX11 + libXinerama + pango + ]; + + buildPhase = '' + # TODO: 32bit, use the 32bit folder + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$libPath" \ + 64bit/forticlientsslvpn_cli + + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$libPath:$guiLibPath" \ + 64bit/forticlientsslvpn + + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "$libPath" \ + 64bit/helper/subproc + + sed -i 's#\(export PATH=\).*#\1"${binPath}"#' 64bit/helper/waitppp.sh + ''; + + installPhase = '' + mkdir -p "$out/opt/fortinet" + + cp -r 64bit/. "$out/opt/fortinet" + wrapProgram $out/opt/fortinet/forticlientsslvpn \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set NIX_REDIRECTS /usr/bin/tail=${coreutils}/bin/tail:/usr/sbin/ip=${iproute}/bin/ip:/usr/sbin/pppd=${ppp}/bin/pppd + + mkdir -p "$out/bin/" + + cat > $out/bin/forticlientsslvpn < {} }: + + (pkgs.buildFHSUserEnv { + name = "simple-x11-env"; + targetPkgs = pkgs: with pkgs; [ + coreutils + ]; + multiPkgs = pkgs: with pkgs; [ + alsaLib + zlib + xorg.libXxf86vm + curl + openal + openssl_1_0_2 + xorg.libXext + xorg.libX11 + xorg.libXrandr + xorg.libXcursor + xorg.libXinerama + xorg.libXi + mesa_glu + ]; + runScript = "bash"; + }).env +''; + + +in pkgs.writeDashBin "games-user-env" '' + nix-shell ${env_nix} +'' diff --git a/krebs/5pkgs/simple/get/default.nix b/krebs/5pkgs/simple/get/default.nix new file mode 100644 index 000000000..83f6b0228 --- /dev/null +++ b/krebs/5pkgs/simple/get/default.nix @@ -0,0 +1,37 @@ +{ coreutils, gnugrep, gnused, fetchgit, jq, nix, stdenv, ... }: + +stdenv.mkDerivation { + name = "get-1.4.1"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/get; + rev = "41c0c35805ec1708729f73d14650d8ebc94a405b"; + sha256 = "0rx1qsbb4py14795yhhqwlvaibj2569fqm7x2671l868xi59h9f9"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = + let + path = stdenv.lib.makeBinPath [ + coreutils + gnugrep + gnused + jq + nix + ]; + in + '' + mkdir -p $out/bin + + sed \ + '1s,.*,&\nPATH=${path},' \ + < ./get \ + > $out/bin/get + + chmod +x $out/bin/get + ''; +} diff --git a/krebs/5pkgs/simple/git-hooks/default.nix b/krebs/5pkgs/simple/git-hooks/default.nix new file mode 100644 index 000000000..4017b873b --- /dev/null +++ b/krebs/5pkgs/simple/git-hooks/default.nix @@ -0,0 +1,107 @@ +{ pkgs, ... }: + +with import ; + +{ + # TODO irc-announce should return a derivation + # but it cannot because krebs.git.repos.*.hooks :: attrsOf str + irc-announce = { nick, channel, server, port ? 6667, verbose ? false, branches ? [] }: '' + #! /bin/sh + set -euf + + export PATH=${makeBinPath (with pkgs; [ + coreutils + git + gnugrep + gnused + ])} + + green() { printf '\x0303,99%s\x0F' "$1"; } + red() { printf '\x0304,99%s\x0F' "$1"; } + orange() { printf '\x0307,99%s\x0F' "$1"; } + pink() { printf '\x0313,99%s\x0F' "$1"; } + gray() { printf '\x0314,99%s\x0F' "$1"; } + + unset message + add_message() { + message="''${message+$message + }$*" + } + + nick=${escapeShellArg nick} + channel=${escapeShellArg channel} + server=${escapeShellArg server} + port=${toString port} + + host=$nick + cgit_endpoint=http://cgit.$host.r + + empty=0000000000000000000000000000000000000000 + + while read oldrev newrev ref; do + + if [ $oldrev = $empty ]; then + receive_mode=create + elif [ $newrev = $empty ]; then + receive_mode=delete + elif [ "$(git merge-base $oldrev $newrev)" = $oldrev ]; then + receive_mode=fast-forward + else + receive_mode=non-fast-forward + fi + + h=$(echo $ref | sed 's:^refs/heads/::') + + ${optionalString (branches != []) '' + if ! (echo "$h" | grep -qE "${concatStringsSep "|" branches}"); then + echo "we are not serving this branch: $h" + exit 0 + fi + ''} + # empty_tree=$(git hash-object -t tree /dev/null) + empty_tree=4b825dc6 + + id=$(echo $newrev | cut -b-7) + id2=$(echo $oldrev | cut -b-7) + if [ $newrev = $empty ]; then id=$empty_tree; fi + if [ $oldrev = $empty ]; then id2=$empty_tree; fi + + case $receive_mode in + create) + link="$cgit_endpoint/$GIT_SSH_REPO/?h=$h" + ;; + delete) + link="$cgit_endpoint/$GIT_SSH_REPO/ ($h)" + ;; + fast-forward|non-fast-forward) + link="$cgit_endpoint/$GIT_SSH_REPO/diff/?h=$h&id=$id&id2=$id2" + ;; + esac + + #$host $GIT_SSH_REPO $ref $link + add_message $(pink push) $link $(gray "($receive_mode)") + + ${optionalString verbose '' + add_message "$( + git log \ + --format="$(orange %h) %s $(gray '(%ar)')" \ + --reverse \ + $id2..$id + + git diff --stat $id2..$id \ + | sed '$!s/\(+*\)\(-*\)$/'$(green '\1')$(red '\2')'/' + )" + ''} + + done + + if test -n "''${message-}"; then + exec ${pkgs.irc-announce}/bin/irc-announce \ + "$server" \ + "$port" \ + "$nick" \ + "$channel" \ + "$message" + fi + ''; +} diff --git a/krebs/5pkgs/simple/github-hosts-sync/default.nix b/krebs/5pkgs/simple/github-hosts-sync/default.nix new file mode 100644 index 000000000..cdfed468c --- /dev/null +++ b/krebs/5pkgs/simple/github-hosts-sync/default.nix @@ -0,0 +1,37 @@ +{ pkgs, stdenv, ... }: + +stdenv.mkDerivation { + name = "github-hosts-sync"; + + src = pkgs.painload; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = + let + ca-bundle = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; + path = stdenv.lib.makeBinPath (with pkgs; [ + coreutils + findutils + git + gnugrep + gnused + nettools + openssh + socat + ]); + in + '' + mkdir -p $out/bin + + sed \ + 's,^main() {$,&\n export PATH=${path} GIT_SSL_CAINFO=${ca-bundle},' \ + < ./retiolum/scripts/github_hosts_sync/hosts-sync \ + > $out/bin/github-hosts-sync + + chmod +x $out/bin/github-hosts-sync + ''; +} diff --git a/krebs/5pkgs/simple/go-shortener/default.nix b/krebs/5pkgs/simple/go-shortener/default.nix new file mode 100644 index 000000000..996f7072a --- /dev/null +++ b/krebs/5pkgs/simple/go-shortener/default.nix @@ -0,0 +1,57 @@ +{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: + +with lib; + +let + np = (callPackage ) { + generated = ./packages.nix; + self = np; + }; + + node_env = buildEnv { + name = "node_env"; + paths = [ + np.redis + np."formidable" + ]; + pathsToLink = [ "/lib" ]; + ignoreCollisions = true; + }; + +in np.buildNodePackage { + name = "go-shortener"; + + src = fetchgit { + url = "http://cgit.lassul.us/go/"; + rev = "05d02740e0adbb36cc461323647f0c1e7f493156"; + sha256 = "6015c9a93317375ae8099c7ab982df0aa93a59ec2b48972e253887bb6ca0004f"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + deps = (filter (v: nixType v == "derivation") (attrValues np)); + + buildInputs = [ + nodejs + makeWrapper + ]; + + installPhase = '' + mkdir -p $out/bin + + cp index.js $out/ + cat > $out/go << EOF + ${nodejs}/bin/node $out/index.js + EOF + chmod +x $out/go + + wrapProgram $out/go \ + --prefix NODE_PATH : ${node_env}/lib/node_modules + + ln -s $out/go /$out/bin/go + ''; + +} diff --git a/krebs/5pkgs/simple/go-shortener/packages.nix b/krebs/5pkgs/simple/go-shortener/packages.nix new file mode 100644 index 000000000..9acfd7658 --- /dev/null +++ b/krebs/5pkgs/simple/go-shortener/packages.nix @@ -0,0 +1,44 @@ +{ self, fetchurl, fetchgit ? null, lib }: + +{ + by-spec."formidable"."*" = + self.by-version."formidable"."1.0.17"; + by-version."formidable"."1.0.17" = self.buildNodePackage { + name = "formidable-1.0.17"; + version = "1.0.17"; + bin = false; + src = fetchurl { + url = "http://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz"; + name = "formidable-1.0.17.tgz"; + sha1 = "ef5491490f9433b705faa77249c99029ae348559"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "formidable" = self.by-version."formidable"."1.0.17"; + by-spec."redis"."*" = + self.by-version."redis"."2.1.0"; + by-version."redis"."2.1.0" = self.buildNodePackage { + name = "redis-2.1.0"; + version = "2.1.0"; + bin = false; + src = fetchurl { + url = "http://registry.npmjs.org/redis/-/redis-2.1.0.tgz"; + name = "redis-2.1.0.tgz"; + sha1 = "38acb208f90750250f9451219b73ff08ae907f94"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "redis" = self.by-version."redis"."2.1.0"; +} diff --git a/krebs/5pkgs/simple/goify/default.nix b/krebs/5pkgs/simple/goify/default.nix new file mode 100644 index 000000000..9c44aaeeb --- /dev/null +++ b/krebs/5pkgs/simple/goify/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +pkgs.writeBashBin "goify" '' + set -euf + + GO_HOST=''${GO_HOST:-go} + + while read line; do + echo "$line" | sed 's|https\?://\S*|\n&\n|g' | while read word; do + if echo "$word" | grep -q '^https\?:'; then + ${pkgs.curl}/bin/curl -Ss -F uri="$word" http://"$GO_HOST" \ + | tr -d '\r' + else + echo "$word" + fi + done | grep . | tr '\n' ' '; echo + done +'' diff --git a/krebs/5pkgs/simple/hashPassword/default.nix b/krebs/5pkgs/simple/hashPassword/default.nix new file mode 100644 index 000000000..3da65ad79 --- /dev/null +++ b/krebs/5pkgs/simple/hashPassword/default.nix @@ -0,0 +1,15 @@ +{ lib, pkgs, ... }: + +pkgs.writeDashBin "hashPassword" '' + # usage: hashPassword + set -euf + + export PATH=${lib.makeBinPath (with pkgs; [ + coreutils + mkpasswd + openssl + ])} + + salt=$(openssl rand -base64 16 | tr -d '+=' | head -c 16) + exec mkpasswd -m sha-512 -S "$salt" +'' diff --git a/krebs/5pkgs/simple/htgen/default.nix b/krebs/5pkgs/simple/htgen/default.nix new file mode 100644 index 000000000..0fca8bdf2 --- /dev/null +++ b/krebs/5pkgs/simple/htgen/default.nix @@ -0,0 +1,28 @@ +{ coreutils, dash, fetchgit, gnused, stdenv, ucspi-tcp }: +with import ; +let + version = "1.2.2"; +in stdenv.mkDerivation { + name = "htgen-${version}"; + + src = fetchgit { + url = "http://cgit.krebsco.de/htgen"; + rev = "refs/tags/v${version}"; + sha256 = "0a8vn35vq6pxgk6d3d2cjp0vdxzq9nqf0zgkvnd6668v4cmdf91b"; + }; + + installPhase = '' + mkdir -p $out/bin + { + echo '#! ${dash}/bin/dash' + echo 'export PATH=${makeBinPath [ + coreutils + gnused + ucspi-tcp + ]}''${PATH+":$PATH"}' + sed 's:^Server=htgen$:&/${version}:' htgen + } > $out/bin/htgen + chmod +x $out/bin/htgen + cp -r examples $out + ''; +} diff --git a/krebs/5pkgs/simple/irc-announce/default.nix b/krebs/5pkgs/simple/irc-announce/default.nix new file mode 100644 index 000000000..e1f4919d5 --- /dev/null +++ b/krebs/5pkgs/simple/irc-announce/default.nix @@ -0,0 +1,66 @@ +{ pkgs, lib, ... }: + +with lib; + +pkgs.writeDashBin "irc-announce" '' + set -euf + + export PATH=${makeSearchPath "bin" (with pkgs; [ + coreutils + gawk + gnused + netcat + nettools + ])} + + IRC_SERVER=$1 + IRC_PORT=$2 + IRC_NICK=$3$$ + IRC_CHANNEL=$4 + message=$5 + + export IRC_CHANNEL # for privmsg_cat + + # echo2 and cat2 are used output to both, stdout and stderr + # This is used to see what we send to the irc server. (debug output) + echo2() { echo "$*"; echo "$*" >&2; } + cat2() { tee /dev/stderr; } + + # privmsg_cat transforms stdin to a privmsg + privmsg_cat() { awk '{ print "PRIVMSG "ENVIRON["IRC_CHANNEL"]" :"$0 }'; } + + # ircin is used to feed the output of netcat back to the "irc client" + # so we can implement expect-like behavior with sed^_^ + # XXX mkselfdestructingtmpfifo would be nice instead of this cruft + tmpdir=$(mktemp --tmpdir -d irc-announce_XXXXXXXX) + cd "$tmpdir" + mkfifo ircin + trap " + rm ircin + cd '$OLDPWD' + rmdir '$tmpdir' + trap - EXIT INT QUIT + " EXIT INT QUIT + + { + echo2 "USER $LOGNAME 0 * :$LOGNAME@$(hostname)" + echo2 "NICK $IRC_NICK" + + # wait for MODE message + sed -n '/^:[^ ]* MODE /q' + + echo2 "JOIN $IRC_CHANNEL" + + printf '%s' "$message" \ + | privmsg_cat \ + | cat2 + + echo2 "PART $IRC_CHANNEL" + + # wait for PART confirmation + sed -n '/:'"$IRC_NICK"'![^ ]* PART /q' + + echo2 'QUIT :Gone to have lunch' + } < ircin \ + | nc "$IRC_SERVER" "$IRC_PORT" | tee -a ircin +'' diff --git a/krebs/5pkgs/simple/kpaste/default.nix b/krebs/5pkgs/simple/kpaste/default.nix new file mode 100644 index 000000000..d6823d584 --- /dev/null +++ b/krebs/5pkgs/simple/kpaste/default.nix @@ -0,0 +1,5 @@ +{ curl, writeDashBin }: + +writeDashBin "kpaste" '' + exec ${curl}/bin/curl -sS http://p.r --data-binary @- +'' diff --git a/krebs/5pkgs/simple/krebspaste/default.nix b/krebs/5pkgs/simple/krebspaste/default.nix new file mode 100644 index 000000000..31ad12780 --- /dev/null +++ b/krebs/5pkgs/simple/krebspaste/default.nix @@ -0,0 +1,6 @@ +{ writeDashBin, bepasty-client-cli }: + +# TODO use `execve` instead? +writeDashBin "krebspaste" '' + exec ${bepasty-client-cli}/bin/bepasty-cli -L 1m --url http://paste.r "$@" | sed '$ s/$/\/+inline/g' +'' diff --git a/krebs/5pkgs/simple/krebszones/default.nix b/krebs/5pkgs/simple/krebszones/default.nix new file mode 100644 index 000000000..9230192bd --- /dev/null +++ b/krebs/5pkgs/simple/krebszones/default.nix @@ -0,0 +1,25 @@ +{ lib, pkgs,python3Packages,fetchurl, ... }: + +# TODO: Prepare a diff of future and current +## ovh-zone export krebsco.de --config ~/secrets/krebs/cfg.json |sed 's/[ ]\+/ /g' | sort current +## sed 's/[ ]\+/ /g'/etc/zones/krebsco.de | sort > future +## diff future.sorted current.sorted + +python3Packages.buildPythonPackage rec { + name = "krebszones-${version}"; + version = "0.4.4"; + propagatedBuildInputs = with pkgs.python3Packages;[ + d2to1 # for setup to work + ovh + docopt + ]; + src = fetchurl { + url = "https://pypi.python.org/packages/source/k/krebszones/krebszones-${version}.tar.gz"; + sha256 = "1bzfc2b9468769j1yj93j12zdlccqbjiqfhql2larximh491sg4d"; + }; + meta = { + homepage = http://krebsco.de/; + description = "OVH Zone Upload"; + license = lib.licenses.wtfpl; + }; +} diff --git a/krebs/5pkgs/simple/logf/default.nix b/krebs/5pkgs/simple/logf/default.nix new file mode 100644 index 000000000..ac95acb33 --- /dev/null +++ b/krebs/5pkgs/simple/logf/default.nix @@ -0,0 +1,114 @@ +{ lib, pkgs, ... }: + +with import ; + +let + default-host-colors = pkgs.writeJSON "logf.default-host-colors.json" { + }; + default-prio-colors = pkgs.writeJSON "logf.default-prio-colors.json" { + "0" = 196; # emerg + "1" = 160; # alert + "2" = 124; # crit + "3" = 009; # err + "4" = 011; # warning + "5" = 255; # notice + "6" = 250; # info + "7" = 139; # debug + "-" = 005; # undefined priority + }; + default-urgent = pkgs.writeJSON "logf.default-urgent.json" [ + ]; +in + +pkgs.writeDashBin "logf" '' + export LOGF_HOST_COLORS LOGF_PRIO_COLORS LOGF_URGENT + LOGF_HOST_COLORS=$(cat "''${LOGF_HOST_COLORS-${default-host-colors}}") + LOGF_PRIO_COLORS=$(cat "''${LOGF_PRIO_COLORS-${default-prio-colors}}") + LOGF_URGENT=$(cat "''${LOGF_URGENT-${default-urgent}}") + printf '%s\0' "$@" \ + | ${pkgs.findutils}/bin/xargs -0 -P 0 -n 1 ${pkgs.writeDash "logf-remote" '' + target=$1 + target_host=$(echo "$1" | sed 's/^.*@//;s/\..*//') + exec 3>&1 + 2>&1 1>&3 ssh "$target" -T \ + -o PreferredAuthentications=publickey \ + -o StrictHostKeyChecking=yes \ + exec journalctl -af -n 0 -o json \ + | stdbuf -oL jq -Rcf ${pkgs.writeJq "logf-remote-error.jq" '' + { + PRIORITY: "4", + MESSAGE: ., + SYSLOG_IDENTIFIER: env.target_host, + } + ''} + sleep 10m + exec "$0" "$@" + ''} \ + | ${pkgs.jq}/bin/jq -Rrf ${pkgs.writeJq "logf-filter.jq" '' + (env.LOGF_HOST_COLORS | fromjson) as $host_colors | + (env.LOGF_PRIO_COLORS | fromjson) as $prio_colors | + (env.LOGF_URGENT | fromjson | map("(\(.))") | join("|")) + as $urgent_regex | + + def when(c; f): if c then f else . end; + + # anaphoric gsub + def agsub(re; f): + # Don't try empty regex: https://github.com/stedolan/jq/issues/1206 + when(re != ""; gsub("(?\(re))"; .it | f)); + + # :: [int] -> sgr + def sgr: "\u001b[\(map(tostring) | join(";"))m"; + + # :: sgr + def rst: [] | sgr; + + # :: int -> sgr + def fg(i): [38,5,i]|sgr; + # TODO def fg(r;g;b): [38,2,r,g,b]|sgr; + # http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down + + # (sgr; sgr) | (null; any) :: str -> str + def col(a; b): when(a != null; a + . + b); + def col(a): col(a; rst); + + + def p_time: + ._SOURCE_REALTIME_TIMESTAMP + | if . != null then . | fromjson | . / 1000000 else now end + | gmtime + | todateiso8601 + | col(fg(237)); + + def p_host: + ._HOSTNAME + | if . != null then . else "-" end + | col($host_colors[.]|when(. != null; fg(.))); + + def p_ident: + if .SYSLOG_IDENTIFIER != null then .SYSLOG_IDENTIFIER + else ._COMM end + | col(fg(244)); + + def p_message: + fg($prio_colors[if has("PRIORITY") then .PRIORITY else "-" end]) + as $prio_c | + .MESSAGE + | sub("\r$"; "") + | agsub($urgent_regex; "\(.)\u0007" | col(fg(219); $prio_c)) + | col($prio_c); + + try fromjson catch { + _SOURCE_REALTIME_TIMESTAMP: now | tostring | sub("[.]"; ""), + SYSLOG_IDENTIFIER: "logf/journalctl", + MESSAGE: ., + } | + + [ p_time + , p_host + , p_ident + , p_message + ] + | join(" ") + ''} +'' diff --git a/krebs/5pkgs/simple/much/cabal.nix b/krebs/5pkgs/simple/much/cabal.nix new file mode 100644 index 000000000..09bc7b5df --- /dev/null +++ b/krebs/5pkgs/simple/much/cabal.nix @@ -0,0 +1,28 @@ +{ mkDerivation, aeson, attoparsec, base, base64-bytestring +, blaze-builder, blessings, bytestring, case-insensitive +, containers, deepseq, directory, docopt, email-header, fetchgit +, filepath, friendly-time, hyphenation, linebreak, old-locale +, process, random, rosezipper, safe, scanner, split, stdenv +, terminal-size, text, time, transformers, transformers-compat +, unix, vector +}: +mkDerivation { + pname = "much"; + version = "1.1.0"; + src = fetchgit { + url = "http://cgit.ni.krebsco.de/much"; + sha256 = "1325554zymr1dd0clj8c5ygl70c791csvs0hz33jcfr6b8wysdrl"; + rev = "dfec37d848e11c00d9b7f03295af1fc7b0e83ef5"; + }; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + aeson attoparsec base base64-bytestring blaze-builder blessings + bytestring case-insensitive containers deepseq directory docopt + email-header filepath friendly-time hyphenation linebreak + old-locale process random rosezipper safe scanner split + terminal-size text time transformers transformers-compat unix + vector + ]; + license = stdenv.lib.licenses.mit; +} diff --git a/krebs/5pkgs/simple/much/default.nix b/krebs/5pkgs/simple/much/default.nix new file mode 100644 index 000000000..cf55eb537 --- /dev/null +++ b/krebs/5pkgs/simple/much/default.nix @@ -0,0 +1,3 @@ +{ haskellPackages, ... }: + +haskellPackages.callPackage ./cabal.nix {} diff --git a/krebs/5pkgs/simple/netcup/default.nix b/krebs/5pkgs/simple/netcup/default.nix new file mode 100644 index 000000000..d1f46299d --- /dev/null +++ b/krebs/5pkgs/simple/netcup/default.nix @@ -0,0 +1,32 @@ +{ coreutils, curl, fetchgit, gawk, gnugrep, gnused, jq, stdenv, w3m, ... }: +with import ; +let + readJSON = path: fromJSON (readFile path); + sed.escape = replaceChars ["/"] ["\\/"]; # close enough + PATH = makeBinPath [ + coreutils + curl + gawk + gnugrep + gnused + jq + w3m + ]; +in +stdenv.mkDerivation { + name = "netcup-1.0.0"; + src = fetchgit { + url = "http://cgit.ni.krebsco.de/netcup"; + rev = "refs/tags/v1.0.0"; + sha256 = "1rn7bncfhjw0bqjbvj38m7lks4nyf5qcvkj9dg0zr99ba6dylzx5"; + }; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; + patchPhase = '' + path=${shell.escape (sed.escape PATH)} + sed -i "1s/.*/&\nPATH=$path/" vcp + ''; + installPhase = '' + mkdir -p $out/bin + cp vcp $out/bin + ''; +} diff --git a/krebs/5pkgs/simple/newsbot-js/default.nix b/krebs/5pkgs/simple/newsbot-js/default.nix new file mode 100644 index 000000000..b52454ca4 --- /dev/null +++ b/krebs/5pkgs/simple/newsbot-js/default.nix @@ -0,0 +1,60 @@ +{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: + +with lib; + +let + np = (callPackage ) { + generated = ./packages.nix; + self = np; + }; + + node_env = buildEnv { + name = "node_env"; + paths = [ + np.feedparser + np.form-data + np.irc + np.request + np.shell-quote + ]; + pathsToLink = [ "/lib" ]; + ignoreCollisions = true; + }; + +in np.buildNodePackage { + name = "newsbot-js"; + + src = fetchgit { + url = "http://cgit.prism/newsbot-js/"; + rev = "09e01639be4ea9691cf5b33f7d9057b68ac98079"; + sha256 = "28ffbed66c2efcd194c47823c7d5d5533c80852fc0cf9d9d4ee609c71d50c142"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + deps = (filter (v: nixType v == "derivation") (attrValues np)); + + buildInputs = [ + nodejs + makeWrapper + ]; + + installPhase = '' + mkdir -p $out/bin + + cp newsbot.js $out/ + cat > $out/newsbot << EOF + ${nodejs}/bin/node $out/newsbot.js + EOF + chmod +x $out/newsbot + + wrapProgram $out/newsbot \ + --prefix NODE_PATH : ${node_env}/lib/node_modules + + ln -s $out/newsbot /$out/bin/newsbot + ''; + +} diff --git a/krebs/5pkgs/simple/newsbot-js/packages.nix b/krebs/5pkgs/simple/newsbot-js/packages.nix new file mode 100644 index 000000000..62921cb8f --- /dev/null +++ b/krebs/5pkgs/simple/newsbot-js/packages.nix @@ -0,0 +1,1747 @@ +{ self, fetchurl, fetchgit ? null, lib }: + +{ + by-spec."addressparser"."^1.0.1" = + self.by-version."addressparser"."1.0.1"; + by-version."addressparser"."1.0.1" = self.buildNodePackage { + name = "addressparser-1.0.1"; + version = "1.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz"; + name = "addressparser-1.0.1.tgz"; + sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."ansi-regex"."^2.0.0" = + self.by-version."ansi-regex"."2.1.1"; + by-version."ansi-regex"."2.1.1" = self.buildNodePackage { + name = "ansi-regex-2.1.1"; + version = "2.1.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + name = "ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."ansi-styles"."^2.2.1" = + self.by-version."ansi-styles"."2.2.1"; + by-version."ansi-styles"."2.2.1" = self.buildNodePackage { + name = "ansi-styles-2.2.1"; + version = "2.2.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; + name = "ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."array-filter"."~0.0.0" = + self.by-version."array-filter"."0.0.1"; + by-version."array-filter"."0.0.1" = self.buildNodePackage { + name = "array-filter-0.0.1"; + version = "0.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz"; + name = "array-filter-0.0.1.tgz"; + sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."array-indexofobject"."~0.0.1" = + self.by-version."array-indexofobject"."0.0.1"; + by-version."array-indexofobject"."0.0.1" = self.buildNodePackage { + name = "array-indexofobject-0.0.1"; + version = "0.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz"; + name = "array-indexofobject-0.0.1.tgz"; + sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."array-map"."~0.0.0" = + self.by-version."array-map"."0.0.0"; + by-version."array-map"."0.0.0" = self.buildNodePackage { + name = "array-map-0.0.0"; + version = "0.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"; + name = "array-map-0.0.0.tgz"; + sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."array-reduce"."~0.0.0" = + self.by-version."array-reduce"."0.0.0"; + by-version."array-reduce"."0.0.0" = self.buildNodePackage { + name = "array-reduce-0.0.0"; + version = "0.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"; + name = "array-reduce-0.0.0.tgz"; + sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."asn1"."~0.2.3" = + self.by-version."asn1"."0.2.3"; + by-version."asn1"."0.2.3" = self.buildNodePackage { + name = "asn1-0.2.3"; + version = "0.2.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"; + name = "asn1-0.2.3.tgz"; + sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."assert-plus"."^0.2.0" = + self.by-version."assert-plus"."0.2.0"; + by-version."assert-plus"."0.2.0" = self.buildNodePackage { + name = "assert-plus-0.2.0"; + version = "0.2.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"; + name = "assert-plus-0.2.0.tgz"; + sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."assert-plus"."^1.0.0" = + self.by-version."assert-plus"."1.0.0"; + by-version."assert-plus"."1.0.0" = self.buildNodePackage { + name = "assert-plus-1.0.0"; + version = "1.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + name = "assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."asynckit"."^0.4.0" = + self.by-version."asynckit"."0.4.0"; + by-version."asynckit"."0.4.0" = self.buildNodePackage { + name = "asynckit-0.4.0"; + version = "0.4.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + name = "asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."aws-sign2"."~0.6.0" = + self.by-version."aws-sign2"."0.6.0"; + by-version."aws-sign2"."0.6.0" = self.buildNodePackage { + name = "aws-sign2-0.6.0"; + version = "0.6.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"; + name = "aws-sign2-0.6.0.tgz"; + sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."aws4"."^1.2.1" = + self.by-version."aws4"."1.5.0"; + by-version."aws4"."1.5.0" = self.buildNodePackage { + name = "aws4-1.5.0"; + version = "1.5.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz"; + name = "aws4-1.5.0.tgz"; + sha1 = "0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."bcrypt-pbkdf"."^1.0.0" = + self.by-version."bcrypt-pbkdf"."1.0.1"; + by-version."bcrypt-pbkdf"."1.0.1" = self.buildNodePackage { + name = "bcrypt-pbkdf-1.0.1"; + version = "1.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"; + name = "bcrypt-pbkdf-1.0.1.tgz"; + sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; + }; + deps = { + "tweetnacl-0.14.5" = self.by-version."tweetnacl"."0.14.5"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."boom"."2.x.x" = + self.by-version."boom"."2.10.1"; + by-version."boom"."2.10.1" = self.buildNodePackage { + name = "boom-2.10.1"; + version = "2.10.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"; + name = "boom-2.10.1.tgz"; + sha1 = "39c8918ceff5799f83f9492a848f625add0c766f"; + }; + deps = { + "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."buffer-shims"."^1.0.0" = + self.by-version."buffer-shims"."1.0.0"; + by-version."buffer-shims"."1.0.0" = self.buildNodePackage { + name = "buffer-shims-1.0.0"; + version = "1.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"; + name = "buffer-shims-1.0.0.tgz"; + sha1 = "9978ce317388c649ad8793028c3477ef044a8b51"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."caseless"."~0.11.0" = + self.by-version."caseless"."0.11.0"; + by-version."caseless"."0.11.0" = self.buildNodePackage { + name = "caseless-0.11.0"; + version = "0.11.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"; + name = "caseless-0.11.0.tgz"; + sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."chalk"."^1.1.1" = + self.by-version."chalk"."1.1.3"; + by-version."chalk"."1.1.3" = self.buildNodePackage { + name = "chalk-1.1.3"; + version = "1.1.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; + name = "chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + deps = { + "ansi-styles-2.2.1" = self.by-version."ansi-styles"."2.2.1"; + "escape-string-regexp-1.0.5" = self.by-version."escape-string-regexp"."1.0.5"; + "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0"; + "strip-ansi-3.0.1" = self.by-version."strip-ansi"."3.0.1"; + "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."combined-stream"."^1.0.5" = + self.by-version."combined-stream"."1.0.5"; + by-version."combined-stream"."1.0.5" = self.buildNodePackage { + name = "combined-stream-1.0.5"; + version = "1.0.5"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"; + name = "combined-stream-1.0.5.tgz"; + sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; + }; + deps = { + "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."combined-stream"."~1.0.5" = + self.by-version."combined-stream"."1.0.5"; + by-spec."commander"."^2.9.0" = + self.by-version."commander"."2.9.0"; + by-version."commander"."2.9.0" = self.buildNodePackage { + name = "commander-2.9.0"; + version = "2.9.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"; + name = "commander-2.9.0.tgz"; + sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4"; + }; + deps = { + "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."core-util-is"."~1.0.0" = + self.by-version."core-util-is"."1.0.2"; + by-version."core-util-is"."1.0.2" = self.buildNodePackage { + name = "core-util-is-1.0.2"; + version = "1.0.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + name = "core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."cryptiles"."2.x.x" = + self.by-version."cryptiles"."2.0.5"; + by-version."cryptiles"."2.0.5" = self.buildNodePackage { + name = "cryptiles-2.0.5"; + version = "2.0.5"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"; + name = "cryptiles-2.0.5.tgz"; + sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8"; + }; + deps = { + "boom-2.10.1" = self.by-version."boom"."2.10.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."dashdash"."^1.12.0" = + self.by-version."dashdash"."1.14.1"; + by-version."dashdash"."1.14.1" = self.buildNodePackage { + name = "dashdash-1.14.1"; + version = "1.14.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + name = "dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + deps = { + "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."delayed-stream"."~1.0.0" = + self.by-version."delayed-stream"."1.0.0"; + by-version."delayed-stream"."1.0.0" = self.buildNodePackage { + name = "delayed-stream-1.0.0"; + version = "1.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + name = "delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."ecc-jsbn"."~0.1.1" = + self.by-version."ecc-jsbn"."0.1.1"; + by-version."ecc-jsbn"."0.1.1" = self.buildNodePackage { + name = "ecc-jsbn-0.1.1"; + version = "0.1.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; + name = "ecc-jsbn-0.1.1.tgz"; + sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; + }; + deps = { + "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."escape-string-regexp"."^1.0.2" = + self.by-version."escape-string-regexp"."1.0.5"; + by-version."escape-string-regexp"."1.0.5" = self.buildNodePackage { + name = "escape-string-regexp-1.0.5"; + version = "1.0.5"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + name = "escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."extend"."~3.0.0" = + self.by-version."extend"."3.0.0"; + by-version."extend"."3.0.0" = self.buildNodePackage { + name = "extend-3.0.0"; + version = "3.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"; + name = "extend-3.0.0.tgz"; + sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."extsprintf"."1.0.2" = + self.by-version."extsprintf"."1.0.2"; + by-version."extsprintf"."1.0.2" = self.buildNodePackage { + name = "extsprintf-1.0.2"; + version = "1.0.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"; + name = "extsprintf-1.0.2.tgz"; + sha1 = "e1080e0658e300b06294990cc70e1502235fd550"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."feedparser"."*" = + self.by-version."feedparser"."2.1.0"; + by-version."feedparser"."2.1.0" = self.buildNodePackage { + name = "feedparser-2.1.0"; + version = "2.1.0"; + bin = true; + src = fetchurl { + url = "https://registry.npmjs.org/feedparser/-/feedparser-2.1.0.tgz"; + name = "feedparser-2.1.0.tgz"; + sha1 = "4cd98bf04e18db5b8644f91e98da89dd179f1fe7"; + }; + deps = { + "addressparser-1.0.1" = self.by-version."addressparser"."1.0.1"; + "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1"; + "lodash.assign-4.2.0" = self.by-version."lodash.assign"."4.2.0"; + "lodash.get-4.4.2" = self.by-version."lodash.get"."4.4.2"; + "lodash.has-4.5.2" = self.by-version."lodash.has"."4.5.2"; + "lodash.uniq-4.5.0" = self.by-version."lodash.uniq"."4.5.0"; + "readable-stream-2.2.2" = self.by-version."readable-stream"."2.2.2"; + "sax-1.2.1" = self.by-version."sax"."1.2.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "feedparser" = self.by-version."feedparser"."2.1.0"; + by-spec."forever-agent"."~0.6.1" = + self.by-version."forever-agent"."0.6.1"; + by-version."forever-agent"."0.6.1" = self.buildNodePackage { + name = "forever-agent-0.6.1"; + version = "0.6.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + name = "forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."form-data"."*" = + self.by-version."form-data"."2.1.2"; + by-version."form-data"."2.1.2" = self.buildNodePackage { + name = "form-data-2.1.2"; + version = "2.1.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz"; + name = "form-data-2.1.2.tgz"; + sha1 = "89c3534008b97eada4cbb157d58f6f5df025eae4"; + }; + deps = { + "asynckit-0.4.0" = self.by-version."asynckit"."0.4.0"; + "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; + "mime-types-2.1.14" = self.by-version."mime-types"."2.1.14"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "form-data" = self.by-version."form-data"."2.1.2"; + by-spec."form-data"."~2.1.1" = + self.by-version."form-data"."2.1.2"; + by-spec."generate-function"."^2.0.0" = + self.by-version."generate-function"."2.0.0"; + by-version."generate-function"."2.0.0" = self.buildNodePackage { + name = "generate-function-2.0.0"; + version = "2.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"; + name = "generate-function-2.0.0.tgz"; + sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."generate-object-property"."^1.1.0" = + self.by-version."generate-object-property"."1.2.0"; + by-version."generate-object-property"."1.2.0" = self.buildNodePackage { + name = "generate-object-property-1.2.0"; + version = "1.2.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"; + name = "generate-object-property-1.2.0.tgz"; + sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0"; + }; + deps = { + "is-property-1.0.2" = self.by-version."is-property"."1.0.2"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."getpass"."^0.1.1" = + self.by-version."getpass"."0.1.6"; + by-version."getpass"."0.1.6" = self.buildNodePackage { + name = "getpass-0.1.6"; + version = "0.1.6"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz"; + name = "getpass-0.1.6.tgz"; + sha1 = "283ffd9fc1256840875311c1b60e8c40187110e6"; + }; + deps = { + "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."graceful-readlink".">= 1.0.0" = + self.by-version."graceful-readlink"."1.0.1"; + by-version."graceful-readlink"."1.0.1" = self.buildNodePackage { + name = "graceful-readlink-1.0.1"; + version = "1.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; + name = "graceful-readlink-1.0.1.tgz"; + sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."har-validator"."~2.0.6" = + self.by-version."har-validator"."2.0.6"; + by-version."har-validator"."2.0.6" = self.buildNodePackage { + name = "har-validator-2.0.6"; + version = "2.0.6"; + bin = true; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz"; + name = "har-validator-2.0.6.tgz"; + sha1 = "cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"; + }; + deps = { + "chalk-1.1.3" = self.by-version."chalk"."1.1.3"; + "commander-2.9.0" = self.by-version."commander"."2.9.0"; + "is-my-json-valid-2.15.0" = self.by-version."is-my-json-valid"."2.15.0"; + "pinkie-promise-2.0.1" = self.by-version."pinkie-promise"."2.0.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."has-ansi"."^2.0.0" = + self.by-version."has-ansi"."2.0.0"; + by-version."has-ansi"."2.0.0" = self.buildNodePackage { + name = "has-ansi-2.0.0"; + version = "2.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; + name = "has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + deps = { + "ansi-regex-2.1.1" = self.by-version."ansi-regex"."2.1.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."hawk"."~3.1.3" = + self.by-version."hawk"."3.1.3"; + by-version."hawk"."3.1.3" = self.buildNodePackage { + name = "hawk-3.1.3"; + version = "3.1.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"; + name = "hawk-3.1.3.tgz"; + sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4"; + }; + deps = { + "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; + "boom-2.10.1" = self.by-version."boom"."2.10.1"; + "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5"; + "sntp-1.0.9" = self.by-version."sntp"."1.0.9"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."hoek"."2.x.x" = + self.by-version."hoek"."2.16.3"; + by-version."hoek"."2.16.3" = self.buildNodePackage { + name = "hoek-2.16.3"; + version = "2.16.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"; + name = "hoek-2.16.3.tgz"; + sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."http-signature"."~1.1.0" = + self.by-version."http-signature"."1.1.1"; + by-version."http-signature"."1.1.1" = self.buildNodePackage { + name = "http-signature-1.1.1"; + version = "1.1.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz"; + name = "http-signature-1.1.1.tgz"; + sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf"; + }; + deps = { + "assert-plus-0.2.0" = self.by-version."assert-plus"."0.2.0"; + "jsprim-1.3.1" = self.by-version."jsprim"."1.3.1"; + "sshpk-1.10.2" = self.by-version."sshpk"."1.10.2"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."iconv"."~2.2.1" = + self.by-version."iconv"."2.2.1"; + by-version."iconv"."2.2.1" = self.buildNodePackage { + name = "iconv-2.2.1"; + version = "2.2.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/iconv/-/iconv-2.2.1.tgz"; + name = "iconv-2.2.1.tgz"; + sha1 = "39b13fdd98987d26aef26c0a2f2a900911fa4584"; + }; + deps = { + "nan-2.5.1" = self.by-version."nan"."2.5.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."inherits"."~2.0.1" = + self.by-version."inherits"."2.0.3"; + by-version."inherits"."2.0.3" = self.buildNodePackage { + name = "inherits-2.0.3"; + version = "2.0.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + name = "inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."irc"."*" = + self.by-version."irc"."0.5.2"; + by-version."irc"."0.5.2" = self.buildNodePackage { + name = "irc-0.5.2"; + version = "0.5.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz"; + name = "irc-0.5.2.tgz"; + sha1 = "3714f4768365a96d0b2f776bc91166beb2464bbc"; + }; + deps = { + "irc-colors-1.3.1" = self.by-version."irc-colors"."1.3.1"; + }; + optionalDependencies = { + "iconv-2.2.1" = self.by-version."iconv"."2.2.1"; + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "irc" = self.by-version."irc"."0.5.2"; + by-spec."irc-colors"."^1.1.0" = + self.by-version."irc-colors"."1.3.1"; + by-version."irc-colors"."1.3.1" = self.buildNodePackage { + name = "irc-colors-1.3.1"; + version = "1.3.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.3.1.tgz"; + name = "irc-colors-1.3.1.tgz"; + sha1 = "a6fccee5d9ecdc010c2b1cde3fbdff1f7134aff6"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."is-my-json-valid"."^2.12.4" = + self.by-version."is-my-json-valid"."2.15.0"; + by-version."is-my-json-valid"."2.15.0" = self.buildNodePackage { + name = "is-my-json-valid-2.15.0"; + version = "2.15.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz"; + name = "is-my-json-valid-2.15.0.tgz"; + sha1 = "936edda3ca3c211fd98f3b2d3e08da43f7b2915b"; + }; + deps = { + "generate-function-2.0.0" = self.by-version."generate-function"."2.0.0"; + "generate-object-property-1.2.0" = self.by-version."generate-object-property"."1.2.0"; + "jsonpointer-4.0.1" = self.by-version."jsonpointer"."4.0.1"; + "xtend-4.0.1" = self.by-version."xtend"."4.0.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."is-property"."^1.0.0" = + self.by-version."is-property"."1.0.2"; + by-version."is-property"."1.0.2" = self.buildNodePackage { + name = "is-property-1.0.2"; + version = "1.0.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"; + name = "is-property-1.0.2.tgz"; + sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."is-typedarray"."~1.0.0" = + self.by-version."is-typedarray"."1.0.0"; + by-version."is-typedarray"."1.0.0" = self.buildNodePackage { + name = "is-typedarray-1.0.0"; + version = "1.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + name = "is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."isarray"."~1.0.0" = + self.by-version."isarray"."1.0.0"; + by-version."isarray"."1.0.0" = self.buildNodePackage { + name = "isarray-1.0.0"; + version = "1.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + name = "isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."isstream"."~0.1.2" = + self.by-version."isstream"."0.1.2"; + by-version."isstream"."0.1.2" = self.buildNodePackage { + name = "isstream-0.1.2"; + version = "0.1.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + name = "isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."jodid25519"."^1.0.0" = + self.by-version."jodid25519"."1.0.2"; + by-version."jodid25519"."1.0.2" = self.buildNodePackage { + name = "jodid25519-1.0.2"; + version = "1.0.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"; + name = "jodid25519-1.0.2.tgz"; + sha1 = "06d4912255093419477d425633606e0e90782967"; + }; + deps = { + "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."jsbn"."~0.1.0" = + self.by-version."jsbn"."0.1.0"; + by-version."jsbn"."0.1.0" = self.buildNodePackage { + name = "jsbn-0.1.0"; + version = "0.1.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"; + name = "jsbn-0.1.0.tgz"; + sha1 = "650987da0dd74f4ebf5a11377a2aa2d273e97dfd"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."json-schema"."0.2.3" = + self.by-version."json-schema"."0.2.3"; + by-version."json-schema"."0.2.3" = self.buildNodePackage { + name = "json-schema-0.2.3"; + version = "0.2.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + name = "json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."json-stringify-safe"."~5.0.1" = + self.by-version."json-stringify-safe"."5.0.1"; + by-version."json-stringify-safe"."5.0.1" = self.buildNodePackage { + name = "json-stringify-safe-5.0.1"; + version = "5.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + name = "json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."jsonify"."~0.0.0" = + self.by-version."jsonify"."0.0.0"; + by-version."jsonify"."0.0.0" = self.buildNodePackage { + name = "jsonify-0.0.0"; + version = "0.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"; + name = "jsonify-0.0.0.tgz"; + sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."jsonpointer"."^4.0.0" = + self.by-version."jsonpointer"."4.0.1"; + by-version."jsonpointer"."4.0.1" = self.buildNodePackage { + name = "jsonpointer-4.0.1"; + version = "4.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz"; + name = "jsonpointer-4.0.1.tgz"; + sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."jsprim"."^1.2.2" = + self.by-version."jsprim"."1.3.1"; + by-version."jsprim"."1.3.1" = self.buildNodePackage { + name = "jsprim-1.3.1"; + version = "1.3.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz"; + name = "jsprim-1.3.1.tgz"; + sha1 = "2a7256f70412a29ee3670aaca625994c4dcff252"; + }; + deps = { + "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2"; + "json-schema-0.2.3" = self.by-version."json-schema"."0.2.3"; + "verror-1.3.6" = self.by-version."verror"."1.3.6"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."lodash.assign"."^4.2.0" = + self.by-version."lodash.assign"."4.2.0"; + by-version."lodash.assign"."4.2.0" = self.buildNodePackage { + name = "lodash.assign-4.2.0"; + version = "4.2.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz"; + name = "lodash.assign-4.2.0.tgz"; + sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."lodash.get"."^4.4.2" = + self.by-version."lodash.get"."4.4.2"; + by-version."lodash.get"."4.4.2" = self.buildNodePackage { + name = "lodash.get-4.4.2"; + version = "4.4.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"; + name = "lodash.get-4.4.2.tgz"; + sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."lodash.has"."^4.5.2" = + self.by-version."lodash.has"."4.5.2"; + by-version."lodash.has"."4.5.2" = self.buildNodePackage { + name = "lodash.has-4.5.2"; + version = "4.5.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz"; + name = "lodash.has-4.5.2.tgz"; + sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."lodash.uniq"."^4.5.0" = + self.by-version."lodash.uniq"."4.5.0"; + by-version."lodash.uniq"."4.5.0" = self.buildNodePackage { + name = "lodash.uniq-4.5.0"; + version = "4.5.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; + name = "lodash.uniq-4.5.0.tgz"; + sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."mime-db"."~1.26.0" = + self.by-version."mime-db"."1.26.0"; + by-version."mime-db"."1.26.0" = self.buildNodePackage { + name = "mime-db-1.26.0"; + version = "1.26.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; + name = "mime-db-1.26.0.tgz"; + sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."mime-types"."^2.1.12" = + self.by-version."mime-types"."2.1.14"; + by-version."mime-types"."2.1.14" = self.buildNodePackage { + name = "mime-types-2.1.14"; + version = "2.1.14"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; + name = "mime-types-2.1.14.tgz"; + sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + }; + deps = { + "mime-db-1.26.0" = self.by-version."mime-db"."1.26.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."mime-types"."~2.1.7" = + self.by-version."mime-types"."2.1.14"; + by-spec."nan"."^2.3.3" = + self.by-version."nan"."2.5.1"; + by-version."nan"."2.5.1" = self.buildNodePackage { + name = "nan-2.5.1"; + version = "2.5.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz"; + name = "nan-2.5.1.tgz"; + sha1 = "d5b01691253326a97a2bbee9e61c55d8d60351e2"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."nan"."^2.3.5" = + self.by-version."nan"."2.5.1"; + by-spec."oauth-sign"."~0.8.1" = + self.by-version."oauth-sign"."0.8.2"; + by-version."oauth-sign"."0.8.2" = self.buildNodePackage { + name = "oauth-sign-0.8.2"; + version = "0.8.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"; + name = "oauth-sign-0.8.2.tgz"; + sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."pinkie"."^2.0.0" = + self.by-version."pinkie"."2.0.4"; + by-version."pinkie"."2.0.4" = self.buildNodePackage { + name = "pinkie-2.0.4"; + version = "2.0.4"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; + name = "pinkie-2.0.4.tgz"; + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."pinkie-promise"."^2.0.0" = + self.by-version."pinkie-promise"."2.0.1"; + by-version."pinkie-promise"."2.0.1" = self.buildNodePackage { + name = "pinkie-promise-2.0.1"; + version = "2.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; + name = "pinkie-promise-2.0.1.tgz"; + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; + }; + deps = { + "pinkie-2.0.4" = self.by-version."pinkie"."2.0.4"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."process-nextick-args"."~1.0.6" = + self.by-version."process-nextick-args"."1.0.7"; + by-version."process-nextick-args"."1.0.7" = self.buildNodePackage { + name = "process-nextick-args-1.0.7"; + version = "1.0.7"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"; + name = "process-nextick-args-1.0.7.tgz"; + sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."punycode"."^1.4.1" = + self.by-version."punycode"."1.4.1"; + by-version."punycode"."1.4.1" = self.buildNodePackage { + name = "punycode-1.4.1"; + version = "1.4.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + name = "punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."qs"."~6.3.0" = + self.by-version."qs"."6.3.0"; + by-version."qs"."6.3.0" = self.buildNodePackage { + name = "qs-6.3.0"; + version = "6.3.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz"; + name = "qs-6.3.0.tgz"; + sha1 = "f403b264f23bc01228c74131b407f18d5ea5d442"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."readable-stream"."^2.2.2" = + self.by-version."readable-stream"."2.2.2"; + by-version."readable-stream"."2.2.2" = self.buildNodePackage { + name = "readable-stream-2.2.2"; + version = "2.2.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"; + name = "readable-stream-2.2.2.tgz"; + sha1 = "a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"; + }; + deps = { + "buffer-shims-1.0.0" = self.by-version."buffer-shims"."1.0.0"; + "core-util-is-1.0.2" = self.by-version."core-util-is"."1.0.2"; + "isarray-1.0.0" = self.by-version."isarray"."1.0.0"; + "inherits-2.0.3" = self.by-version."inherits"."2.0.3"; + "process-nextick-args-1.0.7" = self.by-version."process-nextick-args"."1.0.7"; + "string_decoder-0.10.31" = self.by-version."string_decoder"."0.10.31"; + "util-deprecate-1.0.2" = self.by-version."util-deprecate"."1.0.2"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."request"."*" = + self.by-version."request"."2.79.0"; + by-version."request"."2.79.0" = self.buildNodePackage { + name = "request-2.79.0"; + version = "2.79.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.79.0.tgz"; + name = "request-2.79.0.tgz"; + sha1 = "4dfe5bf6be8b8cdc37fcf93e04b65577722710de"; + }; + deps = { + "aws-sign2-0.6.0" = self.by-version."aws-sign2"."0.6.0"; + "aws4-1.5.0" = self.by-version."aws4"."1.5.0"; + "caseless-0.11.0" = self.by-version."caseless"."0.11.0"; + "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; + "extend-3.0.0" = self.by-version."extend"."3.0.0"; + "forever-agent-0.6.1" = self.by-version."forever-agent"."0.6.1"; + "form-data-2.1.2" = self.by-version."form-data"."2.1.2"; + "har-validator-2.0.6" = self.by-version."har-validator"."2.0.6"; + "hawk-3.1.3" = self.by-version."hawk"."3.1.3"; + "http-signature-1.1.1" = self.by-version."http-signature"."1.1.1"; + "is-typedarray-1.0.0" = self.by-version."is-typedarray"."1.0.0"; + "isstream-0.1.2" = self.by-version."isstream"."0.1.2"; + "json-stringify-safe-5.0.1" = self.by-version."json-stringify-safe"."5.0.1"; + "mime-types-2.1.14" = self.by-version."mime-types"."2.1.14"; + "oauth-sign-0.8.2" = self.by-version."oauth-sign"."0.8.2"; + "qs-6.3.0" = self.by-version."qs"."6.3.0"; + "stringstream-0.0.5" = self.by-version."stringstream"."0.0.5"; + "tough-cookie-2.3.2" = self.by-version."tough-cookie"."2.3.2"; + "tunnel-agent-0.4.3" = self.by-version."tunnel-agent"."0.4.3"; + "uuid-3.0.1" = self.by-version."uuid"."3.0.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "request" = self.by-version."request"."2.79.0"; + by-spec."sax"."^1.2.1" = + self.by-version."sax"."1.2.1"; + by-version."sax"."1.2.1" = self.buildNodePackage { + name = "sax-1.2.1"; + version = "1.2.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz"; + name = "sax-1.2.1.tgz"; + sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."shell-quote"."*" = + self.by-version."shell-quote"."1.6.1"; + by-version."shell-quote"."1.6.1" = self.buildNodePackage { + name = "shell-quote-1.6.1"; + version = "1.6.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz"; + name = "shell-quote-1.6.1.tgz"; + sha1 = "f4781949cce402697127430ea3b3c5476f481767"; + }; + deps = { + "jsonify-0.0.0" = self.by-version."jsonify"."0.0.0"; + "array-filter-0.0.1" = self.by-version."array-filter"."0.0.1"; + "array-reduce-0.0.0" = self.by-version."array-reduce"."0.0.0"; + "array-map-0.0.0" = self.by-version."array-map"."0.0.0"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + "shell-quote" = self.by-version."shell-quote"."1.6.1"; + by-spec."sntp"."1.x.x" = + self.by-version."sntp"."1.0.9"; + by-version."sntp"."1.0.9" = self.buildNodePackage { + name = "sntp-1.0.9"; + version = "1.0.9"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"; + name = "sntp-1.0.9.tgz"; + sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198"; + }; + deps = { + "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."sshpk"."^1.7.0" = + self.by-version."sshpk"."1.10.2"; + by-version."sshpk"."1.10.2" = self.buildNodePackage { + name = "sshpk-1.10.2"; + version = "1.10.2"; + bin = true; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz"; + name = "sshpk-1.10.2.tgz"; + sha1 = "d5a804ce22695515638e798dbe23273de070a5fa"; + }; + deps = { + "asn1-0.2.3" = self.by-version."asn1"."0.2.3"; + "assert-plus-1.0.0" = self.by-version."assert-plus"."1.0.0"; + "dashdash-1.14.1" = self.by-version."dashdash"."1.14.1"; + "getpass-0.1.6" = self.by-version."getpass"."0.1.6"; + }; + optionalDependencies = { + "jsbn-0.1.0" = self.by-version."jsbn"."0.1.0"; + "tweetnacl-0.14.5" = self.by-version."tweetnacl"."0.14.5"; + "jodid25519-1.0.2" = self.by-version."jodid25519"."1.0.2"; + "ecc-jsbn-0.1.1" = self.by-version."ecc-jsbn"."0.1.1"; + "bcrypt-pbkdf-1.0.1" = self.by-version."bcrypt-pbkdf"."1.0.1"; + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."string_decoder"."~0.10.x" = + self.by-version."string_decoder"."0.10.31"; + by-version."string_decoder"."0.10.31" = self.buildNodePackage { + name = "string_decoder-0.10.31"; + version = "0.10.31"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; + name = "string_decoder-0.10.31.tgz"; + sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."stringstream"."~0.0.4" = + self.by-version."stringstream"."0.0.5"; + by-version."stringstream"."0.0.5" = self.buildNodePackage { + name = "stringstream-0.0.5"; + version = "0.0.5"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"; + name = "stringstream-0.0.5.tgz"; + sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."strip-ansi"."^3.0.0" = + self.by-version."strip-ansi"."3.0.1"; + by-version."strip-ansi"."3.0.1" = self.buildNodePackage { + name = "strip-ansi-3.0.1"; + version = "3.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + name = "strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + deps = { + "ansi-regex-2.1.1" = self.by-version."ansi-regex"."2.1.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."supports-color"."^2.0.0" = + self.by-version."supports-color"."2.0.0"; + by-version."supports-color"."2.0.0" = self.buildNodePackage { + name = "supports-color-2.0.0"; + version = "2.0.0"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; + name = "supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."tough-cookie"."~2.3.0" = + self.by-version."tough-cookie"."2.3.2"; + by-version."tough-cookie"."2.3.2" = self.buildNodePackage { + name = "tough-cookie-2.3.2"; + version = "2.3.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"; + name = "tough-cookie-2.3.2.tgz"; + sha1 = "f081f76e4c85720e6c37a5faced737150d84072a"; + }; + deps = { + "punycode-1.4.1" = self.by-version."punycode"."1.4.1"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."tunnel-agent"."~0.4.1" = + self.by-version."tunnel-agent"."0.4.3"; + by-version."tunnel-agent"."0.4.3" = self.buildNodePackage { + name = "tunnel-agent-0.4.3"; + version = "0.4.3"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz"; + name = "tunnel-agent-0.4.3.tgz"; + sha1 = "6373db76909fe570e08d73583365ed828a74eeeb"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."tweetnacl"."^0.14.3" = + self.by-version."tweetnacl"."0.14.5"; + by-version."tweetnacl"."0.14.5" = self.buildNodePackage { + name = "tweetnacl-0.14.5"; + version = "0.14.5"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + name = "tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."tweetnacl"."~0.14.0" = + self.by-version."tweetnacl"."0.14.5"; + by-spec."util-deprecate"."~1.0.1" = + self.by-version."util-deprecate"."1.0.2"; + by-version."util-deprecate"."1.0.2" = self.buildNodePackage { + name = "util-deprecate-1.0.2"; + version = "1.0.2"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + name = "util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."uuid"."^3.0.0" = + self.by-version."uuid"."3.0.1"; + by-version."uuid"."3.0.1" = self.buildNodePackage { + name = "uuid-3.0.1"; + version = "3.0.1"; + bin = true; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"; + name = "uuid-3.0.1.tgz"; + sha1 = "6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."verror"."1.3.6" = + self.by-version."verror"."1.3.6"; + by-version."verror"."1.3.6" = self.buildNodePackage { + name = "verror-1.3.6"; + version = "1.3.6"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"; + name = "verror-1.3.6.tgz"; + sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c"; + }; + deps = { + "extsprintf-1.0.2" = self.by-version."extsprintf"."1.0.2"; + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; + by-spec."xtend"."^4.0.0" = + self.by-version."xtend"."4.0.1"; + by-version."xtend"."4.0.1" = self.buildNodePackage { + name = "xtend-4.0.1"; + version = "4.0.1"; + bin = false; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"; + name = "xtend-4.0.1.tgz"; + sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; + }; + deps = { + }; + optionalDependencies = { + }; + peerDependencies = []; + os = [ ]; + cpu = [ ]; + }; +} diff --git a/krebs/5pkgs/simple/noVNC/default.nix b/krebs/5pkgs/simple/noVNC/default.nix new file mode 100644 index 000000000..45c3afb3a --- /dev/null +++ b/krebs/5pkgs/simple/noVNC/default.nix @@ -0,0 +1,21 @@ +{ fetchgit, lib, stdenv, ... }: +with builtins; +with lib; +stdenv.mkDerivation rec { + name = "${baseNameOf src.name}-${removePrefix "refs/tags/v" src.rev}"; + + src = fetchgit { + url = https://github.com/kanaka/noVNC; + rev = "refs/tags/v0.5.1"; + sha256 = "1vckvvfcawgfqmx415r5rnl6k2alx53jbqmsj49kxpbdvvxpb49d"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + cp -R . $out + ''; +} diff --git a/krebs/5pkgs/simple/painload/default.nix b/krebs/5pkgs/simple/painload/default.nix new file mode 100644 index 000000000..136ec4394 --- /dev/null +++ b/krebs/5pkgs/simple/painload/default.nix @@ -0,0 +1,7 @@ +{ fetchgit, ... }: + +fetchgit { + url = https://github.com/krebscode/painload; + rev = "c113487f73713a03b1a139b22bb34b86234d0495"; + sha256 = "1irxklnmvm8wsa70ypjahkr8rfqq7357vcy8r0x1sfncs1hy6gr6"; +} diff --git a/krebs/5pkgs/simple/passwdqc-utils/default.nix b/krebs/5pkgs/simple/passwdqc-utils/default.nix new file mode 100644 index 000000000..53e7f5482 --- /dev/null +++ b/krebs/5pkgs/simple/passwdqc-utils/default.nix @@ -0,0 +1,37 @@ +{ stdenv, pam, + fetchurl, lib, + wordset-file ? null, # set your own wordset-file + ... }: + +stdenv.mkDerivation rec { + name = "passwdqc-utils-${version}"; + version = "1.3.0"; + buildInputs = [ pam ]; + + src = fetchurl { + url = "http://www.openwall.com/passwdqc/passwdqc-${version}.tar.gz"; + sha256 = "0l3zbrp4pvah0dz33m48aqlz9nx663cc1fqhnlwr0p853b10la93"; + }; + + buildTargets = "utils"; + installFlags= [ "BINDIR=$(out)/bin" + "CONFDIR=$(out)/etc" + "SHARED_LIBDIR=$(out)/lib" + "DEVEL_LIBDIR=$(out)/lib" + "SECUREDIR=$(out)/lib/security" + "INCLUDEDIR=$(out)/include" + "MANDIR=$(out)/man" ]; + + patchPhase = lib.optionalString (wordset-file != null) '' + cp -f ${wordset-file} wordset_4k.c + ''; + + installTargets = "install_lib install_utils"; + + meta = { + description = "passwdqc utils (pwqgen,pwqcheck) and library"; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.makefu ]; + patforms = stdenv.lib.platforms.linux; # more installFlags must be set for Darwin,Solaris + }; +} diff --git a/krebs/5pkgs/simple/populate/default.nix b/krebs/5pkgs/simple/populate/default.nix new file mode 100644 index 000000000..3ec432229 --- /dev/null +++ b/krebs/5pkgs/simple/populate/default.nix @@ -0,0 +1,36 @@ +{ coreutils, fetchgit, git, jq, openssh, proot, rsync, stdenv, ... }: + +let + PATH = stdenv.lib.makeBinPath [ + coreutils + git + jq + openssh + proot + rsync + ]; +in + +stdenv.mkDerivation rec { + name = "populate"; + version = "1.2.0"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/populate; + rev = "refs/tags/v${version}"; + sha256 = "0q3110hkkxn9bc3a63xbx1hyd1fpzz4wrck4lng3j5a9i1y1jm07"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + sed \ + '1s,.*,&\nPATH=${PATH},' \ + -i bin/populate + + cp -r . $out + ''; +} diff --git a/krebs/5pkgs/simple/posix-array/default.nix b/krebs/5pkgs/simple/posix-array/default.nix new file mode 100644 index 000000000..cfcdb29a7 --- /dev/null +++ b/krebs/5pkgs/simple/posix-array/default.nix @@ -0,0 +1,30 @@ +{ fetchgit, lib, stdenv, ... }: + +stdenv.mkDerivation rec { + name = "posix-array-${version}"; + version = "1.0.0"; + + src = fetchgit { + url = https://github.com/makefu/array.git; + rev = "refs/tags/${version}"; + sha256 = "0yzwlhdg1rgc4p64ny7gj30l7z6vikhskhppsa2qj7s9gm2gz938"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + mkdir -p $out/bin + cp -a ./array $out/bin + ''; + + meta = { + description = "POSIX-compliant array implementation"; + url = https://github.com/makefu/array; + license = lib.licenses.wtfpl; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ makefu ]; + }; +} diff --git a/krebs/5pkgs/simple/pssh/default.nix b/krebs/5pkgs/simple/pssh/default.nix new file mode 100644 index 000000000..2676af0cf --- /dev/null +++ b/krebs/5pkgs/simple/pssh/default.nix @@ -0,0 +1,36 @@ +{ writeDashBin }: + +writeDashBin "pssh" '' + set -efu + case ''${1-} in + + # TODO create plog with -o json | jq ... | map date + + # usage: pssh {-j,--journal} host... + # Follow journal at each host. + -j|--journal) + shift + "$0" journalctl -n0 -ocat --follow --all ::: "$@" \ + | while read line; do + printf '%s %s\n' "$(date --rfc-3339=s)" "$line" + done + ;; + + -*) + echo $0: unknown option: $1 >&2 + exit 1 + ;; + + # usage: pssh command [arg...] ::: host... + # Run command at each host. + *) + exec parallel \ + --line-buffer \ + -j0 \ + --no-notice \ + --tagstring {} \ + ssh -T {} "$@" + ;; + + esac +'' diff --git a/krebs/5pkgs/simple/push/default.nix b/krebs/5pkgs/simple/push/default.nix new file mode 100644 index 000000000..2e0291aac --- /dev/null +++ b/krebs/5pkgs/simple/push/default.nix @@ -0,0 +1,49 @@ +{ fetchgit, lib, stdenv +, coreutils +, git +, gnumake +, gnused +, jq +, nix +, openssh +, parallel +, ... }: + +stdenv.mkDerivation { + name = "push-1.1.2"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/push; + rev = "da5b3a4b05ef822cc41d36b6cc2071a2e78506d4"; + sha256 = "0gfxz207lm11g77rw02jcqpvzhx07j9hzgjgscbmslzl5r8icd6g"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = + let + path = lib.makeBinPath [ + coreutils + git + gnumake + gnused + jq + nix + openssh + parallel + ]; + in + '' + mkdir -p $out/bin + + sed \ + '1s,.*,&\nPATH=${path},' \ + < ./push \ + > $out/bin/push + + chmod +x $out/bin/push + ''; +} diff --git a/krebs/5pkgs/simple/realwallpaper/default.nix b/krebs/5pkgs/simple/realwallpaper/default.nix new file mode 100644 index 000000000..15cc277a5 --- /dev/null +++ b/krebs/5pkgs/simple/realwallpaper/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchgit, xplanet, imagemagick, curl, file }: + +stdenv.mkDerivation { + name = "realwallpaper"; + + src = fetchgit { + url = https://github.com/Lassulus/realwallpaper; + rev = "e0563289c2ab592b669ce4549fc40130246e9d79"; + sha256 = "1zgk8ips2d686216h203w62wrw7zy9z0lrndx9f8z6f1vpvjcmqc"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + buildInputs = [ + ]; + + installPhase = '' + mkdir -p $out + cp realwallpaper.sh $out/realwallpaper.sh + ''; +} diff --git a/krebs/5pkgs/simple/repo-sync/default.nix b/krebs/5pkgs/simple/repo-sync/default.nix new file mode 100644 index 000000000..7cba87b09 --- /dev/null +++ b/krebs/5pkgs/simple/repo-sync/default.nix @@ -0,0 +1,21 @@ +{ lib, pkgs, python3Packages, fetchurl, ... }: + +with python3Packages; buildPythonPackage rec { + name = "repo-sync-${version}"; + version = "0.2.6"; + disabled = isPy26 || isPy27; + propagatedBuildInputs = [ + docopt + GitPython + pkgs.git + ]; + src = fetchurl { + url = "https://pypi.python.org/packages/source/r/repo-sync/repo-sync-${version}.tar.gz"; + sha256 = "1hqa9qw9qg7mxgniqzys9szycs05llg4yik8a9wz94a437zzarsk"; + }; + meta = { + homepage = http://github.com/makefu/repo-sync; + description = "Sync remotes to other remotes."; + license = lib.licenses.mit; + }; +} diff --git a/krebs/5pkgs/simple/retiolum-bootstrap/default.nix b/krebs/5pkgs/simple/retiolum-bootstrap/default.nix new file mode 100644 index 000000000..331b1cb7f --- /dev/null +++ b/krebs/5pkgs/simple/retiolum-bootstrap/default.nix @@ -0,0 +1,29 @@ +{ stdenv,lib,fetchurl, ... }: +with lib; +stdenv.mkDerivation rec { + name = "retiolum-bootstrap"; + version = "4.2.3"; + + + src = fetchurl { + url = https://raw.githubusercontent.com/krebscode/painload/master/retiolum/scripts/tinc_setup/new_install.sh; + sha256 = "03kmil8q2xm3rdm2jxyah7vww84pw6w01d0c3siid9zpn2j7la9s"; + }; + + phases = [ + "installPhase" + ]; + + installPhase = '' + mkdir -p "$out" + cp -a ${src} $out/retiolum.sh + ''; + + meta = { + description = "Retiolum boostrap scripts"; + url = https://github.com/krebscode/painload; + license = licenses.wtfpl; + platforms = platforms.unix; + maintainers = with maintainers; [ makefu ]; + }; +} diff --git a/krebs/5pkgs/simple/rutorrent/default.nix b/krebs/5pkgs/simple/rutorrent/default.nix new file mode 100644 index 000000000..1084e7ce7 --- /dev/null +++ b/krebs/5pkgs/simple/rutorrent/default.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: +pkgs.stdenv.mkDerivation { + name = "rutorrent-src_2016-12-09"; + src = pkgs.fetchFromGitHub { + owner = "Novik"; + repo = "rutorrent"; + rev = "580bba8c538b55c1f75f3ad65310ff4ff2a153f7"; + sha256 = "1d9lgrzipy58dnx88z393p152kx6lki0x4aw40k8w9awsci4cx7p"; + }; + + phases = [ "installPhase" ]; + installPhase = '' + cp -r $src $out + ''; +} diff --git a/krebs/5pkgs/simple/tarantool/default.nix b/krebs/5pkgs/simple/tarantool/default.nix new file mode 100644 index 000000000..9e22fd4f3 --- /dev/null +++ b/krebs/5pkgs/simple/tarantool/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchgit, cmake, ncurses, openssl, readline, ... }: + +stdenv.mkDerivation rec { + name = "tarantool-1.7.1-164-g0fd0239"; + src = fetchgit { + url = https://github.com/tarantool/tarantool; + rev = builtins.elemAt (builtins.match ".*-g([0-9a-f]+)" name) 0; + sha256 = "1jnaiizbl9j4a8vsihqx75iqa9bkh1kpwsyrgmim8ikiyzfw54dz"; + fetchSubmodules = true; + }; + buildInputs = [ + cmake + ncurses + openssl + readline + ]; + preConfigure = '' + echo ${(builtins.parseDrvName name).version} > VERSION + sed -i 's/NAMES termcap/NAMES ncurses/' cmake/FindTermcap.cmake + ''; +} diff --git a/krebs/5pkgs/simple/tinc_graphs/default.nix b/krebs/5pkgs/simple/tinc_graphs/default.nix new file mode 100644 index 000000000..20bbc53ba --- /dev/null +++ b/krebs/5pkgs/simple/tinc_graphs/default.nix @@ -0,0 +1,26 @@ +{stdenv,fetchurl,pkgs,python3Packages, ... }: + +python3Packages.buildPythonPackage rec { + name = "tinc_graphs-${version}"; + version = "0.3.10"; + propagatedBuildInputs = with pkgs;[ + python3Packages.pygeoip + ## ${geolite-legacy}/share/GeoIP/GeoIPCity.dat + ]; + src = fetchurl { + url = "mirror://pypi/t/tinc_graphs/${name}.tar.gz"; + sha256 = "0f4cvb9424fhfmc0hbzmynzh9528fyhx00ayq1nbpgd1p89yw7mc"; + }; + preFixup = with pkgs;'' + wrapProgram $out/bin/build-graphs --prefix PATH : "$out/bin" + wrapProgram $out/bin/all-the-graphs --prefix PATH : "${imagemagick}/bin:${graphviz}/bin:$out/bin" + wrapProgram $out/bin/tinc-stats2json --prefix PATH : "${tinc}/bin" + ''; + + meta = { + homepage = http://krebsco.de/; + description = "Create Graphs from Tinc Stats"; + license = stdenv.lib.licenses.wtfpl; + }; +} + diff --git a/krebs/5pkgs/simple/translate-shell/default.nix b/krebs/5pkgs/simple/translate-shell/default.nix new file mode 100644 index 000000000..00ab226e5 --- /dev/null +++ b/krebs/5pkgs/simple/translate-shell/default.nix @@ -0,0 +1,43 @@ +{stdenv, fetchurl,pkgs,... }: +let + s = + rec { + baseName="translate-shell"; + version="0.9.0.9"; + name="${baseName}-${version}"; + url=https://github.com/soimort/translate-shell/archive/v0.9.0.9.tar.gz; + sha256="1269j4yr9dr1d8c5kmysbzfplbgdg8apqnzs5w57d29sd7gz2i34"; + }; + searchpath = with pkgs; stdenv.lib.makeSearchPath "bin" [ + fribidi + gawk + bash + curl + less + ]; + buildInputs = [ + pkgs.makeWrapper + ]; +in +stdenv.mkDerivation { + inherit (s) name version; + inherit buildInputs; + src = fetchurl { + inherit (s) url sha256; + }; + # TODO: maybe mplayer + installPhase = '' + mkdir -p $out/bin + make PREFIX=$out install + wrapProgram $out/bin/trans --suffix PATH : "${searchpath}" + ''; + + meta = { + inherit (s) version; + description = ''translate using google api''; + license = stdenv.lib.licenses.free; + maintainers = [stdenv.lib.maintainers.makefu]; + platforms = stdenv.lib.platforms.linux ; + }; +} + diff --git a/krebs/5pkgs/simple/treq/default.nix b/krebs/5pkgs/simple/treq/default.nix new file mode 100644 index 000000000..20387b9cb --- /dev/null +++ b/krebs/5pkgs/simple/treq/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pythonPackages }: + +pythonPackages.buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "treq"; + version = "15.1.0"; + src = fetchurl { + url = "mirror://pypi/t/${pname}/${name}.tar.gz"; + sha256= "425a47d5d52a993d51211028fb6ade252e5fbea094e878bb4b644096a7322de8"; + }; + propagatedBuildInputs = with pythonPackages; [ + twisted + pyopenssl + requests2 + service-identity + ]; +} diff --git a/krebs/5pkgs/simple/untilport/default.nix b/krebs/5pkgs/simple/untilport/default.nix new file mode 100644 index 000000000..61bcc2b89 --- /dev/null +++ b/krebs/5pkgs/simple/untilport/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +pkgs.writeDashBin "untilport" '' + set -euf + + usage() { + echo 'untiport $target $port' + echo 'Sleeps until the destinated port is reachable.' + echo 'ex: untilport google.de 80 && echo "google is now reachable"' + } + + + if [ $# -ne 2 ]; then + usage + else + until ${pkgs.netcat-openbsd}/bin/nc -z "$@"; do sleep 1; done + fi +'' diff --git a/krebs/5pkgs/simple/urlwatch/default.nix b/krebs/5pkgs/simple/urlwatch/default.nix new file mode 100644 index 000000000..7ffbd8870 --- /dev/null +++ b/krebs/5pkgs/simple/urlwatch/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, python3Packages }: + +python3Packages.buildPythonPackage rec { + name = "urlwatch-2.5"; + + src = fetchurl { + url = "https://thp.io/2008/urlwatch/${name}.tar.gz"; + sha256 = "0qirpymdmpsx0klmhbx3icmiwpm6fx4wjma646gl9m90pifs8430"; + }; + + propagatedBuildInputs = with python3Packages; [ + keyring + minidb + pyyaml + requests2 + ]; + + meta = { + description = "A tool for monitoring webpages for updates"; + homepage = https://thp.io/2008/urlwatch/; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.tv ]; + }; +} diff --git a/krebs/5pkgs/simple/weechat/default.nix b/krebs/5pkgs/simple/weechat/default.nix new file mode 100644 index 000000000..c703ca8bf --- /dev/null +++ b/krebs/5pkgs/simple/weechat/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchurl, ncurses, openssl, aspell, gnutls +, zlib, curl , pkgconfig, libgcrypt +, cmake, makeWrapper, libiconv +, asciidoctor # manpages +, guileSupport ? true, guile +, luaSupport ? true, lua5 +, perlSupport ? true, perl +, pythonPackages +, rubySupport ? true, ruby +, tclSupport ? true, tcl +, extraBuildInputs ? [] }: + +assert guileSupport -> guile != null; +assert luaSupport -> lua5 != null; +assert perlSupport -> perl != null; +assert rubySupport -> ruby != null; +assert tclSupport -> tcl != null; + +let + inherit (pythonPackages) python pycrypto pync; +in + +stdenv.mkDerivation rec { + version = "1.8"; + name = "weechat-${version}"; + + src = fetchurl { + url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; + sha256 = "10km0437lg9ms6f16h20s89l2w9f9g597rykybxb16s95ql48z08"; + }; + + outputs = [ "out" "doc" ]; + + enableParallelBuilding = true; + cmakeFlags = with stdenv.lib; [ + "-DENABLE_MAN=ON" + "-DENABLE_DOC=ON" + ] + ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] + ++ optional (!guileSupport) "-DENABLE_GUILE=OFF" + ++ optional (!luaSupport) "-DENABLE_LUA=OFF" + ++ optional (!perlSupport) "-DENABLE_PERL=OFF" + ++ optional (!rubySupport) "-DENABLE_RUBY=OFF" + ++ optional (!tclSupport) "-DENABLE_TCL=OFF" + ; + + buildInputs = with stdenv.lib; [ + ncurses python openssl aspell gnutls zlib curl pkgconfig + libgcrypt pycrypto makeWrapper + cmake + asciidoctor + ] + ++ optional guileSupport guile + ++ optional luaSupport lua5 + ++ optional perlSupport perl + ++ optional rubySupport ruby + ++ optional tclSupport tcl + ++ extraBuildInputs; + + NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" + # Fix '_res_9_init: undefined symbol' error + + (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv"); + + postInstall = with stdenv.lib; '' + NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages" + wrapProgram "$out/bin/weechat" \ + ${optionalString perlSupport "--prefix PATH : ${perl}/bin"} \ + --prefix PATH : ${pythonPackages.python}/bin \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + --prefix PYTHONPATH : "$NIX_PYTHONPATH" + ''; + + meta = { + homepage = http://www.weechat.org/; + description = "A fast, light and extensible chat client"; + license = stdenv.lib.licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/krebs/5pkgs/simple/whatsupnix/default.nix b/krebs/5pkgs/simple/whatsupnix/default.nix new file mode 100644 index 000000000..1a108c5e9 --- /dev/null +++ b/krebs/5pkgs/simple/whatsupnix/default.nix @@ -0,0 +1,15 @@ +{ bash, coreutils, gawk, nix, makeWrapper, stdenv }: + +stdenv.mkDerivation { + name = "whatsupnix"; + phases = [ "installPhase" ]; + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out/bin + cat - ${./whatsupnix.bash} > $out/bin/whatsupnix <<\EOF + #! ${bash}/bin/bash + export PATH=${stdenv.lib.makeBinPath [ coreutils gawk nix ]} + EOF + chmod +x $out/bin/whatsupnix + ''; +} diff --git a/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash new file mode 100644 index 000000000..a19410055 --- /dev/null +++ b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# Prints build logs for failed derivations in quiet build mode (-Q). +# See https://github.com/NixOS/nix/issues/443 +# +# Usage: +# +# set -o pipefail +# nix-build ... -Q ... | whatsupnix +# + + +GAWK=${GAWK:-gawk} +NIX_STORE=${NIX_STORE:-nix-store} + +broken=$(mktemp) +trap 'rm -f -- "$broken"' EXIT + +exec >&2 + +$GAWK -v broken="$broken" -f <(cat - <<- 'AWK' + match($0, /builder for .*(\/nix\/store\/.+\.drv).* failed/, m) { + print m[1] >> broken + } + { print $0 } +AWK +) + +export NIX_PAGER='' # for nix-store +while read -r drv; do + title="** FAILED $drv LOG **" + frame=${title//?/*} + + echo "$frame" + echo "$title" + echo "$frame" + echo + + $NIX_STORE -l "$drv" + + echo +done < "$broken" + +exit 0 diff --git a/krebs/5pkgs/simple/with-tmpdir/default.nix b/krebs/5pkgs/simple/with-tmpdir/default.nix new file mode 100644 index 000000000..9862671f8 --- /dev/null +++ b/krebs/5pkgs/simple/with-tmpdir/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchgit, coreutils, dash, ... }: + +stdenv.mkDerivation { + name = "with-tmpdir-1"; + + src = fetchgit { + url = http://cgit.ni.krebsco.de/with-tmpdir; + rev = "3243c02ed8cd27a04c080bd39560204980f6c16a"; + sha256 = "80ee6cafb2c337999ddcd1e41747d6256b7cfcea605358c2046eb7e3729555c6"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + mkdir -p $out/bin + + { echo '#! ${dash}/bin/dash' + echo 'OLDPATH=$PATH' + echo 'PATH=${coreutils}/bin' + sed '$s/^/#/' ./with-tmpdir + echo '(PATH=$OLDPATH; exec "$@")' + } > $out/bin/with-tmpdir + + chmod +x $out/bin/with-tmpdir + ''; +} diff --git a/krebs/5pkgs/simple/youtube-tools/default.nix b/krebs/5pkgs/simple/youtube-tools/default.nix new file mode 100644 index 000000000..d767728be --- /dev/null +++ b/krebs/5pkgs/simple/youtube-tools/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchgit, ... }: + +stdenv.mkDerivation { + name = "youtube-tools"; + + src = fetchgit { + url = https://github.com/Lassulus/the_playlist; + rev = "9218b163f2d8bc965b853ed9fc9e13d15a703456"; + sha256 = "ae5db4be652d015a518e57e4ed2de34b9127e77d9272af3049832bb134e96e4d"; + }; + + phases = [ + "unpackPhase" + "installPhase" + ]; + + installPhase = '' + mkdir -p $out/bin + cp bin/* $out/bin/ + ''; +} diff --git a/krebs/5pkgs/simple/zandronum-bin/default.nix b/krebs/5pkgs/simple/zandronum-bin/default.nix new file mode 100644 index 000000000..e97f46add --- /dev/null +++ b/krebs/5pkgs/simple/zandronum-bin/default.nix @@ -0,0 +1,83 @@ +{ stdenv +, atk +, bzip2 +, cairo +, fetchurl +, fluidsynth +, fontconfig +, freetype +, gdk_pixbuf +, glib +, gtk2 +, libjpeg_turbo +, mesa_glu +, mesa_noglu +, openssl +, pango +, SDL +, zlib +, makeWrapper +}: + +stdenv.mkDerivation rec { + name = "zandronum-3.0"; + + src = fetchurl { + url = "http://zandronum.com/downloads/testing/3.0/ZandroDev3.0-170205-2117linux-x86_64.tar.bz2"; + sha256 = "17vrzk0m5b17sp3sqcg57r7812ma97lp3qxn9hmd39fwl1z40fz3"; + }; + + libPath = stdenv.lib.makeLibraryPath [ + atk + bzip2 + cairo + fluidsynth + fontconfig + freetype + gdk_pixbuf + glib + gtk2 + libjpeg_turbo + mesa_glu + mesa_noglu + openssl + pango + SDL + stdenv.cc.cc + zlib + ]; + + nativeBuildInputs = [ makeWrapper ]; + + phases = [ "unpackPhase" "installPhase" ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/zandronum + cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum + + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath:$out/share/zandronum \ + $out/share/zandronum/zandronum + patchelf \ + --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ + --set-rpath $libPath \ + $out/share/zandronum/zandronum-server + + # If we don't set absolute argv0, zandronum.wad file is not found. + makeWrapper $out/share/zandronum/zandronum $out/bin/zandronum + makeWrapper $out/share/zandronum/zandronum-server $out/bin/zandronum-server + ''; + + meta = { + homepage = http://zandronum.com/; + description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play"; + maintainers = [ stdenv.lib.maintainers.lassulus ]; + # Binary version has different version string than source code version. + license = stdenv.lib.licenses.unfreeRedistributable; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/krebs/5pkgs/tarantool/default.nix b/krebs/5pkgs/tarantool/default.nix deleted file mode 100644 index 9e22fd4f3..000000000 --- a/krebs/5pkgs/tarantool/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchgit, cmake, ncurses, openssl, readline, ... }: - -stdenv.mkDerivation rec { - name = "tarantool-1.7.1-164-g0fd0239"; - src = fetchgit { - url = https://github.com/tarantool/tarantool; - rev = builtins.elemAt (builtins.match ".*-g([0-9a-f]+)" name) 0; - sha256 = "1jnaiizbl9j4a8vsihqx75iqa9bkh1kpwsyrgmim8ikiyzfw54dz"; - fetchSubmodules = true; - }; - buildInputs = [ - cmake - ncurses - openssl - readline - ]; - preConfigure = '' - echo ${(builtins.parseDrvName name).version} > VERSION - sed -i 's/NAMES termcap/NAMES ncurses/' cmake/FindTermcap.cmake - ''; -} diff --git a/krebs/5pkgs/tinc_graphs/default.nix b/krebs/5pkgs/tinc_graphs/default.nix deleted file mode 100644 index 20bbc53ba..000000000 --- a/krebs/5pkgs/tinc_graphs/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{stdenv,fetchurl,pkgs,python3Packages, ... }: - -python3Packages.buildPythonPackage rec { - name = "tinc_graphs-${version}"; - version = "0.3.10"; - propagatedBuildInputs = with pkgs;[ - python3Packages.pygeoip - ## ${geolite-legacy}/share/GeoIP/GeoIPCity.dat - ]; - src = fetchurl { - url = "mirror://pypi/t/tinc_graphs/${name}.tar.gz"; - sha256 = "0f4cvb9424fhfmc0hbzmynzh9528fyhx00ayq1nbpgd1p89yw7mc"; - }; - preFixup = with pkgs;'' - wrapProgram $out/bin/build-graphs --prefix PATH : "$out/bin" - wrapProgram $out/bin/all-the-graphs --prefix PATH : "${imagemagick}/bin:${graphviz}/bin:$out/bin" - wrapProgram $out/bin/tinc-stats2json --prefix PATH : "${tinc}/bin" - ''; - - meta = { - homepage = http://krebsco.de/; - description = "Create Graphs from Tinc Stats"; - license = stdenv.lib.licenses.wtfpl; - }; -} - diff --git a/krebs/5pkgs/translate-shell/default.nix b/krebs/5pkgs/translate-shell/default.nix deleted file mode 100644 index 00ab226e5..000000000 --- a/krebs/5pkgs/translate-shell/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{stdenv, fetchurl,pkgs,... }: -let - s = - rec { - baseName="translate-shell"; - version="0.9.0.9"; - name="${baseName}-${version}"; - url=https://github.com/soimort/translate-shell/archive/v0.9.0.9.tar.gz; - sha256="1269j4yr9dr1d8c5kmysbzfplbgdg8apqnzs5w57d29sd7gz2i34"; - }; - searchpath = with pkgs; stdenv.lib.makeSearchPath "bin" [ - fribidi - gawk - bash - curl - less - ]; - buildInputs = [ - pkgs.makeWrapper - ]; -in -stdenv.mkDerivation { - inherit (s) name version; - inherit buildInputs; - src = fetchurl { - inherit (s) url sha256; - }; - # TODO: maybe mplayer - installPhase = '' - mkdir -p $out/bin - make PREFIX=$out install - wrapProgram $out/bin/trans --suffix PATH : "${searchpath}" - ''; - - meta = { - inherit (s) version; - description = ''translate using google api''; - license = stdenv.lib.licenses.free; - maintainers = [stdenv.lib.maintainers.makefu]; - platforms = stdenv.lib.platforms.linux ; - }; -} - diff --git a/krebs/5pkgs/treq/default.nix b/krebs/5pkgs/treq/default.nix deleted file mode 100644 index 20387b9cb..000000000 --- a/krebs/5pkgs/treq/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenv, fetchurl, pythonPackages }: - -pythonPackages.buildPythonPackage rec { - name = "${pname}-${version}"; - pname = "treq"; - version = "15.1.0"; - src = fetchurl { - url = "mirror://pypi/t/${pname}/${name}.tar.gz"; - sha256= "425a47d5d52a993d51211028fb6ade252e5fbea094e878bb4b644096a7322de8"; - }; - propagatedBuildInputs = with pythonPackages; [ - twisted - pyopenssl - requests2 - service-identity - ]; -} diff --git a/krebs/5pkgs/untilport/default.nix b/krebs/5pkgs/untilport/default.nix deleted file mode 100644 index 61bcc2b89..000000000 --- a/krebs/5pkgs/untilport/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: - -pkgs.writeDashBin "untilport" '' - set -euf - - usage() { - echo 'untiport $target $port' - echo 'Sleeps until the destinated port is reachable.' - echo 'ex: untilport google.de 80 && echo "google is now reachable"' - } - - - if [ $# -ne 2 ]; then - usage - else - until ${pkgs.netcat-openbsd}/bin/nc -z "$@"; do sleep 1; done - fi -'' diff --git a/krebs/5pkgs/urlwatch/default.nix b/krebs/5pkgs/urlwatch/default.nix deleted file mode 100644 index 7ffbd8870..000000000 --- a/krebs/5pkgs/urlwatch/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenv, fetchurl, python3Packages }: - -python3Packages.buildPythonPackage rec { - name = "urlwatch-2.5"; - - src = fetchurl { - url = "https://thp.io/2008/urlwatch/${name}.tar.gz"; - sha256 = "0qirpymdmpsx0klmhbx3icmiwpm6fx4wjma646gl9m90pifs8430"; - }; - - propagatedBuildInputs = with python3Packages; [ - keyring - minidb - pyyaml - requests2 - ]; - - meta = { - description = "A tool for monitoring webpages for updates"; - homepage = https://thp.io/2008/urlwatch/; - license = stdenv.lib.licenses.bsd3; - maintainers = [ stdenv.lib.maintainers.tv ]; - }; -} diff --git a/krebs/5pkgs/weechat/default.nix b/krebs/5pkgs/weechat/default.nix deleted file mode 100644 index c703ca8bf..000000000 --- a/krebs/5pkgs/weechat/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ stdenv, fetchurl, ncurses, openssl, aspell, gnutls -, zlib, curl , pkgconfig, libgcrypt -, cmake, makeWrapper, libiconv -, asciidoctor # manpages -, guileSupport ? true, guile -, luaSupport ? true, lua5 -, perlSupport ? true, perl -, pythonPackages -, rubySupport ? true, ruby -, tclSupport ? true, tcl -, extraBuildInputs ? [] }: - -assert guileSupport -> guile != null; -assert luaSupport -> lua5 != null; -assert perlSupport -> perl != null; -assert rubySupport -> ruby != null; -assert tclSupport -> tcl != null; - -let - inherit (pythonPackages) python pycrypto pync; -in - -stdenv.mkDerivation rec { - version = "1.8"; - name = "weechat-${version}"; - - src = fetchurl { - url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; - sha256 = "10km0437lg9ms6f16h20s89l2w9f9g597rykybxb16s95ql48z08"; - }; - - outputs = [ "out" "doc" ]; - - enableParallelBuilding = true; - cmakeFlags = with stdenv.lib; [ - "-DENABLE_MAN=ON" - "-DENABLE_DOC=ON" - ] - ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"] - ++ optional (!guileSupport) "-DENABLE_GUILE=OFF" - ++ optional (!luaSupport) "-DENABLE_LUA=OFF" - ++ optional (!perlSupport) "-DENABLE_PERL=OFF" - ++ optional (!rubySupport) "-DENABLE_RUBY=OFF" - ++ optional (!tclSupport) "-DENABLE_TCL=OFF" - ; - - buildInputs = with stdenv.lib; [ - ncurses python openssl aspell gnutls zlib curl pkgconfig - libgcrypt pycrypto makeWrapper - cmake - asciidoctor - ] - ++ optional guileSupport guile - ++ optional luaSupport lua5 - ++ optional perlSupport perl - ++ optional rubySupport ruby - ++ optional tclSupport tcl - ++ extraBuildInputs; - - NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" - # Fix '_res_9_init: undefined symbol' error - + (stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv"); - - postInstall = with stdenv.lib; '' - NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages" - wrapProgram "$out/bin/weechat" \ - ${optionalString perlSupport "--prefix PATH : ${perl}/bin"} \ - --prefix PATH : ${pythonPackages.python}/bin \ - --prefix PYTHONPATH : "$PYTHONPATH" \ - --prefix PYTHONPATH : "$NIX_PYTHONPATH" - ''; - - meta = { - homepage = http://www.weechat.org/; - description = "A fast, light and extensible chat client"; - license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [ lovek323 garbas the-kenny ]; - platforms = stdenv.lib.platforms.unix; - }; -} diff --git a/krebs/5pkgs/whatsupnix/default.nix b/krebs/5pkgs/whatsupnix/default.nix deleted file mode 100644 index 1a108c5e9..000000000 --- a/krebs/5pkgs/whatsupnix/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ bash, coreutils, gawk, nix, makeWrapper, stdenv }: - -stdenv.mkDerivation { - name = "whatsupnix"; - phases = [ "installPhase" ]; - nativeBuildInputs = [ makeWrapper ]; - installPhase = '' - mkdir -p $out/bin - cat - ${./whatsupnix.bash} > $out/bin/whatsupnix <<\EOF - #! ${bash}/bin/bash - export PATH=${stdenv.lib.makeBinPath [ coreutils gawk nix ]} - EOF - chmod +x $out/bin/whatsupnix - ''; -} diff --git a/krebs/5pkgs/whatsupnix/whatsupnix.bash b/krebs/5pkgs/whatsupnix/whatsupnix.bash deleted file mode 100644 index a19410055..000000000 --- a/krebs/5pkgs/whatsupnix/whatsupnix.bash +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -# Prints build logs for failed derivations in quiet build mode (-Q). -# See https://github.com/NixOS/nix/issues/443 -# -# Usage: -# -# set -o pipefail -# nix-build ... -Q ... | whatsupnix -# - - -GAWK=${GAWK:-gawk} -NIX_STORE=${NIX_STORE:-nix-store} - -broken=$(mktemp) -trap 'rm -f -- "$broken"' EXIT - -exec >&2 - -$GAWK -v broken="$broken" -f <(cat - <<- 'AWK' - match($0, /builder for .*(\/nix\/store\/.+\.drv).* failed/, m) { - print m[1] >> broken - } - { print $0 } -AWK -) - -export NIX_PAGER='' # for nix-store -while read -r drv; do - title="** FAILED $drv LOG **" - frame=${title//?/*} - - echo "$frame" - echo "$title" - echo "$frame" - echo - - $NIX_STORE -l "$drv" - - echo -done < "$broken" - -exit 0 diff --git a/krebs/5pkgs/with-tmpdir/default.nix b/krebs/5pkgs/with-tmpdir/default.nix deleted file mode 100644 index 9862671f8..000000000 --- a/krebs/5pkgs/with-tmpdir/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchgit, coreutils, dash, ... }: - -stdenv.mkDerivation { - name = "with-tmpdir-1"; - - src = fetchgit { - url = http://cgit.ni.krebsco.de/with-tmpdir; - rev = "3243c02ed8cd27a04c080bd39560204980f6c16a"; - sha256 = "80ee6cafb2c337999ddcd1e41747d6256b7cfcea605358c2046eb7e3729555c6"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - mkdir -p $out/bin - - { echo '#! ${dash}/bin/dash' - echo 'OLDPATH=$PATH' - echo 'PATH=${coreutils}/bin' - sed '$s/^/#/' ./with-tmpdir - echo '(PATH=$OLDPATH; exec "$@")' - } > $out/bin/with-tmpdir - - chmod +x $out/bin/with-tmpdir - ''; -} diff --git a/krebs/5pkgs/youtube-tools/default.nix b/krebs/5pkgs/youtube-tools/default.nix deleted file mode 100644 index d767728be..000000000 --- a/krebs/5pkgs/youtube-tools/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchgit, ... }: - -stdenv.mkDerivation { - name = "youtube-tools"; - - src = fetchgit { - url = https://github.com/Lassulus/the_playlist; - rev = "9218b163f2d8bc965b853ed9fc9e13d15a703456"; - sha256 = "ae5db4be652d015a518e57e4ed2de34b9127e77d9272af3049832bb134e96e4d"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - installPhase = '' - mkdir -p $out/bin - cp bin/* $out/bin/ - ''; -} diff --git a/krebs/5pkgs/zandronum-bin/default.nix b/krebs/5pkgs/zandronum-bin/default.nix deleted file mode 100644 index e97f46add..000000000 --- a/krebs/5pkgs/zandronum-bin/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ stdenv -, atk -, bzip2 -, cairo -, fetchurl -, fluidsynth -, fontconfig -, freetype -, gdk_pixbuf -, glib -, gtk2 -, libjpeg_turbo -, mesa_glu -, mesa_noglu -, openssl -, pango -, SDL -, zlib -, makeWrapper -}: - -stdenv.mkDerivation rec { - name = "zandronum-3.0"; - - src = fetchurl { - url = "http://zandronum.com/downloads/testing/3.0/ZandroDev3.0-170205-2117linux-x86_64.tar.bz2"; - sha256 = "17vrzk0m5b17sp3sqcg57r7812ma97lp3qxn9hmd39fwl1z40fz3"; - }; - - libPath = stdenv.lib.makeLibraryPath [ - atk - bzip2 - cairo - fluidsynth - fontconfig - freetype - gdk_pixbuf - glib - gtk2 - libjpeg_turbo - mesa_glu - mesa_noglu - openssl - pango - SDL - stdenv.cc.cc - zlib - ]; - - nativeBuildInputs = [ makeWrapper ]; - - phases = [ "unpackPhase" "installPhase" ]; - - sourceRoot = "."; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/zandronum - cp *.so *.pk3 zandronum zandronum-server $out/share/zandronum - - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath $libPath:$out/share/zandronum \ - $out/share/zandronum/zandronum - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath $libPath \ - $out/share/zandronum/zandronum-server - - # If we don't set absolute argv0, zandronum.wad file is not found. - makeWrapper $out/share/zandronum/zandronum $out/bin/zandronum - makeWrapper $out/share/zandronum/zandronum-server $out/bin/zandronum-server - ''; - - meta = { - homepage = http://zandronum.com/; - description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. Binary version for online play"; - maintainers = [ stdenv.lib.maintainers.lassulus ]; - # Binary version has different version string than source code version. - license = stdenv.lib.licenses.unfreeRedistributable; - platforms = [ "x86_64-linux" ]; - }; -} -- cgit v1.2.3 From 17df5f0c453d891b29dbb6a9d189fc8dcf88fac0 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 01:49:36 +0200 Subject: empty: move to krebs/5pkgs/simple --- krebs/5pkgs/default.nix | 2 -- krebs/5pkgs/simple/empty.nix | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 krebs/5pkgs/simple/empty.nix diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 5af541258..9fe2fea3c 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -15,8 +15,6 @@ with import ; // import ./simple pkgs oldpkgs // import ./writers.nix pkgs oldpkgs // { - empty = pkgs.runCommand "empty-1.0.0" {} "mkdir $out"; - haskellPackages = oldpkgs.haskellPackages.override { overrides = self: super: mapAttrs (name: path: self.callPackage path {}) diff --git a/krebs/5pkgs/simple/empty.nix b/krebs/5pkgs/simple/empty.nix new file mode 100644 index 000000000..a45723b65 --- /dev/null +++ b/krebs/5pkgs/simple/empty.nix @@ -0,0 +1,2 @@ +{ pkgs }: +pkgs.runCommand "empty-1.0.0" {} "mkdir $out" -- cgit v1.2.3 From eae210f8ff05b7f59ab62ba161c86971dbd7f50e Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 01:57:28 +0200 Subject: krebs/5pkgs: move haskell stuff to a subdir --- krebs/5pkgs/default.nix | 15 +------------ krebs/5pkgs/haskell-overrides/blessings.nix | 14 ------------ krebs/5pkgs/haskell-overrides/email-header.nix | 25 ---------------------- krebs/5pkgs/haskell-overrides/hyphenation.nix | 17 --------------- krebs/5pkgs/haskell-overrides/kirk.nix | 21 ------------------ krebs/5pkgs/haskell-overrides/news.nix | 18 ---------------- krebs/5pkgs/haskell-overrides/scanner.nix | 12 ----------- krebs/5pkgs/haskell-overrides/xmonad-stockholm.nix | 16 -------------- krebs/5pkgs/haskell/blessings.nix | 14 ++++++++++++ krebs/5pkgs/haskell/default.nix | 15 +++++++++++++ krebs/5pkgs/haskell/email-header.nix | 25 ++++++++++++++++++++++ krebs/5pkgs/haskell/hyphenation.nix | 17 +++++++++++++++ krebs/5pkgs/haskell/kirk.nix | 21 ++++++++++++++++++ krebs/5pkgs/haskell/news.nix | 18 ++++++++++++++++ krebs/5pkgs/haskell/scanner.nix | 12 +++++++++++ krebs/5pkgs/haskell/xmonad-stockholm.nix | 16 ++++++++++++++ 16 files changed, 139 insertions(+), 137 deletions(-) delete mode 100644 krebs/5pkgs/haskell-overrides/blessings.nix delete mode 100644 krebs/5pkgs/haskell-overrides/email-header.nix delete mode 100644 krebs/5pkgs/haskell-overrides/hyphenation.nix delete mode 100644 krebs/5pkgs/haskell-overrides/kirk.nix delete mode 100644 krebs/5pkgs/haskell-overrides/news.nix delete mode 100644 krebs/5pkgs/haskell-overrides/scanner.nix delete mode 100644 krebs/5pkgs/haskell-overrides/xmonad-stockholm.nix create mode 100644 krebs/5pkgs/haskell/blessings.nix create mode 100644 krebs/5pkgs/haskell/default.nix create mode 100644 krebs/5pkgs/haskell/email-header.nix create mode 100644 krebs/5pkgs/haskell/hyphenation.nix create mode 100644 krebs/5pkgs/haskell/kirk.nix create mode 100644 krebs/5pkgs/haskell/news.nix create mode 100644 krebs/5pkgs/haskell/scanner.nix create mode 100644 krebs/5pkgs/haskell/xmonad-stockholm.nix diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 9fe2fea3c..eab059165 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -12,23 +12,10 @@ with import ; then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override else override; in {} + // import ./haskell pkgs oldpkgs // import ./simple pkgs oldpkgs // import ./writers.nix pkgs oldpkgs // { - haskellPackages = oldpkgs.haskellPackages.override { - overrides = self: super: - mapAttrs (name: path: self.callPackage path {}) - (mapAttrs' - (name: type: - if hasSuffix ".nix" name - then { - name = removeSuffix ".nix" name; - value = ./haskell-overrides + "/${name}"; - } - else null) - (builtins.readDir ./haskell-overrides)); - }; - ReaktorPlugins = callPackage ./simple/Reaktor/plugins.nix {}; buildbot-full = callPackage ./simple/buildbot { diff --git a/krebs/5pkgs/haskell-overrides/blessings.nix b/krebs/5pkgs/haskell-overrides/blessings.nix deleted file mode 100644 index f852b4a44..000000000 --- a/krebs/5pkgs/haskell-overrides/blessings.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ mkDerivation, base, fetchgit, stdenv }: -mkDerivation rec { - pname = "blessings"; - version = "1.1.0"; - src = fetchgit { - url = http://cgit.ni.krebsco.de/blessings; - rev = "refs/tags/v${version}"; - sha256 = "1k908zap3694fcxdk4bb29s54b0lhdh557y10ybjskfwnym7szn1"; - }; - libraryHaskellDepends = [ base ]; - doHaddock = false; - # WTFPL is the true license, which is unknown to cabal. - license = stdenv.lib.licenses.wtfpl; -} diff --git a/krebs/5pkgs/haskell-overrides/email-header.nix b/krebs/5pkgs/haskell-overrides/email-header.nix deleted file mode 100644 index b54240809..000000000 --- a/krebs/5pkgs/haskell-overrides/email-header.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ mkDerivation, attoparsec, base, base64-bytestring, bytestring -, case-insensitive, containers, exceptions, fetchgit, QuickCheck -, stdenv, tasty, tasty-quickcheck, text, text-icu, time -}: -mkDerivation { - pname = "email-header"; - version = "0.3.0"; - src = fetchgit { - url = "https://github.com/4z3/email-header"; - rev = "7b179bd31192ead8afe7a0b6e34bcad4039deaa8"; - sha256 = "12j2n3sbvzjnw99gga7kkdygm8n3qx2lh8q26ad6a53xm5whnz59"; - }; - buildDepends = [ - attoparsec base base64-bytestring bytestring case-insensitive - containers exceptions text text-icu time - ]; - testDepends = [ - base bytestring case-insensitive containers QuickCheck tasty - tasty-quickcheck text time - ]; - jailbreak = true; - homepage = "http://github.com/knrafto/email-header"; - description = "Parsing and rendering of email and MIME headers"; - license = stdenv.lib.licenses.bsd3; -} diff --git a/krebs/5pkgs/haskell-overrides/hyphenation.nix b/krebs/5pkgs/haskell-overrides/hyphenation.nix deleted file mode 100644 index 6e5fe9455..000000000 --- a/krebs/5pkgs/haskell-overrides/hyphenation.nix +++ /dev/null @@ -1,17 +0,0 @@ -# Same as upstream but with doCheck = false because doctest has wrong version. -{ mkDerivation, base, bytestring, containers, directory -, filepath, unordered-containers, zlib, stdenv -}: -mkDerivation { - pname = "hyphenation"; - version = "0.6"; - sha256 = "2f673666c18f63581422f7c6389b78b0ff754406671296a3d680d417942512f7"; - libraryHaskellDepends = [ - base bytestring containers unordered-containers zlib - ]; - homepage = "http://github.com/ekmett/hyphenation"; - description = "Configurable Knuth-Liang hyphenation"; - license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; - doCheck = false; -} diff --git a/krebs/5pkgs/haskell-overrides/kirk.nix b/krebs/5pkgs/haskell-overrides/kirk.nix deleted file mode 100644 index 073e5d505..000000000 --- a/krebs/5pkgs/haskell-overrides/kirk.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ mkDerivation, async, base, bytestring, fetchgit, network -, optparse-applicative, stdenv, text -}: -mkDerivation { - pname = "kirk"; - version = "1.0.1"; - src = fetchgit { - url = "http://cgit.krebsco.de/kirk"; - sha256 = "1acsmmc485c54axpy9bd0320j18hs261vl1vdxns4n04sxzqd7k0"; - rev = "cdf3cb373af8f9b03a9487a63eb32e0226913589"; - }; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring network optparse-applicative text - ]; - executableHaskellDepends = [ - async base network optparse-applicative text - ]; - license = stdenv.lib.licenses.mit; -} diff --git a/krebs/5pkgs/haskell-overrides/news.nix b/krebs/5pkgs/haskell-overrides/news.nix deleted file mode 100644 index ba5e7a5e1..000000000 --- a/krebs/5pkgs/haskell-overrides/news.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ mkDerivation, base, bloomfilter, bytestring, feed, fetchgit, lens -, stdenv, wreq -}: -mkDerivation { - pname = "news"; - version = "1.0.0"; - src = fetchgit { - url = "http://cgit.lassul.us/news"; - sha256 = "1n3ffr2a5irr5aly0y7qsafag3kxvyyh077ayk0vdwbd0s9hvnjs"; - rev = "c3eb2c0a1a34fc41e18d0bc99b1c4dc73aa6eb20"; - }; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bloomfilter bytestring feed lens wreq - ]; - license = stdenv.lib.licenses.mit; -} diff --git a/krebs/5pkgs/haskell-overrides/scanner.nix b/krebs/5pkgs/haskell-overrides/scanner.nix deleted file mode 100644 index 071fd757f..000000000 --- a/krebs/5pkgs/haskell-overrides/scanner.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ mkDerivation, base, fetchgit, stdenv }: -mkDerivation { - pname = "scanner"; - version = "1.0.0"; - src = fetchgit { - url = http://cgit.ni.krebsco.de/scanner; - rev = "7f091a3bc152ad3974a1873b460fa1759bf8dcad"; - sha256 = "1lgl158axczsm4fx53fyq1d4116v91jsx4dbz66ka4k1ljqrmhgn"; - }; - libraryHaskellDepends = [ base ]; - license = stdenv.lib.licenses.wtfpl; -} diff --git a/krebs/5pkgs/haskell-overrides/xmonad-stockholm.nix b/krebs/5pkgs/haskell-overrides/xmonad-stockholm.nix deleted file mode 100644 index bf19e7d66..000000000 --- a/krebs/5pkgs/haskell-overrides/xmonad-stockholm.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ mkDerivation, base, containers, fetchgit, stdenv, X11, X11-xshape -, xmonad, xmonad-contrib -}: -mkDerivation { - pname = "xmonad-stockholm"; - version = "1.1.0"; - src = fetchgit { - url = http://cgit.ni.krebsco.de/xmonad-stockholm; - rev = "179d29fd4c765dee698058ef63295331ac603639"; - sha256 = "0c6mj68xsxxr4j8adkzhjszi7bg6cpisrsmqn587a16sblpbrnkj"; - }; - libraryHaskellDepends = [ - base containers X11 X11-xshape xmonad xmonad-contrib - ]; - license = stdenv.lib.licenses.mit; -} diff --git a/krebs/5pkgs/haskell/blessings.nix b/krebs/5pkgs/haskell/blessings.nix new file mode 100644 index 000000000..f852b4a44 --- /dev/null +++ b/krebs/5pkgs/haskell/blessings.nix @@ -0,0 +1,14 @@ +{ mkDerivation, base, fetchgit, stdenv }: +mkDerivation rec { + pname = "blessings"; + version = "1.1.0"; + src = fetchgit { + url = http://cgit.ni.krebsco.de/blessings; + rev = "refs/tags/v${version}"; + sha256 = "1k908zap3694fcxdk4bb29s54b0lhdh557y10ybjskfwnym7szn1"; + }; + libraryHaskellDepends = [ base ]; + doHaddock = false; + # WTFPL is the true license, which is unknown to cabal. + license = stdenv.lib.licenses.wtfpl; +} diff --git a/krebs/5pkgs/haskell/default.nix b/krebs/5pkgs/haskell/default.nix new file mode 100644 index 000000000..1120356a7 --- /dev/null +++ b/krebs/5pkgs/haskell/default.nix @@ -0,0 +1,15 @@ +with import ; + +self: super: +{ + haskellPackages = super.haskellPackages.override { + overrides = self: super: + listToAttrs + (map + (name: nameValuePair (removeSuffix ".nix" name) + (self.callPackage (./. + "/${name}") {})) + (filter + (name: name != "default.nix" && !hasPrefix "." name) + (attrNames (readDir ./.)))); + }; +} diff --git a/krebs/5pkgs/haskell/email-header.nix b/krebs/5pkgs/haskell/email-header.nix new file mode 100644 index 000000000..b54240809 --- /dev/null +++ b/krebs/5pkgs/haskell/email-header.nix @@ -0,0 +1,25 @@ +{ mkDerivation, attoparsec, base, base64-bytestring, bytestring +, case-insensitive, containers, exceptions, fetchgit, QuickCheck +, stdenv, tasty, tasty-quickcheck, text, text-icu, time +}: +mkDerivation { + pname = "email-header"; + version = "0.3.0"; + src = fetchgit { + url = "https://github.com/4z3/email-header"; + rev = "7b179bd31192ead8afe7a0b6e34bcad4039deaa8"; + sha256 = "12j2n3sbvzjnw99gga7kkdygm8n3qx2lh8q26ad6a53xm5whnz59"; + }; + buildDepends = [ + attoparsec base base64-bytestring bytestring case-insensitive + containers exceptions text text-icu time + ]; + testDepends = [ + base bytestring case-insensitive containers QuickCheck tasty + tasty-quickcheck text time + ]; + jailbreak = true; + homepage = "http://github.com/knrafto/email-header"; + description = "Parsing and rendering of email and MIME headers"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/krebs/5pkgs/haskell/hyphenation.nix b/krebs/5pkgs/haskell/hyphenation.nix new file mode 100644 index 000000000..6e5fe9455 --- /dev/null +++ b/krebs/5pkgs/haskell/hyphenation.nix @@ -0,0 +1,17 @@ +# Same as upstream but with doCheck = false because doctest has wrong version. +{ mkDerivation, base, bytestring, containers, directory +, filepath, unordered-containers, zlib, stdenv +}: +mkDerivation { + pname = "hyphenation"; + version = "0.6"; + sha256 = "2f673666c18f63581422f7c6389b78b0ff754406671296a3d680d417942512f7"; + libraryHaskellDepends = [ + base bytestring containers unordered-containers zlib + ]; + homepage = "http://github.com/ekmett/hyphenation"; + description = "Configurable Knuth-Liang hyphenation"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + doCheck = false; +} diff --git a/krebs/5pkgs/haskell/kirk.nix b/krebs/5pkgs/haskell/kirk.nix new file mode 100644 index 000000000..073e5d505 --- /dev/null +++ b/krebs/5pkgs/haskell/kirk.nix @@ -0,0 +1,21 @@ +{ mkDerivation, async, base, bytestring, fetchgit, network +, optparse-applicative, stdenv, text +}: +mkDerivation { + pname = "kirk"; + version = "1.0.1"; + src = fetchgit { + url = "http://cgit.krebsco.de/kirk"; + sha256 = "1acsmmc485c54axpy9bd0320j18hs261vl1vdxns4n04sxzqd7k0"; + rev = "cdf3cb373af8f9b03a9487a63eb32e0226913589"; + }; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring network optparse-applicative text + ]; + executableHaskellDepends = [ + async base network optparse-applicative text + ]; + license = stdenv.lib.licenses.mit; +} diff --git a/krebs/5pkgs/haskell/news.nix b/krebs/5pkgs/haskell/news.nix new file mode 100644 index 000000000..ba5e7a5e1 --- /dev/null +++ b/krebs/5pkgs/haskell/news.nix @@ -0,0 +1,18 @@ +{ mkDerivation, base, bloomfilter, bytestring, feed, fetchgit, lens +, stdenv, wreq +}: +mkDerivation { + pname = "news"; + version = "1.0.0"; + src = fetchgit { + url = "http://cgit.lassul.us/news"; + sha256 = "1n3ffr2a5irr5aly0y7qsafag3kxvyyh077ayk0vdwbd0s9hvnjs"; + rev = "c3eb2c0a1a34fc41e18d0bc99b1c4dc73aa6eb20"; + }; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base bloomfilter bytestring feed lens wreq + ]; + license = stdenv.lib.licenses.mit; +} diff --git a/krebs/5pkgs/haskell/scanner.nix b/krebs/5pkgs/haskell/scanner.nix new file mode 100644 index 000000000..071fd757f --- /dev/null +++ b/krebs/5pkgs/haskell/scanner.nix @@ -0,0 +1,12 @@ +{ mkDerivation, base, fetchgit, stdenv }: +mkDerivation { + pname = "scanner"; + version = "1.0.0"; + src = fetchgit { + url = http://cgit.ni.krebsco.de/scanner; + rev = "7f091a3bc152ad3974a1873b460fa1759bf8dcad"; + sha256 = "1lgl158axczsm4fx53fyq1d4116v91jsx4dbz66ka4k1ljqrmhgn"; + }; + libraryHaskellDepends = [ base ]; + license = stdenv.lib.licenses.wtfpl; +} diff --git a/krebs/5pkgs/haskell/xmonad-stockholm.nix b/krebs/5pkgs/haskell/xmonad-stockholm.nix new file mode 100644 index 000000000..bf19e7d66 --- /dev/null +++ b/krebs/5pkgs/haskell/xmonad-stockholm.nix @@ -0,0 +1,16 @@ +{ mkDerivation, base, containers, fetchgit, stdenv, X11, X11-xshape +, xmonad, xmonad-contrib +}: +mkDerivation { + pname = "xmonad-stockholm"; + version = "1.1.0"; + src = fetchgit { + url = http://cgit.ni.krebsco.de/xmonad-stockholm; + rev = "179d29fd4c765dee698058ef63295331ac603639"; + sha256 = "0c6mj68xsxxr4j8adkzhjszi7bg6cpisrsmqn587a16sblpbrnkj"; + }; + libraryHaskellDepends = [ + base containers X11 X11-xshape xmonad xmonad-contrib + ]; + license = stdenv.lib.licenses.mit; +} -- cgit v1.2.3 From e6b7fe74c1ec4ff42967e7bd79d7fe669451d047 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 02:03:46 +0200 Subject: krebs/5pkgs: detect simple obsolete overrides --- krebs/5pkgs/default.nix | 21 +++++---------------- krebs/5pkgs/simple/default.nix | 28 +++++++++++++++++++++------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index eab059165..ea14e02a4 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -1,27 +1,16 @@ pkgs: oldpkgs: with import ; - let - # This callPackage will try to detect obsolete overrides. - callPackage = path: args: let - override = pkgs.callPackage path args; - upstream = optionalAttrs (override ? "name") - (oldpkgs.${(parseDrvName override.name).name} or {}); - in if upstream ? "name" && - override ? "name" && - compareVersions upstream.name override.name != -1 - then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override - else override; - in {} + {} // import ./haskell pkgs oldpkgs // import ./simple pkgs oldpkgs // import ./writers.nix pkgs oldpkgs // { - ReaktorPlugins = callPackage ./simple/Reaktor/plugins.nix {}; + ReaktorPlugins = pkgs.callPackage ./simple/Reaktor/plugins.nix {}; - buildbot-full = callPackage ./simple/buildbot { + buildbot-full = pkgs.callPackage ./simple/buildbot { plugins = with pkgs.buildbot-plugins; [ www console-view waterfall-view ]; }; - buildbot-worker = callPackage ./simple/buildbot/worker.nix {}; + buildbot-worker = pkgs.callPackage ./simple/buildbot/worker.nix {}; # https://github.com/proot-me/PRoot/issues/106 proot = pkgs.writeDashBin "proot" '' @@ -35,6 +24,6 @@ with import ; in if typeOf x != "lambda" then x else oldpkgs.symlinkJoin name paths; test = { - infest-cac-centos7 = callPackage ./test/infest-cac-centos7 {}; + infest-cac-centos7 = pkgs.callPackage ./test/infest-cac-centos7 {}; }; } diff --git a/krebs/5pkgs/simple/default.nix b/krebs/5pkgs/simple/default.nix index 2f6799759..1b9d8c235 100644 --- a/krebs/5pkgs/simple/default.nix +++ b/krebs/5pkgs/simple/default.nix @@ -1,10 +1,24 @@ with import ; self: super: -listToAttrs - (map - (name: nameValuePair (removeSuffix ".nix" name) - (super.callPackage (./. + "/${name}") {})) - (filter - (name: name != "default.nix" && !hasPrefix "." name) - (attrNames (readDir ./.)))) + +let + # This callPackage will try to detect obsolete overrides. + callPackage = path: args: let + override = self.callPackage path args; + upstream = optionalAttrs (override ? "name") + (super.${(parseDrvName override.name).name} or {}); + in if upstream ? "name" && + override ? "name" && + compareVersions upstream.name override.name != -1 + then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override + else override; +in + + listToAttrs + (map + (name: nameValuePair (removeSuffix ".nix" name) + (callPackage (./. + "/${name}") {})) + (filter + (name: name != "default.nix" && !hasPrefix "." name) + (attrNames (readDir ./.)))) -- cgit v1.2.3 From 98741092302a796554b727f54cef1316b405562d Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 02:12:02 +0200 Subject: krebs/5pkgs: move test stuff to a subdir --- krebs/5pkgs/default.nix | 5 +---- krebs/5pkgs/test/default.nix | 9 +++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 krebs/5pkgs/test/default.nix diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index ea14e02a4..6dbb0954f 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -3,6 +3,7 @@ with import ; {} // import ./haskell pkgs oldpkgs // import ./simple pkgs oldpkgs + // import ./test pkgs oldpkgs // import ./writers.nix pkgs oldpkgs // { ReaktorPlugins = pkgs.callPackage ./simple/Reaktor/plugins.nix {}; @@ -22,8 +23,4 @@ with import ; symlinkJoin = { name, paths, ... }@args: let x = oldpkgs.symlinkJoin args; in if typeOf x != "lambda" then x else oldpkgs.symlinkJoin name paths; - - test = { - infest-cac-centos7 = pkgs.callPackage ./test/infest-cac-centos7 {}; - }; } diff --git a/krebs/5pkgs/test/default.nix b/krebs/5pkgs/test/default.nix new file mode 100644 index 000000000..5ee8f913b --- /dev/null +++ b/krebs/5pkgs/test/default.nix @@ -0,0 +1,9 @@ +with import ; + +self: super: + +{ + test = { + infest-cac-centos7 = self.callPackage ./infest-cac-centos7 {}; + }; +} -- cgit v1.2.3 From 00b9970aae4e2cb472c793b9809bfb18fff8a37f Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 02:25:21 +0200 Subject: krebs/5pkgs: import directory contents as overlays --- krebs/5pkgs/default.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 6dbb0954f..820f0cdc8 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -1,10 +1,13 @@ pkgs: oldpkgs: with import ; - {} - // import ./haskell pkgs oldpkgs - // import ./simple pkgs oldpkgs - // import ./test pkgs oldpkgs - // import ./writers.nix pkgs oldpkgs + + foldl' mergeAttrs {} + (map + (name: import (./. + "/${name}") pkgs oldpkgs) + (filter + (name: name != "default.nix" && !hasPrefix "." name) + (attrNames (readDir ./.)))) + // { ReaktorPlugins = pkgs.callPackage ./simple/Reaktor/plugins.nix {}; -- cgit v1.2.3 From e733b7e07d091593ebbe9274be0e71e541db4c06 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 02:28:37 +0200 Subject: krebs/5pkgs: reformat --- krebs/5pkgs/default.nix | 50 ++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 820f0cdc8..39e89a4b6 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -1,29 +1,33 @@ -pkgs: oldpkgs: with import ; - foldl' mergeAttrs {} - (map - (name: import (./. + "/${name}") pkgs oldpkgs) - (filter - (name: name != "default.nix" && !hasPrefix "." name) - (attrNames (readDir ./.)))) +self: super: - // { - ReaktorPlugins = pkgs.callPackage ./simple/Reaktor/plugins.nix {}; +# Import files and subdirectories like they are overlays. +foldl' mergeAttrs {} + (map + (name: import (./. + "/${name}") self super) + (filter + (name: name != "default.nix" && !hasPrefix "." name) + (attrNames (readDir ./.)))) - buildbot-full = pkgs.callPackage ./simple/buildbot { - plugins = with pkgs.buildbot-plugins; [ www console-view waterfall-view ]; - }; - buildbot-worker = pkgs.callPackage ./simple/buildbot/worker.nix {}; +// - # https://github.com/proot-me/PRoot/issues/106 - proot = pkgs.writeDashBin "proot" '' - export PROOT_NO_SECCOMP=1 - exec ${oldpkgs.proot}/bin/proot "$@" - ''; +{ + ReaktorPlugins = self.callPackage ./simple/Reaktor/plugins.nix {}; - # XXX symlinkJoin changed arguments somewhere around nixpkgs d541e0d - symlinkJoin = { name, paths, ... }@args: let - x = oldpkgs.symlinkJoin args; - in if typeOf x != "lambda" then x else oldpkgs.symlinkJoin name paths; - } + buildbot-full = self.callPackage ./simple/buildbot { + plugins = with self.buildbot-plugins; [ www console-view waterfall-view ]; + }; + buildbot-worker = self.callPackage ./simple/buildbot/worker.nix {}; + + # https://github.com/proot-me/PRoot/issues/106 + proot = self.writeDashBin "proot" '' + export PROOT_NO_SECCOMP=1 + exec ${super.proot}/bin/proot "$@" + ''; + + # XXX symlinkJoin changed arguments somewhere around nixpkgs d541e0d + symlinkJoin = { name, paths, ... }@args: let + x = super.symlinkJoin args; + in if typeOf x != "lambda" then x else super.symlinkJoin name paths; +} -- cgit v1.2.3 From 4d1de57df5800879e7fcfcc38e5a10f0c1b993d7 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 24 May 2017 02:32:39 +0200 Subject: {lass,makefu}: fix path to simple pkgs --- lass/1systems/iso.nix | 2 +- makefu/1systems/iso.nix | 2 +- makefu/5pkgs/default.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lass/1systems/iso.nix b/lass/1systems/iso.nix index 30fc674bc..eaeb1991f 100644 --- a/lass/1systems/iso.nix +++ b/lass/1systems/iso.nix @@ -16,7 +16,7 @@ with import ; # /dev/pts is empty except for 1 file # my life sucks nixpkgs.config.packageOverrides = super: { - irc-announce = super.callPackage { + irc-announce = super.callPackage { pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ pkgs.coreutils (pkgs.writeDashBin "tee" '' diff --git a/makefu/1systems/iso.nix b/makefu/1systems/iso.nix index ee1046f79..1e4f9c55f 100644 --- a/makefu/1systems/iso.nix +++ b/makefu/1systems/iso.nix @@ -31,7 +31,7 @@ with import ; systemd.services.sshd.wantedBy = lib.mkForce [ "multi-user.target" ]; # hack `tee` behavior nixpkgs.config.packageOverrides = super: { - irc-announce = super.callPackage { + irc-announce = super.callPackage { pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ pkgs.coreutils (pkgs.writeDashBin "tee" '' diff --git a/makefu/5pkgs/default.nix b/makefu/5pkgs/default.nix index 25ae2fe4b..d1b8fcc42 100644 --- a/makefu/5pkgs/default.nix +++ b/makefu/5pkgs/default.nix @@ -25,7 +25,7 @@ with import ; alsa-hdsploader = callPackage ./alsa-tools { alsaToolTarget="hdsploader";}; inherit (callPackage ./devpi {}) devpi-web devpi-server devpi-client; nodemcu-uploader = callPackage ./nodemcu-uploader {}; - pwqgen-ger = callPackage ../../krebs/5pkgs/passwdqc-utils { + pwqgen-ger = callPackage { wordset-file = pkgs.fetchurl { url = https://gist.githubusercontent.com/makefu/b56f5554c9ef03fe6e09878962e6fd8d/raw/1f147efec51325bc9f80c823bad8381d5b7252f6/wordset_4k.c ; sha256 = "18ddzyh11bywrhzdkzvrl7nvgp5gdb4k1s0zxbz2bkhd14vi72bb"; -- cgit v1.2.3 From 6e93f661e0b31c95f69d1bd3a6f208d26e3e0958 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 29 May 2017 10:52:58 +0200 Subject: l 2 nixpkgs: f469354 -> f8dfdd7 --- lass/2configs/nixpkgs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lass/2configs/nixpkgs.nix b/lass/2configs/nixpkgs.nix index c6620afaa..a3916a2ea 100644 --- a/lass/2configs/nixpkgs.nix +++ b/lass/2configs/nixpkgs.nix @@ -3,6 +3,6 @@ { krebs.build.source.nixpkgs.git = { url = https://cgit.lassul.us/nixpkgs; - ref = "f469354"; + ref = "f8dfdd7"; }; } -- cgit v1.2.3 From 21d92086fe00c7369fde3951f92e9f73f4c05ee9 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 30 May 2017 10:06:04 +0200 Subject: l: move Reaktor coders config to 2configs --- lass/1systems/prism.nix | 99 +------------------------------------------- lass/2configs/coders-irc.nix | 92 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 98 deletions(-) create mode 100644 lass/2configs/coders-irc.nix diff --git a/lass/1systems/prism.nix b/lass/1systems/prism.nix index 01cfe5414..02054a8e5 100644 --- a/lass/1systems/prism.nix +++ b/lass/1systems/prism.nix @@ -1,5 +1,4 @@ { config, lib, pkgs, ... }: - with import ; let @@ -46,6 +45,7 @@ in { ../2configs/monitoring/monit-alarms.nix ../2configs/paste.nix ../2configs/syncthing.nix + ../2configs/coders-irc.nix { imports = [ ../2configs/bepasty.nix @@ -253,103 +253,6 @@ in { { v6 = false; precedence = 1000; predicate = "-d 192.168.122.24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED"; target = "ACCEPT"; } ]; } - { - krebs.Reaktor.coders = { - nickname = "Reaktor|lass"; - channels = [ "#coders" "#germany" ]; - extraEnviron = { - REAKTOR_HOST = "irc.hackint.org"; - }; - plugins = with pkgs.ReaktorPlugins; let - - lambdabot = (import (pkgs.fetchFromGitHub { - owner = "NixOS"; repo = "nixpkgs"; - rev = "a4ec1841da14fc98c5c35cc72242c23bb698d4ac"; - sha256 = "148fpw31s922hxrf28yhrci296f7c7zd81hf0k6zs05rq0i3szgy"; - }) {}).lambdabot; - - lambdabotflags = '' - -XStandaloneDeriving -XGADTs -XFlexibleContexts \ - -XFlexibleInstances -XMultiParamTypeClasses \ - -XOverloadedStrings -XFunctionalDependencies \''; - in [ - url-title - (buildSimpleReaktorPlugin "lambdabot-pl" { - pattern = "^@pl (?P.*)$$"; - script = pkgs.writeDash "lambda-pl" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@pl $1" - ''; - }) - (buildSimpleReaktorPlugin "lambdabot-type" { - pattern = "^@type (?P.*)$$"; - script = pkgs.writeDash "lambda-type" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@type $1" - ''; - }) - (buildSimpleReaktorPlugin "lambdabot-let" { - pattern = "^@let (?P.*)$$"; - script = pkgs.writeDash "lambda-let" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@let $1" - ''; - }) - (buildSimpleReaktorPlugin "lambdabot-run" { - pattern = "^@run (?P.*)$$"; - script = pkgs.writeDash "lambda-run" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@run $1" - ''; - }) - (buildSimpleReaktorPlugin "lambdabot-kind" { - pattern = "^@kind (?P.*)$$"; - script = pkgs.writeDash "lambda-kind" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@kind $1" - ''; - }) - (buildSimpleReaktorPlugin "lambdabot-kind" { - pattern = "^@kind (?P.*)$$"; - script = pkgs.writeDash "lambda-kind" '' - exec ${lambdabot}/bin/lambdabot \ - ${indent lambdabotflags} - -e "@kind $1" - ''; - }) - (buildSimpleReaktorPlugin "random-unicorn-porn" { - pattern = "^!rup$$"; - script = pkgs.writePython2 "rup" '' - #!${pkgs.python2}/bin/python - t1 = """ - _. - ;=',_ () - 8===D~~ S" .--`|| - sS \__ || - __.' ( \-->|| - _=/ _./-\/ || - 8===D~~ ((\( /-' -'l || - ) |/ \\ (_)) - \\ \\ - '~ '~ - """ - print(t1) - ''; - }) - (buildSimpleReaktorPlugin "ping" { - pattern = "^!ping (?P.*)$$"; - script = pkgs.writeDash "ping" '' - exec /var/setuid-wrappers/ping -q -c1 "$1" 2>&1 | tail -1 - ''; - }) - ]; - }; - } { krebs.Reaktor.prism = { nickname = "Reaktor|lass"; diff --git a/lass/2configs/coders-irc.nix b/lass/2configs/coders-irc.nix new file mode 100644 index 000000000..61cc7cfe0 --- /dev/null +++ b/lass/2configs/coders-irc.nix @@ -0,0 +1,92 @@ +{ config, lib, pkgs, ... }: +with import ; + +{ + krebs.Reaktor.coders = { + nickname = "Reaktor|lass"; + channels = [ "#coders" "#germany" ]; + extraEnviron = { + REAKTOR_HOST = "irc.hackint.org"; + }; + plugins = with pkgs.ReaktorPlugins; let + + lambdabot = (import (pkgs.fetchFromGitHub { + owner = "NixOS"; repo = "nixpkgs"; + rev = "a4ec1841da14fc98c5c35cc72242c23bb698d4ac"; + sha256 = "148fpw31s922hxrf28yhrci296f7c7zd81hf0k6zs05rq0i3szgy"; + }) {}).lambdabot; + + lambdabotflags = '' + -XStandaloneDeriving -XGADTs -XFlexibleContexts \ + -XFlexibleInstances -XMultiParamTypeClasses \ + -XOverloadedStrings -XFunctionalDependencies \''; + in [ + url-title + (buildSimpleReaktorPlugin "lambdabot-pl" { + pattern = "^@pl (?P.*)$$"; + script = pkgs.writeDash "lambda-pl" '' + exec ${lambdabot}/bin/lambdabot \ + ${indent lambdabotflags} + -e "@pl $1" + ''; + }) + (buildSimpleReaktorPlugin "lambdabot-type" { + pattern = "^@type (?P.*)$$"; + script = pkgs.writeDash "lambda-type" '' + exec ${lambdabot}/bin/lambdabot \ + ${indent lambdabotflags} + -e "@type $1" + ''; + }) + (buildSimpleReaktorPlugin "lambdabot-let" { + pattern = "^@let (?P.*)$$"; + script = pkgs.writeDash "lambda-let" '' + exec ${lambdabot}/bin/lambdabot \ + ${indent lambdabotflags} + -e "@let $1" + ''; + }) + (buildSimpleReaktorPlugin "lambdabot-run" { + pattern = "^@run (?P.*)$$"; + script = pkgs.writeDash "lambda-run" '' + exec ${lambdabot}/bin/lambdabot \ + ${indent lambdabotflags} + -e "@run $1" + ''; + }) + (buildSimpleReaktorPlugin "lambdabot-kind" { + pattern = "^@kind (?P.*)$$"; + script = pkgs.writeDash "lambda-kind" '' + exec ${lambdabot}/bin/lambdabot \ + ${indent lambdabotflags} + -e "@kind $1" + ''; + }) + (buildSimpleReaktorPlugin "random-unicorn-porn" { + pattern = "^!rup$$"; + script = pkgs.writePython2 "rup" '' + #!${pkgs.python2}/bin/python + t1 = """ + _. + ;=',_ () + 8===D~~ S" .--`|| + sS \__ || + __.' ( \-->|| + _=/ _./-\/ || + 8===D~~ ((\( /-' -'l || + ) |/ \\ (_)) + \\ \\ + '~ '~ + """ + print(t1) + ''; + }) + (buildSimpleReaktorPlugin "ping" { + pattern = "^!ping (?P.*)$$"; + script = pkgs.writeDash "ping" '' + exec /var/setuid-wrappers/ping -q -c1 "$1" 2>&1 | tail -1 + ''; + }) + ]; + }; +} -- cgit v1.2.3 [cgit] Unable to lock slot /tmp/cgit/39200000.lock: No such file or directory (2)