From 7a53169d3ab17125c9966eea54482aeb89b0433a Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 6 Mar 2018 21:12:30 +0100 Subject: [PATCH 01/53] kops: init at 1.0.0 --- krebs/5pkgs/simple/kops.nix | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 krebs/5pkgs/simple/kops.nix diff --git a/krebs/5pkgs/simple/kops.nix b/krebs/5pkgs/simple/kops.nix new file mode 100644 index 000000000..a6c82f3ca --- /dev/null +++ b/krebs/5pkgs/simple/kops.nix @@ -0,0 +1,7 @@ +{ fetchgit, ... }: + +fetchgit { + url = https://cgit.krebsco.de/kops; + rev = "refs/tags/v1.0.0"; + sha256 = "0wg8d80sxa46z4i7ir79sci2hwmv3qskzqdg0si64p6vazy8vckb"; +} From 2e8dd5027bb71f1a329f63e2035f24647843c67e Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 18 Mar 2018 20:37:48 +0100 Subject: [PATCH 02/53] ma bluetooth-mpd: make abstract --- makefu/1systems/omo/config.nix | 8 +++- makefu/1systems/wbob/config.nix | 61 +------------------------ makefu/2configs/bluetooth-mpd.nix | 74 +++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 61 deletions(-) create mode 100644 makefu/2configs/bluetooth-mpd.nix diff --git a/makefu/1systems/omo/config.nix b/makefu/1systems/omo/config.nix index 01438397e..c31d27c8f 100644 --- a/makefu/1systems/omo/config.nix +++ b/makefu/1systems/omo/config.nix @@ -9,7 +9,7 @@ let keyFile = byid "usb-Verbatim_STORE_N_GO_070B3CEE0B223954-0:0"; rootDisk = byid "ata-SanDisk_SD8SNAT128G1122_162099420904"; rootPartition = byid "ata-SanDisk_SD8SNAT128G1122_162099420904-part2"; - primaryInterface = "enp1s0"; + primaryInterface = "enp2s0"; # cryptsetup luksFormat $dev --cipher aes-xts-plain64 -s 512 -h sha512 # cryptsetup luksAddKey $dev tmpkey # cryptsetup luksOpen $dev crypt0 --key-file tmpkey --keyfile-size=4096 @@ -54,6 +54,7 @@ in { # # + # @@ -72,6 +73,11 @@ in { + + { + hardware.pulseaudio.systemWide = true; + makefu.mpd.musicDirectory = "/media/cryptX/music"; + } # security diff --git a/makefu/1systems/wbob/config.nix b/makefu/1systems/wbob/config.nix index 637d8e2d8..cfbcf0e9c 100644 --- a/makefu/1systems/wbob/config.nix +++ b/makefu/1systems/wbob/config.nix @@ -32,66 +32,7 @@ in { - (let - musicDirectory = "/data/music"; - in { - services.mpd = { - enable = true; - inherit musicDirectory; - # dataDir = "/home/anders/.mpd"; - network.listenAddress = "any"; - extraConfig = '' - audio_output { - type "pulse" - name "Local MPD" - server "127.0.0.1" - } - ''; - }; - # open because of truestedInterfaces - # networking.firewall.allowedTCPPorts = [ 6600 4713 ]; - services.samba.shares.music = { - path = musicDirectory; - "read only" = "no"; - browseable = "yes"; - "guest ok" = "yes"; - }; - - sound.enable = true; - hardware.pulseaudio = { - enable = true; - package = pkgs.pulseaudioFull; - # systemWide = true; - support32Bit = true; - zeroconf.discovery.enable = true; - zeroconf.publish.enable = true; - tcp = { - enable = true; - anonymousClients.allowAll = true; - anonymousClients.allowedIpRanges = [ "127.0.0.1" "192.168.8.0/24" ]; - }; - configFile = pkgs.writeText "default.pa" '' - load-module module-udev-detect - load-module module-bluetooth-policy - load-module module-bluetooth-discover - load-module module-native-protocol-unix - load-module module-always-sink - load-module module-console-kit - load-module module-systemd-login - load-module module-intended-roles - load-module module-position-event-sounds - load-module module-filter-heuristics - load-module module-filter-apply - load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 - load-module module-switch-on-connect - # may be required for "system-wide" pulse to connect to bluetooth - #module-bluez5-device - #module-bluez5-discover - ''; - }; - # connect via https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio - hardware.bluetooth.enable = true; - }) + # Sensors diff --git a/makefu/2configs/bluetooth-mpd.nix b/makefu/2configs/bluetooth-mpd.nix new file mode 100644 index 000000000..f7fa999ca --- /dev/null +++ b/makefu/2configs/bluetooth-mpd.nix @@ -0,0 +1,74 @@ +{ pkgs, config, lib, ... }: + +let + cfg = config.makefu.mpd; +in { + options.makefu.mpd.musicDirectory = lib.mkOption { + description = "music Directory"; + default = "/data/music"; + type = lib.types.str; + }; + config = { + services.mpd = { + enable = true; + inherit (cfg) musicDirectory; + network.listenAddress = "0.0.0.0"; + extraConfig = '' + audio_output { + type "pulse" + name "Local MPD" + server "127.0.0.1" + } + ''; + }; + # open because of truestedInterfaces + # networking.firewall.allowedTCPPorts = [ 6600 4713 ]; + services.samba.shares.music = { + path = cfg.musicDirectory; + "read only" = "no"; + browseable = "yes"; + "guest ok" = "yes"; + }; + + sound.enable = true; + hardware.pulseaudio = { + enable = true; + package = pkgs.pulseaudioFull; + # systemWide = true; + support32Bit = true; + zeroconf.discovery.enable = true; + zeroconf.publish.enable = true; + tcp = { + enable = true; + # PULSE_SERVER=192.168.1.11 pavucontrol + anonymousClients.allowAll = true; + # anonymousClients.allowedIpRanges = [ "127.0.0.1" ]; + }; + configFile = pkgs.writeText "default.pa" '' + load-module module-udev-detect + load-module module-bluetooth-policy + load-module module-bluetooth-discover + load-module module-native-protocol-unix + load-module module-always-sink + load-module module-console-kit + load-module module-systemd-login + load-module module-intended-roles + load-module module-position-event-sounds + load-module module-filter-heuristics + load-module module-filter-apply + # will be enabled by pulseaudio.tcp.enable + # load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 + load-module module-switch-on-connect + # may be required for "system-wide" pulse to connect to bluetooth + #module-bluez5-device + #module-bluez5-discover + ''; + }; + # connect via https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio + hardware.bluetooth.enable = true; + #hardware.bluetooth.extraConfig = '' + # [general] + # Enable=Source,Sink,Media,Socket + #''; + }; +} From 78486827c3ed1e7d5777a41d2b6798a9b61ae8d4 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 18 Mar 2018 20:38:48 +0100 Subject: [PATCH 03/53] ma bluetooth-mpd: remove obsolete comments --- makefu/2configs/bluetooth-mpd.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/makefu/2configs/bluetooth-mpd.nix b/makefu/2configs/bluetooth-mpd.nix index f7fa999ca..226f5cf1f 100644 --- a/makefu/2configs/bluetooth-mpd.nix +++ b/makefu/2configs/bluetooth-mpd.nix @@ -42,7 +42,6 @@ in { enable = true; # PULSE_SERVER=192.168.1.11 pavucontrol anonymousClients.allowAll = true; - # anonymousClients.allowedIpRanges = [ "127.0.0.1" ]; }; configFile = pkgs.writeText "default.pa" '' load-module module-udev-detect @@ -56,12 +55,7 @@ in { load-module module-position-event-sounds load-module module-filter-heuristics load-module module-filter-apply - # will be enabled by pulseaudio.tcp.enable - # load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 load-module module-switch-on-connect - # may be required for "system-wide" pulse to connect to bluetooth - #module-bluez5-device - #module-bluez5-discover ''; }; # connect via https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio From 26eb236cd9cce469be2a7cb227083742e037fac8 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 18 Mar 2018 17:22:14 +0100 Subject: [PATCH 04/53] nixpkgs: c5bc83b -> 2a32f6b (18.03) --- krebs/source.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/source.nix b/krebs/source.nix index 733601a21..e12175b66 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -24,7 +24,7 @@ in stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; nixpkgs.git = { url = https://github.com/NixOS/nixpkgs; - ref = "c665fcca9e7be8cd06c1f3c5bbe2b00d4c8f2a92"; # nixos-17.09 @ 2018-03-18 + ref = "2a32f6bc0ccfbe8f158a40b96d828fbba921fd54"; # nixos-18.03 # 2018-03-16 }; } override From e5f3827fc84ba1c769c1422d92fa93ebcb0fc5d1 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 18 Mar 2018 17:31:59 +0100 Subject: [PATCH 05/53] os-release: follow renamed modules --- krebs/3modules/os-release.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/krebs/3modules/os-release.nix b/krebs/3modules/os-release.nix index 8f71a357f..5fbfe6614 100644 --- a/krebs/3modules/os-release.nix +++ b/krebs/3modules/os-release.nix @@ -1,8 +1,11 @@ { config, ... }: with import ; let - nixos-version-id = "${config.system.nixosVersion}"; - nixos-version = "${nixos-version-id} (${config.system.nixosCodeName})"; + nixos-version-id = if (hasAttr "nixos" config.system) then + "${config.system.nixos.version}" else "${config.system.nixosVersion}"; + nixos-codeName = if (hasAttr "nixos" config.system) then + "${config.system.nixos.codeName}" else "${config.system.nixosCodeName}"; + nixos-version = "${nixos-version-id} (${nixos-codeName})"; nixos-pretty-name = "NixOS ${nixos-version}"; stockholm-version-id = let From 84adc28a3b70bd6a93c79d36f0247393d801b32b Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 18 Mar 2018 17:36:46 +0100 Subject: [PATCH 06/53] l privoxy: RIP polipo --- lass/2configs/privoxy.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lass/2configs/privoxy.nix b/lass/2configs/privoxy.nix index 33e8d1e46..e0a086421 100644 --- a/lass/2configs/privoxy.nix +++ b/lass/2configs/privoxy.nix @@ -3,10 +3,5 @@ { services.privoxy = { enable = true; - extraConfig = '' - #use polipo - forward / localhost:8123 - ''; }; - services.polipo.enable = true; } From f859b7d7f8fe0c9968c961711ec7a6578a4d36a2 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 18 Mar 2018 20:51:52 +0100 Subject: [PATCH 07/53] nixpkgs: 2a32f6b -> 0e7c9b3 --- krebs/source.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/source.nix b/krebs/source.nix index e12175b66..f275460e1 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -24,7 +24,7 @@ in stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; nixpkgs.git = { url = https://github.com/NixOS/nixpkgs; - ref = "2a32f6bc0ccfbe8f158a40b96d828fbba921fd54"; # nixos-18.03 # 2018-03-16 + ref = "0e7c9b32817e5cbe61212d47a6cf9bcd71789322"; # nixos-18.03 # 2018-03-18 }; } override From 9b3d1c8b31006d92590e4f8e78fd5662d8ed390b Mon Sep 17 00:00:00 2001 From: makefu Date: Fri, 23 Mar 2018 10:28:33 +0100 Subject: [PATCH 08/53] ma nginx/wiki: index to makefu.html --- makefu/2configs/nginx/euer.wiki.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/makefu/2configs/nginx/euer.wiki.nix b/makefu/2configs/nginx/euer.wiki.nix index 08bc5659f..99533b25c 100644 --- a/makefu/2configs/nginx/euer.wiki.nix +++ b/makefu/2configs/nginx/euer.wiki.nix @@ -17,6 +17,7 @@ let # contains: # user1 = pass1 # userN = passN + # afterwards put /var/www//user1.html as tiddlywiki tw-pass-file = "${sec}/tw-pass.ini"; in { @@ -45,7 +46,7 @@ in { systemd.services.prepare-tw = { wantedBy = [ "local-fs.target" ]; - before = [ "phpfpm.service" ]; + before = [ "phpfpm.service" "nginx.service" ]; serviceConfig = { ExecStart = pkgs.writeScript "prepare-tw-service" '' #!/bin/sh @@ -92,6 +93,7 @@ in { locations = { "/" = { root = wiki-dir; + index = "makefu.html"; extraConfig = '' expires -1; autoindex on; From b27dfa5a37b1345d36b57aa24b940287293418e0 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 23 Mar 2018 20:53:23 +0100 Subject: [PATCH 09/53] 0e7c9b3 -> 48856a9 --- krebs/source.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/source.nix b/krebs/source.nix index f275460e1..0bd797a16 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -24,7 +24,7 @@ in stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; nixpkgs.git = { url = https://github.com/NixOS/nixpkgs; - ref = "0e7c9b32817e5cbe61212d47a6cf9bcd71789322"; # nixos-18.03 # 2018-03-18 + ref = "48856a91c02b456c80c37c863d8610090b38707a"; # nixos-18.03 # 2018-03-24 }; } override From d810727b985bbdce57ae2de515111949c141c3bd Mon Sep 17 00:00:00 2001 From: lassulus Date: Sat, 24 Mar 2018 12:19:52 +0100 Subject: [PATCH 10/53] exim: krebs.setuid -> security.wrappers --- krebs/3modules/exim.nix | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/krebs/3modules/exim.nix b/krebs/3modules/exim.nix index cfcbbc438..274a943b1 100644 --- a/krebs/3modules/exim.nix +++ b/krebs/3modules/exim.nix @@ -50,15 +50,9 @@ in { ''; systemPackages = [ pkgs.exim ]; }; - krebs.setuid = { - exim = { - filename = "${pkgs.exim}/bin/exim"; - mode = "4111"; - }; - sendmail = { - filename = "${pkgs.exim}/bin/exim"; - mode = "4111"; - }; + security.wrappers = { + exim.source = "${pkgs.exim}/bin/exim"; + sendmail.source = "${pkgs.exim}/bin/exim"; }; systemd.services.exim = { restartTriggers = [ From 99cc82a53b9f51752b684c081d0aa6b49504516a Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 26 Mar 2018 11:12:38 +0200 Subject: [PATCH 11/53] ma source: new signal-desktop --- makefu/source.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makefu/source.nix b/makefu/source.nix index 6b32a1b40..d25fe5528 100644 --- a/makefu/source.nix +++ b/makefu/source.nix @@ -21,9 +21,9 @@ let ]; }; # TODO: automate updating of this ref + cherry-picks - ref = "6b6e72b"; # nixos-17.09 @ 2018-03-07 + ref = "6583793"; # nixos-17.09 @ 2018-03-07 # + do_sqlite3 ruby: 55a952be5b5 - # + signal: 0f19beef3 + # + signal: 0f19beef3, 50ad913, 9449782, b7046ab2 in evalSource (toString _file) [ From 6a94383764130a9a28a990d4e1e4413b0bbf3d06 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 26 Mar 2018 13:00:23 +0200 Subject: [PATCH 12/53] tv xmonad: add passmenu --- tv/5pkgs/simple/xmonad-tv/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tv/5pkgs/simple/xmonad-tv/default.nix b/tv/5pkgs/simple/xmonad-tv/default.nix index 94c70153d..d474b7edd 100644 --- a/tv/5pkgs/simple/xmonad-tv/default.nix +++ b/tv/5pkgs/simple/xmonad-tv/default.nix @@ -133,6 +133,8 @@ myKeys conf = Map.fromList $ [ ((_4 , xK_Escape ), forkFile "/run/wrappers/bin/slock" [] Nothing) , ((_4S , xK_c ), kill) + , ((_4 , xK_p ), forkFile "${pkgs.pass}/bin/passmenu" ["--type"] Nothing) + , ((_4 , xK_x ), chooseAction spawnTermAt) , ((_4C , xK_x ), spawnRootTerm) From f76401ef002851cca81218de3d879b4829668ebe Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 27 Mar 2018 20:06:23 +0200 Subject: [PATCH 13/53] tv pkgs: init font-size --- tv/5pkgs/simple/font-size.nix | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tv/5pkgs/simple/font-size.nix diff --git a/tv/5pkgs/simple/font-size.nix b/tv/5pkgs/simple/font-size.nix new file mode 100644 index 000000000..21097ed6a --- /dev/null +++ b/tv/5pkgs/simple/font-size.nix @@ -0,0 +1,26 @@ +{ writeDashBin }: +writeDashBin "font-size" '' + set -efu + + # set_font NORMAL_FONT BOLD_FONT + set_font() { + printf '\033]710;%s\007' "$1" + printf '\033]711;%s\007' "$2" + } + + case ''${1-} in + '''|0|--reset) + set_font \ + -*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 \ + -*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 \ + ;; + [1-9]|[1-9][0-9]|[1-9][0-9][0-9]) + set_font \ + xft:Monospace:size=$1 \ + xft:Monospace:size=$1:bold \ + ;; + *) + echo "$0: bad argument: $1" >&2 + exit 1 + esac +'' From bd70fe17cbe4f99b2c5027e7b23f96cf92317a61 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 27 Mar 2018 20:06:48 +0200 Subject: [PATCH 14/53] tv xserver: systemPackages += font-size --- tv/2configs/xserver/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/tv/2configs/xserver/default.nix b/tv/2configs/xserver/default.nix index 7ba78b974..6ef8a8768 100644 --- a/tv/2configs/xserver/default.nix +++ b/tv/2configs/xserver/default.nix @@ -11,6 +11,7 @@ in { environment.systemPackages = [ pkgs.ff + pkgs.font-size pkgs.gitAndTools.qgit pkgs.mpv pkgs.sxiv From 5f9622bbdae0a9a459fd6a70cc9a3147f382162b Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 27 Mar 2018 20:46:56 +0200 Subject: [PATCH 15/53] haskellPackages.nix-diff: RIP --- krebs/5pkgs/haskell/nix-diff/default.nix | 25 -------- .../5pkgs/haskell/nix-diff/nixos-system.patch | 18 ------ krebs/5pkgs/simple/stockholm/default.nix | 60 ------------------- tv/2configs/urlwatch.nix | 5 -- 4 files changed, 108 deletions(-) delete mode 100644 krebs/5pkgs/haskell/nix-diff/default.nix delete mode 100644 krebs/5pkgs/haskell/nix-diff/nixos-system.patch diff --git a/krebs/5pkgs/haskell/nix-diff/default.nix b/krebs/5pkgs/haskell/nix-diff/default.nix deleted file mode 100644 index df0315048..000000000 --- a/krebs/5pkgs/haskell/nix-diff/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ mkDerivation, attoparsec, base, containers, Diff, fetchgit, mtl -, nix-derivation, optparse-generic, stdenv, system-filepath, text -, unix, vector -}: -mkDerivation { - pname = "nix-diff"; - version = "1.0.0-krebs1"; - src = fetchgit { - url = "https://github.com/Gabriel439/nix-diff"; - sha256 = "1k00nx8pannqmpzadkwfrs6bf79yk22ynhd033z5rsyw0m8fcz9k"; - rev = "e32ffa2c7f38b47a71325a042c1d887fb46cdf7d"; - }; - patches = [ - ./nixos-system.patch - ]; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - attoparsec base containers Diff mtl nix-derivation optparse-generic - system-filepath text unix vector - ]; - homepage = "https://github.com/Gabriel439/nix-diff"; - description = "Explain why two Nix derivations differ"; - license = stdenv.lib.licenses.bsd3; -} diff --git a/krebs/5pkgs/haskell/nix-diff/nixos-system.patch b/krebs/5pkgs/haskell/nix-diff/nixos-system.patch deleted file mode 100644 index 03e186aa9..000000000 --- a/krebs/5pkgs/haskell/nix-diff/nixos-system.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/Main.hs b/src/Main.hs -index 959ab8e..d3b6077 100644 ---- a/src/Main.hs -+++ b/src/Main.hs -@@ -95,7 +95,12 @@ pathToText path = - underneath `/nix/store`, but this is the overwhelmingly common use case - -} - derivationName :: FilePath -> Text --derivationName = Data.Text.dropEnd 4 . Data.Text.drop 44 . pathToText -+derivationName p = -+ if Data.Text.isPrefixOf "nixos-system" s -+ then "nixos-system" -+ else s -+ where -+ s = Data.Text.dropEnd 4 . Data.Text.drop 44 . pathToText $ p - - -- | Group input derivations by their name - groupByName :: Map FilePath (Set Text) -> Map Text (Map FilePath (Set Text)) diff --git a/krebs/5pkgs/simple/stockholm/default.nix b/krebs/5pkgs/simple/stockholm/default.nix index 4d15e7ac2..9afe79510 100644 --- a/krebs/5pkgs/simple/stockholm/default.nix +++ b/krebs/5pkgs/simple/stockholm/default.nix @@ -9,7 +9,6 @@ # cmds.deploy = pkgs.withGetopt { - diff = { default = /* sh */ "false"; switch = true; }; force-populate = { default = /* sh */ "false"; switch = true; }; quiet = { default = /* sh */ "false"; switch = true; }; source_file = { @@ -25,65 +24,6 @@ . ${init.env} . ${init.proxy "deploy" opts} - if \test ${opts.diff.ref} = true; then - - system_profile=/nix/var/nix/profiles/system - system_drv_cur=/etc/system.drv - - system_drv_new=$( - ${pkgs.nix}/bin/nix-instantiate \ - -Q \ - -I "$target_path" \ - -E ' - (import { - modules = [ ]; - }).config.system.build.toplevel - ' - ) - - if \test -e "$system_drv_cur"; then - - system_drv_cur_c=$(${pkgs.coreutils}/bin/readlink -f "$system_drv_cur") - system_drv_new_c=$(${pkgs.coreutils}/bin/readlink -f "$system_drv_new") - - if \test "$system_drv_cur_c" = "$system_drv_new_c"; then - echo "$0: system up to date" >&2 - exit 0 - fi - - system_drv_cur=$system_drv_cur_c \ - system_drv_new=$system_drv_new_c \ - ${pkgs.utillinux}/bin/script \ - --command ' - ${pkgs.haskellPackages.nix-diff}/bin/nix-diff \ - "$system_drv_cur" "$system_drv_new" - ' \ - --quiet \ - --return \ - /dev/null - - printf 'deploy? [N/y] ' >&2 - read -r REPLY - if \test "$REPLY" != y; then - echo "$0: abort!" >&2 - exit 1 - fi - else - echo "$0: --${opts.diff.long} has no effect because "$system_drv_cur" doesn't exist" >&2 - fi - - new_system=$(${pkgs.nix}/bin/nix-store --realize "$system_drv_new") - - ${pkgs.nix}/bin/nix-env -p "$system_profile" --set "$new_system" - PATH=${lib.makeBinPath [ - pkgs.systemd - ]} \ - "$system_profile"/bin/switch-to-configuration switch - - ${pkgs.coreutils}/bin/ln -fns "$system_drv_new" "$system_drv_cur" - exit - fi - # Use system's nixos-rebuild, which is not self-contained export PATH=/run/current-system/sw/bin exec ${utils.with-whatsupnix} \ diff --git a/tv/2configs/urlwatch.nix b/tv/2configs/urlwatch.nix index 509257c48..897def8c9 100644 --- a/tv/2configs/urlwatch.nix +++ b/tv/2configs/urlwatch.nix @@ -13,11 +13,6 @@ with import ; http://www.exim.org/ - { - url = https://api.github.com/repos/Gabriel439/nix-diff/git/refs/heads/master; - filter = "system:${pkgs.jq}/bin/jq -r .object.sha"; - } - # ref src/nixpkgs/pkgs/tools/admin/sec/default.nix { url = https://api.github.com/repos/simple-evcorr/sec/tags; From 2cc1d9a54eaf512a2fddb57990df3462931990a4 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 27 Mar 2018 21:32:14 +0200 Subject: [PATCH 16/53] writeC: use binutils-unwrapped --- krebs/5pkgs/writers.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/5pkgs/writers.nix b/krebs/5pkgs/writers.nix index a48fc0f87..23773e17f 100644 --- a/krebs/5pkgs/writers.nix +++ b/krebs/5pkgs/writers.nix @@ -57,7 +57,7 @@ with import ; passAsFile = [ "text" ]; } /* sh */ '' PATH=${makeBinPath (with pkgs; [ - binutils + binutils-unwrapped coreutils gcc ])} From 7e62c44607f193d3c9740f7c56df976b0db3c417 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 27 Mar 2018 21:35:27 +0200 Subject: [PATCH 17/53] Revert "exim: krebs.setuid -> security.wrappers" This reverts commit d810727b985bbdce57ae2de515111949c141c3bd. --- krebs/3modules/exim.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/krebs/3modules/exim.nix b/krebs/3modules/exim.nix index 274a943b1..cfcbbc438 100644 --- a/krebs/3modules/exim.nix +++ b/krebs/3modules/exim.nix @@ -50,9 +50,15 @@ in { ''; systemPackages = [ pkgs.exim ]; }; - security.wrappers = { - exim.source = "${pkgs.exim}/bin/exim"; - sendmail.source = "${pkgs.exim}/bin/exim"; + krebs.setuid = { + exim = { + filename = "${pkgs.exim}/bin/exim"; + mode = "4111"; + }; + sendmail = { + filename = "${pkgs.exim}/bin/exim"; + mode = "4111"; + }; }; systemd.services.exim = { restartTriggers = [ From d82c2f228b7179319cdea4d16a59fa553f249505 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 28 Mar 2018 11:06:40 +0200 Subject: [PATCH 18/53] ma gum.r: disable vpnws --- makefu/1systems/gum/config.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefu/1systems/gum/config.nix b/makefu/1systems/gum/config.nix index b859efc94..40fa233d3 100644 --- a/makefu/1systems/gum/config.nix +++ b/makefu/1systems/gum/config.nix @@ -52,7 +52,7 @@ in { # network - + # From 650090bb3541e2b3ffd15af241481afb120e3522 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 28 Mar 2018 11:07:22 +0200 Subject: [PATCH 19/53] ma photostore: expire -1 --- makefu/2configs/deployment/photostore.krebsco.de.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/makefu/2configs/deployment/photostore.krebsco.de.nix b/makefu/2configs/deployment/photostore.krebsco.de.nix index ecbca9ea3..19a8df235 100644 --- a/makefu/2configs/deployment/photostore.krebsco.de.nix +++ b/makefu/2configs/deployment/photostore.krebsco.de.nix @@ -30,6 +30,7 @@ in { forceSSL = true; locations = { "/".extraConfig = '' + expires -1; uwsgi_pass unix://${wsgi-sock}; uwsgi_param UWSGI_CHDIR ${workdir}; uwsgi_param UWSGI_MODULE cuserver.main; From ba31c34013519b26883faf8321df11298b37085f Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 28 Mar 2018 11:07:35 +0200 Subject: [PATCH 20/53] ma arafetch: init --- makefu/2configs/stats/arafetch.nix | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 makefu/2configs/stats/arafetch.nix diff --git a/makefu/2configs/stats/arafetch.nix b/makefu/2configs/stats/arafetch.nix new file mode 100644 index 000000000..e04b12f9c --- /dev/null +++ b/makefu/2configs/stats/arafetch.nix @@ -0,0 +1,36 @@ +{ pkgs, lib, ...}: +with import ; +let + pkg = with pkgs.python3Packages;buildPythonPackage rec { + rev = "762d747"; + name = "europastats-${rev}"; + propagatedBuildInputs = [ + requests + docopt + influxdb + beautifulsoup4 + ]; + src = pkgs.fetchgit { + url = "http://cgit.euer.krebsco.de/arafetch"; + inherit rev; + sha256 = "164xiqbrr914lz0nh3i1dxz8iwg6vm2af3i3803cd3242nznw0ws"; + }; + }; + home = "/var/lib/arafetch"; +in { + users.users.arafetch = { + uid = genid "arafetch"; + inherit home; + createHome = true; + }; + + systemd.services.arafetch = { + startAt = "Mon 09:15:00"; + wantedBy = [ "multi-user.target" ]; + environment = { + OUTDIR = home; + }; + path = [ pkg pkgs.git pkgs.wget ]; + script = "${pkg}/bin/weekrun"; + }; +} From fc774f31fb0cdbc49f60d33d800e66ced3786b2c Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 28 Mar 2018 11:07:48 +0200 Subject: [PATCH 21/53] ma omo.r: enable arafetch --- makefu/1systems/omo/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/makefu/1systems/omo/config.nix b/makefu/1systems/omo/config.nix index c31d27c8f..bed6ae9fd 100644 --- a/makefu/1systems/omo/config.nix +++ b/makefu/1systems/omo/config.nix @@ -66,6 +66,7 @@ in { + # services From 9c1e215dd500458d37832f234ecb33f455ed4c64 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:08:35 +0200 Subject: [PATCH 22/53] l xephyrify: handle resize --- lass/5pkgs/xephyrify/default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lass/5pkgs/xephyrify/default.nix b/lass/5pkgs/xephyrify/default.nix index 8b18ea949..f1711891c 100644 --- a/lass/5pkgs/xephyrify/default.nix +++ b/lass/5pkgs/xephyrify/default.nix @@ -2,15 +2,18 @@ let - minimalXmonad = writeHaskell "minimalXmonad" { + xephyrify-xmonad = writeHaskell "xephyrify-xmonad" { executables.xmonad = { extra-depends = [ "containers" + "unix" "xmonad" ]; text = /* haskell */ '' module Main where import XMonad + import Data.Monoid + import System.Posix.Process (executeFile) import qualified Data.Map as Map main :: IO () @@ -21,8 +24,18 @@ let , keys = myKeys , normalBorderColor = "#000000" , focusedBorderColor = "#000000" + , handleEventHook = myEventHook } + myEventHook :: Event -> X All + + myEventHook (ConfigureEvent { ev_event_type = 22 }) = do + spawn "${xorg.xrandr}/bin/xrandr >/dev/null 2>&1" + return (All True) + + myEventHook _ = do + return (All True) + myLayoutHook = Full myKeys _ = Map.fromList [] ''; From 28e1b8d3a51e2405ecc60b04e321f1f7dba364ad Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:11:51 +0200 Subject: [PATCH 23/53] l xephyrify: change ownership of socket if wanted --- lass/5pkgs/xephyrify/default.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lass/5pkgs/xephyrify/default.nix b/lass/5pkgs/xephyrify/default.nix index f1711891c..8d6036843 100644 --- a/lass/5pkgs/xephyrify/default.nix +++ b/lass/5pkgs/xephyrify/default.nix @@ -43,13 +43,20 @@ let }; in writeDashBin "xephyrify" '' - NDISPLAY=:$(${coreutils}/bin/shuf -i 100-65536 -n 1) + NDISPLAY=''${NDISPLAY:-$(${coreutils}/bin/shuf -i 100-65536 -n 1)} echo "using DISPLAY $NDISPLAY" - ${xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable $NDISPLAY & + ${xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable -dpi 60 -nolisten local :$NDISPLAY & + if test -n $DROP_TO_USER; then + sleep 1 + ls /tmp/.X11-unix/ + id + ${coreutils}/bin/chgrp "$DROP_TO_USER" "/tmp/.X11-unix/X$NDISPLAY" + ${coreutils}/bin/chmod 770 "/tmp/.X11-unix/X$NDISPLAY" + fi XEPHYR_PID=$! - DISPLAY=$NDISPLAY ${minimalXmonad}/bin/xmonad & + DISPLAY=:$NDISPLAY ${xephyrify-xmonad}/bin/xmonad & XMONAD_PID=$! - DISPLAY=$NDISPLAY ${virtualgl}/bin/vglrun "$@" + DISPLAY=:$NDISPLAY ${virtualgl}/bin/vglrun "$@" kill $XMONAD_PID kill $XEPHYR_PID '' From 92540f5cf1628cfaceee6c19f08b3c13b05cf6b4 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:12:53 +0200 Subject: [PATCH 24/53] l xjails: init --- lass/3modules/default.nix | 1 + lass/3modules/xjail.nix | 87 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 lass/3modules/xjail.nix diff --git a/lass/3modules/default.nix b/lass/3modules/default.nix index fd77b2262..0c10e1ec2 100644 --- a/lass/3modules/default.nix +++ b/lass/3modules/default.nix @@ -11,6 +11,7 @@ _: ./screenlock.nix ./umts.nix ./usershadow.nix + ./xjail.nix ./xserver ]; } diff --git a/lass/3modules/xjail.nix b/lass/3modules/xjail.nix new file mode 100644 index 000000000..af851760b --- /dev/null +++ b/lass/3modules/xjail.nix @@ -0,0 +1,87 @@ +{ config, pkgs, ... }: + +with import ; +{ + options.lass.xjail = mkOption { + type = types.attrsOf (types.submodule ({ config, ...}: { + options = { + user = mkOption { + type = types.string; + default = "nobody"; + }; + groups = mkOption { + type = types.listOf types.str; + default = []; + }; + name = mkOption { + type = types.string; + default = config._module.args.name; + }; + display = mkOption { + type = types.string; + default = toString (genid_signed config._module.args.name); + }; + script = mkOption { + type = types.path; + default = pkgs.writeScript "echo_lol" "echo lol"; + }; + from = mkOption { + type = types.string; + default = "lass"; + }; + }; + })); + default = {}; + }; + + options.lass.xjail-bins = mkOption { + type = types.attrsOf types.path; + }; + + # implementation + config = { + + users.users = mapAttrs' (_: cfg: + nameValuePair cfg.name { + uid = genid cfg.name; + home = "/home/${cfg.name}"; + useDefaultShell = true; + createHome = true; + extraGroups = cfg.groups; + } + ) config.lass.xjail; + + users.groups = mapAttrs' (_: cfg: + nameValuePair cfg.name { + members = [ + cfg.name + cfg.from + ]; + } + ) config.lass.xjail; + + security.sudo.extraConfig = (concatStringsSep "\n" (mapAttrsToList (_: cfg: + # TODO allow just the right script with sudo + "${cfg.from} ALL=(${cfg.name}) NOPASSWD: ALL" + ) config.lass.xjail)); + + lass.xjail-bins = mapAttrs' (name: cfg: + let + sudo-wrapper = pkgs.writeScript name '' + /var/run/wrappers/bin/sudo -u ${cfg.name} -i ${cfg.script} "$@" + ''; + in nameValuePair name (pkgs.writeScriptBin cfg.name '' + export NDISPLAY=${cfg.display} + DISPLAY=:$NDISPLAY ${pkgs.xorg.xrandr}/bin/xrandr + if test $? -eq 0; then + echo xephyr already running + export DISPLAY=:$NDISPLAY + ${sudo-wrapper} "$@" + else + echo xephyr not running + DROP_TO_USER=${cfg.name} ${pkgs.xephyrify}/bin/xephyrify ${sudo-wrapper} "$@" + fi + '') + ) config.lass.xjail; + }; +} From 30068c17c9c8dc807feab2856b40012c3fffcce4 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:13:57 +0200 Subject: [PATCH 25/53] l browsers: use xjails --- lass/2configs/browsers.nix | 77 ++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix index cbbd54b6b..153c386cf 100644 --- a/lass/2configs/browsers.nix +++ b/lass/2configs/browsers.nix @@ -21,58 +21,55 @@ let $BIN "$@" ''; - createChromiumUser = name: extraGroups: precedence: - let - bin = pkgs.writeScriptBin name '' - /var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.chromium}/bin/chromium $@ - ''; - in { - users.extraUsers.${name} = { - inherit name; - inherit extraGroups; - home = "/home/${name}"; - uid = genid name; - useDefaultShell = true; - createHome = true; + createChromiumUser = name: groups: precedence: + { + lass.xjail.${name} = { + user = name; + script = pkgs.writeDash name '' + ${pkgs.chromium}/bin/chromium "$@" + ''; + inherit groups; }; + environment.systemPackages = [ config.lass.xjail-bins.${name} ]; lass.browser.paths.${name} = { - path = bin; + path = config.lass.xjail-bins.${name}; inherit precedence; }; - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(${name}) NOPASSWD: ALL - ''; - environment.systemPackages = [ - bin - ]; }; - createFirefoxUser = name: extraGroups: precedence: - let - bin = pkgs.writeScriptBin name '' - /var/run/wrappers/bin/sudo -u ${name} -i ${pkgs.firefox-devedition-bin}/bin/firefox-devedition $@ - ''; - in { - users.extraUsers.${name} = { - inherit name; - inherit extraGroups; - home = "/home/${name}"; - uid = genid name; - useDefaultShell = true; - createHome = true; + createFirefoxUser = name: groups: precedence: + { + lass.xjail.${name} = { + user = name; + script = pkgs.writeDash name '' + ${pkgs.firefox-devedition-bin}/bin/firefox-devedition "$@" + ''; + inherit groups; }; + environment.systemPackages = [ config.lass.xjail-bins.${name} ]; lass.browser.paths.${name} = { - path = bin; + path = config.lass.xjail-bins.${name}; inherit precedence; }; - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(${name}) NOPASSWD: ALL - ''; - environment.systemPackages = [ - bin - ]; }; + createQuteUser = name: groups: precedence: + { + lass.xjail.${name} = { + user = name; + script = pkgs.writeDash name '' + ${pkgs.qutebrowser}/bin/qutebrowser "$@" + ''; + inherit groups; + }; + environment.systemPackages = [ config.lass.xjail-bins.${name} ]; + lass.browser.paths.${name} = { + path = config.lass.xjail-bins.${name}; + inherit precedence; + }; + }; + + #TODO: abstract this in { From e7b4686c7ac46e08a526e5d74eb6cd45af23b1da Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:15:20 +0200 Subject: [PATCH 26/53] l browsers: remove video group from most users --- lass/2configs/browsers.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix index 153c386cf..351f15154 100644 --- a/lass/2configs/browsers.nix +++ b/lass/2configs/browsers.nix @@ -108,11 +108,11 @@ in { }; } ( createFirefoxUser "ff" [ "audio" ] 10 ) - ( createChromiumUser "cr" [ "video" "audio" ] 9 ) + ( createChromiumUser "cr" [ "audio" ] 9 ) ( createChromiumUser "gm" [ "video" "audio" ] 8 ) - ( createChromiumUser "wk" [ "video" "audio" ] 0 ) - ( createChromiumUser "fb" [ "video" "audio" ] 0 ) - ( createChromiumUser "com" [ "video" "audio" ] 0 ) + ( createChromiumUser "wk" [ "audio" ] 0 ) + ( createChromiumUser "fb" [ "audio" ] 0 ) + ( createChromiumUser "com" [ "audio" ] 0 ) ( createChromiumUser "fin" [] (-1) ) ]; } From 1b050f22d44711c4f296c6bba371528d0cf44cf9 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:15:42 +0200 Subject: [PATCH 27/53] l browsers: add qb --- lass/2configs/browsers.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix index 351f15154..75a86db6a 100644 --- a/lass/2configs/browsers.nix +++ b/lass/2configs/browsers.nix @@ -107,6 +107,7 @@ in { })); }; } + ( createQuteUser "qb" [ "audio" ] 20 ) ( createFirefoxUser "ff" [ "audio" ] 10 ) ( createChromiumUser "cr" [ "audio" ] 9 ) ( createChromiumUser "gm" [ "video" "audio" ] 8 ) From 22f33b8e99cf9ffe575905370df736ddc3517338 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Mar 2018 21:16:03 +0200 Subject: [PATCH 28/53] reaktor-plugins sed: limit output --- .../5pkgs/simple/Reaktor/scripts/sed-plugin.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py b/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py index da8e2f726..51ac7a071 100644 --- a/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py +++ b/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py @@ -18,20 +18,27 @@ 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) + p = Popen(['sed', line], stdin=PIPE, stdout=PIPE, stderr=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())) + print("something went wrong when trying to process your regex: {}".format(line.strip())) ret = so.decode() - print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip())) - if ret: - d[usr] = ret + if len(ret) > 512: + print('message to long, skipped') + elif len(ret.split('\n')) > 5: + print('to many lines, skipped') + else: + if last.strip() != ret.strip(): + print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip())) + if ret: + d[usr] = ret else: print("no last message") From 10bcf2db927692818a948c755fdfbf961a2ac3d7 Mon Sep 17 00:00:00 2001 From: makefu Date: Thu, 29 Mar 2018 11:15:13 +0200 Subject: [PATCH 29/53] buildbot: bump to 0.8.15 --- krebs/5pkgs/simple/buildbot-classic/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix index 9eeccee64..77ba0342d 100644 --- a/krebs/5pkgs/simple/buildbot-classic/default.nix +++ b/krebs/5pkgs/simple/buildbot-classic/default.nix @@ -2,16 +2,15 @@ python2Packages.buildPythonApplication rec { name = "buildbot-classic-${version}"; - version = "0.8.14"; + version = "0.8.15"; namePrefix = ""; patches = []; src = fetchFromGitHub { owner = "krebscode"; repo = "buildbot-classic"; - # rev = "v${version}"; - rev = "843463911"; - sha256 = "1ybl52ybjw5p09yik6bck9i1pvnvg94i0d32zqrwy67s77yx1mfd"; + rev = version; + sha256 = "0hmmpqxs1i3nvwj9681yi0q3qz0xdcbbm0774lkn1ic5fg3c68fm"; }; postUnpack = "sourceRoot=\${sourceRoot}/master"; From 1710530cae5189cdc779212084ea3091fefc275b Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 29 Mar 2018 14:10:23 +0200 Subject: [PATCH 30/53] writers writeC: 17.09 workaround --- krebs/5pkgs/writers.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/krebs/5pkgs/writers.nix b/krebs/5pkgs/writers.nix index 23773e17f..1939bf854 100644 --- a/krebs/5pkgs/writers.nix +++ b/krebs/5pkgs/writers.nix @@ -57,7 +57,8 @@ with import ; passAsFile = [ "text" ]; } /* sh */ '' PATH=${makeBinPath (with pkgs; [ - binutils-unwrapped + # TODO remove if everyone migrated to 18.03 + (if hasAttr "binutils-unwrapped" pkgs then binutils-unwrapped else binutils) coreutils gcc ])} From 23e797744017d984d67ba66d879e35913bbac4d7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 29 Mar 2018 16:39:08 +0200 Subject: [PATCH 31/53] l mail: track neomutt name change --- lass/2configs/mail.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lass/2configs/mail.nix b/lass/2configs/mail.nix index b9682c5ee..81db59617 100644 --- a/lass/2configs/mail.nix +++ b/lass/2configs/mail.nix @@ -75,7 +75,7 @@ let muttrc = pkgs.writeText "muttrc" '' # gpg - source ${pkgs.neomutt}/share/doc/mutt/samples/gpg.rc + source ${pkgs.neomutt}/share/doc/neomutt/samples/gpg.rc set pgp_use_gpg_agent = yes set pgp_sign_as = 0xDC2A43EF4F11E854B44D599A89E82952976A7E4D set crypt_autosign = yes @@ -195,7 +195,7 @@ let name = "mutt"; paths = [ (pkgs.writeDashBin "mutt" '' - exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@ + exec ${pkgs.neomutt}/bin/neomutt -F ${muttrc} $@ '') pkgs.neomutt ]; From e4d0f7d81f5ff80eef4da50d15d5fdc0d824acf1 Mon Sep 17 00:00:00 2001 From: makefu Date: Thu, 29 Mar 2018 18:55:15 +0200 Subject: [PATCH 32/53] ma torrent-secrets: enable for drop and fileleech --- makefu/1systems/drop/source.nix | 1 + makefu/1systems/fileleech/source.nix | 3 ++- makefu/6tests/data/secrets/torrent-secrets/auth.nix | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 makefu/6tests/data/secrets/torrent-secrets/auth.nix diff --git a/makefu/1systems/drop/source.nix b/makefu/1systems/drop/source.nix index 74de846c0..45bd6f97e 100644 --- a/makefu/1systems/drop/source.nix +++ b/makefu/1systems/drop/source.nix @@ -1,3 +1,4 @@ import { name="drop"; + torrent = true; } diff --git a/makefu/1systems/fileleech/source.nix b/makefu/1systems/fileleech/source.nix index 699267e21..caca1fbcb 100644 --- a/makefu/1systems/fileleech/source.nix +++ b/makefu/1systems/fileleech/source.nix @@ -1,3 +1,4 @@ import { - name="fileleech"; + name = "fileleech"; + torrent = true; } diff --git a/makefu/6tests/data/secrets/torrent-secrets/auth.nix b/makefu/6tests/data/secrets/torrent-secrets/auth.nix deleted file mode 100644 index 0967ef424..000000000 --- a/makefu/6tests/data/secrets/torrent-secrets/auth.nix +++ /dev/null @@ -1 +0,0 @@ -{} From a64238e7660ab92c7dcdf33d13ee4222bfe5eadf Mon Sep 17 00:00:00 2001 From: makefu Date: Thu, 29 Mar 2018 19:08:44 +0200 Subject: [PATCH 33/53] buildbot: 0.8.15 -> 0.8.16 --- krebs/5pkgs/simple/buildbot-classic/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix index 77ba0342d..3cb691f53 100644 --- a/krebs/5pkgs/simple/buildbot-classic/default.nix +++ b/krebs/5pkgs/simple/buildbot-classic/default.nix @@ -2,7 +2,7 @@ python2Packages.buildPythonApplication rec { name = "buildbot-classic-${version}"; - version = "0.8.15"; + version = "0.8.16"; namePrefix = ""; patches = []; @@ -10,7 +10,7 @@ python2Packages.buildPythonApplication rec { owner = "krebscode"; repo = "buildbot-classic"; rev = version; - sha256 = "0hmmpqxs1i3nvwj9681yi0q3qz0xdcbbm0774lkn1ic5fg3c68fm"; + sha256 = "0g686n6m0cjfyympl0ksansllx503gby3hx9gmc8hiyx6x5fkjha"; }; postUnpack = "sourceRoot=\${sourceRoot}/master"; From a75858a8ced30f9ed46e282e75a3cdccd515abd7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 1 Apr 2018 14:11:14 +0200 Subject: [PATCH 34/53] nixpkgs: 48856a9 -> b6ddb99 --- krebs/source.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/source.nix b/krebs/source.nix index 0bd797a16..e5fb6c5e1 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -24,7 +24,7 @@ in stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; nixpkgs.git = { url = https://github.com/NixOS/nixpkgs; - ref = "48856a91c02b456c80c37c863d8610090b38707a"; # nixos-18.03 # 2018-03-24 + ref = "b6ddb9913f2b8206837e0f137db907bdefb9275e"; # nixos-18.03 # 2018-03-24 }; } override From 0f47b98e81755494df19325e91974f8d9d2c8617 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 1 Apr 2018 16:17:45 +0200 Subject: [PATCH 35/53] l xjail: add working GPU acceleration --- lass/3modules/xjail.nix | 121 ++++++++++++++++++++++++++++++++-------- 1 file changed, 99 insertions(+), 22 deletions(-) diff --git a/lass/3modules/xjail.nix b/lass/3modules/xjail.nix index af851760b..325ebcc99 100644 --- a/lass/3modules/xjail.nix +++ b/lass/3modules/xjail.nix @@ -1,33 +1,88 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: with import ; { options.lass.xjail = mkOption { type = types.attrsOf (types.submodule ({ config, ...}: { options = { + name = mkOption { + type = types.string; + default = config._module.args.name; + }; user = mkOption { type = types.string; - default = "nobody"; + default = config.name; }; groups = mkOption { type = types.listOf types.str; default = []; }; - name = mkOption { + from = mkOption { type = types.string; - default = config._module.args.name; + default = "lass"; }; display = mkOption { type = types.string; default = toString (genid_signed config._module.args.name); }; + dpi = mkOption { + type = types.int; + default = 90; + }; + extraXephyrArgs = mkOption { + type = types.str; + default = ""; + }; + extraVglrunArgs = mkOption { + type = types.str; + default = ""; + }; script = mkOption { type = types.path; default = pkgs.writeScript "echo_lol" "echo lol"; }; - from = mkOption { + wm = mkOption { + #TODO find type type = types.string; - default = "lass"; + default = "${pkgs.writeHaskell "xephyrify-xmonad" { + executables.xmonad = { + extra-depends = [ + "containers" + "unix" + "xmonad" + ]; + text = /* haskell */ '' + module Main where + import XMonad + import Data.Monoid + import System.Posix.Process (executeFile) + import qualified Data.Map as Map + + main :: IO () + main = do + xmonad def + { workspaces = [ "1" ] + , layoutHook = myLayoutHook + , keys = myKeys + , normalBorderColor = "#000000" + , focusedBorderColor = "#000000" + , handleEventHook = myEventHook + } + + myEventHook :: Event -> X All + + myEventHook (ConfigureEvent { ev_event_type = 22 }) = do + spawn "${pkgs.xorg.xrandr}/bin/xrandr >/dev/null 2>&1" + return (All True) + + myEventHook _ = do + return (All True) + + myLayoutHook = Full + myKeys _ = Map.fromList [] + ''; + }; + }}/bin/xmonad"; }; }; })); @@ -39,7 +94,42 @@ with import ; }; # implementation - config = { + config = let + scripts = mapAttrs' (name: cfg: + let + newOrExisting = pkgs.writeDash "${cfg.name}-existing" '' + DISPLAY=:${cfg.display} ${pkgs.xorg.xrandr}/bin/xrandr + if test $? -eq 0; then + echo using existing xephyr + ${sudo_} "$@" + else + echo starting new xephyr + ${xephyr_} "$@" + fi + ''; + xephyr_ = pkgs.writeDash "${cfg.name}-xephyr" '' + ${pkgs.xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable -nolisten local -dpi ${toString cfg.dpi} ${cfg.extraXephyrArgs} :${cfg.display} & + XEPHYR_PID=$! + DISPLAY=:${cfg.display} ${cfg.wm} & + WM_PID=$! + ${sudo_} "$@" + ${pkgs.coreutils}/bin/kill $WM_PID + ${pkgs.coreutils}/bin/kill $XEPHYR_PID + ''; + sudo_ = pkgs.writeDash "${cfg.name}-sudo" '' + /var/run/wrappers/bin/sudo -u ${cfg.name} -i ${vglrun_} "$@" + ''; + vglrun_ = pkgs.writeDash "${cfg.name}-vglrun" '' + DISPLAY=:${cfg.display} ${pkgs.virtualgl}/bin/vglrun ${cfg.extraVglrunArgs} ${cfg.script} "$@" + ''; + in nameValuePair name { + existing = newOrExisting; + xephyr = xephyr_; + sudo = sudo_; + vglrun = vglrun_; + } + ) config.lass.xjail; + in { users.users = mapAttrs' (_: cfg: nameValuePair cfg.name { @@ -66,21 +156,8 @@ with import ; ) config.lass.xjail)); lass.xjail-bins = mapAttrs' (name: cfg: - let - sudo-wrapper = pkgs.writeScript name '' - /var/run/wrappers/bin/sudo -u ${cfg.name} -i ${cfg.script} "$@" - ''; - in nameValuePair name (pkgs.writeScriptBin cfg.name '' - export NDISPLAY=${cfg.display} - DISPLAY=:$NDISPLAY ${pkgs.xorg.xrandr}/bin/xrandr - if test $? -eq 0; then - echo xephyr already running - export DISPLAY=:$NDISPLAY - ${sudo-wrapper} "$@" - else - echo xephyr not running - DROP_TO_USER=${cfg.name} ${pkgs.xephyrify}/bin/xephyrify ${sudo-wrapper} "$@" - fi + nameValuePair name (pkgs.writeScriptBin cfg.name '' + ${scripts.${name}.existing} "$@" '') ) config.lass.xjail; }; From 1a5b58c828409ce9bf1639f3f26ebeb142e0148a Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 1 Apr 2018 16:19:28 +0200 Subject: [PATCH 36/53] l browsers: use new xjail interface --- lass/2configs/browsers.nix | 50 ++++++++++---------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix index 75a86db6a..91ee08bfd 100644 --- a/lass/2configs/browsers.nix +++ b/lass/2configs/browsers.nix @@ -21,14 +21,10 @@ let $BIN "$@" ''; - createChromiumUser = name: groups: precedence: + createUser = script: name: groups: precedence: dpi: { lass.xjail.${name} = { - user = name; - script = pkgs.writeDash name '' - ${pkgs.chromium}/bin/chromium "$@" - ''; - inherit groups; + inherit script groups dpi; }; environment.systemPackages = [ config.lass.xjail-bins.${name} ]; lass.browser.paths.${name} = { @@ -37,40 +33,20 @@ let }; }; + createChromiumUser = name: groups: precedence: + createUser (pkgs.writeDash name '' + ${pkgs.chromium}/bin/chromium "$@" + '') name groups precedence 80; + createFirefoxUser = name: groups: precedence: - { - lass.xjail.${name} = { - user = name; - script = pkgs.writeDash name '' - ${pkgs.firefox-devedition-bin}/bin/firefox-devedition "$@" - ''; - inherit groups; - }; - environment.systemPackages = [ config.lass.xjail-bins.${name} ]; - lass.browser.paths.${name} = { - path = config.lass.xjail-bins.${name}; - inherit precedence; - }; - }; + createUser (pkgs.writeDash name '' + ${pkgs.firefox-devedition-bin}/bin/firefox-devedition "$@" + '') name groups precedence 80; createQuteUser = name: groups: precedence: - { - lass.xjail.${name} = { - user = name; - script = pkgs.writeDash name '' - ${pkgs.qutebrowser}/bin/qutebrowser "$@" - ''; - inherit groups; - }; - environment.systemPackages = [ config.lass.xjail-bins.${name} ]; - lass.browser.paths.${name} = { - path = config.lass.xjail-bins.${name}; - inherit precedence; - }; - }; - - - #TODO: abstract this + createUser (pkgs.writeDash name '' + ${pkgs.qutebrowser}/bin/qutebrowser "$@" + '') name groups precedence 60; in { From 8d3db0fcb75f65d6074e8c60e05bd4cfda32e1e9 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 2 Apr 2018 23:06:03 +0200 Subject: [PATCH 37/53] nixpkgs: b6ddb99 -> 09bca91 --- krebs/source.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/source.nix b/krebs/source.nix index e5fb6c5e1..1f83d29f7 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -24,7 +24,7 @@ in stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; nixpkgs.git = { url = https://github.com/NixOS/nixpkgs; - ref = "b6ddb9913f2b8206837e0f137db907bdefb9275e"; # nixos-18.03 # 2018-03-24 + ref = "09bca91e3b5a18d7f37f7632175ac71f2bf369ff"; # nixos-18.03 # 2018-04-02 }; } override From 1604ecfc706d2921248d0c9ac7cef02274842272 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 3 Apr 2018 12:02:31 +0200 Subject: [PATCH 38/53] l virtualbox: enable usb passthrough --- lass/2configs/virtualbox.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lass/2configs/virtualbox.nix b/lass/2configs/virtualbox.nix index f7d196057..8171def2d 100644 --- a/lass/2configs/virtualbox.nix +++ b/lass/2configs/virtualbox.nix @@ -6,6 +6,8 @@ let in { #services.virtualboxHost.enable = true; virtualisation.virtualbox.host.enable = true; + nixpkgs.config.virtualbox.enableExtensionPack = true; + virtualisation.virtualbox.host.enableHardening = false; users.extraUsers = { virtual = { From 3108c4323806eee9798a6ba42977ea8f16343731 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 3 Apr 2018 21:57:51 +0200 Subject: [PATCH 39/53] ejabberd: init at 17.07 --- krebs/5pkgs/simple/ejabberd/default.nix | 118 ++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 krebs/5pkgs/simple/ejabberd/default.nix diff --git a/krebs/5pkgs/simple/ejabberd/default.nix b/krebs/5pkgs/simple/ejabberd/default.nix new file mode 100644 index 000000000..2799241fa --- /dev/null +++ b/krebs/5pkgs/simple/ejabberd/default.nix @@ -0,0 +1,118 @@ +{ stdenv, writeScriptBin, lib, fetchurl, git, cacert +, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, utillinux, procps +, withMysql ? false +, withPgsql ? false +, withSqlite ? false, sqlite +, withPam ? false, pam +, withZlib ? true, zlib +, withRiak ? false +, withElixir ? false, elixir +, withIconv ? true +, withTools ? false +, withRedis ? false +}: + +let + fakegit = writeScriptBin "git" '' + #! ${stdenv.shell} -e + if [ "$1" = "describe" ]; then + [ -r .rev ] && cat .rev || true + fi + ''; + + ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils utillinux procps ]; + +in stdenv.mkDerivation rec { + version = "17.07"; + name = "ejabberd-${version}"; + + src = fetchurl { + url = "http://www.process-one.net/downloads/ejabberd/${version}/${name}.tgz"; + sha256 = "1p8ppp2czjgnq8xnhyksd82npvvx99fwr0g3rrq1wvnwh2vgb8km"; + }; + + nativeBuildInputs = [ fakegit ]; + + buildInputs = [ erlang openssl expat libyaml ] + ++ lib.optional withSqlite sqlite + ++ lib.optional withPam pam + ++ lib.optional withZlib zlib + ++ lib.optional withElixir elixir + ; + + # Apparently needed for Elixir + LANG = "en_US.UTF-8"; + + deps = stdenv.mkDerivation { + name = "ejabberd-deps-${version}"; + + inherit src; + + configureFlags = [ "--enable-all" "--with-sqlite3=${sqlite.dev}" ]; + + buildInputs = [ git erlang openssl expat libyaml sqlite pam zlib elixir ]; + + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + makeFlags = [ "deps" ]; + + phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ]; + + installPhase = '' + for i in deps/*; do + ( cd $i + git reset --hard + git clean -ffdx + git describe --always --tags > .rev + rm -rf .git + ) + done + rm deps/.got + + cp -r deps $out + ''; + + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "1q9yzccn4zf5i4hibq1r0i34q4986a93ph4792l1ph07aiisc8p7"; + }; + + configureFlags = + [ (lib.enableFeature withMysql "mysql") + (lib.enableFeature withPgsql "pgsql") + (lib.enableFeature withSqlite "sqlite") + (lib.enableFeature withPam "pam") + (lib.enableFeature withZlib "zlib") + (lib.enableFeature withRiak "riak") + (lib.enableFeature withElixir "elixir") + (lib.enableFeature withIconv "iconv") + (lib.enableFeature withTools "tools") + (lib.enableFeature withRedis "redis") + ] ++ lib.optional withSqlite "--with-sqlite3=${sqlite.dev}"; + + enableParallelBuilding = true; + + preBuild = '' + cp -r $deps deps + chmod -R +w deps + patchShebangs deps + ''; + + postInstall = '' + sed -i \ + -e '2iexport PATH=${ctlpath}:$PATH' \ + -e 's,\(^ *FLOCK=\).*,\1${utillinux}/bin/flock,' \ + -e 's,\(^ *JOT=\).*,\1,' \ + -e 's,\(^ *CONNLOCKDIR=\).*,\1/var/lock/ejabberdctl,' \ + $out/sbin/ejabberdctl + ''; + + meta = { + description = "Open-source XMPP application server written in Erlang"; + license = lib.licenses.gpl2; + homepage = http://www.ejabberd.im; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.sander lib.maintainers.abbradar ]; + broken = withElixir; + }; +} From c89016b00630495698cd23177c6fe26ed989cbe4 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 16:36:12 +0200 Subject: [PATCH 40/53] go: fix build on 18.03 --- krebs/5pkgs/simple/go-shortener/default.nix | 35 +++++---- .../simple/go-shortener/node-packages.nix | 76 +++++++++++++++++++ krebs/5pkgs/simple/go-shortener/packages.nix | 44 ----------- krebs/5pkgs/simple/go-shortener/pkgs.json | 4 + krebs/5pkgs/simple/go-shortener/update.sh | 2 + 5 files changed, 99 insertions(+), 62 deletions(-) create mode 100644 krebs/5pkgs/simple/go-shortener/node-packages.nix delete mode 100644 krebs/5pkgs/simple/go-shortener/packages.nix create mode 100644 krebs/5pkgs/simple/go-shortener/pkgs.json create mode 100755 krebs/5pkgs/simple/go-shortener/update.sh diff --git a/krebs/5pkgs/simple/go-shortener/default.nix b/krebs/5pkgs/simple/go-shortener/default.nix index 996f7072a..4d1bef2be 100644 --- a/krebs/5pkgs/simple/go-shortener/default.nix +++ b/krebs/5pkgs/simple/go-shortener/default.nix @@ -1,25 +1,26 @@ -{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: +{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs-8_x, pkgs }: with lib; let - np = (callPackage ) { - generated = ./packages.nix; - self = np; + nodeEnv = import { + inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; + nodejs = nodejs-8_x; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; }; - node_env = buildEnv { - name = "node_env"; - paths = [ - np.redis - np."formidable" - ]; - pathsToLink = [ "/lib" ]; - ignoreCollisions = true; + node_env = pkgs.buildEnv { + name = "go-node_env"; + paths = attrValues (import ./node-packages.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; + }); }; -in np.buildNodePackage { +in stdenv.mkDerivation { + packageName = "go"; name = "go-shortener"; + version = "0.0.0"; src = fetchgit { url = "http://cgit.lassul.us/go/"; @@ -32,10 +33,8 @@ in np.buildNodePackage { "installPhase" ]; - deps = (filter (v: nixType v == "derivation") (attrValues np)); - buildInputs = [ - nodejs + nodejs-8_x makeWrapper ]; @@ -44,14 +43,14 @@ in np.buildNodePackage { cp index.js $out/ cat > $out/go << EOF - ${nodejs}/bin/node $out/index.js + ${nodejs-8_x}/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 + ln -s $out/go /$out/bin/go ''; } diff --git a/krebs/5pkgs/simple/go-shortener/node-packages.nix b/krebs/5pkgs/simple/go-shortener/node-packages.nix new file mode 100644 index 000000000..526cd5a11 --- /dev/null +++ b/krebs/5pkgs/simple/go-shortener/node-packages.nix @@ -0,0 +1,76 @@ +# This file has been generated by node2nix 1.5.3. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "double-ended-queue-2.1.0-0" = { + name = "double-ended-queue"; + packageName = "double-ended-queue"; + version = "2.1.0-0"; + src = fetchurl { + url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz"; + sha1 = "103d3527fd31528f40188130c841efdd78264e5c"; + }; + }; + "redis-commands-1.3.5" = { + name = "redis-commands"; + packageName = "redis-commands"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz"; + sha512 = "2q8pai3gf0dczb03jjig3mpaz4j2kvw8icpgf8hp4fryr3d6c0mjkvxxdmlyhainybx4zhgqsw9ghc9p986alzdzd2n2p4cxvr8b0by"; + }; + }; + "redis-parser-2.6.0" = { + name = "redis-parser"; + packageName = "redis-parser"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz"; + sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b"; + }; + }; + }; +in +{ + formidable = nodeEnv.buildNodePackage { + name = "formidable"; + packageName = "formidable"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz"; + sha512 = "1x0n2rfaiasdjbw1mm7s29z84f68c7iji7lb1gkxvpknvv6q7bwns7z55ijcf4vkh4kvis12rbgaaih49jf9lj53s30mllb1d35bkqn"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "A node.js module for parsing form data, especially file uploads."; + homepage = https://github.com/felixge/node-formidable; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; + redis = nodeEnv.buildNodePackage { + name = "redis"; + packageName = "redis"; + version = "2.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz"; + sha512 = "3a3044ax6qdvss83xgjfx10h5q91ls0mwgs3wpsnxcdsiipq3cnmqzsh6glyq0r7vsmpw49jp84c2jnfrhi2bgycrkd9hhhf6ia8lrk"; + }; + dependencies = [ + sources."double-ended-queue-2.1.0-0" + sources."redis-commands-1.3.5" + sources."redis-parser-2.6.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Redis client library"; + homepage = https://github.com/NodeRedis/node_redis; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; +} \ No newline at end of file diff --git a/krebs/5pkgs/simple/go-shortener/packages.nix b/krebs/5pkgs/simple/go-shortener/packages.nix deleted file mode 100644 index 9acfd7658..000000000 --- a/krebs/5pkgs/simple/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/simple/go-shortener/pkgs.json b/krebs/5pkgs/simple/go-shortener/pkgs.json new file mode 100644 index 000000000..f53ce3745 --- /dev/null +++ b/krebs/5pkgs/simple/go-shortener/pkgs.json @@ -0,0 +1,4 @@ +[ + "formidable", + "redis" +] diff --git a/krebs/5pkgs/simple/go-shortener/update.sh b/krebs/5pkgs/simple/go-shortener/update.sh new file mode 100755 index 000000000..0c1ecc58c --- /dev/null +++ b/krebs/5pkgs/simple/go-shortener/update.sh @@ -0,0 +1,2 @@ +node2nix -8 -i pkgs.json -c combine.nix +rm node-env.nix combine.nix From 0a4df44a8a3e925bcf59802fcdb59dc16157bae7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:25:50 +0200 Subject: [PATCH 41/53] newsbot-js: fix build on 18.03 --- krebs/5pkgs/simple/newsbot-js/default.nix | 39 +- .../5pkgs/simple/newsbot-js/node-packages.nix | 844 ++++++++ krebs/5pkgs/simple/newsbot-js/packages.nix | 1747 ----------------- krebs/5pkgs/simple/newsbot-js/pkgs.json | 7 + krebs/5pkgs/simple/newsbot-js/update.sh | 2 + 5 files changed, 871 insertions(+), 1768 deletions(-) create mode 100644 krebs/5pkgs/simple/newsbot-js/node-packages.nix delete mode 100644 krebs/5pkgs/simple/newsbot-js/packages.nix create mode 100644 krebs/5pkgs/simple/newsbot-js/pkgs.json create mode 100755 krebs/5pkgs/simple/newsbot-js/update.sh diff --git a/krebs/5pkgs/simple/newsbot-js/default.nix b/krebs/5pkgs/simple/newsbot-js/default.nix index fa39823d3..cc362b86a 100644 --- a/krebs/5pkgs/simple/newsbot-js/default.nix +++ b/krebs/5pkgs/simple/newsbot-js/default.nix @@ -1,27 +1,27 @@ -{ stdenv, makeWrapper, callPackage, lib, buildEnv, fetchgit, nodePackages, nodejs }: +{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs-8_x, pkgs, icu }: with lib; let - np = (callPackage ) { - generated = ./packages.nix; - self = np; + nodeEnv = import { + inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; + nodejs = nodejs-8_x; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; }; - node_env = buildEnv { - name = "node_env"; - paths = [ - np.feedparser - np.form-data - np.irc - np.request - np.shell-quote - ]; - pathsToLink = [ "/lib" ]; - ignoreCollisions = true; + node_env = pkgs.buildEnv { + name = "go-node_env"; + paths = attrValues (import ./node-packages.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; + globalBuildInputs = [ + icu.dev + ]; + }); }; -in np.buildNodePackage { + +in stdenv.mkDerivation { name = "newsbot-js"; src = fetchgit { @@ -32,14 +32,11 @@ in np.buildNodePackage { phases = [ "unpackPhase" - "patchPhase" "installPhase" ]; - deps = (filter (v: nixType v == "derivation") (attrValues np)); - buildInputs = [ - nodejs + nodejs-8_x makeWrapper ]; @@ -48,7 +45,7 @@ in np.buildNodePackage { cp newsbot.js $out/ cat > $out/newsbot << EOF - ${nodejs}/bin/node $out/newsbot.js + ${nodejs-8_x}/bin/node $out/newsbot.js EOF chmod +x $out/newsbot diff --git a/krebs/5pkgs/simple/newsbot-js/node-packages.nix b/krebs/5pkgs/simple/newsbot-js/node-packages.nix new file mode 100644 index 000000000..d6b2a06dd --- /dev/null +++ b/krebs/5pkgs/simple/newsbot-js/node-packages.nix @@ -0,0 +1,844 @@ +# This file has been generated by node2nix 1.5.3. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "addressparser-1.0.1" = { + name = "addressparser"; + packageName = "addressparser"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz"; + sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746"; + }; + }; + "ajv-5.5.2" = { + name = "ajv"; + packageName = "ajv"; + version = "5.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"; + sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965"; + }; + }; + "array-filter-0.0.1" = { + name = "array-filter"; + packageName = "array-filter"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz"; + sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec"; + }; + }; + "array-indexofobject-0.0.1" = { + name = "array-indexofobject"; + packageName = "array-indexofobject"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz"; + sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a"; + }; + }; + "array-map-0.0.0" = { + name = "array-map"; + packageName = "array-map"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"; + sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662"; + }; + }; + "array-reduce-0.0.0" = { + name = "array-reduce"; + packageName = "array-reduce"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"; + sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b"; + }; + }; + "asn1-0.2.3" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"; + sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.6.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"; + sha1 = "83ef5ca860b2b32e4a0deedee8c771b9db57471e"; + }; + }; + "bcrypt-pbkdf-1.0.1" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"; + sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; + }; + }; + "boom-4.3.1" = { + name = "boom"; + packageName = "boom"; + version = "4.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz"; + sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31"; + }; + }; + "boom-5.2.0" = { + name = "boom"; + packageName = "boom"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz"; + sha512 = "19h20yqpvca08dns1rs4f057f10w63v0snxfml4h5khsk266x3x1im0w72bza4k2xn0kfz6jlv001dhcvxsjr09bmbqnysils9m7437"; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "co-4.6.0" = { + name = "co"; + packageName = "co"; + version = "4.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz"; + sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; + }; + }; + "combined-stream-1.0.6" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz"; + sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "cryptiles-3.1.2" = { + name = "cryptiles"; + packageName = "cryptiles"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz"; + sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "ecc-jsbn-0.1.1" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; + sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; + }; + }; + "extend-3.0.1" = { + name = "extend"; + packageName = "extend"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"; + sha1 = "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-1.1.0" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz"; + sha1 = "c053477817c86b51daa853c81e059b733d023614"; + }; + }; + "fast-json-stable-stringify-2.0.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.2" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz"; + sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099"; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.0.3" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz"; + sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd"; + }; + }; + "hawk-6.0.2" = { + name = "hawk"; + packageName = "hawk"; + version = "6.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz"; + sha512 = "1nl2hjr2mnhj5jlaz8mh54z7acwz5j5idkch04qgjk78756gw5d0fjk4a2immil5ij9ijdssb9ndpryvnh2xpcbgcjv8lxybn330als"; + }; + }; + "hoek-4.2.1" = { + name = "hoek"; + packageName = "hoek"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz"; + sha512 = "1y8kprb3qldxqj31zai5n8dvhydsl9nn5w4rskhnbzzhldn6pm6n5lcyam3sfkb61a62d5m58k8im7z6ngwbd9cw9zp4zm4y7ckrf20"; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "iconv-2.2.3" = { + name = "iconv"; + packageName = "iconv"; + version = "2.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv/-/iconv-2.2.3.tgz"; + sha1 = "e084d60eeb7d73da7f0a9c096e4c8abe090bfaed"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "irc-colors-1.4.2" = { + name = "irc-colors"; + packageName = "irc-colors"; + version = "1.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.4.2.tgz"; + sha512 = "0f75yhavbhr8lbh3lh83rvyfrrrcxjawnd2rz7sacjd3zxj5524xr28j66f2l11vlngdkbplxz5xsq9dnwrcyqa0jh64k2pvzhn17a1"; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.3.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz"; + sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340"; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "jsonify-0.0.0" = { + name = "jsonify"; + packageName = "jsonify"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"; + sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "lodash.assign-4.2.0" = { + name = "lodash.assign"; + packageName = "lodash.assign"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz"; + sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7"; + }; + }; + "lodash.get-4.4.2" = { + name = "lodash.get"; + packageName = "lodash.get"; + version = "4.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"; + sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99"; + }; + }; + "lodash.has-4.5.2" = { + name = "lodash.has"; + packageName = "lodash.has"; + version = "4.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz"; + sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"; + }; + }; + "lodash.uniq-4.5.0" = { + name = "lodash.uniq"; + packageName = "lodash.uniq"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; + sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; + }; + }; + "mime-db-1.33.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.33.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz"; + sha512 = "36xnw59ik9fqym00cmwb5nyzg0l03k70cp413f7639j93wgmzk1mh0xjc7i6zz3r6k9xnwh0g5cm5a1f3y8c6plgy4qld7fm887ywh4"; + }; + }; + "mime-types-2.1.18" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.18"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz"; + sha512 = "22krj1kw7n9z10zdyx7smcaim4bzwqsqzhspwha06q58gcrxfp93hw2cd0vk5crhq5p2dwzqlpacg32lrmp5sjzb798zdzy35mdmkwm"; + }; + }; + "mri-1.1.0" = { + name = "mri"; + packageName = "mri"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz"; + sha1 = "5c0a3f29c8ccffbbb1ec941dcec09d71fa32f36a"; + }; + }; + "nan-2.10.0" = { + name = "nan"; + packageName = "nan"; + version = "2.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz"; + sha512 = "349rr7x0djrlkav4gbhkg355852ingn965r0kkch8rr4cwp7qki9676zpq8cq988yszzd2hld6szsbbnd1v6rghzf11abn1nyzlj1vc"; + }; + }; + "node-icu-charset-detector-0.2.0" = { + name = "node-icu-charset-detector"; + packageName = "node-icu-charset-detector"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-icu-charset-detector/-/node-icu-charset-detector-0.2.0.tgz"; + sha1 = "c2320da374ddcb671fc54cb4a0e041e156ffd639"; + }; + }; + "oauth-sign-0.8.2" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"; + sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "process-nextick-args-2.0.0" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz"; + sha512 = "0rw8xpqqkhs91722slvzf8icxfaimqp4w8zb3840jxr7r8n8035byl6dhdi5bm0yr6x7sdws0gf3m025fg6hqgaklwlbl4d7bah5l9j"; + }; + }; + "punycode-1.4.1" = { + name = "punycode"; + packageName = "punycode"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + }; + "qs-6.5.1" = { + name = "qs"; + packageName = "qs"; + version = "6.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz"; + sha512 = "3waqapyj1k4g135sgj636rmswiaixq19is1rw0rpv4qp6k7dl0a9nwy06m7yl5lbdk9p6xpwwngnggbzlzaz6rh11c86j2nvnnf273r"; + }; + }; + "readable-stream-2.3.6" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; + sha512 = "0mj9b6190amln9rg89x5pq2n195s3v0gzicpdamv1kbabg69aw5m71l34jsjn7bqil7405l6l35x9ijnb3h4jz5vx2i00l8sl1ll2xm"; + }; + }; + "safe-buffer-5.1.1" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"; + sha512 = "1p28rllll1w65yzq5azi4izx962399xdsdlfbaynn7vmp981hiss05jhiy9hm7sbbfk3b4dhlcv0zy07fc59mnc07hdv6wcgqkcvawh"; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n"; + }; + }; + "sntp-2.1.0" = { + name = "sntp"; + packageName = "sntp"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz"; + sha512 = "0k2smmr24w5hb1cpql6vcgh58vzp4pmh9anf0bgz3arlsgq1mapnlq9fjqr6xs10aq1cmxaw987fwknqi62frax0fvs9bj3q3kmpg8l"; + }; + }; + "sshpk-1.14.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz"; + sha1 = "130f5975eddad963f1d56f92b9ac6c51fa9f83eb"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z"; + }; + }; + "stringstream-0.0.5" = { + name = "stringstream"; + packageName = "stringstream"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"; + sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878"; + }; + }; + "tough-cookie-2.3.4" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz"; + sha512 = "0ncm6j3cjq1f26mzjf04k9bkw1b08w53s4qa3a11c1bdj4pgnqv1422c1xs5jyy6y1psppjx52fhagq5zkjkgrcpdkxcdiry96r77jd"; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "uuid-3.2.1" = { + name = "uuid"; + packageName = "uuid"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz"; + sha512 = "0843vl1c974n8kw5kn0kvhvhwk8y8jydr0xkwwl2963xxmkw4ingk6xj9c8m48jw2i95giglxzq5aw5v5mij9kv7fzln8pxav1cr6cd"; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + }; +in +{ + feedparser = nodeEnv.buildNodePackage { + name = "feedparser"; + packageName = "feedparser"; + version = "2.2.9"; + src = fetchurl { + url = "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz"; + sha1 = "9138197dafdae05fcadde0036beeaf6066c2c5e9"; + }; + dependencies = [ + sources."addressparser-1.0.1" + sources."array-indexofobject-0.0.1" + sources."core-util-is-1.0.2" + sources."inherits-2.0.3" + sources."isarray-1.0.0" + sources."lodash.assign-4.2.0" + sources."lodash.get-4.4.2" + sources."lodash.has-4.5.2" + sources."lodash.uniq-4.5.0" + sources."mri-1.1.0" + sources."process-nextick-args-2.0.0" + sources."readable-stream-2.3.6" + sources."safe-buffer-5.1.1" + sources."sax-1.2.4" + sources."string_decoder-1.1.1" + sources."util-deprecate-1.0.2" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Robust RSS Atom and RDF feed parsing using sax js"; + homepage = http://github.com/danmactough/node-feedparser; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; + form-data = nodeEnv.buildNodePackage { + name = "form-data"; + packageName = "form-data"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz"; + sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099"; + }; + dependencies = [ + sources."asynckit-0.4.0" + sources."combined-stream-1.0.6" + sources."delayed-stream-1.0.0" + sources."mime-db-1.33.0" + sources."mime-types-2.1.18" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications."; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; + irc = nodeEnv.buildNodePackage { + name = "irc"; + packageName = "irc"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz"; + sha1 = "3714f4768365a96d0b2f776bc91166beb2464bbc"; + }; + dependencies = [ + sources."iconv-2.2.3" + sources."irc-colors-1.4.2" + sources."nan-2.10.0" + sources."node-icu-charset-detector-0.2.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "An IRC client library for node"; + homepage = "https://github.com/martynsmith/node-irc#readme"; + license = "GPL-3.0"; + }; + production = true; + bypassCache = true; + }; + request = nodeEnv.buildNodePackage { + name = "request"; + packageName = "request"; + version = "2.85.0"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.85.0.tgz"; + sha512 = "2d3hg10zs5ycnr8prmiwdhacf88fl0x0bi6szs0z2r07zcbk419laixwpjp8sqapbc2ifyyih7p3r60wgr58bmcncz3pqnx523c8zph"; + }; + dependencies = [ + sources."ajv-5.5.2" + sources."asn1-0.2.3" + sources."assert-plus-1.0.0" + sources."asynckit-0.4.0" + sources."aws-sign2-0.7.0" + sources."aws4-1.6.0" + sources."bcrypt-pbkdf-1.0.1" + sources."boom-4.3.1" + sources."caseless-0.12.0" + sources."co-4.6.0" + sources."combined-stream-1.0.6" + sources."core-util-is-1.0.2" + (sources."cryptiles-3.1.2" // { + dependencies = [ + sources."boom-5.2.0" + ]; + }) + sources."dashdash-1.14.1" + sources."delayed-stream-1.0.0" + sources."ecc-jsbn-0.1.1" + sources."extend-3.0.1" + sources."extsprintf-1.3.0" + sources."fast-deep-equal-1.1.0" + sources."fast-json-stable-stringify-2.0.0" + sources."forever-agent-0.6.1" + sources."form-data-2.3.2" + sources."getpass-0.1.7" + sources."har-schema-2.0.0" + sources."har-validator-5.0.3" + sources."hawk-6.0.2" + sources."hoek-4.2.1" + sources."http-signature-1.2.0" + sources."is-typedarray-1.0.0" + sources."isstream-0.1.2" + sources."jsbn-0.1.1" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.3.1" + sources."json-stringify-safe-5.0.1" + sources."jsprim-1.4.1" + sources."mime-db-1.33.0" + sources."mime-types-2.1.18" + sources."oauth-sign-0.8.2" + sources."performance-now-2.1.0" + sources."punycode-1.4.1" + sources."qs-6.5.1" + sources."safe-buffer-5.1.1" + sources."sntp-2.1.0" + sources."sshpk-1.14.1" + sources."stringstream-0.0.5" + sources."tough-cookie-2.3.4" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."uuid-3.2.1" + sources."verror-1.10.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Simplified HTTP request client."; + homepage = "https://github.com/request/request#readme"; + license = "Apache-2.0"; + }; + production = true; + bypassCache = true; + }; + shell-quote = nodeEnv.buildNodePackage { + name = "shell-quote"; + packageName = "shell-quote"; + version = "1.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz"; + sha1 = "f4781949cce402697127430ea3b3c5476f481767"; + }; + dependencies = [ + sources."array-filter-0.0.1" + sources."array-map-0.0.0" + sources."array-reduce-0.0.0" + sources."jsonify-0.0.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "quote and parse shell commands"; + homepage = "https://github.com/substack/node-shell-quote#readme"; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; +} \ No newline at end of file diff --git a/krebs/5pkgs/simple/newsbot-js/packages.nix b/krebs/5pkgs/simple/newsbot-js/packages.nix deleted file mode 100644 index 62921cb8f..000000000 --- a/krebs/5pkgs/simple/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/simple/newsbot-js/pkgs.json b/krebs/5pkgs/simple/newsbot-js/pkgs.json new file mode 100644 index 000000000..95b60854d --- /dev/null +++ b/krebs/5pkgs/simple/newsbot-js/pkgs.json @@ -0,0 +1,7 @@ +[ + "feedparser", + "form-data", + "irc", + "request", + "shell-quote" +] diff --git a/krebs/5pkgs/simple/newsbot-js/update.sh b/krebs/5pkgs/simple/newsbot-js/update.sh new file mode 100755 index 000000000..0c1ecc58c --- /dev/null +++ b/krebs/5pkgs/simple/newsbot-js/update.sh @@ -0,0 +1,2 @@ +node2nix -8 -i pkgs.json -c combine.nix +rm node-env.nix combine.nix From 8ff594c92fb404e13f240d19a76d34e0d1db6a29 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:34:17 +0200 Subject: [PATCH 42/53] hashPassword: passthrough arguments --- krebs/5pkgs/simple/hashPassword/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/krebs/5pkgs/simple/hashPassword/default.nix b/krebs/5pkgs/simple/hashPassword/default.nix index 3da65ad79..3c604be80 100644 --- a/krebs/5pkgs/simple/hashPassword/default.nix +++ b/krebs/5pkgs/simple/hashPassword/default.nix @@ -1,7 +1,7 @@ { lib, pkgs, ... }: pkgs.writeDashBin "hashPassword" '' - # usage: hashPassword + # usage: hashPassword [...] set -euf export PATH=${lib.makeBinPath (with pkgs; [ @@ -11,5 +11,5 @@ pkgs.writeDashBin "hashPassword" '' ])} salt=$(openssl rand -base64 16 | tr -d '+=' | head -c 16) - exec mkpasswd -m sha-512 -S "$salt" + exec mkpasswd -m sha-512 -S "$salt" "$@" '' From f07930259080716fd8e325aae457d4bfaaecb99b Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:35:25 +0200 Subject: [PATCH 43/53] l browsers: add cx- command for copy & paste --- lass/2configs/browsers.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lass/2configs/browsers.nix b/lass/2configs/browsers.nix index 91ee08bfd..3030d8faf 100644 --- a/lass/2configs/browsers.nix +++ b/lass/2configs/browsers.nix @@ -26,7 +26,12 @@ let lass.xjail.${name} = { inherit script groups dpi; }; - environment.systemPackages = [ config.lass.xjail-bins.${name} ]; + environment.systemPackages = [ + config.lass.xjail-bins.${name} + (pkgs.writeDashBin "cx-${name}" '' + DISPLAY=:${toString (genid_signed name)} ${pkgs.xclip}/bin/xclip -o | DISPLAY=:0 ${pkgs.xclip}/bin/xclip + '') + ]; lass.browser.paths.${name} = { path = config.lass.xjail-bins.${name}; inherit precedence; From 19895a67ff9b9fd7d2511dede24ccf84061b9904 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:36:19 +0200 Subject: [PATCH 44/53] l network-manager: don't manager docker & virtualbox --- lass/2configs/network-manager.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lass/2configs/network-manager.nix b/lass/2configs/network-manager.nix index c4f757de1..5b890b591 100644 --- a/lass/2configs/network-manager.nix +++ b/lass/2configs/network-manager.nix @@ -14,7 +14,13 @@ RestartSec = "5"; }; }; - networking.networkmanager.enable = true; + networking.networkmanager = { + enable = true; + unmanaged = [ + "docker*" + "vboxnet*" + ]; + }; users.users.mainUser = { extraGroups = [ "networkmanager" ]; packages = with pkgs; [ From f316bb1f31d481dcad90a8b4f4cda0c27208cca4 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:36:57 +0200 Subject: [PATCH 45/53] l reaktor-coders: use correct ping path --- lass/2configs/reaktor-coders.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lass/2configs/reaktor-coders.nix b/lass/2configs/reaktor-coders.nix index 2541df3a6..5fa1611ae 100644 --- a/lass/2configs/reaktor-coders.nix +++ b/lass/2configs/reaktor-coders.nix @@ -84,7 +84,7 @@ with import ; (buildSimpleReaktorPlugin "ping" { pattern = "^!ping (?P.*)$$"; script = pkgs.writeDash "ping" '' - exec /var/setuid-wrappers/ping -q -c1 "$1" 2>&1 | tail -1 + exec /run/wrappers/bin/ping -q -c1 "$1" 2>&1 | tail -1 ''; }) ]; From 2e5d4ac778aa3a9f2eeea31369a9147a4bafd73e Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:38:31 +0200 Subject: [PATCH 46/53] l repo-sync: sync staging branches --- lass/2configs/repo-sync.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lass/2configs/repo-sync.nix b/lass/2configs/repo-sync.nix index 98dbdc227..ad44c67e1 100644 --- a/lass/2configs/repo-sync.nix +++ b/lass/2configs/repo-sync.nix @@ -61,6 +61,21 @@ let origin.url = "http://cgit.lassul.us/${name}"; mirror.url = "${mirror}${name}"; }; + makefu-staging = { + origin.url = "http://cgit.gum/${name}"; + origin.ref = "heads/staging"; + mirror.url = "${mirror}${name}"; + }; + tv-staging = { + origin.url = "http://cgit.ni.r/${name}"; + origin.ref = "heads/staging"; + mirror.url = "${mirror}${name}"; + }; + nin-staging = { + origin.url = "http://cgit.onondaga.r/${name}"; + origin.ref = "heads/staging"; + mirror.url = "${mirror}${name}"; + }; }; latest = { url = "${mirror}${name}"; From 833cec6deb24d1600131bbef97427d328bd9b106 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:39:20 +0200 Subject: [PATCH 47/53] l xmonad: add insert command --- lass/5pkgs/custom/xmonad-lass/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lass/5pkgs/custom/xmonad-lass/default.nix b/lass/5pkgs/custom/xmonad-lass/default.nix index e658897da..18cb25b5b 100644 --- a/lass/5pkgs/custom/xmonad-lass/default.nix +++ b/lass/5pkgs/custom/xmonad-lass/default.nix @@ -147,6 +147,10 @@ myKeyMap = export PATH=$PATH:${pkgs.dmenu}/bin:${pkgs.networkmanagerapplet}/bin exec ${pkgs.networkmanager_dmenu}/bin/networkmanager_dmenu "$@" ''}") + , ("M4-", spawn "${pkgs.writeDash "paste" '' + ${pkgs.coreutils}/bin/sleep 0.1 + ${pkgs.xclip}/bin/xclip -o | ${pkgs.xdotool}/bin/xdotool type -f - + ''}") , ("M4-", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 1") , ("M4-", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 10") From 8f6976f36525fb77e58438981822721e1bc17450 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:39:58 +0200 Subject: [PATCH 48/53] l: remove deprecated rtl8814au --- lass/5pkgs/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/lass/5pkgs/default.nix b/lass/5pkgs/default.nix index 28482eb91..fd6a555d4 100644 --- a/lass/5pkgs/default.nix +++ b/lass/5pkgs/default.nix @@ -31,7 +31,6 @@ in { fi ${self.coreutils}/bin/rm $tmp ''; - rtl8814au = callPackage ./custom/rtl8814au { kernel = self.linux; }; } // mapAttrs (_: flip callPackage {}) From 665ea5674e0d99f51379d24829436773b9dc2769 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 17:44:34 +0200 Subject: [PATCH 49/53] l: add generate-secrets --- lass/1systems/mors/config.nix | 1 + lass/5pkgs/generate-secrets/default.nix | 46 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 lass/5pkgs/generate-secrets/default.nix diff --git a/lass/1systems/mors/config.nix b/lass/1systems/mors/config.nix index f77bc64c2..8e805baf0 100644 --- a/lass/1systems/mors/config.nix +++ b/lass/1systems/mors/config.nix @@ -140,6 +140,7 @@ with import ; dpass dnsutils + generate-secrets ]; #TODO: fix this shit diff --git a/lass/5pkgs/generate-secrets/default.nix b/lass/5pkgs/generate-secrets/default.nix new file mode 100644 index 000000000..5a4afe7c5 --- /dev/null +++ b/lass/5pkgs/generate-secrets/default.nix @@ -0,0 +1,46 @@ +{ pkgs }: +pkgs.writeDashBin "generate-secrets" '' + HOSTNAME="$1" + TMPDIR=$(${pkgs.coreutils}/bin/mktemp -d) + PASSWORD=$(${pkgs.pwgen}/bin/pwgen 25 1) + HASHED_PASSWORD=$(echo $PASSWORD | ${pkgs.hashPassword}/bin/hashPassword -s) > /dev/null + + ${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f $TMPDIR/ssh.id_ed25519 -P "" -C "" >/dev/null + ${pkgs.openssl}/bin/openssl genrsa -out $TMPDIR/retiolum.rsa_key.priv 4096 2>/dev/null > /dev/null + ${pkgs.openssl}/bin/openssl rsa -in $TMPDIR/retiolum.rsa_key.priv -pubout -out $TMPDIR/retiolum.rsa_key.pub 2>/dev/null > /dev/null + cat < $TMPDIR/hashedPasswords.nix + { + root = "$HASHED_PASSWORD"; + mainUser = "$HASHED_PASSWORD"; + } + EOF + + cd $TMPDIR + for x in *; do + ${pkgs.coreutils}/bin/cat $x | ${pkgs.pass}/bin/pass insert -m hosts/$HOSTNAME/$x > /dev/null + done + echo $PASSWORD | ${pkgs.pass}/bin/pass insert -m admin/hosts/$HOSTNAME/pass > /dev/null + + cat <; + ssh.pubkey = "$(cat $TMPDIR/ssh.id_ed25519.pub)"; + }; + EOF + + rm -rf $TMPDIR +'' + From 1dd03483619d00d1afc6a278ded0cca6cff2d9ed Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Apr 2018 19:31:39 +0200 Subject: [PATCH 50/53] add minimal working kops for stockholm --- krebs/kops.nix | 64 +++++++++++++++++++++++++++++++++++ lass/1systems/mors/config.nix | 8 +---- lass/kops.nix | 35 +++++++++++++++++++ 3 files changed, 100 insertions(+), 7 deletions(-) create mode 100644 krebs/kops.nix create mode 100644 lass/kops.nix diff --git a/krebs/kops.nix b/krebs/kops.nix new file mode 100644 index 000000000..9774b5cab --- /dev/null +++ b/krebs/kops.nix @@ -0,0 +1,64 @@ +{ name }: rec { + + kops = (import {}).fetchgit { + url = https://cgit.krebsco.de/kops/; + rev = "e89cf20d4310070a877c2e24a287659546b561c9"; + sha256 = "0wg8d80sxa46z4i7ir79sci2hwmv3qskzqdg0si64p6vazy8vckb"; + }; + + lib = import "${kops}/lib"; + + # TODO document why pkgs should be used like this + pkgs = import "${kops}/pkgs" {}; + + krebs-source = { + nixpkgs.git = { + ref = "09bca91e3b5a18d7f37f7632175ac71f2bf369ff"; + url = https://github.com/NixOS/nixpkgs; + }; + stockholm.file = toString ~/stockholm; + stockholm-version.pipe = toString (pkgs.writeDash "${name}-version" '' + set -efu + cd $HOME/stockholm + V=$(${pkgs.coreutils}/bin/date +%y.%m) + if test -d .git; then + V=$V.git.$(${pkgs.git}/bin/git describe --always --dirty) + case $V in (*-dirty) + V=$V@''${HOSTNAME-$(${pkgs.nettools}/bin/hostname)} + esac + fi + printf %s "$V" + ''); + }; + + source ={ test }: lib.evalSource [ + krebs-source + { + nixos-config.symlink = "stockholm/krebs/1systems/${name}/config.nix"; + secrets = + if test + then { + file = toString ; + } + else { + pass = { + dir = "${lib.getEnv "HOME"}/brain"; + name = "krebs-secrets/${name}"; + }; + } + ; + } + ]; + + # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy) + deploy = pkgs.kops.writeDeploy "${name}-deploy" { + source = source { test = false; }; + target = "root@${name}/var/src"; + }; + + # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A test) + test = pkgs.kops.writeTest "${name}-test" { + source = source { test = true; }; + target = "${lib.getEnv "HOME"}/tmp/${name}-kops-test-src"; + }; +} diff --git a/lass/1systems/mors/config.nix b/lass/1systems/mors/config.nix index 8e805baf0..cd259d0fe 100644 --- a/lass/1systems/mors/config.nix +++ b/lass/1systems/mors/config.nix @@ -168,14 +168,8 @@ with import ; environment.shellAliases = { deploy = pkgs.writeDash "deploy" '' set -eu - export PATH=${makeBinPath [ - pkgs.bash - pkgs.coreutils - pkgs.nixUnstable - ]} - cd ~/stockholm export SYSTEM="$1" - exec nix-shell -I stockholm="$PWD" --run 'deploy --system="$SYSTEM"' + $(nix-build $HOME/stockholm/lass/kops.nix --no-out-link --argstr name "$SYSTEM" -A deploy) ''; }; diff --git a/lass/kops.nix b/lass/kops.nix new file mode 100644 index 000000000..9d0ab911a --- /dev/null +++ b/lass/kops.nix @@ -0,0 +1,35 @@ +{ name }: let + inherit (import ../krebs/kops.nix { inherit name; }) + krebs-source + lib + pkgs + ; + + source = { test }: lib.evalSource [ + krebs-source + { + nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix"; + secrets = if test then { + file = "/home/lass/stockholm/lass/2configs/tests/dummy-secrets"; + } else { + pass = { + dir = "${lib.getEnv "HOME"}/.password-store"; + name = "hosts/${name}"; + }; + }; + } + ]; + +in { + # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy) + deploy = pkgs.kops.writeDeploy "${name}-deploy" { + source = source { test = false; }; + target = "root@${name}/var/src"; + }; + + # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A test) + test = pkgs.kops.writeTest "${name}-test" { + source = source { test = true; }; + target = "${lib.getEnv "HOME"}/tmp/${name}-kops-test-src"; + }; +} From 63be8108168d7868534fe154f68038de426132bc Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 6 Apr 2018 11:07:04 +0200 Subject: [PATCH 51/53] nixpkgs: 09bca91 -> 4b4bbce --- krebs/kops.nix | 2 +- krebs/source.nix | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/krebs/kops.nix b/krebs/kops.nix index 9774b5cab..caf437b67 100644 --- a/krebs/kops.nix +++ b/krebs/kops.nix @@ -13,7 +13,7 @@ krebs-source = { nixpkgs.git = { - ref = "09bca91e3b5a18d7f37f7632175ac71f2bf369ff"; + ref = "4b4bbce199d3b3a8001ee93495604289b01aaad3"; url = https://github.com/NixOS/nixpkgs; }; stockholm.file = toString ~/stockholm; diff --git a/krebs/source.nix b/krebs/source.nix index 1f83d29f7..3ee12b37f 100644 --- a/krebs/source.nix +++ b/krebs/source.nix @@ -22,10 +22,7 @@ in }; stockholm.file = toString ; stockholm-version.pipe = "${pkgs.stockholm}/bin/get-version"; - nixpkgs.git = { - url = https://github.com/NixOS/nixpkgs; - ref = "09bca91e3b5a18d7f37f7632175ac71f2bf369ff"; # nixos-18.03 # 2018-04-02 - }; + nixpkgs = (import ./kops.nix { name = ""; }).krebs-source.nixpkgs; } override ] From e68aaca801130125a507fc3345472ab30f2d0f05 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 6 Apr 2018 12:08:29 +0200 Subject: [PATCH 52/53] kops.nix: use relative path to stockholm --- krebs/kops.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/krebs/kops.nix b/krebs/kops.nix index caf437b67..f544b93d2 100644 --- a/krebs/kops.nix +++ b/krebs/kops.nix @@ -16,7 +16,7 @@ ref = "4b4bbce199d3b3a8001ee93495604289b01aaad3"; url = https://github.com/NixOS/nixpkgs; }; - stockholm.file = toString ~/stockholm; + stockholm.file = toString ../.; stockholm-version.pipe = toString (pkgs.writeDash "${name}-version" '' set -efu cd $HOME/stockholm From 5b8c4d24e274bbf26e85420fc11b5bf7e24ac22d Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 6 Apr 2018 15:57:20 +0200 Subject: [PATCH 53/53] RIP zandronum --- krebs/5pkgs/simple/zandronum-bin/default.nix | 83 -------------------- lass/2configs/games.nix | 4 +- nin/2configs/games.nix | 4 +- 3 files changed, 4 insertions(+), 87 deletions(-) delete mode 100644 krebs/5pkgs/simple/zandronum-bin/default.nix diff --git a/krebs/5pkgs/simple/zandronum-bin/default.nix b/krebs/5pkgs/simple/zandronum-bin/default.nix deleted file mode 100644 index e97f46add..000000000 --- a/krebs/5pkgs/simple/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" ]; - }; -} diff --git a/lass/2configs/games.nix b/lass/2configs/games.nix index 50362cda4..3ee3a98a5 100644 --- a/lass/2configs/games.nix +++ b/lass/2configs/games.nix @@ -3,7 +3,7 @@ let mainUser = config.users.extraUsers.mainUser; vdoom = pkgs.writeDash "vdoom" '' - ${pkgs.zandronum-bin}/bin/zandronum \ + ${pkgs.zandronum}/bin/zandronum \ -fov 120 \ "$@" ''; @@ -50,7 +50,7 @@ let vdoomserver = pkgs.writeDashBin "vdoomserver" '' DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${pkgs.zandronum-bin}/bin/zandronum-server \ + ${pkgs.zandronum}/bin/zandronum-server \ +exec ${doomservercfg} \ "$@" ''; diff --git a/nin/2configs/games.nix b/nin/2configs/games.nix index a7edae078..15e17238d 100644 --- a/nin/2configs/games.nix +++ b/nin/2configs/games.nix @@ -3,7 +3,7 @@ let mainUser = config.users.extraUsers.mainUser; vdoom = pkgs.writeDash "vdoom" '' - ${pkgs.zandronum-bin}/bin/zandronum \ + ${pkgs.zandronum}/bin/zandronum \ -fov 120 \ "$@" ''; @@ -50,7 +50,7 @@ let vdoomserver = pkgs.writeDashBin "vdoomserver" '' DOOM_DIR=''${DOOM_DIR:-~/doom/} - ${pkgs.zandronum-bin}/bin/zandronum-server \ + ${pkgs.zandronum}/bin/zandronum-server \ +exec ${doomservercfg} \ "$@" '';