]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Move packages to flakes
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Wed, 25 Aug 2021 21:49:34 +0000 (23:49 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Wed, 29 Sep 2021 22:40:56 +0000 (00:40 +0200)
35 files changed:
flakes/backports/flake.lock [new file with mode: 0644]
flakes/backports/flake.nix [new file with mode: 0644]
overlays/default.nix
overlays/python-packages/default.nix
overlays/weboob/default.nix [deleted file]
overlays/weboob/weboob.nix [deleted file]
pkgs/bitlbee-mastodon/default.nix [deleted file]
pkgs/cryptpad/bower-packages.nix [deleted file]
pkgs/cryptpad/default.nix [deleted file]
pkgs/cryptpad/generate.sh [deleted file]
pkgs/cryptpad/node-env.nix [deleted file]
pkgs/cryptpad/node-packages-generated.nix [deleted file]
pkgs/cryptpad/node-packages.json [deleted file]
pkgs/cryptpad/node-packages.nix [deleted file]
pkgs/default.nix
pkgs/dovecot/plugins/fts_xapian/default.nix [deleted file]
pkgs/dovecot/plugins/fts_xapian/fts-xapian.json [deleted file]
pkgs/duply/default.nix [deleted file]
pkgs/fiche/default.nix [deleted file]
pkgs/fiche/fiche.json [deleted file]
pkgs/mpd_0_21/default.nix [deleted file]
pkgs/mpd_0_21/default_old.nix [deleted file]
pkgs/pg_activity/default.nix [deleted file]
pkgs/pg_activity/pg_activity.json [deleted file]
pkgs/python-packages/apprise/apprise.json [deleted file]
pkgs/python-packages/apprise/default.nix [deleted file]
pkgs/python-packages/default.nix
pkgs/signald/default.nix [deleted file]
pkgs/signald/git-describe-always.patch [deleted file]
pkgs/signald/gradle-plugin.patch [deleted file]
pkgs/stgit/default.nix [deleted file]
pkgs/telegram-cli/default.nix [deleted file]
pkgs/telegram-cli/telegram-cli.json [deleted file]
pkgs/woob/default.nix [deleted file]
pkgs/zrepl/default.nix [deleted file]

diff --git a/flakes/backports/flake.lock b/flakes/backports/flake.lock
new file mode 100644 (file)
index 0000000..0a2de64
--- /dev/null
@@ -0,0 +1,42 @@
+{
+  "nodes": {
+    "flake-utils": {
+      "locked": {
+        "lastModified": 1629481132,
+        "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "997f7efcb746a9c140ce1f13c72263189225f482",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1629925853,
+        "narHash": "sha256-gK2Q0o3Ov5/xT7XhCPbtfoFQ0Ty1Mu2aeWcNX6+XzjQ=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "9e98c9db932a19bbd8fd4d3f879cd94f66270a43",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "flake-utils": "flake-utils",
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flakes/backports/flake.nix b/flakes/backports/flake.nix
new file mode 100644 (file)
index 0000000..89a9f40
--- /dev/null
@@ -0,0 +1,100 @@
+{
+  description = "Backported packages";
+
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs";
+  inputs.flake-utils.url = "github:numtide/flake-utils";
+
+  outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
+    let
+      pkgs = import nixpkgs { inherit system; overlays = []; };
+    in rec {
+      packages = {
+        apprise = pkgs.apprise;
+        bitlbee-mastodon = pkgs.bitlbee-mastodon;
+        cointop = pkgs.cointop;
+        cryptpad = pkgs.cryptpad;
+        dovecot_fts-xapian = pkgs.dovecot_fts_xapian;
+        duply = pkgs.duply;
+        fiche = pkgs.fiche;
+        influxdb2 = pkgs.influxdb2;
+        mpd = pkgs.mpd;
+        mpd-small = pkgs.mpd-small;
+        pg_activity = pkgs.pg_activity;
+        signald = pkgs.signald;
+        stgit = pkgs.stgit;
+        telegram-cli = pkgs.telegram-cli;
+        woob = pkgs.python3Packages.woob;
+        zrepl = pkgs.zrepl;
+      };
+      legacyPackages = packages;
+      apps = {
+        apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; };
+        cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; };
+        cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; };
+        duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; };
+        fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; };
+        influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; };
+        influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; };
+        mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; };
+        mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; };
+        pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; };
+        signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; };
+        stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
+        telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; };
+        woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; };
+        zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; };
+      };
+    }
+  ) // rec {
+    lib = {
+      overrideDeps = pkgs: package: let
+          packageDeps = builtins.attrNames package.override.__functionArgs;
+        in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}"));
+    };
+    overlays = {
+      apprise = final: prev: { apprise = self.packages."${final.system}".apprise; };
+      bitlbee-mastodon = final: prev: {
+        bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon;
+      };
+      cointop = final: prev: { cointop = self.packages."${final.system}".cointop; };
+      cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; };
+      dovecot_fts-xapian = final: prev: {
+        dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian;
+      };
+      duply = final: prev: { duply = self.packages."${final.system}".duply; };
+      fiche = final: prev: { fiche = self.packages."${final.system}".fiche; };
+      influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; };
+      mpd = final: prev: { mpd = self.packages."${final.system}".mpd; };
+      pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; };
+      signald = final: prev: { signald = self.packages."${final.system}".signald; };
+      stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
+      telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; };
+      woob = final: prev: { woob = self.packages."${final.system}".woob; };
+      zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; };
+    };
+    overlay = final: prev: ({}
+      // overlays.apprise final prev
+      // overlays.bitlbee-mastodon final prev
+      // overlays.cointop final prev
+      // overlays.cryptpad final prev
+      // overlays.dovecot_fts-xapian final prev
+      // overlays.duply final prev
+      // overlays.fiche final prev
+      // overlays.influxdb2 final prev
+      // overlays.mpd final prev
+      // overlays.pg_activity final prev
+      // overlays.signald final prev
+      // overlays.stgit final prev
+      // overlays.telegram-cli final prev
+      // overlays.woob final prev
+      // overlays.zrepl final prev
+    );
+
+    nixosModules = {
+      influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix");
+      mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix");
+      zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix");
+    };
+  };
+}
+
index 9b0615a09475255dd604637a71fdf2394aba3e8a..b01dd8152c3616335edc92639779dcc30f555450 100644 (file)
@@ -1,6 +1,7 @@
 let
   flakeCompat = import ../lib/flake-compat.nix;
   flakes = builtins.foldl' (a: b: a // b) {} (map (n: (flakeCompat n).overlays) [
+    ../flakes/backports
     ../flakes/libspf2
     ../flakes/openarc
     ../flakes/opendmarc
@@ -39,7 +40,6 @@ in flakes // {
   sudo = import ./sudo;
   taskwarrior = import ./taskwarrior;
   vcsh = import ./vcsh;
-  weboob = import ./weboob;
   weechat = import ./weechat;
   ympd = import ./ympd;
   doing = import ./doing;
index 11dea09602b616df8a68ae8ce963b334df951a7f..601eed1297bc9770f14da37ccde2de96c66167e8 100644 (file)
@@ -22,7 +22,6 @@ in
   } // super.lib.attrsets.listToAttrs overriddenPythons;
 
 
-  apprise = fromMyPythonPackages "apprise";
   blivet3 = fromMyPythonPackages "blivet3";
   buildbot = import ./buildbot.nix;
   wokkel = fromMyPythonPackages "wokkel";
diff --git a/overlays/weboob/default.nix b/overlays/weboob/default.nix
deleted file mode 100644 (file)
index 6e5656b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-self: super: {
-  weboob = self.callPackage ./weboob.nix {
-    inherit (super.python3Packages) buildPythonPackage fetchPypi nose
-    pillow prettytable pyyaml dateutil gdata requests feedparser lxml
-    pyqt5 simplejson cssselect pdfminer termcolor
-    google_api_python_client unidecode Babel html5lib html2text;
-  };
-}
diff --git a/overlays/weboob/weboob.nix b/overlays/weboob/weboob.nix
deleted file mode 100644 (file)
index faafbc4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-{ buildPythonPackage, fetchurl, fetchPypi, stdenv
-, nose, pillow, prettytable, pyyaml, dateutil, gdata
-, requests, feedparser, lxml, gnupg, pyqt5
-, libyaml, simplejson, cssselect, pdfminer
-, termcolor, google_api_python_client, html2text
-, unidecode, html5lib, Babel
-}:
-let
-  mechanize = buildPythonPackage rec {
-    pname = "mechanize";
-    version = "0.4.4";
-    src = fetchPypi {
-      inherit version pname;
-      sha256 = "9fff89e973bdf1aee75a351bd4dde53ca51a7e76944ddeae3ea3b6ad6c46045c";
-    };
-    propagatedBuildInputs = [ html5lib ];
-    doCheck = false;
-  };
-in
-
-buildPythonPackage rec {
-  pname = "weboob";
-  version = "2.0";
-
-  src = fetchurl {
-    url = "https://symlink.me/attachments/download/356/${pname}-${version}.tar.gz";
-    sha256 = "1p0wd6k28s0cdxkrj5s6vmi120w6v5vfxxyddqg7s2xjxv6mbbbm";
-  };
-
-  postPatch = ''
-    # Disable doctests that require networking:
-    sed -i -n -e '/^ *def \+pagination *(.*: *$/ {
-      p; n; p; /"""\|'\'\'\'''/!b
-
-      :loop
-      n; /^ *\(>>>\|\.\.\.\)/ { h; bloop }
-      x; /^ *\(>>>\|\.\.\.\)/bloop; x
-      p; /"""\|'\'\'\'''/b
-      bloop
-    }; p' weboob/browser/browsers.py weboob/browser/pages.py
-  '';
-
-  postInstall = ''
-    mkdir -p $out/share/bash-completion/completions/
-    cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
-  '';
-
-  checkInputs = [ nose ];
-
-  nativeBuildInputs = [ pyqt5 ];
-
-  propagatedBuildInputs = [ pillow prettytable pyyaml dateutil
-    gdata requests feedparser lxml gnupg pyqt5 libyaml
-    simplejson cssselect mechanize pdfminer termcolor
-    google_api_python_client html2text unidecode Babel ];
-
-  checkPhase = ''
-    nosetests
-  '';
-
-  meta = {
-    homepage = http://weboob.org;
-    description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
-    license = stdenv.lib.licenses.agpl3;
-  };
-}
-
diff --git a/pkgs/bitlbee-mastodon/default.nix b/pkgs/bitlbee-mastodon/default.nix
deleted file mode 100644 (file)
index 385db75..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, bitlbee, glib, lib }:
-stdenv.mkDerivation rec {
-  name = "bitlbee-mastodon-${version}";
-  version = "v1.4.4";
-
-  src = fetchFromGitHub {
-    rev = version;
-    owner = "kensanata";
-    repo = "bitlbee-mastodon";
-    sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ bitlbee glib ];
-
-  preConfigure = ''
-    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
-    export BITLBEE_DATADIR=$out/share/bitlbee
-    chmod +x autogen.sh
-    ./autogen.sh
-  '';
-
-  meta = {
-    description = "Bitlbee plugin for Mastodon";
-
-    homepage = https://github.com/kensanata/bitlbee-mastodon;
-    license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/cryptpad/bower-packages.nix b/pkgs/cryptpad/bower-packages.nix
deleted file mode 100644 (file)
index 80ce9b5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
-{ fetchbower, buildEnv }:
-buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
-  (fetchbower "jquery" "2.1.0" "~2.1.0" "02kwvz93vzpv10qnp7s0dz3al0jh77awwrizb6wadsvgifxssnlr")
-  (fetchbower "jquery" "2.2.4" "2.2.4" "0kaln93pzjlr4vqf2zvsm9dwgjkrii9xlsqg48hc1vs16cl109rn")
-  (fetchbower "tweetnacl" "0.12.2" "0.12.2" "1lfzbfrdaly3zyzbcp1p53yhxlrx56k8x04q924kg7l52gblm65g")
-  (fetchbower "components-font-awesome" "4.7.0" "^4.6.3" "1w27im6ayjrbgjqa0i49ml5d3wy4ld40h9b29hz9myv77bpx4lg1")
-  (fetchbower "ckeditor" "4.14.0" "4.14.0" "0lw9q0k8c0jlxvf35vrccab9c3c8rgpc6x66czj9si8yy2lyliyp")
-  (fetchbower "codemirror" "5.56.0+components1" "^5.19.0" "0fv8rxw6dspyv4bl6p2aka57544f45527rallnhnm5scv77qnakm")
-  (fetchbower "requirejs" "2.3.5" "2.3.5" "05lyvgz914h2w08r24rk0vkk3yxmqrvlg7j3i5av9ffkg9lpzsli")
-  (fetchbower "marked" "1.1.0" "1.1.0" "1sdgqw9iki9c1pfm4c5h6c956mchbip2jywjrcmrlb75k53flsjz")
-  (fetchbower "rangy" "rangy-release#1.3.0" "rangy-release#~1.3.0" "13x3wci003p8jyv2ncir0k23bxckx99b3555r0zvgmlwycg7w0zv")
-  (fetchbower "json.sortify" "2.1.0" "~2.1.0" "1rz9xz0gnm4ak31n10vhslqsw8fw493gjylwj8xsy3bxqq1ygpnh")
-  (fetchbower "secure-fabric.js" "secure-v1.7.9" "secure-v1.7.9" "1l56mk7hbnsm9cdg5zdcmg95p7a9w96dq0bbl8fp11vs0awjil7a")
-  (fetchbower "hyperjson" "1.4.0" "~1.4.0" "1n68ls3x4lyhg1yy8i4q3xkgh5xqpyakf45sny4x91mkr68x4bd9")
-  (fetchbower "chainpad-crypto" "0.2.4" "^0.2.0" "0sqqc2j0pc34ig6319n18i85j03hibqkhz3cbr70vbd8x43vfzby")
-  (fetchbower "chainpad-listmap" "0.10.0" "^0.10.0" "0qh9pv33v5aqfir9mvm4wqdgryj90b78dl0shn9cxfy9xlc0m8w5")
-  (fetchbower "chainpad" "5.2.2" "^5.2.0" "1rmh039bqk11xnnh99sqrqksr4idly75y5q4f5wyl9cg4slsqrdp")
-  (fetchbower "file-saver" "1.3.1" "1.3.1" "065nzkvdiicxnw06z1sjz1sbp9nyis8z839hv6ng1fk25dc5kvkg")
-  (fetchbower "alertifyjs" "1.0.11" "1.0.11" "0v7323bzq90k35shm3h6azj4wd9la3kbi1va1pw4qyvndkwma69l")
-  (fetchbower "scrypt-async" "1.2.0" "1.2.0" "0d076ax708p9b8hcmk4f82j925nlnm0hmp0ni45ql37g7iirfpyv")
-  (fetchbower "require-css" "0.1.10" "0.1.10" "106gz9i76v71q9zx2pnqkkj342m630lvssnw54023a0ljc0gqcwq")
-  (fetchbower "less" "3.7.1" "3.7.1" "1n7ps4xlbrc9m63b3q62mg3p6i7d5hwchhpjshb0drzj5crvz556")
-  (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
-  (fetchbower "bootstrap" "4.5.0" "^v4.0.0" "0cfdn6z8jwx6y8lbbq6xpkfhq2vra0i84nkj9ji2bil1fzgzi40f")
-  (fetchbower "diff-dom" "2.1.1" "2.1.1" "0nrn6xqlhp0p5ixjxdk8qg3939crkggh1l8swd20d7bsz186l5f1")
-  (fetchbower "nthen" "0.1.7" "0.1.7" "03yap5ildigaw4rwxmxs37pcwhq415iham8w39zd56ka98gpfxa5")
-  (fetchbower "open-sans-fontface" "1.4.2" "^1.4.2" "0ksav1fcq640fmdz49ra4prwsrrfj35y2p4shx1jh1j7zxd044nf")
-  (fetchbower "bootstrap-tokenfield" "0.12.1" "^0.12.1" "0ib1v5k8h360sp19yiy7q92rfaz2554fvwwg2ixmxn01ydqlprw6")
-  (fetchbower "localforage" "1.8.1" "^1.5.2" "0ci265385racnxvn4g1n672yaxi47msw6k042nxdb5vlpf5g327j")
-  (fetchbower "html2canvas" "0.4.1" "^0.4.1" "0yg7y90nav068q0i5afc2c221zkddpf28hi0hwc46cawx4180c69")
-  (fetchbower "croppie" "2.6.5" "^2.5.0" "1j1v5620zi13ad42r358i4ay891abwn6nz357484kgq2bgjj6ccx")
-  (fetchbower "sortablejs" "1.10.2" "^1.6.0" "10q4gyblhjy7w51clr0k9j7h722l4ybzn5535givwpmp6xagv11v")
-  (fetchbower "saferphore" "0.0.1" "^0.0.1" "1wfr9wpbm3lswmvy2p0247ydb108h4qh5s286py89k871qh6jwdi")
-  (fetchbower "jszip" "Stuk/jszip#3.5.0" "Stuk/jszip#^3.1.5" "1ra19d82cq1hrnbw88l8c61bs12kpgxvbfiiwpfi8fhy0l8hcsvk")
-  (fetchbower "requirejs-plugins" "1.0.3" "^1.0.3" "00s3sdz1ykygx5shldwhhhybwgw7c99vkqd94i5i5x0gl97ifxf5")
-  (fetchbower "dragula.js" "3.7.2" "3.7.2" "0dbkmrl8bcxiplprmmp9fj96ri5nahb2ql8cc7zwawncv0drvlh0")
-  (fetchbower "MathJax" "3.0.5" "3.0.5" "087a9av15qj43m8pr3b9g59ncmydhmg40m6dfzsac62ykianh2a0")
-  (fetchbower "chainpad-netflux" "0.12.0" "^0.12.0" "1miym3fiyi0mxmrkb3c96fgr2zbcbmmb38sg0jr4d3inxf6r00zp")
-  (fetchbower "netflux-websocket" "0.1.20" "^0.1.20" "1xwqq7nw7fmhglndbplarkdzxfmkq831aqs8nm6qj0hz2ggbibhz")
-  (fetchbower "es6-promise" "3.3.1" "^3.2.2" "0ai6z5admfs84fdx6663ips49kqgz4x68ays78cic0xfb7pp6vcz")
-]; }
diff --git a/pkgs/cryptpad/default.nix b/pkgs/cryptpad/default.nix
deleted file mode 100644 (file)
index 1e8c756..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# taken from nixpkgs to upgrade to latest version
-{ stdenv
-, pkgs
-, lib
-, buildBowerComponents
-, fetchurl
-, nodejs
-}:
-
-let
-  nodePackages = import ./node-packages.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
-  };
-
-  bowerPackages = buildBowerComponents {
-    name = "${cryptpad.name}-bower-packages";
-    # this list had to be tweaked by hand:
-    # * add the second jquery ~2.1.0 entry
-    # * add the second bootstrap ~3.1.1 entry
-    generated = ./bower-packages.nix;
-    src = cryptpad.src;
-  };
-
-  # find an element in an attribute set
-  findValue = pred: default: set:
-    let
-      list =
-        lib.concatMap
-        (name:
-          let v = set.${name}; in
-          if pred name v then [v] else []
-        )
-        (lib.attrNames set)
-        ;
-    in
-      if list == [] then default
-      else lib.head list
-      ;
-
-  # The cryptpad package attribute key changes for each release. Get it out
-  # programatically instead.
-  cryptpad = findValue
-    (k: v: v.packageName == "cryptpad")
-    (throw "cryptpad not found")
-    nodePackages
-    ;
-
-  combined = cryptpad.override {
-    postInstall = ''
-      out_cryptpad=$out/lib/node_modules/cryptpad
-
-      substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
-
-      # add the bower components
-      ln -sv \
-        ${bowerPackages}/bower_components \
-        $out_cryptpad/www/bower_components
-
-      # add executable
-      mkdir $out/bin
-      cat <<EOF > $out/bin/cryptpad
-      #!${stdenv.shell}
-      exec ${nodejs}/bin/node $out_cryptpad/server.js
-      EOF
-      chmod +x $out/bin/cryptpad
-    '';
-  };
-in
-  combined
diff --git a/pkgs/cryptpad/generate.sh b/pkgs/cryptpad/generate.sh
deleted file mode 100755 (executable)
index 697b5a7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash  -I nixpkgs=../../../.. -p nodePackages.node2nix nodePackages.bower2nix
-set -euo pipefail
-
-node2nix --nodejs-12 \
-     --input node-packages.json \
-     --output node-packages-generated.nix \
-     --composition node-packages.nix \
-     --node-env ../../../development/node-packages/node-env.nix \
-
-# TODO: bower2nix > bower-packages.nix
diff --git a/pkgs/cryptpad/node-env.nix b/pkgs/cryptpad/node-env.nix
deleted file mode 100644 (file)
index c2b7231..0000000
+++ /dev/null
@@ -1,567 +0,0 @@
-# This file originates from node2nix
-
-{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
-
-let
-  # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
-  utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
-
-  python = if nodejs ? python then nodejs.python else python2;
-
-  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
-  tarWrapper = runCommand "tarWrapper" {} ''
-    mkdir -p $out/bin
-
-    cat > $out/bin/tar <<EOF
-    #! ${stdenv.shell} -e
-    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
-    EOF
-
-    chmod +x $out/bin/tar
-  '';
-
-  # Function that generates a TGZ file from a NPM project
-  buildNodeSourceDist =
-    { name, version, src, ... }:
-
-    stdenv.mkDerivation {
-      name = "node-tarball-${name}-${version}";
-      inherit src;
-      buildInputs = [ nodejs ];
-      buildPhase = ''
-        export HOME=$TMPDIR
-        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
-      '';
-      installPhase = ''
-        mkdir -p $out/tarballs
-        mv $tgzFile $out/tarballs
-        mkdir -p $out/nix-support
-        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
-      '';
-    };
-
-  includeDependencies = {dependencies}:
-    lib.optionalString (dependencies != [])
-      (lib.concatMapStrings (dependency:
-        ''
-          # Bundle the dependencies of the package
-          mkdir -p node_modules
-          cd node_modules
-
-          # Only include dependencies if they don't exist. They may also be bundled in the package.
-          if [ ! -e "${dependency.name}" ]
-          then
-              ${composePackage dependency}
-          fi
-
-          cd ..
-        ''
-      ) dependencies);
-
-  # Recursively composes the dependencies of a package
-  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
-    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
-      DIR=$(pwd)
-      cd $TMPDIR
-
-      unpackFile ${src}
-
-      # Make the base dir in which the target dependency resides first
-      mkdir -p "$(dirname "$DIR/${packageName}")"
-
-      if [ -f "${src}" ]
-      then
-          # Figure out what directory has been unpacked
-          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
-
-          # Restore write permissions to make building work
-          find "$packageDir" -type d -exec chmod u+x {} \;
-          chmod -R u+w "$packageDir"
-
-          # Move the extracted tarball into the output folder
-          mv "$packageDir" "$DIR/${packageName}"
-      elif [ -d "${src}" ]
-      then
-          # Get a stripped name (without hash) of the source directory.
-          # On old nixpkgs it's already set internally.
-          if [ -z "$strippedName" ]
-          then
-              strippedName="$(stripHash ${src})"
-          fi
-
-          # Restore write permissions to make building work
-          chmod -R u+w "$strippedName"
-
-          # Move the extracted directory into the output folder
-          mv "$strippedName" "$DIR/${packageName}"
-      fi
-
-      # Unset the stripped name to not confuse the next unpack step
-      unset strippedName
-
-      # Include the dependencies of the package
-      cd "$DIR/${packageName}"
-      ${includeDependencies { inherit dependencies; }}
-      cd ..
-      ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-    '';
-
-  pinpointDependencies = {dependencies, production}:
-    let
-      pinpointDependenciesFromPackageJSON = writeTextFile {
-        name = "pinpointDependencies.js";
-        text = ''
-          var fs = require('fs');
-          var path = require('path');
-
-          function resolveDependencyVersion(location, name) {
-              if(location == process.env['NIX_STORE']) {
-                  return null;
-              } else {
-                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
-
-                  if(fs.existsSync(dependencyPackageJSON)) {
-                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
-
-                      if(dependencyPackageObj.name == name) {
-                          return dependencyPackageObj.version;
-                      }
-                  } else {
-                      return resolveDependencyVersion(path.resolve(location, ".."), name);
-                  }
-              }
-          }
-
-          function replaceDependencies(dependencies) {
-              if(typeof dependencies == "object" && dependencies !== null) {
-                  for(var dependency in dependencies) {
-                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
-
-                      if(resolvedVersion === null) {
-                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
-                      } else {
-                          dependencies[dependency] = resolvedVersion;
-                      }
-                  }
-              }
-          }
-
-          /* Read the package.json configuration */
-          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
-
-          /* Pinpoint all dependencies */
-          replaceDependencies(packageObj.dependencies);
-          if(process.argv[2] == "development") {
-              replaceDependencies(packageObj.devDependencies);
-          }
-          replaceDependencies(packageObj.optionalDependencies);
-
-          /* Write the fixed package.json file */
-          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
-        '';
-      };
-    in
-    ''
-      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
-
-      ${lib.optionalString (dependencies != [])
-        ''
-          if [ -d node_modules ]
-          then
-              cd node_modules
-              ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
-              cd ..
-          fi
-        ''}
-    '';
-
-  # Recursively traverses all dependencies of a package and pinpoints all
-  # dependencies in the package.json file to the versions that are actually
-  # being used.
-
-  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
-    ''
-      if [ -d "${packageName}" ]
-      then
-          cd "${packageName}"
-          ${pinpointDependencies { inherit dependencies production; }}
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-      fi
-    '';
-
-  # Extract the Node.js source code which is used to compile packages with
-  # native bindings
-  nodeSources = runCommand "node-sources" {} ''
-    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
-    mv node-* $out
-  '';
-
-  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
-  addIntegrityFieldsScript = writeTextFile {
-    name = "addintegrityfields.js";
-    text = ''
-      var fs = require('fs');
-      var path = require('path');
-
-      function augmentDependencies(baseDir, dependencies) {
-          for(var dependencyName in dependencies) {
-              var dependency = dependencies[dependencyName];
-
-              // Open package.json and augment metadata fields
-              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
-              var packageJSONPath = path.join(packageJSONDir, "package.json");
-
-              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
-                  console.log("Adding metadata fields to: "+packageJSONPath);
-                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
-
-                  if(dependency.integrity) {
-                      packageObj["_integrity"] = dependency.integrity;
-                  } else {
-                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
-                  }
-
-                  if(dependency.resolved) {
-                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
-                  } else {
-                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
-                  }
-
-                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
-                      packageObj["_from"] = dependency.from;
-                  }
-
-                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
-              }
-
-              // Augment transitive dependencies
-              if(dependency.dependencies !== undefined) {
-                  augmentDependencies(packageJSONDir, dependency.dependencies);
-              }
-          }
-      }
-
-      if(fs.existsSync("./package-lock.json")) {
-          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
-
-          if(![1, 2].includes(packageLock.lockfileVersion)) {
-             process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
-             process.exit(1);
-          }
-
-          if(packageLock.dependencies !== undefined) {
-              augmentDependencies(".", packageLock.dependencies);
-          }
-      }
-    '';
-  };
-
-  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
-  reconstructPackageLock = writeTextFile {
-    name = "addintegrityfields.js";
-    text = ''
-      var fs = require('fs');
-      var path = require('path');
-
-      var packageObj = JSON.parse(fs.readFileSync("package.json"));
-
-      var lockObj = {
-          name: packageObj.name,
-          version: packageObj.version,
-          lockfileVersion: 1,
-          requires: true,
-          dependencies: {}
-      };
-
-      function augmentPackageJSON(filePath, dependencies) {
-          var packageJSON = path.join(filePath, "package.json");
-          if(fs.existsSync(packageJSON)) {
-              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
-              dependencies[packageObj.name] = {
-                  version: packageObj.version,
-                  integrity: "sha1-000000000000000000000000000=",
-                  dependencies: {}
-              };
-              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
-          }
-      }
-
-      function processDependencies(dir, dependencies) {
-          if(fs.existsSync(dir)) {
-              var files = fs.readdirSync(dir);
-
-              files.forEach(function(entry) {
-                  var filePath = path.join(dir, entry);
-                  var stats = fs.statSync(filePath);
-
-                  if(stats.isDirectory()) {
-                      if(entry.substr(0, 1) == "@") {
-                          // When we encounter a namespace folder, augment all packages belonging to the scope
-                          var pkgFiles = fs.readdirSync(filePath);
-
-                          pkgFiles.forEach(function(entry) {
-                              if(stats.isDirectory()) {
-                                  var pkgFilePath = path.join(filePath, entry);
-                                  augmentPackageJSON(pkgFilePath, dependencies);
-                              }
-                          });
-                      } else {
-                          augmentPackageJSON(filePath, dependencies);
-                      }
-                  }
-              });
-          }
-      }
-
-      processDependencies("node_modules", lockObj.dependencies);
-
-      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
-    '';
-  };
-
-  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
-    let
-      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
-    in
-    ''
-        # Pinpoint the versions of all dependencies to the ones that are actually being used
-        echo "pinpointing versions of dependencies..."
-        source $pinpointDependenciesScriptPath
-
-        # Patch the shebangs of the bundled modules to prevent them from
-        # calling executables outside the Nix store as much as possible
-        patchShebangs .
-
-        # Deploy the Node.js package by running npm install. Since the
-        # dependencies have been provided already by ourselves, it should not
-        # attempt to install them again, which is good, because we want to make
-        # it Nix's responsibility. If it needs to install any dependencies
-        # anyway (e.g. because the dependency parameters are
-        # incomplete/incorrect), it fails.
-        #
-        # The other responsibilities of NPM are kept -- version checks, build
-        # steps, postprocessing etc.
-
-        export HOME=$TMPDIR
-        cd "${packageName}"
-        runHook preRebuild
-
-        ${lib.optionalString bypassCache ''
-          ${lib.optionalString reconstructLock ''
-            if [ -f package-lock.json ]
-            then
-                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
-                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
-                rm package-lock.json
-            else
-                echo "No package-lock.json file found, reconstructing..."
-            fi
-
-            node ${reconstructPackageLock}
-          ''}
-
-          node ${addIntegrityFieldsScript}
-        ''}
-
-        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
-
-        if [ "''${dontNpmInstall-}" != "1" ]
-        then
-            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
-            rm -f npm-shrinkwrap.json
-
-            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
-        fi
-    '';
-
-  # Builds and composes an NPM package including all its dependencies
-  buildNodePackage =
-    { name
-    , packageName
-    , version
-    , dependencies ? []
-    , buildInputs ? []
-    , production ? true
-    , npmFlags ? ""
-    , dontNpmInstall ? false
-    , bypassCache ? false
-    , reconstructLock ? false
-    , preRebuild ? ""
-    , dontStrip ? true
-    , unpackPhase ? "true"
-    , buildPhase ? "true"
-    , ... }@args:
-
-    let
-      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
-    in
-    stdenv.mkDerivation ({
-      name = "node_${name}-${version}";
-      buildInputs = [ tarWrapper python nodejs ]
-        ++ lib.optional (stdenv.isLinux) utillinux
-        ++ lib.optional (stdenv.isDarwin) libtool
-        ++ buildInputs;
-
-      inherit nodejs;
-
-      inherit dontStrip; # Stripping may fail a build for some package deployments
-      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
-
-      compositionScript = composePackage args;
-      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
-      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
-
-      installPhase = ''
-        # Create and enter a root node_modules/ folder
-        mkdir -p $out/lib/node_modules
-        cd $out/lib/node_modules
-
-        # Compose the package and all its dependencies
-        source $compositionScriptPath
-
-        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
-        # Create symlink to the deployed executable folder, if applicable
-        if [ -d "$out/lib/node_modules/.bin" ]
-        then
-            ln -s $out/lib/node_modules/.bin $out/bin
-        fi
-
-        # Create symlinks to the deployed manual page folders, if applicable
-        if [ -d "$out/lib/node_modules/${packageName}/man" ]
-        then
-            mkdir -p $out/share
-            for dir in "$out/lib/node_modules/${packageName}/man/"*
-            do
-                mkdir -p $out/share/man/$(basename "$dir")
-                for page in "$dir"/*
-                do
-                    ln -s $page $out/share/man/$(basename "$dir")
-                done
-            done
-        fi
-
-        # Run post install hook, if provided
-        runHook postInstall
-      '';
-    } // extraArgs);
-
-  # Builds a node environment (a node_modules folder and a set of binaries)
-  buildNodeDependencies =
-    { name
-    , packageName
-    , version
-    , src
-    , dependencies ? []
-    , buildInputs ? []
-    , production ? true
-    , npmFlags ? ""
-    , dontNpmInstall ? false
-    , bypassCache ? false
-    , reconstructLock ? false
-    , dontStrip ? true
-    , unpackPhase ? "true"
-    , buildPhase ? "true"
-    , ... }@args:
-
-    let
-      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
-    in
-      stdenv.mkDerivation ({
-        name = "node-dependencies-${name}-${version}";
-
-        buildInputs = [ tarWrapper python nodejs ]
-          ++ lib.optional (stdenv.isLinux) utillinux
-          ++ lib.optional (stdenv.isDarwin) libtool
-          ++ buildInputs;
-
-        inherit dontStrip; # Stripping may fail a build for some package deployments
-        inherit dontNpmInstall unpackPhase buildPhase;
-
-        includeScript = includeDependencies { inherit dependencies; };
-        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
-        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
-
-        installPhase = ''
-          mkdir -p $out/${packageName}
-          cd $out/${packageName}
-
-          source $includeScriptPath
-
-          # Create fake package.json to make the npm commands work properly
-          cp ${src}/package.json .
-          chmod 644 package.json
-          ${lib.optionalString bypassCache ''
-            if [ -f ${src}/package-lock.json ]
-            then
-                cp ${src}/package-lock.json .
-            fi
-          ''}
-
-          # Go to the parent folder to make sure that all packages are pinpointed
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
-          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
-          # Expose the executables that were installed
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
-          mv ${packageName} lib
-          ln -s $out/lib/node_modules/.bin $out/bin
-        '';
-      } // extraArgs);
-
-  # Builds a development shell
-  buildNodeShell =
-    { name
-    , packageName
-    , version
-    , src
-    , dependencies ? []
-    , buildInputs ? []
-    , production ? true
-    , npmFlags ? ""
-    , dontNpmInstall ? false
-    , bypassCache ? false
-    , reconstructLock ? false
-    , dontStrip ? true
-    , unpackPhase ? "true"
-    , buildPhase ? "true"
-    , ... }@args:
-
-    let
-      nodeDependencies = buildNodeDependencies args;
-    in
-    stdenv.mkDerivation {
-      name = "node-shell-${name}-${version}";
-
-      buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
-      buildCommand = ''
-        mkdir -p $out/bin
-        cat > $out/bin/shell <<EOF
-        #! ${stdenv.shell} -e
-        $shellHook
-        exec ${stdenv.shell}
-        EOF
-        chmod +x $out/bin/shell
-      '';
-
-      # Provide the dependencies in a development shell through the NODE_PATH environment variable
-      inherit nodeDependencies;
-      shellHook = lib.optionalString (dependencies != []) ''
-        export NODE_PATH=${nodeDependencies}/lib/node_modules
-        export PATH="${nodeDependencies}/bin:$PATH"
-      '';
-    };
-in
-{
-  buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
-  buildNodePackage = lib.makeOverridable buildNodePackage;
-  buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
-  buildNodeShell = lib.makeOverridable buildNodeShell;
-}
diff --git a/pkgs/cryptpad/node-packages-generated.nix b/pkgs/cryptpad/node-packages-generated.nix
deleted file mode 100644 (file)
index 18e5665..0000000
+++ /dev/null
@@ -1,754 +0,0 @@
-# This file has been generated by node2nix 1.9.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "@mcrowe/minibloom-0.2.0" = {
-      name = "_at_mcrowe_slash_minibloom";
-      packageName = "@mcrowe/minibloom";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@mcrowe/minibloom/-/minibloom-0.2.0.tgz";
-        sha1 = "1bed96aec18388198da37443899b2c3ff5948053";
-      };
-    };
-    "accepts-1.3.7" = {
-      name = "accepts";
-      packageName = "accepts";
-      version = "1.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
-      };
-    };
-    "array-flatten-1.1.1" = {
-      name = "array-flatten";
-      packageName = "array-flatten";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
-        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
-      };
-    };
-    "async-limiter-1.0.1" = {
-      name = "async-limiter";
-      packageName = "async-limiter";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
-      };
-    };
-    "body-parser-1.18.3" = {
-      name = "body-parser";
-      packageName = "body-parser";
-      version = "1.18.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz";
-        sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
-      };
-    };
-    "bytes-3.0.0" = {
-      name = "bytes";
-      packageName = "bytes";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
-        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
-      };
-    };
-    "chainpad-crypto-0.2.5" = {
-      name = "chainpad-crypto";
-      packageName = "chainpad-crypto";
-      version = "0.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chainpad-crypto/-/chainpad-crypto-0.2.5.tgz";
-        sha512 = "K9vRsAspuX+uU1goXPz0CawpLIaOHq+1JP3WfDLqaz67LbCX/MLIUt9aMcSeIJcwZ9uMpqnbMGRktyVPoz6MCA==";
-      };
-    };
-    "chainpad-server-5.1.0" = {
-      name = "chainpad-server";
-      packageName = "chainpad-server";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-5.1.0.tgz";
-        sha512 = "BdjgOOLTXXo1EjQ7lURDe7oqsqfQISNvwhILfp3K3diY2K1hxpPLbjYzOSgxNOTADeOAff0xnInR5eUCESVWaQ==";
-      };
-    };
-    "content-disposition-0.5.2" = {
-      name = "content-disposition";
-      packageName = "content-disposition";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz";
-        sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
-      };
-    };
-    "content-type-1.0.4" = {
-      name = "content-type";
-      packageName = "content-type";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
-      };
-    };
-    "cookie-0.3.1" = {
-      name = "cookie";
-      packageName = "cookie";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
-        sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
-      };
-    };
-    "cookie-signature-1.0.6" = {
-      name = "cookie-signature";
-      packageName = "cookie-signature";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
-      };
-    };
-    "debug-2.6.9" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
-      };
-    };
-    "depd-1.1.2" = {
-      name = "depd";
-      packageName = "depd";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
-        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
-      };
-    };
-    "destroy-1.0.4" = {
-      name = "destroy";
-      packageName = "destroy";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
-      };
-    };
-    "ee-first-1.1.1" = {
-      name = "ee-first";
-      packageName = "ee-first";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
-      };
-    };
-    "encodeurl-1.0.2" = {
-      name = "encodeurl";
-      packageName = "encodeurl";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
-        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
-      };
-    };
-    "escape-html-1.0.3" = {
-      name = "escape-html";
-      packageName = "escape-html";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
-      };
-    };
-    "etag-1.8.1" = {
-      name = "etag";
-      packageName = "etag";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
-        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
-      };
-    };
-    "express-4.16.4" = {
-      name = "express";
-      packageName = "express";
-      version = "4.16.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.16.4.tgz";
-        sha512 = "j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==";
-      };
-    };
-    "finalhandler-1.1.1" = {
-      name = "finalhandler";
-      packageName = "finalhandler";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
-      };
-    };
-    "forwarded-0.1.2" = {
-      name = "forwarded";
-      packageName = "forwarded";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
-        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
-      };
-    };
-    "fresh-0.5.2" = {
-      name = "fresh";
-      packageName = "fresh";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
-        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
-      };
-    };
-    "fs-extra-7.0.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "7.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
-      };
-    };
-    "gar-1.0.4" = {
-      name = "gar";
-      packageName = "gar";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
-        sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
-      };
-    };
-    "get-folder-size-2.0.1" = {
-      name = "get-folder-size";
-      packageName = "get-folder-size";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
-        sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
-      };
-    };
-    "graceful-fs-4.2.6" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
-        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
-      };
-    };
-    "http-errors-1.6.3" = {
-      name = "http-errors";
-      packageName = "http-errors";
-      version = "1.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
-        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
-      };
-    };
-    "iconv-lite-0.4.23" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.23";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
-        sha512 = "neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==";
-      };
-    };
-    "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";
-      };
-    };
-    "ipaddr.js-1.9.1" = {
-      name = "ipaddr.js";
-      packageName = "ipaddr.js";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
-      };
-    };
-    "jsonfile-4.0.0" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
-      };
-    };
-    "lex-1.7.9" = {
-      name = "lex";
-      packageName = "lex";
-      version = "1.7.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lex/-/lex-1.7.9.tgz";
-        sha1 = "5d5636ccef574348362938b79a47f0eed8ed0d43";
-      };
-    };
-    "looper-3.0.0" = {
-      name = "looper";
-      packageName = "looper";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz";
-        sha1 = "2efa54c3b1cbaba9b94aee2e5914b0be57fbb749";
-      };
-    };
-    "media-typer-0.3.0" = {
-      name = "media-typer";
-      packageName = "media-typer";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
-      };
-    };
-    "merge-descriptors-1.0.1" = {
-      name = "merge-descriptors";
-      packageName = "merge-descriptors";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
-      };
-    };
-    "methods-1.1.2" = {
-      name = "methods";
-      packageName = "methods";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
-      };
-    };
-    "mime-1.4.1" = {
-      name = "mime";
-      packageName = "mime";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
-        sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
-      };
-    };
-    "mime-db-1.47.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.47.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
-        sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
-      };
-    };
-    "mime-types-2.1.30" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.1.30";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
-        sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
-      };
-    };
-    "ms-2.0.0" = {
-      name = "ms";
-      packageName = "ms";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
-      };
-    };
-    "negotiator-0.6.2" = {
-      name = "negotiator";
-      packageName = "negotiator";
-      version = "0.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
-      };
-    };
-    "netflux-websocket-0.1.21" = {
-      name = "netflux-websocket";
-      packageName = "netflux-websocket";
-      version = "0.1.21";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/netflux-websocket/-/netflux-websocket-0.1.21.tgz";
-        sha512 = "Zjl5lefg8urC0a0T7YCPGiUgRsISZBsTZl1STylmQz8Bq4ohcZ8cP3r6VoCpeVcvJ1Y/e3ZCXPxndWlNP9Jfug==";
-      };
-    };
-    "nthen-0.1.8" = {
-      name = "nthen";
-      packageName = "nthen";
-      version = "0.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nthen/-/nthen-0.1.8.tgz";
-        sha512 = "Oh2CwIbhj+wUT94lQV7LKmmgw3UYAGGd8oLIqp6btQN3Bz3PuWp4BuvtUo35H3rqDknjPfKx5P6mt7v+aJNjcw==";
-      };
-    };
-    "on-finished-2.3.0" = {
-      name = "on-finished";
-      packageName = "on-finished";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
-      };
-    };
-    "parseurl-1.3.3" = {
-      name = "parseurl";
-      packageName = "parseurl";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
-      };
-    };
-    "path-to-regexp-0.1.7" = {
-      name = "path-to-regexp";
-      packageName = "path-to-regexp";
-      version = "0.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
-      };
-    };
-    "proxy-addr-2.0.6" = {
-      name = "proxy-addr";
-      packageName = "proxy-addr";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
-      };
-    };
-    "pull-stream-3.6.14" = {
-      name = "pull-stream";
-      packageName = "pull-stream";
-      version = "3.6.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz";
-        sha512 = "KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==";
-      };
-    };
-    "qs-6.5.2" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
-      };
-    };
-    "range-parser-1.2.1" = {
-      name = "range-parser";
-      packageName = "range-parser";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
-      };
-    };
-    "raw-body-2.3.3" = {
-      name = "raw-body";
-      packageName = "raw-body";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz";
-        sha512 = "9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==";
-      };
-    };
-    "safe-buffer-5.1.2" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
-      };
-    };
-    "safer-buffer-2.1.2" = {
-      name = "safer-buffer";
-      packageName = "safer-buffer";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
-      };
-    };
-    "saferphore-0.0.1" = {
-      name = "saferphore";
-      packageName = "saferphore";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/saferphore/-/saferphore-0.0.1.tgz";
-        sha1 = "cc962eda4e2b2452e6437fd32dcfb6f69ef2ea63";
-      };
-    };
-    "send-0.16.2" = {
-      name = "send";
-      packageName = "send";
-      version = "0.16.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
-        sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
-      };
-    };
-    "serve-static-1.13.2" = {
-      name = "serve-static";
-      packageName = "serve-static";
-      version = "1.13.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
-        sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
-      };
-    };
-    "setprototypeof-1.1.0" = {
-      name = "setprototypeof";
-      packageName = "setprototypeof";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
-      };
-    };
-    "sortify-1.0.4" = {
-      name = "sortify";
-      packageName = "sortify";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sortify/-/sortify-1.0.4.tgz";
-        sha1 = "f0178687c83231be8a34fc0ec5462ea957b60284";
-      };
-    };
-    "statuses-1.4.0" = {
-      name = "statuses";
-      packageName = "statuses";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
-        sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
-      };
-    };
-    "stream-to-pull-stream-1.7.3" = {
-      name = "stream-to-pull-stream";
-      packageName = "stream-to-pull-stream";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz";
-        sha512 = "6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==";
-      };
-    };
-    "tiny-each-async-2.0.3" = {
-      name = "tiny-each-async";
-      packageName = "tiny-each-async";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz";
-        sha1 = "8ebbbfd6d6295f1370003fbb37162afe5a0a51d1";
-      };
-    };
-    "tweetnacl-0.12.2" = {
-      name = "tweetnacl";
-      packageName = "tweetnacl";
-      version = "0.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.12.2.tgz";
-        sha1 = "bd59f890507856fb0a1136acc3a8b44547e29ddb";
-      };
-    };
-    "tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2" = {
-      name = "tweetnacl";
-      packageName = "tweetnacl";
-      version = "0.12.2";
-      src = fetchgit {
-        url = "https://github.com/dchest/tweetnacl-js.git";
-        rev = "8a21381d696acdc4e99c9f706f1ad23285795f79";
-        sha256 = "10f27b673944107995b3f6dcd65caecd705acdae9c37b7e79b810a8a72a40a31";
-      };
-    };
-    "type-is-1.6.18" = {
-      name = "type-is";
-      packageName = "type-is";
-      version = "1.6.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
-      };
-    };
-    "ulimit-0.0.2" = {
-      name = "ulimit";
-      packageName = "ulimit";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ulimit/-/ulimit-0.0.2.tgz";
-        sha1 = "2b51f9dc8381ae4102636cec5eb338c2630588a0";
-      };
-    };
-    "ultron-1.1.1" = {
-      name = "ultron";
-      packageName = "ultron";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
-        sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
-      };
-    };
-    "universalify-0.1.2" = {
-      name = "universalify";
-      packageName = "universalify";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
-      };
-    };
-    "unpipe-1.0.0" = {
-      name = "unpipe";
-      packageName = "unpipe";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
-      };
-    };
-    "utils-merge-1.0.1" = {
-      name = "utils-merge";
-      packageName = "utils-merge";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
-      };
-    };
-    "vary-1.1.2" = {
-      name = "vary";
-      packageName = "vary";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
-      };
-    };
-    "ws-3.3.3" = {
-      name = "ws";
-      packageName = "ws";
-      version = "3.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
-        sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
-      };
-    };
-  };
-in
-{
-  "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" = nodeEnv.buildNodePackage {
-    name = "cryptpad";
-    packageName = "cryptpad";
-    version = "4.5.0";
-    src = fetchgit {
-      url = "https://github.com/xwiki-labs/cryptpad.git";
-      rev = "719cea013da4f2ffb89f944b0974d2a42216d1f2";
-      sha256 = "1729698a1f74c3fc097ea6c8162b4adecc3de4d5ba89b12dba06b5a58559aa4a";
-    };
-    dependencies = [
-      sources."@mcrowe/minibloom-0.2.0"
-      sources."accepts-1.3.7"
-      sources."array-flatten-1.1.1"
-      sources."async-limiter-1.0.1"
-      sources."body-parser-1.18.3"
-      sources."bytes-3.0.0"
-      (sources."chainpad-crypto-0.2.5" // {
-        dependencies = [
-          sources."tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2"
-        ];
-      })
-      sources."chainpad-server-5.1.0"
-      sources."content-disposition-0.5.2"
-      sources."content-type-1.0.4"
-      sources."cookie-0.3.1"
-      sources."cookie-signature-1.0.6"
-      sources."debug-2.6.9"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
-      sources."ee-first-1.1.1"
-      sources."encodeurl-1.0.2"
-      sources."escape-html-1.0.3"
-      sources."etag-1.8.1"
-      sources."express-4.16.4"
-      sources."finalhandler-1.1.1"
-      sources."forwarded-0.1.2"
-      sources."fresh-0.5.2"
-      sources."fs-extra-7.0.1"
-      sources."gar-1.0.4"
-      sources."get-folder-size-2.0.1"
-      sources."graceful-fs-4.2.6"
-      sources."http-errors-1.6.3"
-      sources."iconv-lite-0.4.23"
-      sources."inherits-2.0.3"
-      sources."ipaddr.js-1.9.1"
-      sources."jsonfile-4.0.0"
-      sources."lex-1.7.9"
-      sources."looper-3.0.0"
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-1.0.1"
-      sources."methods-1.1.2"
-      sources."mime-1.4.1"
-      sources."mime-db-1.47.0"
-      sources."mime-types-2.1.30"
-      sources."ms-2.0.0"
-      sources."negotiator-0.6.2"
-      sources."netflux-websocket-0.1.21"
-      sources."nthen-0.1.8"
-      sources."on-finished-2.3.0"
-      sources."parseurl-1.3.3"
-      sources."path-to-regexp-0.1.7"
-      sources."proxy-addr-2.0.6"
-      sources."pull-stream-3.6.14"
-      sources."qs-6.5.2"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.3.3"
-      sources."safe-buffer-5.1.2"
-      sources."safer-buffer-2.1.2"
-      sources."saferphore-0.0.1"
-      sources."send-0.16.2"
-      sources."serve-static-1.13.2"
-      sources."setprototypeof-1.1.0"
-      sources."sortify-1.0.4"
-      sources."statuses-1.4.0"
-      sources."stream-to-pull-stream-1.7.3"
-      sources."tiny-each-async-2.0.3"
-      sources."tweetnacl-0.12.2"
-      sources."type-is-1.6.18"
-      sources."ulimit-0.0.2"
-      sources."ultron-1.1.1"
-      sources."universalify-0.1.2"
-      sources."unpipe-1.0.0"
-      sources."utils-merge-1.0.1"
-      sources."vary-1.1.2"
-      sources."ws-3.3.3"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "realtime collaborative visual editor with zero knowlege server";
-      license = "AGPL-3.0+";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-}
diff --git a/pkgs/cryptpad/node-packages.json b/pkgs/cryptpad/node-packages.json
deleted file mode 100644 (file)
index daef46d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" }
-]
diff --git a/pkgs/cryptpad/node-packages.nix b/pkgs/cryptpad/node-packages.nix
deleted file mode 100644 (file)
index 662d6a5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file has been generated by node2nix 1.9.0. Do not edit!
-
-{pkgs ? import <nixpkgs> {
-    inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
-
-let
-  nodeEnv = import ./node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
-    inherit pkgs nodejs;
-    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
-  };
-in
-import ./node-packages-generated.nix {
-  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
-  inherit nodeEnv;
-}
index 204f751a4384657ba33fe8b56058020491cf066f..616a462ecff00a636fdc88be0ad5bfd4294fa9e7 100644 (file)
@@ -9,8 +9,6 @@ rec {
   boinctui = callPackage ./boinctui {};
   cnagios = callPackage ./cnagios { inherit mylibs; };
   commento = callPackage ./commento {};
-  cryptpad = callPackage ./cryptpad {};
-  duply = callPackage ./duply {};
   flrn = callPackage ./flrn { inherit mylibs; slang = callPackage ./slang_1 {}; };
   genius = callPackage ./genius {};
   mtop = callPackage ./mtop {};
@@ -23,14 +21,10 @@ rec {
   notmuch-python2 = callPackage ./notmuch/notmuch-python { pythonPackages = python2Packages; };
   notmuch-python3 = callPackage ./notmuch/notmuch-python { pythonPackages = python3Packages; };
   notmuch-vim = callPackage ./notmuch/notmuch-vim {};
-  pg_activity = callPackage ./pg_activity { inherit mylibs; };
   pgloader = callPackage ./pgloader {};
   predixy = callPackage ./predixy { inherit mylibs; };
   rrsync_sudo = callPackage ./rrsync_sudo {};
-  signald = callPackage ./signald {};
   signaldctl = callPackage ./signaldctl {};
-  stgit = callPackage ./stgit {};
-  telegram-cli = callPackage ./telegram-cli { inherit mylibs; };
   telegram-history-dump = callPackage ./telegram-history-dump { inherit mylibs; };
   telegramircd = callPackage ./telegramircd { inherit mylibs; telethon = callPackage ./telethon_sync {}; };
   terminal-velocity = callPackage ./terminal-velocity {};
@@ -45,10 +39,6 @@ rec {
   sia = callPackage ./crypto/sia {};
 
   pure-ftpd = callPackage ./pure-ftpd {};
-  mpd = (callPackage ./mpd_0_21 {}).mpd;
-  mpd-small = (callPackage ./mpd_0_21 {}).mpd-small;
-
-  bitlbee-mastodon = callPackage ./bitlbee-mastodon {};
 
   composerEnv = callPackage ./composer-env {};
   webapps = callPackage ./webapps { inherit mylibs composerEnv; };
@@ -70,11 +60,4 @@ rec {
   dovecot_deleted-to-trash = callPackage ./dovecot/plugins/deleted_to_trash {
     inherit mylibs;
   };
-  dovecot_fts-xapian = callPackage ./dovecot/plugins/fts_xapian {
-    inherit mylibs;
-  };
-
-  fiche = callPackage ./fiche { inherit mylibs; };
-  woob = python3Packages.callPackage ./woob {};
-  zrepl = callPackage ./zrepl {};
 }
diff --git a/pkgs/dovecot/plugins/fts_xapian/default.nix b/pkgs/dovecot/plugins/fts_xapian/default.nix
deleted file mode 100644 (file)
index 611d67b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-{ stdenv, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu, mylibs, sqlite }:
-
-stdenv.mkDerivation (mylibs.fetchedGithub ./fts-xapian.json // rec {
-  buildInputs = [ dovecot autoconf automake libtool pkg-config xapian icu sqlite ];
-  preConfigure = ''
-    export PANDOC=false
-    autoreconf -vi
-    '';
-  configureFlags = [
-    "--with-dovecot=${dovecot}/lib/dovecot"
-    "--without-dovecot-install-dirs"
-    "--with-moduledir=$(out)/lib/dovecot"
-  ];
-})
diff --git a/pkgs/dovecot/plugins/fts_xapian/fts-xapian.json b/pkgs/dovecot/plugins/fts_xapian/fts-xapian.json
deleted file mode 100644 (file)
index c9b57ef..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "tag": "ac872e9-master",
-  "meta": {
-    "name": "fts-xapian",
-    "url": "https://github.com/grosjo/fts-xapian",
-    "branch": "master"
-  },
-  "github": {
-    "owner": "grosjo",
-    "repo": "fts-xapian",
-    "rev": "ac872e927c982e8da6d4eb80fa27fee53962010b",
-    "sha256": "13pw123006yyx2m2zy3bdffglhd5923gnqjlcc868xy344fjkbmz",
-    "fetchSubmodules": true
-  }
-}
diff --git a/pkgs/duply/default.nix b/pkgs/duply/default.nix
deleted file mode 100644 (file)
index 2d24d4f..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchurl, makeWrapper, coreutils, python3, duplicity, gawk, gnupg1, bash, gnugrep, txt2man, which }:
-stdenv.mkDerivation rec {
-  name = "duply-${version}";
-  version = "2.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz";
-    sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8";
-  };
-
-  buildInputs = [ txt2man makeWrapper ];
-
-  postPatch = "patchShebangs .";
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    mkdir -p "$out/share/man/man1"
-    install -vD duply "$out/bin"
-    sed -i $out/bin/duply -e "1a \
-    export PATH='${stdenv.lib.makeBinPath [ coreutils python3 duplicity gawk gnupg1 bash gnugrep txt2man which ]}'
-    " -e "1a \
-    export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*)
-    "
-    "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1"
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Shell front end for the duplicity backup tool";
-    longDescription = ''
-      Duply is a shell front end for the duplicity backup tool
-      http://duplicity.nongnu.org/. It greatly simplifies it's usage by
-      implementing backup job profiles, batch commands and more. Who says
-      secure backups on non-trusted spaces are no child's play?
-    '';
-    homepage = http://duply.net/;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.bjornfor ];
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/fiche/default.nix b/pkgs/fiche/default.nix
deleted file mode 100644 (file)
index cc67fb0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{ stdenv, mylibs }:
-stdenv.mkDerivation (mylibs.fetchedGithub ./fiche.json // rec {
-  installPhase = ''
-    mkdir -p $out/bin
-    install -m 0755 fiche $out/bin/
-  '';
-})
diff --git a/pkgs/fiche/fiche.json b/pkgs/fiche/fiche.json
deleted file mode 100644 (file)
index 036de7f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "tag": "4bba916-master",
-  "meta": {
-    "name": "fiche",
-    "url": "https://github.com/solusipse/fiche",
-    "branch": "master"
-  },
-  "github": {
-    "owner": "solusipse",
-    "repo": "fiche",
-    "rev": "4bba916e0f4a54d98a3947df7e2d0714d92a8bab",
-    "sha256": "060pxn8ns2zqszv1dlf7zcaf42avn9svya6irwy5d1ry29hp2ds9",
-    "fetchSubmodules": true
-  }
-}
diff --git a/pkgs/mpd_0_21/default.nix b/pkgs/mpd_0_21/default.nix
deleted file mode 100644 (file)
index 4f97e3f..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost, darwin
-# Inputs
-, curl, libmms, libnfs, samba
-# Archive support
-, bzip2, zziplib
-# Codecs
-, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
-, libmad, libmikmod, mpg123, libopus, libvorbis, lame
-# Filters
-, libsamplerate
-# Outputs
-, alsaLib, libjack2, libpulseaudio, libshout
-# Misc
-, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
-# Services
-, yajl
-# Client support
-, mpd_clientlib
-# Tag support
-, libid3tag
-}:
-
-let
-  lib = stdenv.lib;
-
-  featureDependencies = {
-    # Storage plugins
-    udisks        = [ dbus ];
-    webdav        = [ curl expat ];
-    # Input plugins
-    curl          = [ curl ];
-    mms           = [ libmms ];
-    nfs           = [ libnfs ];
-    smbclient     = [ samba ];
-    # Archive support
-    bzip2         = [ bzip2 ];
-    zzip          = [ zziplib ];
-    # Decoder plugins
-    audiofile     = [ audiofile ];
-    faad          = [ faad2 ];
-    ffmpeg        = [ ffmpeg ];
-    flac          = [ flac ];
-    fluidsynth    = [ fluidsynth ];
-    gme           = [ game-music-emu ];
-    mad           = [ libmad ];
-    mikmod        = [ libmikmod ];
-    mpg123        = [ mpg123 ];
-    opus          = [ libopus ];
-    vorbis        = [ libvorbis ];
-    # Encoder plugins
-    vorbisenc     = [ libvorbis ];
-    lame          = [ lame ];
-    # Filter plugins
-    libsamplerate = [ libsamplerate ];
-    # Output plugins
-    alsa          = [ alsaLib ];
-    jack          = [ libjack2 ];
-    pulse         = [ libpulseaudio ];
-    shout         = [ libshout ];
-    # Commercial services
-    qobuz         = [ curl libgcrypt yajl ];
-    soundcloud    = [ curl yajl ];
-    tidal         = [ curl yajl ];
-    # Client support
-    libmpdclient  = [ mpd_clientlib ];
-    # Tag support
-    id3tag        = [ libid3tag ];
-    # Misc
-    dbus          = [ dbus ];
-    expat         = [ expat ];
-    icu           = [ icu ];
-    pcre          = [ pcre ];
-    sqlite        = [ sqlite ];
-    syslog        = [ ];
-    systemd       = [ systemd ];
-    yajl          = [ yajl ];
-    zeroconf      = [ avahi dbus ];
-  };
-
-  run = { features ? null }:
-    let
-      # Disable platform specific features if needed
-      # using libmad to decode mp3 files on darwin is causing a segfault -- there
-      # is probably a solution, but I'm disabling it for now
-      platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smbclient" ]
-                  ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" "syslog" ];
-
-      knownFeatures = builtins.attrNames featureDependencies;
-      platformFeatures = lib.subtractLists platformMask knownFeatures;
-
-      features_ = if (features == null )
-        then platformFeatures
-        else
-          let unknown = lib.subtractLists knownFeatures features; in
-          if (unknown != [])
-            then throw "Unknown feature(s): ${lib.concatStringsSep " " unknown}"
-            else
-              let unsupported = lib.subtractLists platformFeatures features; in
-              if (unsupported != [])
-                then throw "Feature(s) ${lib.concatStringsSep " " unsupported} are not supported on ${stdenv.hostPlatform.system}"
-                else features;
-
-    in stdenv.mkDerivation rec {
-      pname = "mpd";
-      version = "0.21.21";
-
-      src = fetchFromGitHub {
-        owner  = "MusicPlayerDaemon";
-        repo   = "MPD";
-        rev    = "v${version}";
-        sha256 = "0ysyjlmmfm1y5jqyv83bs9p7zqr9pgj1hmdq2b7kx9kridclbnng";
-      };
-
-      buildInputs = [ glib boost ]
-        ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
-        ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ];
-
-      nativeBuildInputs = [ meson ninja pkgconfig ];
-
-      enableParallelBuilding = true;
-
-      mesonAutoFeatures = "disabled";
-      mesonFlags =
-        map (x: "-D${x}=enabled") features_
-        ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures)
-        ++ lib.optional (builtins.elem "zeroconf" features_)
-          "-Dzeroconf=avahi"
-        ++ lib.optional (builtins.elem "systemd" features_)
-          "-Dsystemd_system_unit_dir=etc/systemd/system";
-
-      meta = with stdenv.lib; {
-        description = "A flexible, powerful daemon for playing music";
-        homepage    = "https://www.musicpd.org/";
-        license     = licenses.gpl2;
-        maintainers = with maintainers; [ astsmtl ehmry fpletz tobim ];
-        platforms   = platforms.unix;
-
-        longDescription = ''
-          Music Player Daemon (MPD) is a flexible, powerful daemon for playing
-          music. Through plugins and libraries it can play a variety of sound
-          files while being controlled by its network protocol.
-        '';
-      };
-    };
-in
-{
-  mpd = run { };
-  mpd-small = run { features = [
-    "webdav" "curl" "mms" "bzip2" "zzip"
-    "audiofile" "faad" "flac" "gme" "mad"
-    "mpg123" "opus" "vorbis" "vorbisenc"
-    "lame" "libsamplerate" "shout"
-    "libmpdclient" "id3tag" "expat" "pcre"
-    "yajl" "sqlite"
-    "soundcloud" "qobuz" "tidal"
-  ] ++ lib.optionals stdenv.isLinux [
-    "alsa" "systemd" "syslog"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    "mad" "jack" "nfs"
-  ]; };
-  mpdWithFeatures = run;
-}
diff --git a/pkgs/mpd_0_21/default_old.nix b/pkgs/mpd_0_21/default_old.nix
deleted file mode 100644 (file)
index 129894d..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost168, darwin
-, cmake, libupnp, sndio, chromaprint, soxr, libcdio, libcdio-paranoia, ao, libao
-, openal
-# Inputs
-, curl, libmms, libnfs, samba
-# Archive support
-, bzip2, zziplib
-# Codecs
-, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
-, libmad, libmikmod, mpg123, libopus, libvorbis, lame
-# Filters
-, libsamplerate
-# Outputs
-, alsaLib, libjack2, libpulseaudio, libshout
-# Misc
-, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
-# Services
-, yajl
-# Client support
-, mpd_clientlib
-# Tag support
-, libid3tag
-}:
-
-let
-  major = "0.21";
-  minor = "7";
-
-  lib = stdenv.lib;
-  mkDisable = f: "-D${f}=disabled";
-  mkEnable = f: "-D${f}=enabled";
-  keys = lib.mapAttrsToList (k: v: k);
-
-  featureDependencies = {
-    # Storage plugins
-    udisks        = [ dbus ];
-    webdav        = [ curl expat ];
-    # Input plugins
-    curl          = [ curl ];
-    mms           = [ libmms ];
-    nfs           = [ libnfs ];
-    smbclient     = [ samba ];
-    # Archive support
-    bzip2         = [ bzip2 ];
-    zzip          = [ zziplib ];
-    # Decoder plugins
-    audiofile     = [ audiofile ];
-    faad          = [ faad2 ];
-    ffmpeg        = [ ffmpeg ];
-    flac          = [ flac ];
-    fluidsynth    = [ fluidsynth ];
-    gme           = [ game-music-emu ];
-    mad           = [ libmad ];
-    mikmod        = [ libmikmod ];
-    mpg123        = [ mpg123 ];
-    opus          = [ libopus ];
-    vorbis        = [ libvorbis ];
-    # Encoder plugins
-    vorbisenc     = [ libvorbis ];
-    lame          = [ lame ];
-    # Filter plugins
-    libsamplerate = [ libsamplerate ];
-    # Output plugins
-    alsa          = [ alsaLib ];
-    jack          = [ libjack2 ];
-    pulse         = [ libpulseaudio ];
-    shout         = [ libshout ];
-    # Commercial services
-    qobuz         = [ curl libgcrypt yajl ];
-    soundcloud    = [ curl yajl ];
-    tidal         = [ curl yajl ];
-    # Client support
-    libmpdclient  = [ mpd_clientlib ];
-    # Tag support
-    id3tag        = [ libid3tag ];
-    # Misc
-    dbus          = [ dbus ];
-    expat         = [ expat ];
-    icu           = [ icu ];
-    pcre          = [ pcre ];
-    sqlite        = [ sqlite ];
-    systemd       = [ systemd ];
-    yajl          = [ yajl ];
-    zeroconf      = [ avahi dbus ];
-  };
-
-  run = { features ? null }:
-    let
-      fl = if (features == null )
-        then keys featureDependencies
-        else features;
-
-      # Disable platform specific features if needed
-      # using libmad to decode mp3 files on darwin is causing a segfault -- there
-      # is probably a solution, but I'm disabling it for now
-      platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smb" ]
-                  ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" ];
-      features_ = lib.subtractLists platformMask fl;
-
-    in stdenv.mkDerivation rec {
-      name = "mpd-${version}";
-      version = "${major}${if minor == "" then "" else "." + minor}";
-
-      src = fetchFromGitHub {
-        owner  = "MusicPlayerDaemon";
-        repo   = "MPD";
-        rev    = "v${version}";
-        sha256 = "11zi8hmlj63ngzl06vzx05669k20j4cdsp0caz4p4ayn46fd4m17";
-      };
-
-      buildInputs = [ cmake glib boost168 sndio libupnp chromaprint soxr
-          libcdio libcdio-paranoia ao libao openal libvorbis
-        ]
-        ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
-        ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AudioToolbox;
-
-      nativeBuildInputs = [ meson ninja pkgconfig ];
-
-      enableParallelBuilding = true;
-
-      mesonFlags =
-        map mkEnable features_ ++ map mkDisable (lib.subtractLists features_ (keys featureDependencies))
-        ++ [ "-Dsyslog=enabled" ]
-        ++ lib.optional (lib.any (x: x == "zeroconf") features_)
-          "-Dzeroconf=avahi"
-        ++ lib.optional stdenv.isLinux
-          "-Dsystemd_system_unit_dir=etc/systemd/system";
-
-      meta = with stdenv.lib; {
-        description = "A flexible, powerful daemon for playing music";
-        homepage    = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
-        license     = licenses.gpl2;
-        maintainers = with maintainers; [ astsmtl fuuzetsu ehmry fpletz ];
-        platforms   = platforms.unix;
-
-        longDescription = ''
-          Music Player Daemon (MPD) is a flexible, powerful daemon for playing
-          music. Through plugins and libraries it can play a variety of sound
-          files while being controlled by its network protocol.
-        '';
-      };
-    };
-in
-{
-  mpd = run { };
-  mpd-small = run { features = [
-    "webdav" "curl" "mms" "nfs" "bzip2" "zzip"
-    "audiofile" "faad" "flac" "gme" "mad"
-    "mpg123" "opus" "vorbis"
-    "vorbisenc" "lame" "libsamplerate"
-    "alsa" "shout" "libmpdclient"
-    "id3tag" "expat" "pcre" "yajl" "sqlite"
-    "soundcloud" "qobuz" "tidal"
-    "systemd"
-  ]; };
-}
diff --git a/pkgs/pg_activity/default.nix b/pkgs/pg_activity/default.nix
deleted file mode 100644 (file)
index a20ee8a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-{ python2Packages, mylibs }:
-with python2Packages;
-buildPythonApplication (mylibs.fetchedGithub ./pg_activity.json // {
-  propagatedBuildInputs = [ psycopg2 psutil ];
-})
diff --git a/pkgs/pg_activity/pg_activity.json b/pkgs/pg_activity/pg_activity.json
deleted file mode 100644 (file)
index 4485d9a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "tag": "v1.4.0",
-  "meta": {
-    "name": "pg_activity",
-    "url": "https://github.com/julmon/pg_activity/",
-    "branch": "refs/tags/v1.4.0"
-  },
-  "github": {
-    "owner": "julmon",
-    "repo": "pg_activity",
-    "rev": "f26ae614c204254a805309026eebd5e9230b0214",
-    "sha256": "1bmvgrmna7vz2a6vknxm0k19vl9x7l6hn6vpfd7jgd53rz7c9w5p",
-    "fetchSubmodules": true
-  }
-}
diff --git a/pkgs/python-packages/apprise/apprise.json b/pkgs/python-packages/apprise/apprise.json
deleted file mode 100644 (file)
index b408ea4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "tag": "c9b957c-master",
-  "meta": {
-    "name": "apprise",
-    "url": "https://github.com/caronc/apprise",
-    "branch": "master"
-  },
-  "github": {
-    "owner": "caronc",
-    "repo": "apprise",
-    "rev": "c9b957c4341e7d43e5be6463bd317a7401d083d9",
-    "sha256": "01zz4mh3xvplrm5xalzrcncnh0jq5y51pmdxkr4hdd6dz9wx0mbg",
-    "fetchSubmodules": true
-  }
-}
diff --git a/pkgs/python-packages/apprise/default.nix b/pkgs/python-packages/apprise/default.nix
deleted file mode 100644 (file)
index d310599..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{ mylibs, pythonPackages }: with pythonPackages;
-buildPythonPackage rec {
-  pname = "apprise";
-  version = "0.7.4";
-  src = (mylibs.fetchedGithub ./apprise.json).src;
-  propagatedBuildInputs = [ decorator requests
-    requests_oauthlib oauthlib urllib3 six click markdown pyyaml
-    sleekxmpp
-  ];
-  doChecks = false;
-}
index 94bb5fec7c4ad03f76e46f15bd10c630a7c1cce2..441c5bc05f7e8e9c7892163662705b246da0c551 100644 (file)
@@ -1,6 +1,5 @@
 { mylibs, callPackage, python }:
 {
-  apprise = callPackage ./apprise { inherit mylibs; pythonPackages = python.pkgs; };
   blivet3 = callPackage ./blivet { inherit python; pythonPackages = python.pkgs; };
   buildbot-plugins = callPackage ./buildbot/plugins { inherit python; };
   wokkel = callPackage ./wokkel.nix { pythonPackages = python.pkgs; };
diff --git a/pkgs/signald/default.nix b/pkgs/signald/default.nix
deleted file mode 100644 (file)
index 593e63d..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl
-, makeWrapper }:
-
-let
-  pname = "signald";
-
-  version = "0.13.1";
-
-  # This package uses the .git directory
-  src = fetchgit {
-    url = "https://gitlab.com/signald/signald";
-    rev = version;
-    sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7";
-    leaveDotGit = true;
-  };
-
-  buildConfigJar = fetchurl {
-    url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar";
-    sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
-  };
-
-  patches = [ ./git-describe-always.patch ./gradle-plugin.patch ];
-
-  postPatch = ''
-    patchShebangs gradlew
-    sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
-  '';
-
-  # fake build to pre-download deps into fixed-output derivation
-  deps = stdenv.mkDerivation {
-    name = "${pname}-deps";
-    inherit src version postPatch patches;
-    nativeBuildInputs = [ gradle_6 perl ];
-    buildPhase = ''
-      export GRADLE_USER_HOME=$(mktemp -d)
-      gradle --no-daemon build
-    '';
-    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
-    installPhase = ''
-      find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
-        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
-        | sh
-    '';
-    # Don't move info to share/
-    forceShare = [ "dummy" ];
-    outputHashAlgo = "sha256";
-    outputHashMode = "recursive";
-    outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7";
-  };
-
-in stdenv.mkDerivation rec {
-  inherit pname src version postPatch patches;
-
-  buildPhase = ''
-    export GRADLE_USER_HOME=$(mktemp -d)
-
-    # Use the local packages from -deps
-    sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
-
-    gradle --offline --no-daemon distTar
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
-    wrapProgram $out/bin/signald \
-      --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
-      --set JAVA_HOME "${jre}"
-  '';
-
-  nativeBuildInputs = [ git gradle_6 makeWrapper ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    description = "Unofficial daemon for interacting with Signal";
-    longDescription = ''
-      Signald is a daemon that facilitates communication over Signal.  It is
-      unofficial, unapproved, and not nearly as secure as the real Signal
-      clients.
-    '';
-    homepage = "https://signald.org";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ expipiplus1 ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/signald/git-describe-always.patch b/pkgs/signald/git-describe-always.patch
deleted file mode 100644 (file)
index 2f4830e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/version.sh b/version.sh
-index 7aeeb3c..060cba3 100755
---- a/version.sh
-+++ b/version.sh
-@@ -1,3 +1,3 @@
- #!/bin/sh
--VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count)
-+VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count)
- echo $VERSION
diff --git a/pkgs/signald/gradle-plugin.patch b/pkgs/signald/gradle-plugin.patch
deleted file mode 100644 (file)
index 6952654..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/build.gradle b/build.gradle
-index 11d7a99..66805bb 100644
---- a/build.gradle
-+++ b/build.gradle
-@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
- import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
- import org.xml.sax.SAXParseException
--plugins {
--   id 'de.fuerstenau.buildconfig' version '1.1.8'
-+buildscript {
-+  dependencies {
-+    classpath files ("BuildConfig.jar")
-+  }
- }
-+apply plugin: 'de.fuerstenau.buildconfig'
- apply plugin: 'java'
- apply plugin: 'application'
-@@ -185,4 +188,4 @@ task integrationTest(type: Test) {
-     testClassesDirs = sourceSets.integrationTest.output.classesDirs
-     classpath = sourceSets.integrationTest.runtimeClasspath
-     outputs.upToDateWhen { false }
--}
-\ No newline at end of file
-+}
diff --git a/pkgs/stgit/default.nix b/pkgs/stgit/default.nix
deleted file mode 100644 (file)
index da4f7ec..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Taken from nixpkgs repository
-{ lib
-, fetchFromGitHub
-, installShellFiles
-, python3Packages
-, asciidoc
-, docbook_xsl
-, git
-, perl
-, xmlto
-}:
-
-python3Packages.buildPythonApplication rec {
-  pname = "stgit";
-  version = "1.1";
-
-  src = fetchFromGitHub {
-    owner = "stacked-git";
-    repo = "stgit";
-    rev = "v${version}";
-    sha256 = "sha256-gfPf1yRmx1Mn1TyCBWmjQJBgXLlZrDcew32C9o6uNYk=";
-  };
-
-  nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl ];
-
-  format = "other";
-
-  checkInputs = [ git perl ];
-
-  postPatch = ''
-    for f in Documentation/*.xsl; do
-      substituteInPlace $f \
-        --replace http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \
-                  ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl \
-        --replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
-                  ${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl
-    done
-  '';
-
-  makeFlags = [
-    "prefix=${placeholder "out"}"
-    "MAN_BASE_URL=${placeholder "out"}/share/man"
-    "XMLTO_EXTRA=--skip-validation"
-  ];
-
-  buildFlags = [ "all" ];
-
-  checkTarget = "test";
-  checkFlags = [ "PERL_PATH=${perl}/bin/perl" ];
-
-  installTargets = [ "install" ];
-  postInstall = ''
-    installShellCompletion \
-      --zsh $out/share/stgit/completion/stgit.zsh
-    '';
-
-  meta = with lib; {
-    description = "A patch manager implemented on top of Git";
-    homepage = "https://stacked-git.github.io/";
-    license = licenses.gpl2Only;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ jshholland ];
-  };
-}
diff --git a/pkgs/telegram-cli/default.nix b/pkgs/telegram-cli/default.nix
deleted file mode 100644 (file)
index 87c93e5..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }:
-stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // {
-  buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
-  preBuild = ''
-    sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
-    '';
-  installPhase = ''
-    mkdir -p $out
-    install -Dm755 bin/telegram-cli $out/bin/telegram-cli
-    install -Dm644 tg-server.pub $out/etc/server.pub
-    install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
-    '';
-})
diff --git a/pkgs/telegram-cli/telegram-cli.json b/pkgs/telegram-cli/telegram-cli.json
deleted file mode 100644 (file)
index 2e7ed9a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "tag": "3da0e4a-master",
-  "meta": {
-    "name": "telegram-cli",
-    "url": "https://github.com/kenorb-contrib/tg/",
-    "branch": "master"
-  },
-  "github": {
-    "owner": "kenorb-contrib",
-    "repo": "tg",
-    "rev": "3da0e4a54c3a63cee11aae3c23f2077adfc4949d",
-    "sha256": "0pvswzajipzkk1x5cyf10dw18ka9jalar0aa2i7y23ifm4ddnif4",
-    "fetchSubmodules": true
-  }
-}
diff --git a/pkgs/woob/default.nix b/pkgs/woob/default.nix
deleted file mode 100644 (file)
index 22928b9..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, Babel
-, colorama
-, cssselect
-, dateutil
-, feedparser
-, gdata
-, gnupg
-, html2text
-, libyaml
-, lxml
-, mechanize
-, nose
-, pdfminer
-, pillow
-, prettytable
-, pyqt5
-, pyyaml
-, requests
-, simplejson
-, termcolor
-, unidecode
-}:
-
-buildPythonPackage rec {
-  pname = "woob";
-  version = "3.0";
-  disabled = isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7";
-  };
-
-  nativeBuildInputs = [ pyqt5 ];
-
-  propagatedBuildInputs = [
-    Babel
-    colorama
-    cssselect
-    dateutil
-    feedparser
-    gdata
-    gnupg
-    html2text
-    libyaml
-    lxml
-    mechanize
-    pdfminer
-    pillow
-    prettytable
-    pyqt5
-    pyyaml
-    requests
-    simplejson
-    termcolor
-    unidecode
-  ];
-
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://woob.tech";
-    description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
-    license = licenses.lgpl3Plus;
-    maintainers = [ maintainers.DamienCassou ];
- };
-}
-
diff --git a/pkgs/zrepl/default.nix b/pkgs/zrepl/default.nix
deleted file mode 100644 (file)
index 1e89098..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-{ buildGoModule, fetchFromGitHub }:
-buildGoModule rec {
-  name = "zrepl-${version}";
-  version = "0.3.0";
-  src = fetchFromGitHub {
-    owner  = "zrepl";
-    repo   = "zrepl";
-    rev    = "v${version}";
-    sha256 = "11wfdvi3f4yw7kdapf0l38illnnn7jgi5cp4whrg5zsqyc0wqrym";
-  };
-  modSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
-  vendorSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
-  subPackages = [ "." ];
-}