aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2021-08-25 23:49:34 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2021-09-30 00:40:56 +0200
commit56cfbfb0d8534122d1eaf45ef945d8010f831133 (patch)
tree2707ea14d154a2d6e20e23b73a5462a7448779d3
parent660cb973260f62551294f73e0811b37fc10fd467 (diff)
downloadNix-56cfbfb0d8534122d1eaf45ef945d8010f831133.tar.gz
Nix-56cfbfb0d8534122d1eaf45ef945d8010f831133.tar.zst
Nix-56cfbfb0d8534122d1eaf45ef945d8010f831133.zip
Move packages to flakes
-rw-r--r--flakes/backports/flake.lock42
-rw-r--r--flakes/backports/flake.nix100
-rw-r--r--overlays/default.nix2
-rw-r--r--overlays/python-packages/default.nix1
-rw-r--r--overlays/weboob/default.nix8
-rw-r--r--overlays/weboob/weboob.nix67
-rw-r--r--pkgs/bitlbee-mastodon/default.nix30
-rw-r--r--pkgs/cryptpad/bower-packages.nix42
-rw-r--r--pkgs/cryptpad/default.nix70
-rwxr-xr-xpkgs/cryptpad/generate.sh11
-rw-r--r--pkgs/cryptpad/node-env.nix567
-rw-r--r--pkgs/cryptpad/node-packages-generated.nix754
-rw-r--r--pkgs/cryptpad/node-packages.json3
-rw-r--r--pkgs/cryptpad/node-packages.nix17
-rw-r--r--pkgs/default.nix17
-rw-r--r--pkgs/dovecot/plugins/fts_xapian/default.nix14
-rw-r--r--pkgs/dovecot/plugins/fts_xapian/fts-xapian.json15
-rw-r--r--pkgs/duply/default.nix40
-rw-r--r--pkgs/fiche/default.nix7
-rw-r--r--pkgs/fiche/fiche.json15
-rw-r--r--pkgs/mpd_0_21/default.nix162
-rw-r--r--pkgs/mpd_0_21/default_old.nix156
-rw-r--r--pkgs/pg_activity/default.nix5
-rw-r--r--pkgs/pg_activity/pg_activity.json15
-rw-r--r--pkgs/python-packages/apprise/apprise.json15
-rw-r--r--pkgs/python-packages/apprise/default.nix11
-rw-r--r--pkgs/python-packages/default.nix1
-rw-r--r--pkgs/signald/default.nix87
-rw-r--r--pkgs/signald/git-describe-always.patch9
-rw-r--r--pkgs/signald/gradle-plugin.patch26
-rw-r--r--pkgs/stgit/default.nix64
-rw-r--r--pkgs/telegram-cli/default.nix13
-rw-r--r--pkgs/telegram-cli/telegram-cli.json15
-rw-r--r--pkgs/woob/default.nix72
-rw-r--r--pkgs/zrepl/default.nix14
35 files changed, 143 insertions, 2344 deletions
diff --git a/flakes/backports/flake.lock b/flakes/backports/flake.lock
new file mode 100644
index 0000000..0a2de64
--- /dev/null
+++ b/flakes/backports/flake.lock
@@ -0,0 +1,42 @@
1{
2 "nodes": {
3 "flake-utils": {
4 "locked": {
5 "lastModified": 1629481132,
6 "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
7 "owner": "numtide",
8 "repo": "flake-utils",
9 "rev": "997f7efcb746a9c140ce1f13c72263189225f482",
10 "type": "github"
11 },
12 "original": {
13 "owner": "numtide",
14 "repo": "flake-utils",
15 "type": "github"
16 }
17 },
18 "nixpkgs": {
19 "locked": {
20 "lastModified": 1629925853,
21 "narHash": "sha256-gK2Q0o3Ov5/xT7XhCPbtfoFQ0Ty1Mu2aeWcNX6+XzjQ=",
22 "owner": "NixOS",
23 "repo": "nixpkgs",
24 "rev": "9e98c9db932a19bbd8fd4d3f879cd94f66270a43",
25 "type": "github"
26 },
27 "original": {
28 "owner": "NixOS",
29 "repo": "nixpkgs",
30 "type": "github"
31 }
32 },
33 "root": {
34 "inputs": {
35 "flake-utils": "flake-utils",
36 "nixpkgs": "nixpkgs"
37 }
38 }
39 },
40 "root": "root",
41 "version": 7
42}
diff --git a/flakes/backports/flake.nix b/flakes/backports/flake.nix
new file mode 100644
index 0000000..89a9f40
--- /dev/null
+++ b/flakes/backports/flake.nix
@@ -0,0 +1,100 @@
1{
2 description = "Backported packages";
3
4 inputs.nixpkgs.url = "github:NixOS/nixpkgs";
5 inputs.flake-utils.url = "github:numtide/flake-utils";
6
7 outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
8 let
9 pkgs = import nixpkgs { inherit system; overlays = []; };
10 in rec {
11 packages = {
12 apprise = pkgs.apprise;
13 bitlbee-mastodon = pkgs.bitlbee-mastodon;
14 cointop = pkgs.cointop;
15 cryptpad = pkgs.cryptpad;
16 dovecot_fts-xapian = pkgs.dovecot_fts_xapian;
17 duply = pkgs.duply;
18 fiche = pkgs.fiche;
19 influxdb2 = pkgs.influxdb2;
20 mpd = pkgs.mpd;
21 mpd-small = pkgs.mpd-small;
22 pg_activity = pkgs.pg_activity;
23 signald = pkgs.signald;
24 stgit = pkgs.stgit;
25 telegram-cli = pkgs.telegram-cli;
26 woob = pkgs.python3Packages.woob;
27 zrepl = pkgs.zrepl;
28 };
29 legacyPackages = packages;
30 apps = {
31 apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; };
32 cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; };
33 cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; };
34 duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; };
35 fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; };
36 influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; };
37 influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; };
38 mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; };
39 mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; };
40 pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; };
41 signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; };
42 stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
43 telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; };
44 woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; };
45 zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; };
46 };
47 }
48 ) // rec {
49 lib = {
50 overrideDeps = pkgs: package: let
51 packageDeps = builtins.attrNames package.override.__functionArgs;
52 in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}"));
53 };
54 overlays = {
55 apprise = final: prev: { apprise = self.packages."${final.system}".apprise; };
56 bitlbee-mastodon = final: prev: {
57 bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon;
58 };
59 cointop = final: prev: { cointop = self.packages."${final.system}".cointop; };
60 cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; };
61 dovecot_fts-xapian = final: prev: {
62 dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian;
63 };
64 duply = final: prev: { duply = self.packages."${final.system}".duply; };
65 fiche = final: prev: { fiche = self.packages."${final.system}".fiche; };
66 influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; };
67 mpd = final: prev: { mpd = self.packages."${final.system}".mpd; };
68 pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; };
69 signald = final: prev: { signald = self.packages."${final.system}".signald; };
70 stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
71 telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; };
72 woob = final: prev: { woob = self.packages."${final.system}".woob; };
73 zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; };
74 };
75 overlay = final: prev: ({}
76 // overlays.apprise final prev
77 // overlays.bitlbee-mastodon final prev
78 // overlays.cointop final prev
79 // overlays.cryptpad final prev
80 // overlays.dovecot_fts-xapian final prev
81 // overlays.duply final prev
82 // overlays.fiche final prev
83 // overlays.influxdb2 final prev
84 // overlays.mpd final prev
85 // overlays.pg_activity final prev
86 // overlays.signald final prev
87 // overlays.stgit final prev
88 // overlays.telegram-cli final prev
89 // overlays.woob final prev
90 // overlays.zrepl final prev
91 );
92
93 nixosModules = {
94 influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix");
95 mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix");
96 zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix");
97 };
98 };
99}
100
diff --git a/overlays/default.nix b/overlays/default.nix
index 9b0615a..b01dd81 100644
--- a/overlays/default.nix
+++ b/overlays/default.nix
@@ -1,6 +1,7 @@
1let 1let
2 flakeCompat = import ../lib/flake-compat.nix; 2 flakeCompat = import ../lib/flake-compat.nix;
3 flakes = builtins.foldl' (a: b: a // b) {} (map (n: (flakeCompat n).overlays) [ 3 flakes = builtins.foldl' (a: b: a // b) {} (map (n: (flakeCompat n).overlays) [
4 ../flakes/backports
4 ../flakes/libspf2 5 ../flakes/libspf2
5 ../flakes/openarc 6 ../flakes/openarc
6 ../flakes/opendmarc 7 ../flakes/opendmarc
@@ -39,7 +40,6 @@ in flakes // {
39 sudo = import ./sudo; 40 sudo = import ./sudo;
40 taskwarrior = import ./taskwarrior; 41 taskwarrior = import ./taskwarrior;
41 vcsh = import ./vcsh; 42 vcsh = import ./vcsh;
42 weboob = import ./weboob;
43 weechat = import ./weechat; 43 weechat = import ./weechat;
44 ympd = import ./ympd; 44 ympd = import ./ympd;
45 doing = import ./doing; 45 doing = import ./doing;
diff --git a/overlays/python-packages/default.nix b/overlays/python-packages/default.nix
index 11dea09..601eed1 100644
--- a/overlays/python-packages/default.nix
+++ b/overlays/python-packages/default.nix
@@ -22,7 +22,6 @@ in
22 } // super.lib.attrsets.listToAttrs overriddenPythons; 22 } // super.lib.attrsets.listToAttrs overriddenPythons;
23 23
24 24
25 apprise = fromMyPythonPackages "apprise";
26 blivet3 = fromMyPythonPackages "blivet3"; 25 blivet3 = fromMyPythonPackages "blivet3";
27 buildbot = import ./buildbot.nix; 26 buildbot = import ./buildbot.nix;
28 wokkel = fromMyPythonPackages "wokkel"; 27 wokkel = fromMyPythonPackages "wokkel";
diff --git a/overlays/weboob/default.nix b/overlays/weboob/default.nix
deleted file mode 100644
index 6e5656b..0000000
--- a/overlays/weboob/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
1self: super: {
2 weboob = self.callPackage ./weboob.nix {
3 inherit (super.python3Packages) buildPythonPackage fetchPypi nose
4 pillow prettytable pyyaml dateutil gdata requests feedparser lxml
5 pyqt5 simplejson cssselect pdfminer termcolor
6 google_api_python_client unidecode Babel html5lib html2text;
7 };
8}
diff --git a/overlays/weboob/weboob.nix b/overlays/weboob/weboob.nix
deleted file mode 100644
index faafbc4..0000000
--- a/overlays/weboob/weboob.nix
+++ /dev/null
@@ -1,67 +0,0 @@
1{ buildPythonPackage, fetchurl, fetchPypi, stdenv
2, nose, pillow, prettytable, pyyaml, dateutil, gdata
3, requests, feedparser, lxml, gnupg, pyqt5
4, libyaml, simplejson, cssselect, pdfminer
5, termcolor, google_api_python_client, html2text
6, unidecode, html5lib, Babel
7}:
8let
9 mechanize = buildPythonPackage rec {
10 pname = "mechanize";
11 version = "0.4.4";
12 src = fetchPypi {
13 inherit version pname;
14 sha256 = "9fff89e973bdf1aee75a351bd4dde53ca51a7e76944ddeae3ea3b6ad6c46045c";
15 };
16 propagatedBuildInputs = [ html5lib ];
17 doCheck = false;
18 };
19in
20
21buildPythonPackage rec {
22 pname = "weboob";
23 version = "2.0";
24
25 src = fetchurl {
26 url = "https://symlink.me/attachments/download/356/${pname}-${version}.tar.gz";
27 sha256 = "1p0wd6k28s0cdxkrj5s6vmi120w6v5vfxxyddqg7s2xjxv6mbbbm";
28 };
29
30 postPatch = ''
31 # Disable doctests that require networking:
32 sed -i -n -e '/^ *def \+pagination *(.*: *$/ {
33 p; n; p; /"""\|'\'\'\'''/!b
34
35 :loop
36 n; /^ *\(>>>\|\.\.\.\)/ { h; bloop }
37 x; /^ *\(>>>\|\.\.\.\)/bloop; x
38 p; /"""\|'\'\'\'''/b
39 bloop
40 }; p' weboob/browser/browsers.py weboob/browser/pages.py
41 '';
42
43 postInstall = ''
44 mkdir -p $out/share/bash-completion/completions/
45 cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
46 '';
47
48 checkInputs = [ nose ];
49
50 nativeBuildInputs = [ pyqt5 ];
51
52 propagatedBuildInputs = [ pillow prettytable pyyaml dateutil
53 gdata requests feedparser lxml gnupg pyqt5 libyaml
54 simplejson cssselect mechanize pdfminer termcolor
55 google_api_python_client html2text unidecode Babel ];
56
57 checkPhase = ''
58 nosetests
59 '';
60
61 meta = {
62 homepage = http://weboob.org;
63 description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
64 license = stdenv.lib.licenses.agpl3;
65 };
66}
67
diff --git a/pkgs/bitlbee-mastodon/default.nix b/pkgs/bitlbee-mastodon/default.nix
deleted file mode 100644
index 385db75..0000000
--- a/pkgs/bitlbee-mastodon/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
1{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, bitlbee, glib, lib }:
2stdenv.mkDerivation rec {
3 name = "bitlbee-mastodon-${version}";
4 version = "v1.4.4";
5
6 src = fetchFromGitHub {
7 rev = version;
8 owner = "kensanata";
9 repo = "bitlbee-mastodon";
10 sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
11 };
12
13 nativeBuildInputs = [ autoreconfHook pkgconfig ];
14 buildInputs = [ bitlbee glib ];
15
16 preConfigure = ''
17 export BITLBEE_PLUGINDIR=$out/lib/bitlbee
18 export BITLBEE_DATADIR=$out/share/bitlbee
19 chmod +x autogen.sh
20 ./autogen.sh
21 '';
22
23 meta = {
24 description = "Bitlbee plugin for Mastodon";
25
26 homepage = https://github.com/kensanata/bitlbee-mastodon;
27 license = lib.licenses.gpl2Plus;
28 platforms = lib.platforms.linux;
29 };
30}
diff --git a/pkgs/cryptpad/bower-packages.nix b/pkgs/cryptpad/bower-packages.nix
deleted file mode 100644
index 80ce9b5..0000000
--- a/pkgs/cryptpad/bower-packages.nix
+++ /dev/null
@@ -1,42 +0,0 @@
1# Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
2{ fetchbower, buildEnv }:
3buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
4 (fetchbower "jquery" "2.1.0" "~2.1.0" "02kwvz93vzpv10qnp7s0dz3al0jh77awwrizb6wadsvgifxssnlr")
5 (fetchbower "jquery" "2.2.4" "2.2.4" "0kaln93pzjlr4vqf2zvsm9dwgjkrii9xlsqg48hc1vs16cl109rn")
6 (fetchbower "tweetnacl" "0.12.2" "0.12.2" "1lfzbfrdaly3zyzbcp1p53yhxlrx56k8x04q924kg7l52gblm65g")
7 (fetchbower "components-font-awesome" "4.7.0" "^4.6.3" "1w27im6ayjrbgjqa0i49ml5d3wy4ld40h9b29hz9myv77bpx4lg1")
8 (fetchbower "ckeditor" "4.14.0" "4.14.0" "0lw9q0k8c0jlxvf35vrccab9c3c8rgpc6x66czj9si8yy2lyliyp")
9 (fetchbower "codemirror" "5.56.0+components1" "^5.19.0" "0fv8rxw6dspyv4bl6p2aka57544f45527rallnhnm5scv77qnakm")
10 (fetchbower "requirejs" "2.3.5" "2.3.5" "05lyvgz914h2w08r24rk0vkk3yxmqrvlg7j3i5av9ffkg9lpzsli")
11 (fetchbower "marked" "1.1.0" "1.1.0" "1sdgqw9iki9c1pfm4c5h6c956mchbip2jywjrcmrlb75k53flsjz")
12 (fetchbower "rangy" "rangy-release#1.3.0" "rangy-release#~1.3.0" "13x3wci003p8jyv2ncir0k23bxckx99b3555r0zvgmlwycg7w0zv")
13 (fetchbower "json.sortify" "2.1.0" "~2.1.0" "1rz9xz0gnm4ak31n10vhslqsw8fw493gjylwj8xsy3bxqq1ygpnh")
14 (fetchbower "secure-fabric.js" "secure-v1.7.9" "secure-v1.7.9" "1l56mk7hbnsm9cdg5zdcmg95p7a9w96dq0bbl8fp11vs0awjil7a")
15 (fetchbower "hyperjson" "1.4.0" "~1.4.0" "1n68ls3x4lyhg1yy8i4q3xkgh5xqpyakf45sny4x91mkr68x4bd9")
16 (fetchbower "chainpad-crypto" "0.2.4" "^0.2.0" "0sqqc2j0pc34ig6319n18i85j03hibqkhz3cbr70vbd8x43vfzby")
17 (fetchbower "chainpad-listmap" "0.10.0" "^0.10.0" "0qh9pv33v5aqfir9mvm4wqdgryj90b78dl0shn9cxfy9xlc0m8w5")
18 (fetchbower "chainpad" "5.2.2" "^5.2.0" "1rmh039bqk11xnnh99sqrqksr4idly75y5q4f5wyl9cg4slsqrdp")
19 (fetchbower "file-saver" "1.3.1" "1.3.1" "065nzkvdiicxnw06z1sjz1sbp9nyis8z839hv6ng1fk25dc5kvkg")
20 (fetchbower "alertifyjs" "1.0.11" "1.0.11" "0v7323bzq90k35shm3h6azj4wd9la3kbi1va1pw4qyvndkwma69l")
21 (fetchbower "scrypt-async" "1.2.0" "1.2.0" "0d076ax708p9b8hcmk4f82j925nlnm0hmp0ni45ql37g7iirfpyv")
22 (fetchbower "require-css" "0.1.10" "0.1.10" "106gz9i76v71q9zx2pnqkkj342m630lvssnw54023a0ljc0gqcwq")
23 (fetchbower "less" "3.7.1" "3.7.1" "1n7ps4xlbrc9m63b3q62mg3p6i7d5hwchhpjshb0drzj5crvz556")
24 (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
25 (fetchbower "bootstrap" "4.5.0" "^v4.0.0" "0cfdn6z8jwx6y8lbbq6xpkfhq2vra0i84nkj9ji2bil1fzgzi40f")
26 (fetchbower "diff-dom" "2.1.1" "2.1.1" "0nrn6xqlhp0p5ixjxdk8qg3939crkggh1l8swd20d7bsz186l5f1")
27 (fetchbower "nthen" "0.1.7" "0.1.7" "03yap5ildigaw4rwxmxs37pcwhq415iham8w39zd56ka98gpfxa5")
28 (fetchbower "open-sans-fontface" "1.4.2" "^1.4.2" "0ksav1fcq640fmdz49ra4prwsrrfj35y2p4shx1jh1j7zxd044nf")
29 (fetchbower "bootstrap-tokenfield" "0.12.1" "^0.12.1" "0ib1v5k8h360sp19yiy7q92rfaz2554fvwwg2ixmxn01ydqlprw6")
30 (fetchbower "localforage" "1.8.1" "^1.5.2" "0ci265385racnxvn4g1n672yaxi47msw6k042nxdb5vlpf5g327j")
31 (fetchbower "html2canvas" "0.4.1" "^0.4.1" "0yg7y90nav068q0i5afc2c221zkddpf28hi0hwc46cawx4180c69")
32 (fetchbower "croppie" "2.6.5" "^2.5.0" "1j1v5620zi13ad42r358i4ay891abwn6nz357484kgq2bgjj6ccx")
33 (fetchbower "sortablejs" "1.10.2" "^1.6.0" "10q4gyblhjy7w51clr0k9j7h722l4ybzn5535givwpmp6xagv11v")
34 (fetchbower "saferphore" "0.0.1" "^0.0.1" "1wfr9wpbm3lswmvy2p0247ydb108h4qh5s286py89k871qh6jwdi")
35 (fetchbower "jszip" "Stuk/jszip#3.5.0" "Stuk/jszip#^3.1.5" "1ra19d82cq1hrnbw88l8c61bs12kpgxvbfiiwpfi8fhy0l8hcsvk")
36 (fetchbower "requirejs-plugins" "1.0.3" "^1.0.3" "00s3sdz1ykygx5shldwhhhybwgw7c99vkqd94i5i5x0gl97ifxf5")
37 (fetchbower "dragula.js" "3.7.2" "3.7.2" "0dbkmrl8bcxiplprmmp9fj96ri5nahb2ql8cc7zwawncv0drvlh0")
38 (fetchbower "MathJax" "3.0.5" "3.0.5" "087a9av15qj43m8pr3b9g59ncmydhmg40m6dfzsac62ykianh2a0")
39 (fetchbower "chainpad-netflux" "0.12.0" "^0.12.0" "1miym3fiyi0mxmrkb3c96fgr2zbcbmmb38sg0jr4d3inxf6r00zp")
40 (fetchbower "netflux-websocket" "0.1.20" "^0.1.20" "1xwqq7nw7fmhglndbplarkdzxfmkq831aqs8nm6qj0hz2ggbibhz")
41 (fetchbower "es6-promise" "3.3.1" "^3.2.2" "0ai6z5admfs84fdx6663ips49kqgz4x68ays78cic0xfb7pp6vcz")
42]; }
diff --git a/pkgs/cryptpad/default.nix b/pkgs/cryptpad/default.nix
deleted file mode 100644
index 1e8c756..0000000
--- a/pkgs/cryptpad/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
1# taken from nixpkgs to upgrade to latest version
2{ stdenv
3, pkgs
4, lib
5, buildBowerComponents
6, fetchurl
7, nodejs
8}:
9
10let
11 nodePackages = import ./node-packages.nix {
12 inherit pkgs nodejs;
13 inherit (stdenv.hostPlatform) system;
14 };
15
16 bowerPackages = buildBowerComponents {
17 name = "${cryptpad.name}-bower-packages";
18 # this list had to be tweaked by hand:
19 # * add the second jquery ~2.1.0 entry
20 # * add the second bootstrap ~3.1.1 entry
21 generated = ./bower-packages.nix;
22 src = cryptpad.src;
23 };
24
25 # find an element in an attribute set
26 findValue = pred: default: set:
27 let
28 list =
29 lib.concatMap
30 (name:
31 let v = set.${name}; in
32 if pred name v then [v] else []
33 )
34 (lib.attrNames set)
35 ;
36 in
37 if list == [] then default
38 else lib.head list
39 ;
40
41 # The cryptpad package attribute key changes for each release. Get it out
42 # programatically instead.
43 cryptpad = findValue
44 (k: v: v.packageName == "cryptpad")
45 (throw "cryptpad not found")
46 nodePackages
47 ;
48
49 combined = cryptpad.override {
50 postInstall = ''
51 out_cryptpad=$out/lib/node_modules/cryptpad
52
53 substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
54
55 # add the bower components
56 ln -sv \
57 ${bowerPackages}/bower_components \
58 $out_cryptpad/www/bower_components
59
60 # add executable
61 mkdir $out/bin
62 cat <<EOF > $out/bin/cryptpad
63 #!${stdenv.shell}
64 exec ${nodejs}/bin/node $out_cryptpad/server.js
65 EOF
66 chmod +x $out/bin/cryptpad
67 '';
68 };
69in
70 combined
diff --git a/pkgs/cryptpad/generate.sh b/pkgs/cryptpad/generate.sh
deleted file mode 100755
index 697b5a7..0000000
--- a/pkgs/cryptpad/generate.sh
+++ /dev/null
@@ -1,11 +0,0 @@
1#!/usr/bin/env nix-shell
2#! nix-shell -i bash -I nixpkgs=../../../.. -p nodePackages.node2nix nodePackages.bower2nix
3set -euo pipefail
4
5node2nix --nodejs-12 \
6 --input node-packages.json \
7 --output node-packages-generated.nix \
8 --composition node-packages.nix \
9 --node-env ../../../development/node-packages/node-env.nix \
10
11# TODO: bower2nix > bower-packages.nix
diff --git a/pkgs/cryptpad/node-env.nix b/pkgs/cryptpad/node-env.nix
deleted file mode 100644
index c2b7231..0000000
--- a/pkgs/cryptpad/node-env.nix
+++ /dev/null
@@ -1,567 +0,0 @@
1# This file originates from node2nix
2
3{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
4
5let
6 # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
7 utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
8
9 python = if nodejs ? python then nodejs.python else python2;
10
11 # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
12 tarWrapper = runCommand "tarWrapper" {} ''
13 mkdir -p $out/bin
14
15 cat > $out/bin/tar <<EOF
16 #! ${stdenv.shell} -e
17 $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
18 EOF
19
20 chmod +x $out/bin/tar
21 '';
22
23 # Function that generates a TGZ file from a NPM project
24 buildNodeSourceDist =
25 { name, version, src, ... }:
26
27 stdenv.mkDerivation {
28 name = "node-tarball-${name}-${version}";
29 inherit src;
30 buildInputs = [ nodejs ];
31 buildPhase = ''
32 export HOME=$TMPDIR
33 tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
34 '';
35 installPhase = ''
36 mkdir -p $out/tarballs
37 mv $tgzFile $out/tarballs
38 mkdir -p $out/nix-support
39 echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
40 '';
41 };
42
43 includeDependencies = {dependencies}:
44 lib.optionalString (dependencies != [])
45 (lib.concatMapStrings (dependency:
46 ''
47 # Bundle the dependencies of the package
48 mkdir -p node_modules
49 cd node_modules
50
51 # Only include dependencies if they don't exist. They may also be bundled in the package.
52 if [ ! -e "${dependency.name}" ]
53 then
54 ${composePackage dependency}
55 fi
56
57 cd ..
58 ''
59 ) dependencies);
60
61 # Recursively composes the dependencies of a package
62 composePackage = { name, packageName, src, dependencies ? [], ... }@args:
63 builtins.addErrorContext "while evaluating node package '${packageName}'" ''
64 DIR=$(pwd)
65 cd $TMPDIR
66
67 unpackFile ${src}
68
69 # Make the base dir in which the target dependency resides first
70 mkdir -p "$(dirname "$DIR/${packageName}")"
71
72 if [ -f "${src}" ]
73 then
74 # Figure out what directory has been unpacked
75 packageDir="$(find . -maxdepth 1 -type d | tail -1)"
76
77 # Restore write permissions to make building work
78 find "$packageDir" -type d -exec chmod u+x {} \;
79 chmod -R u+w "$packageDir"
80
81 # Move the extracted tarball into the output folder
82 mv "$packageDir" "$DIR/${packageName}"
83 elif [ -d "${src}" ]
84 then
85 # Get a stripped name (without hash) of the source directory.
86 # On old nixpkgs it's already set internally.
87 if [ -z "$strippedName" ]
88 then
89 strippedName="$(stripHash ${src})"
90 fi
91
92 # Restore write permissions to make building work
93 chmod -R u+w "$strippedName"
94
95 # Move the extracted directory into the output folder
96 mv "$strippedName" "$DIR/${packageName}"
97 fi
98
99 # Unset the stripped name to not confuse the next unpack step
100 unset strippedName
101
102 # Include the dependencies of the package
103 cd "$DIR/${packageName}"
104 ${includeDependencies { inherit dependencies; }}
105 cd ..
106 ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
107 '';
108
109 pinpointDependencies = {dependencies, production}:
110 let
111 pinpointDependenciesFromPackageJSON = writeTextFile {
112 name = "pinpointDependencies.js";
113 text = ''
114 var fs = require('fs');
115 var path = require('path');
116
117 function resolveDependencyVersion(location, name) {
118 if(location == process.env['NIX_STORE']) {
119 return null;
120 } else {
121 var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
122
123 if(fs.existsSync(dependencyPackageJSON)) {
124 var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
125
126 if(dependencyPackageObj.name == name) {
127 return dependencyPackageObj.version;
128 }
129 } else {
130 return resolveDependencyVersion(path.resolve(location, ".."), name);
131 }
132 }
133 }
134
135 function replaceDependencies(dependencies) {
136 if(typeof dependencies == "object" && dependencies !== null) {
137 for(var dependency in dependencies) {
138 var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
139
140 if(resolvedVersion === null) {
141 process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
142 } else {
143 dependencies[dependency] = resolvedVersion;
144 }
145 }
146 }
147 }
148
149 /* Read the package.json configuration */
150 var packageObj = JSON.parse(fs.readFileSync('./package.json'));
151
152 /* Pinpoint all dependencies */
153 replaceDependencies(packageObj.dependencies);
154 if(process.argv[2] == "development") {
155 replaceDependencies(packageObj.devDependencies);
156 }
157 replaceDependencies(packageObj.optionalDependencies);
158
159 /* Write the fixed package.json file */
160 fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
161 '';
162 };
163 in
164 ''
165 node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
166
167 ${lib.optionalString (dependencies != [])
168 ''
169 if [ -d node_modules ]
170 then
171 cd node_modules
172 ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
173 cd ..
174 fi
175 ''}
176 '';
177
178 # Recursively traverses all dependencies of a package and pinpoints all
179 # dependencies in the package.json file to the versions that are actually
180 # being used.
181
182 pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
183 ''
184 if [ -d "${packageName}" ]
185 then
186 cd "${packageName}"
187 ${pinpointDependencies { inherit dependencies production; }}
188 cd ..
189 ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
190 fi
191 '';
192
193 # Extract the Node.js source code which is used to compile packages with
194 # native bindings
195 nodeSources = runCommand "node-sources" {} ''
196 tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
197 mv node-* $out
198 '';
199
200 # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
201 addIntegrityFieldsScript = writeTextFile {
202 name = "addintegrityfields.js";
203 text = ''
204 var fs = require('fs');
205 var path = require('path');
206
207 function augmentDependencies(baseDir, dependencies) {
208 for(var dependencyName in dependencies) {
209 var dependency = dependencies[dependencyName];
210
211 // Open package.json and augment metadata fields
212 var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
213 var packageJSONPath = path.join(packageJSONDir, "package.json");
214
215 if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
216 console.log("Adding metadata fields to: "+packageJSONPath);
217 var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
218
219 if(dependency.integrity) {
220 packageObj["_integrity"] = dependency.integrity;
221 } else {
222 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.
223 }
224
225 if(dependency.resolved) {
226 packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
227 } else {
228 packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
229 }
230
231 if(dependency.from !== undefined) { // Adopt from property if one has been provided
232 packageObj["_from"] = dependency.from;
233 }
234
235 fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
236 }
237
238 // Augment transitive dependencies
239 if(dependency.dependencies !== undefined) {
240 augmentDependencies(packageJSONDir, dependency.dependencies);
241 }
242 }
243 }
244
245 if(fs.existsSync("./package-lock.json")) {
246 var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
247
248 if(![1, 2].includes(packageLock.lockfileVersion)) {
249 process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
250 process.exit(1);
251 }
252
253 if(packageLock.dependencies !== undefined) {
254 augmentDependencies(".", packageLock.dependencies);
255 }
256 }
257 '';
258 };
259
260 # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
261 reconstructPackageLock = writeTextFile {
262 name = "addintegrityfields.js";
263 text = ''
264 var fs = require('fs');
265 var path = require('path');
266
267 var packageObj = JSON.parse(fs.readFileSync("package.json"));
268
269 var lockObj = {
270 name: packageObj.name,
271 version: packageObj.version,
272 lockfileVersion: 1,
273 requires: true,
274 dependencies: {}
275 };
276
277 function augmentPackageJSON(filePath, dependencies) {
278 var packageJSON = path.join(filePath, "package.json");
279 if(fs.existsSync(packageJSON)) {
280 var packageObj = JSON.parse(fs.readFileSync(packageJSON));
281 dependencies[packageObj.name] = {
282 version: packageObj.version,
283 integrity: "sha1-000000000000000000000000000=",
284 dependencies: {}
285 };
286 processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
287 }
288 }
289
290 function processDependencies(dir, dependencies) {
291 if(fs.existsSync(dir)) {
292 var files = fs.readdirSync(dir);
293
294 files.forEach(function(entry) {
295 var filePath = path.join(dir, entry);
296 var stats = fs.statSync(filePath);
297
298 if(stats.isDirectory()) {
299 if(entry.substr(0, 1) == "@") {
300 // When we encounter a namespace folder, augment all packages belonging to the scope
301 var pkgFiles = fs.readdirSync(filePath);
302
303 pkgFiles.forEach(function(entry) {
304 if(stats.isDirectory()) {
305 var pkgFilePath = path.join(filePath, entry);
306 augmentPackageJSON(pkgFilePath, dependencies);
307 }
308 });
309 } else {
310 augmentPackageJSON(filePath, dependencies);
311 }
312 }
313 });
314 }
315 }
316
317 processDependencies("node_modules", lockObj.dependencies);
318
319 fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
320 '';
321 };
322
323 prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
324 let
325 forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
326 in
327 ''
328 # Pinpoint the versions of all dependencies to the ones that are actually being used
329 echo "pinpointing versions of dependencies..."
330 source $pinpointDependenciesScriptPath
331
332 # Patch the shebangs of the bundled modules to prevent them from
333 # calling executables outside the Nix store as much as possible
334 patchShebangs .
335
336 # Deploy the Node.js package by running npm install. Since the
337 # dependencies have been provided already by ourselves, it should not
338 # attempt to install them again, which is good, because we want to make
339 # it Nix's responsibility. If it needs to install any dependencies
340 # anyway (e.g. because the dependency parameters are
341 # incomplete/incorrect), it fails.
342 #
343 # The other responsibilities of NPM are kept -- version checks, build
344 # steps, postprocessing etc.
345
346 export HOME=$TMPDIR
347 cd "${packageName}"
348 runHook preRebuild
349
350 ${lib.optionalString bypassCache ''
351 ${lib.optionalString reconstructLock ''
352 if [ -f package-lock.json ]
353 then
354 echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
355 echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
356 rm package-lock.json
357 else
358 echo "No package-lock.json file found, reconstructing..."
359 fi
360
361 node ${reconstructPackageLock}
362 ''}
363
364 node ${addIntegrityFieldsScript}
365 ''}
366
367 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
368
369 if [ "''${dontNpmInstall-}" != "1" ]
370 then
371 # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
372 rm -f npm-shrinkwrap.json
373
374 npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
375 fi
376 '';
377
378 # Builds and composes an NPM package including all its dependencies
379 buildNodePackage =
380 { name
381 , packageName
382 , version
383 , dependencies ? []
384 , buildInputs ? []
385 , production ? true
386 , npmFlags ? ""
387 , dontNpmInstall ? false
388 , bypassCache ? false
389 , reconstructLock ? false
390 , preRebuild ? ""
391 , dontStrip ? true
392 , unpackPhase ? "true"
393 , buildPhase ? "true"
394 , ... }@args:
395
396 let
397 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
398 in
399 stdenv.mkDerivation ({
400 name = "node_${name}-${version}";
401 buildInputs = [ tarWrapper python nodejs ]
402 ++ lib.optional (stdenv.isLinux) utillinux
403 ++ lib.optional (stdenv.isDarwin) libtool
404 ++ buildInputs;
405
406 inherit nodejs;
407
408 inherit dontStrip; # Stripping may fail a build for some package deployments
409 inherit dontNpmInstall preRebuild unpackPhase buildPhase;
410
411 compositionScript = composePackage args;
412 pinpointDependenciesScript = pinpointDependenciesOfPackage args;
413
414 passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
415
416 installPhase = ''
417 # Create and enter a root node_modules/ folder
418 mkdir -p $out/lib/node_modules
419 cd $out/lib/node_modules
420
421 # Compose the package and all its dependencies
422 source $compositionScriptPath
423
424 ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
425
426 # Create symlink to the deployed executable folder, if applicable
427 if [ -d "$out/lib/node_modules/.bin" ]
428 then
429 ln -s $out/lib/node_modules/.bin $out/bin
430 fi
431
432 # Create symlinks to the deployed manual page folders, if applicable
433 if [ -d "$out/lib/node_modules/${packageName}/man" ]
434 then
435 mkdir -p $out/share
436 for dir in "$out/lib/node_modules/${packageName}/man/"*
437 do
438 mkdir -p $out/share/man/$(basename "$dir")
439 for page in "$dir"/*
440 do
441 ln -s $page $out/share/man/$(basename "$dir")
442 done
443 done
444 fi
445
446 # Run post install hook, if provided
447 runHook postInstall
448 '';
449 } // extraArgs);
450
451 # Builds a node environment (a node_modules folder and a set of binaries)
452 buildNodeDependencies =
453 { name
454 , packageName
455 , version
456 , src
457 , dependencies ? []
458 , buildInputs ? []
459 , production ? true
460 , npmFlags ? ""
461 , dontNpmInstall ? false
462 , bypassCache ? false
463 , reconstructLock ? false
464 , dontStrip ? true
465 , unpackPhase ? "true"
466 , buildPhase ? "true"
467 , ... }@args:
468
469 let
470 extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
471 in
472 stdenv.mkDerivation ({
473 name = "node-dependencies-${name}-${version}";
474
475 buildInputs = [ tarWrapper python nodejs ]
476 ++ lib.optional (stdenv.isLinux) utillinux
477 ++ lib.optional (stdenv.isDarwin) libtool
478 ++ buildInputs;
479
480 inherit dontStrip; # Stripping may fail a build for some package deployments
481 inherit dontNpmInstall unpackPhase buildPhase;
482
483 includeScript = includeDependencies { inherit dependencies; };
484 pinpointDependenciesScript = pinpointDependenciesOfPackage args;
485
486 passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
487
488 installPhase = ''
489 mkdir -p $out/${packageName}
490 cd $out/${packageName}
491
492 source $includeScriptPath
493
494 # Create fake package.json to make the npm commands work properly
495 cp ${src}/package.json .
496 chmod 644 package.json
497 ${lib.optionalString bypassCache ''
498 if [ -f ${src}/package-lock.json ]
499 then
500 cp ${src}/package-lock.json .
501 fi
502 ''}
503
504 # Go to the parent folder to make sure that all packages are pinpointed
505 cd ..
506 ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
507
508 ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
509
510 # Expose the executables that were installed
511 cd ..
512 ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
513
514 mv ${packageName} lib
515 ln -s $out/lib/node_modules/.bin $out/bin
516 '';
517 } // extraArgs);
518
519 # Builds a development shell
520 buildNodeShell =
521 { name
522 , packageName
523 , version
524 , src
525 , dependencies ? []
526 , buildInputs ? []
527 , production ? true
528 , npmFlags ? ""
529 , dontNpmInstall ? false
530 , bypassCache ? false
531 , reconstructLock ? false
532 , dontStrip ? true
533 , unpackPhase ? "true"
534 , buildPhase ? "true"
535 , ... }@args:
536
537 let
538 nodeDependencies = buildNodeDependencies args;
539 in
540 stdenv.mkDerivation {
541 name = "node-shell-${name}-${version}";
542
543 buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
544 buildCommand = ''
545 mkdir -p $out/bin
546 cat > $out/bin/shell <<EOF
547 #! ${stdenv.shell} -e
548 $shellHook
549 exec ${stdenv.shell}
550 EOF
551 chmod +x $out/bin/shell
552 '';
553
554 # Provide the dependencies in a development shell through the NODE_PATH environment variable
555 inherit nodeDependencies;
556 shellHook = lib.optionalString (dependencies != []) ''
557 export NODE_PATH=${nodeDependencies}/lib/node_modules
558 export PATH="${nodeDependencies}/bin:$PATH"
559 '';
560 };
561in
562{
563 buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
564 buildNodePackage = lib.makeOverridable buildNodePackage;
565 buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
566 buildNodeShell = lib.makeOverridable buildNodeShell;
567}
diff --git a/pkgs/cryptpad/node-packages-generated.nix b/pkgs/cryptpad/node-packages-generated.nix
deleted file mode 100644
index 18e5665..0000000
--- a/pkgs/cryptpad/node-packages-generated.nix
+++ /dev/null
@@ -1,754 +0,0 @@
1# This file has been generated by node2nix 1.9.0. Do not edit!
2
3{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
4
5let
6 sources = {
7 "@mcrowe/minibloom-0.2.0" = {
8 name = "_at_mcrowe_slash_minibloom";
9 packageName = "@mcrowe/minibloom";
10 version = "0.2.0";
11 src = fetchurl {
12 url = "https://registry.npmjs.org/@mcrowe/minibloom/-/minibloom-0.2.0.tgz";
13 sha1 = "1bed96aec18388198da37443899b2c3ff5948053";
14 };
15 };
16 "accepts-1.3.7" = {
17 name = "accepts";
18 packageName = "accepts";
19 version = "1.3.7";
20 src = fetchurl {
21 url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
22 sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
23 };
24 };
25 "array-flatten-1.1.1" = {
26 name = "array-flatten";
27 packageName = "array-flatten";
28 version = "1.1.1";
29 src = fetchurl {
30 url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
31 sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
32 };
33 };
34 "async-limiter-1.0.1" = {
35 name = "async-limiter";
36 packageName = "async-limiter";
37 version = "1.0.1";
38 src = fetchurl {
39 url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
40 sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
41 };
42 };
43 "body-parser-1.18.3" = {
44 name = "body-parser";
45 packageName = "body-parser";
46 version = "1.18.3";
47 src = fetchurl {
48 url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz";
49 sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
50 };
51 };
52 "bytes-3.0.0" = {
53 name = "bytes";
54 packageName = "bytes";
55 version = "3.0.0";
56 src = fetchurl {
57 url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
58 sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
59 };
60 };
61 "chainpad-crypto-0.2.5" = {
62 name = "chainpad-crypto";
63 packageName = "chainpad-crypto";
64 version = "0.2.5";
65 src = fetchurl {
66 url = "https://registry.npmjs.org/chainpad-crypto/-/chainpad-crypto-0.2.5.tgz";
67 sha512 = "K9vRsAspuX+uU1goXPz0CawpLIaOHq+1JP3WfDLqaz67LbCX/MLIUt9aMcSeIJcwZ9uMpqnbMGRktyVPoz6MCA==";
68 };
69 };
70 "chainpad-server-5.1.0" = {
71 name = "chainpad-server";
72 packageName = "chainpad-server";
73 version = "5.1.0";
74 src = fetchurl {
75 url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-5.1.0.tgz";
76 sha512 = "BdjgOOLTXXo1EjQ7lURDe7oqsqfQISNvwhILfp3K3diY2K1hxpPLbjYzOSgxNOTADeOAff0xnInR5eUCESVWaQ==";
77 };
78 };
79 "content-disposition-0.5.2" = {
80 name = "content-disposition";
81 packageName = "content-disposition";
82 version = "0.5.2";
83 src = fetchurl {
84 url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz";
85 sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
86 };
87 };
88 "content-type-1.0.4" = {
89 name = "content-type";
90 packageName = "content-type";
91 version = "1.0.4";
92 src = fetchurl {
93 url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
94 sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
95 };
96 };
97 "cookie-0.3.1" = {
98 name = "cookie";
99 packageName = "cookie";
100 version = "0.3.1";
101 src = fetchurl {
102 url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
103 sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
104 };
105 };
106 "cookie-signature-1.0.6" = {
107 name = "cookie-signature";
108 packageName = "cookie-signature";
109 version = "1.0.6";
110 src = fetchurl {
111 url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
112 sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
113 };
114 };
115 "debug-2.6.9" = {
116 name = "debug";
117 packageName = "debug";
118 version = "2.6.9";
119 src = fetchurl {
120 url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
121 sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
122 };
123 };
124 "depd-1.1.2" = {
125 name = "depd";
126 packageName = "depd";
127 version = "1.1.2";
128 src = fetchurl {
129 url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
130 sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
131 };
132 };
133 "destroy-1.0.4" = {
134 name = "destroy";
135 packageName = "destroy";
136 version = "1.0.4";
137 src = fetchurl {
138 url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
139 sha1 = "978857442c44749e4206613e37946205826abd80";
140 };
141 };
142 "ee-first-1.1.1" = {
143 name = "ee-first";
144 packageName = "ee-first";
145 version = "1.1.1";
146 src = fetchurl {
147 url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
148 sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
149 };
150 };
151 "encodeurl-1.0.2" = {
152 name = "encodeurl";
153 packageName = "encodeurl";
154 version = "1.0.2";
155 src = fetchurl {
156 url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
157 sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
158 };
159 };
160 "escape-html-1.0.3" = {
161 name = "escape-html";
162 packageName = "escape-html";
163 version = "1.0.3";
164 src = fetchurl {
165 url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
166 sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
167 };
168 };
169 "etag-1.8.1" = {
170 name = "etag";
171 packageName = "etag";
172 version = "1.8.1";
173 src = fetchurl {
174 url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
175 sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
176 };
177 };
178 "express-4.16.4" = {
179 name = "express";
180 packageName = "express";
181 version = "4.16.4";
182 src = fetchurl {
183 url = "https://registry.npmjs.org/express/-/express-4.16.4.tgz";
184 sha512 = "j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==";
185 };
186 };
187 "finalhandler-1.1.1" = {
188 name = "finalhandler";
189 packageName = "finalhandler";
190 version = "1.1.1";
191 src = fetchurl {
192 url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
193 sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
194 };
195 };
196 "forwarded-0.1.2" = {
197 name = "forwarded";
198 packageName = "forwarded";
199 version = "0.1.2";
200 src = fetchurl {
201 url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
202 sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
203 };
204 };
205 "fresh-0.5.2" = {
206 name = "fresh";
207 packageName = "fresh";
208 version = "0.5.2";
209 src = fetchurl {
210 url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
211 sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
212 };
213 };
214 "fs-extra-7.0.1" = {
215 name = "fs-extra";
216 packageName = "fs-extra";
217 version = "7.0.1";
218 src = fetchurl {
219 url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
220 sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
221 };
222 };
223 "gar-1.0.4" = {
224 name = "gar";
225 packageName = "gar";
226 version = "1.0.4";
227 src = fetchurl {
228 url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
229 sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
230 };
231 };
232 "get-folder-size-2.0.1" = {
233 name = "get-folder-size";
234 packageName = "get-folder-size";
235 version = "2.0.1";
236 src = fetchurl {
237 url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
238 sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
239 };
240 };
241 "graceful-fs-4.2.6" = {
242 name = "graceful-fs";
243 packageName = "graceful-fs";
244 version = "4.2.6";
245 src = fetchurl {
246 url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
247 sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
248 };
249 };
250 "http-errors-1.6.3" = {
251 name = "http-errors";
252 packageName = "http-errors";
253 version = "1.6.3";
254 src = fetchurl {
255 url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
256 sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
257 };
258 };
259 "iconv-lite-0.4.23" = {
260 name = "iconv-lite";
261 packageName = "iconv-lite";
262 version = "0.4.23";
263 src = fetchurl {
264 url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
265 sha512 = "neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==";
266 };
267 };
268 "inherits-2.0.3" = {
269 name = "inherits";
270 packageName = "inherits";
271 version = "2.0.3";
272 src = fetchurl {
273 url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
274 sha1 = "633c2c83e3da42a502f52466022480f4208261de";
275 };
276 };
277 "ipaddr.js-1.9.1" = {
278 name = "ipaddr.js";
279 packageName = "ipaddr.js";
280 version = "1.9.1";
281 src = fetchurl {
282 url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
283 sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
284 };
285 };
286 "jsonfile-4.0.0" = {
287 name = "jsonfile";
288 packageName = "jsonfile";
289 version = "4.0.0";
290 src = fetchurl {
291 url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
292 sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
293 };
294 };
295 "lex-1.7.9" = {
296 name = "lex";
297 packageName = "lex";
298 version = "1.7.9";
299 src = fetchurl {
300 url = "https://registry.npmjs.org/lex/-/lex-1.7.9.tgz";
301 sha1 = "5d5636ccef574348362938b79a47f0eed8ed0d43";
302 };
303 };
304 "looper-3.0.0" = {
305 name = "looper";
306 packageName = "looper";
307 version = "3.0.0";
308 src = fetchurl {
309 url = "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz";
310 sha1 = "2efa54c3b1cbaba9b94aee2e5914b0be57fbb749";
311 };
312 };
313 "media-typer-0.3.0" = {
314 name = "media-typer";
315 packageName = "media-typer";
316 version = "0.3.0";
317 src = fetchurl {
318 url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
319 sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
320 };
321 };
322 "merge-descriptors-1.0.1" = {
323 name = "merge-descriptors";
324 packageName = "merge-descriptors";
325 version = "1.0.1";
326 src = fetchurl {
327 url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
328 sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
329 };
330 };
331 "methods-1.1.2" = {
332 name = "methods";
333 packageName = "methods";
334 version = "1.1.2";
335 src = fetchurl {
336 url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
337 sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
338 };
339 };
340 "mime-1.4.1" = {
341 name = "mime";
342 packageName = "mime";
343 version = "1.4.1";
344 src = fetchurl {
345 url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
346 sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
347 };
348 };
349 "mime-db-1.47.0" = {
350 name = "mime-db";
351 packageName = "mime-db";
352 version = "1.47.0";
353 src = fetchurl {
354 url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
355 sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
356 };
357 };
358 "mime-types-2.1.30" = {
359 name = "mime-types";
360 packageName = "mime-types";
361 version = "2.1.30";
362 src = fetchurl {
363 url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
364 sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
365 };
366 };
367 "ms-2.0.0" = {
368 name = "ms";
369 packageName = "ms";
370 version = "2.0.0";
371 src = fetchurl {
372 url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
373 sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
374 };
375 };
376 "negotiator-0.6.2" = {
377 name = "negotiator";
378 packageName = "negotiator";
379 version = "0.6.2";
380 src = fetchurl {
381 url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
382 sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
383 };
384 };
385 "netflux-websocket-0.1.21" = {
386 name = "netflux-websocket";
387 packageName = "netflux-websocket";
388 version = "0.1.21";
389 src = fetchurl {
390 url = "https://registry.npmjs.org/netflux-websocket/-/netflux-websocket-0.1.21.tgz";
391 sha512 = "Zjl5lefg8urC0a0T7YCPGiUgRsISZBsTZl1STylmQz8Bq4ohcZ8cP3r6VoCpeVcvJ1Y/e3ZCXPxndWlNP9Jfug==";
392 };
393 };
394 "nthen-0.1.8" = {
395 name = "nthen";
396 packageName = "nthen";
397 version = "0.1.8";
398 src = fetchurl {
399 url = "https://registry.npmjs.org/nthen/-/nthen-0.1.8.tgz";
400 sha512 = "Oh2CwIbhj+wUT94lQV7LKmmgw3UYAGGd8oLIqp6btQN3Bz3PuWp4BuvtUo35H3rqDknjPfKx5P6mt7v+aJNjcw==";
401 };
402 };
403 "on-finished-2.3.0" = {
404 name = "on-finished";
405 packageName = "on-finished";
406 version = "2.3.0";
407 src = fetchurl {
408 url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
409 sha1 = "20f1336481b083cd75337992a16971aa2d906947";
410 };
411 };
412 "parseurl-1.3.3" = {
413 name = "parseurl";
414 packageName = "parseurl";
415 version = "1.3.3";
416 src = fetchurl {
417 url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
418 sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
419 };
420 };
421 "path-to-regexp-0.1.7" = {
422 name = "path-to-regexp";
423 packageName = "path-to-regexp";
424 version = "0.1.7";
425 src = fetchurl {
426 url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
427 sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
428 };
429 };
430 "proxy-addr-2.0.6" = {
431 name = "proxy-addr";
432 packageName = "proxy-addr";
433 version = "2.0.6";
434 src = fetchurl {
435 url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
436 sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
437 };
438 };
439 "pull-stream-3.6.14" = {
440 name = "pull-stream";
441 packageName = "pull-stream";
442 version = "3.6.14";
443 src = fetchurl {
444 url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz";
445 sha512 = "KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==";
446 };
447 };
448 "qs-6.5.2" = {
449 name = "qs";
450 packageName = "qs";
451 version = "6.5.2";
452 src = fetchurl {
453 url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
454 sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
455 };
456 };
457 "range-parser-1.2.1" = {
458 name = "range-parser";
459 packageName = "range-parser";
460 version = "1.2.1";
461 src = fetchurl {
462 url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
463 sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
464 };
465 };
466 "raw-body-2.3.3" = {
467 name = "raw-body";
468 packageName = "raw-body";
469 version = "2.3.3";
470 src = fetchurl {
471 url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz";
472 sha512 = "9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==";
473 };
474 };
475 "safe-buffer-5.1.2" = {
476 name = "safe-buffer";
477 packageName = "safe-buffer";
478 version = "5.1.2";
479 src = fetchurl {
480 url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
481 sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
482 };
483 };
484 "safer-buffer-2.1.2" = {
485 name = "safer-buffer";
486 packageName = "safer-buffer";
487 version = "2.1.2";
488 src = fetchurl {
489 url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
490 sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
491 };
492 };
493 "saferphore-0.0.1" = {
494 name = "saferphore";
495 packageName = "saferphore";
496 version = "0.0.1";
497 src = fetchurl {
498 url = "https://registry.npmjs.org/saferphore/-/saferphore-0.0.1.tgz";
499 sha1 = "cc962eda4e2b2452e6437fd32dcfb6f69ef2ea63";
500 };
501 };
502 "send-0.16.2" = {
503 name = "send";
504 packageName = "send";
505 version = "0.16.2";
506 src = fetchurl {
507 url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
508 sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
509 };
510 };
511 "serve-static-1.13.2" = {
512 name = "serve-static";
513 packageName = "serve-static";
514 version = "1.13.2";
515 src = fetchurl {
516 url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
517 sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
518 };
519 };
520 "setprototypeof-1.1.0" = {
521 name = "setprototypeof";
522 packageName = "setprototypeof";
523 version = "1.1.0";
524 src = fetchurl {
525 url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
526 sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
527 };
528 };
529 "sortify-1.0.4" = {
530 name = "sortify";
531 packageName = "sortify";
532 version = "1.0.4";
533 src = fetchurl {
534 url = "https://registry.npmjs.org/sortify/-/sortify-1.0.4.tgz";
535 sha1 = "f0178687c83231be8a34fc0ec5462ea957b60284";
536 };
537 };
538 "statuses-1.4.0" = {
539 name = "statuses";
540 packageName = "statuses";
541 version = "1.4.0";
542 src = fetchurl {
543 url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
544 sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
545 };
546 };
547 "stream-to-pull-stream-1.7.3" = {
548 name = "stream-to-pull-stream";
549 packageName = "stream-to-pull-stream";
550 version = "1.7.3";
551 src = fetchurl {
552 url = "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz";
553 sha512 = "6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==";
554 };
555 };
556 "tiny-each-async-2.0.3" = {
557 name = "tiny-each-async";
558 packageName = "tiny-each-async";
559 version = "2.0.3";
560 src = fetchurl {
561 url = "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz";
562 sha1 = "8ebbbfd6d6295f1370003fbb37162afe5a0a51d1";
563 };
564 };
565 "tweetnacl-0.12.2" = {
566 name = "tweetnacl";
567 packageName = "tweetnacl";
568 version = "0.12.2";
569 src = fetchurl {
570 url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.12.2.tgz";
571 sha1 = "bd59f890507856fb0a1136acc3a8b44547e29ddb";
572 };
573 };
574 "tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2" = {
575 name = "tweetnacl";
576 packageName = "tweetnacl";
577 version = "0.12.2";
578 src = fetchgit {
579 url = "https://github.com/dchest/tweetnacl-js.git";
580 rev = "8a21381d696acdc4e99c9f706f1ad23285795f79";
581 sha256 = "10f27b673944107995b3f6dcd65caecd705acdae9c37b7e79b810a8a72a40a31";
582 };
583 };
584 "type-is-1.6.18" = {
585 name = "type-is";
586 packageName = "type-is";
587 version = "1.6.18";
588 src = fetchurl {
589 url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
590 sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
591 };
592 };
593 "ulimit-0.0.2" = {
594 name = "ulimit";
595 packageName = "ulimit";
596 version = "0.0.2";
597 src = fetchurl {
598 url = "https://registry.npmjs.org/ulimit/-/ulimit-0.0.2.tgz";
599 sha1 = "2b51f9dc8381ae4102636cec5eb338c2630588a0";
600 };
601 };
602 "ultron-1.1.1" = {
603 name = "ultron";
604 packageName = "ultron";
605 version = "1.1.1";
606 src = fetchurl {
607 url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
608 sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
609 };
610 };
611 "universalify-0.1.2" = {
612 name = "universalify";
613 packageName = "universalify";
614 version = "0.1.2";
615 src = fetchurl {
616 url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
617 sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
618 };
619 };
620 "unpipe-1.0.0" = {
621 name = "unpipe";
622 packageName = "unpipe";
623 version = "1.0.0";
624 src = fetchurl {
625 url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
626 sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
627 };
628 };
629 "utils-merge-1.0.1" = {
630 name = "utils-merge";
631 packageName = "utils-merge";
632 version = "1.0.1";
633 src = fetchurl {
634 url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
635 sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
636 };
637 };
638 "vary-1.1.2" = {
639 name = "vary";
640 packageName = "vary";
641 version = "1.1.2";
642 src = fetchurl {
643 url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
644 sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
645 };
646 };
647 "ws-3.3.3" = {
648 name = "ws";
649 packageName = "ws";
650 version = "3.3.3";
651 src = fetchurl {
652 url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
653 sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
654 };
655 };
656 };
657in
658{
659 "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" = nodeEnv.buildNodePackage {
660 name = "cryptpad";
661 packageName = "cryptpad";
662 version = "4.5.0";
663 src = fetchgit {
664 url = "https://github.com/xwiki-labs/cryptpad.git";
665 rev = "719cea013da4f2ffb89f944b0974d2a42216d1f2";
666 sha256 = "1729698a1f74c3fc097ea6c8162b4adecc3de4d5ba89b12dba06b5a58559aa4a";
667 };
668 dependencies = [
669 sources."@mcrowe/minibloom-0.2.0"
670 sources."accepts-1.3.7"
671 sources."array-flatten-1.1.1"
672 sources."async-limiter-1.0.1"
673 sources."body-parser-1.18.3"
674 sources."bytes-3.0.0"
675 (sources."chainpad-crypto-0.2.5" // {
676 dependencies = [
677 sources."tweetnacl-git+https://github.com/dchest/tweetnacl-js.git#v0.12.2"
678 ];
679 })
680 sources."chainpad-server-5.1.0"
681 sources."content-disposition-0.5.2"
682 sources."content-type-1.0.4"
683 sources."cookie-0.3.1"
684 sources."cookie-signature-1.0.6"
685 sources."debug-2.6.9"
686 sources."depd-1.1.2"
687 sources."destroy-1.0.4"
688 sources."ee-first-1.1.1"
689 sources."encodeurl-1.0.2"
690 sources."escape-html-1.0.3"
691 sources."etag-1.8.1"
692 sources."express-4.16.4"
693 sources."finalhandler-1.1.1"
694 sources."forwarded-0.1.2"
695 sources."fresh-0.5.2"
696 sources."fs-extra-7.0.1"
697 sources."gar-1.0.4"
698 sources."get-folder-size-2.0.1"
699 sources."graceful-fs-4.2.6"
700 sources."http-errors-1.6.3"
701 sources."iconv-lite-0.4.23"
702 sources."inherits-2.0.3"
703 sources."ipaddr.js-1.9.1"
704 sources."jsonfile-4.0.0"
705 sources."lex-1.7.9"
706 sources."looper-3.0.0"
707 sources."media-typer-0.3.0"
708 sources."merge-descriptors-1.0.1"
709 sources."methods-1.1.2"
710 sources."mime-1.4.1"
711 sources."mime-db-1.47.0"
712 sources."mime-types-2.1.30"
713 sources."ms-2.0.0"
714 sources."negotiator-0.6.2"
715 sources."netflux-websocket-0.1.21"
716 sources."nthen-0.1.8"
717 sources."on-finished-2.3.0"
718 sources."parseurl-1.3.3"
719 sources."path-to-regexp-0.1.7"
720 sources."proxy-addr-2.0.6"
721 sources."pull-stream-3.6.14"
722 sources."qs-6.5.2"
723 sources."range-parser-1.2.1"
724 sources."raw-body-2.3.3"
725 sources."safe-buffer-5.1.2"
726 sources."safer-buffer-2.1.2"
727 sources."saferphore-0.0.1"
728 sources."send-0.16.2"
729 sources."serve-static-1.13.2"
730 sources."setprototypeof-1.1.0"
731 sources."sortify-1.0.4"
732 sources."statuses-1.4.0"
733 sources."stream-to-pull-stream-1.7.3"
734 sources."tiny-each-async-2.0.3"
735 sources."tweetnacl-0.12.2"
736 sources."type-is-1.6.18"
737 sources."ulimit-0.0.2"
738 sources."ultron-1.1.1"
739 sources."universalify-0.1.2"
740 sources."unpipe-1.0.0"
741 sources."utils-merge-1.0.1"
742 sources."vary-1.1.2"
743 sources."ws-3.3.3"
744 ];
745 buildInputs = globalBuildInputs;
746 meta = {
747 description = "realtime collaborative visual editor with zero knowlege server";
748 license = "AGPL-3.0+";
749 };
750 production = true;
751 bypassCache = true;
752 reconstructLock = true;
753 };
754}
diff --git a/pkgs/cryptpad/node-packages.json b/pkgs/cryptpad/node-packages.json
deleted file mode 100644
index daef46d..0000000
--- a/pkgs/cryptpad/node-packages.json
+++ /dev/null
@@ -1,3 +0,0 @@
1[
2 { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#4.5.0" }
3]
diff --git a/pkgs/cryptpad/node-packages.nix b/pkgs/cryptpad/node-packages.nix
deleted file mode 100644
index 662d6a5..0000000
--- a/pkgs/cryptpad/node-packages.nix
+++ /dev/null
@@ -1,17 +0,0 @@
1# This file has been generated by node2nix 1.9.0. Do not edit!
2
3{pkgs ? import <nixpkgs> {
4 inherit system;
5 }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
6
7let
8 nodeEnv = import ./node-env.nix {
9 inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
10 inherit pkgs nodejs;
11 libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
12 };
13in
14import ./node-packages-generated.nix {
15 inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
16 inherit nodeEnv;
17}
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 204f751..616a462 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -9,8 +9,6 @@ rec {
9 boinctui = callPackage ./boinctui {}; 9 boinctui = callPackage ./boinctui {};
10 cnagios = callPackage ./cnagios { inherit mylibs; }; 10 cnagios = callPackage ./cnagios { inherit mylibs; };
11 commento = callPackage ./commento {}; 11 commento = callPackage ./commento {};
12 cryptpad = callPackage ./cryptpad {};
13 duply = callPackage ./duply {};
14 flrn = callPackage ./flrn { inherit mylibs; slang = callPackage ./slang_1 {}; }; 12 flrn = callPackage ./flrn { inherit mylibs; slang = callPackage ./slang_1 {}; };
15 genius = callPackage ./genius {}; 13 genius = callPackage ./genius {};
16 mtop = callPackage ./mtop {}; 14 mtop = callPackage ./mtop {};
@@ -23,14 +21,10 @@ rec {
23 notmuch-python2 = callPackage ./notmuch/notmuch-python { pythonPackages = python2Packages; }; 21 notmuch-python2 = callPackage ./notmuch/notmuch-python { pythonPackages = python2Packages; };
24 notmuch-python3 = callPackage ./notmuch/notmuch-python { pythonPackages = python3Packages; }; 22 notmuch-python3 = callPackage ./notmuch/notmuch-python { pythonPackages = python3Packages; };
25 notmuch-vim = callPackage ./notmuch/notmuch-vim {}; 23 notmuch-vim = callPackage ./notmuch/notmuch-vim {};
26 pg_activity = callPackage ./pg_activity { inherit mylibs; };
27 pgloader = callPackage ./pgloader {}; 24 pgloader = callPackage ./pgloader {};
28 predixy = callPackage ./predixy { inherit mylibs; }; 25 predixy = callPackage ./predixy { inherit mylibs; };
29 rrsync_sudo = callPackage ./rrsync_sudo {}; 26 rrsync_sudo = callPackage ./rrsync_sudo {};
30 signald = callPackage ./signald {};
31 signaldctl = callPackage ./signaldctl {}; 27 signaldctl = callPackage ./signaldctl {};
32 stgit = callPackage ./stgit {};
33 telegram-cli = callPackage ./telegram-cli { inherit mylibs; };
34 telegram-history-dump = callPackage ./telegram-history-dump { inherit mylibs; }; 28 telegram-history-dump = callPackage ./telegram-history-dump { inherit mylibs; };
35 telegramircd = callPackage ./telegramircd { inherit mylibs; telethon = callPackage ./telethon_sync {}; }; 29 telegramircd = callPackage ./telegramircd { inherit mylibs; telethon = callPackage ./telethon_sync {}; };
36 terminal-velocity = callPackage ./terminal-velocity {}; 30 terminal-velocity = callPackage ./terminal-velocity {};
@@ -45,10 +39,6 @@ rec {
45 sia = callPackage ./crypto/sia {}; 39 sia = callPackage ./crypto/sia {};
46 40
47 pure-ftpd = callPackage ./pure-ftpd {}; 41 pure-ftpd = callPackage ./pure-ftpd {};
48 mpd = (callPackage ./mpd_0_21 {}).mpd;
49 mpd-small = (callPackage ./mpd_0_21 {}).mpd-small;
50
51 bitlbee-mastodon = callPackage ./bitlbee-mastodon {};
52 42
53 composerEnv = callPackage ./composer-env {}; 43 composerEnv = callPackage ./composer-env {};
54 webapps = callPackage ./webapps { inherit mylibs composerEnv; }; 44 webapps = callPackage ./webapps { inherit mylibs composerEnv; };
@@ -70,11 +60,4 @@ rec {
70 dovecot_deleted-to-trash = callPackage ./dovecot/plugins/deleted_to_trash { 60 dovecot_deleted-to-trash = callPackage ./dovecot/plugins/deleted_to_trash {
71 inherit mylibs; 61 inherit mylibs;
72 }; 62 };
73 dovecot_fts-xapian = callPackage ./dovecot/plugins/fts_xapian {
74 inherit mylibs;
75 };
76
77 fiche = callPackage ./fiche { inherit mylibs; };
78 woob = python3Packages.callPackage ./woob {};
79 zrepl = callPackage ./zrepl {};
80} 63}
diff --git a/pkgs/dovecot/plugins/fts_xapian/default.nix b/pkgs/dovecot/plugins/fts_xapian/default.nix
deleted file mode 100644
index 611d67b..0000000
--- a/pkgs/dovecot/plugins/fts_xapian/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
1{ stdenv, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu, mylibs, sqlite }:
2
3stdenv.mkDerivation (mylibs.fetchedGithub ./fts-xapian.json // rec {
4 buildInputs = [ dovecot autoconf automake libtool pkg-config xapian icu sqlite ];
5 preConfigure = ''
6 export PANDOC=false
7 autoreconf -vi
8 '';
9 configureFlags = [
10 "--with-dovecot=${dovecot}/lib/dovecot"
11 "--without-dovecot-install-dirs"
12 "--with-moduledir=$(out)/lib/dovecot"
13 ];
14})
diff --git a/pkgs/dovecot/plugins/fts_xapian/fts-xapian.json b/pkgs/dovecot/plugins/fts_xapian/fts-xapian.json
deleted file mode 100644
index c9b57ef..0000000
--- a/pkgs/dovecot/plugins/fts_xapian/fts-xapian.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "ac872e9-master",
3 "meta": {
4 "name": "fts-xapian",
5 "url": "https://github.com/grosjo/fts-xapian",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "grosjo",
10 "repo": "fts-xapian",
11 "rev": "ac872e927c982e8da6d4eb80fa27fee53962010b",
12 "sha256": "13pw123006yyx2m2zy3bdffglhd5923gnqjlcc868xy344fjkbmz",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/duply/default.nix b/pkgs/duply/default.nix
deleted file mode 100644
index 2d24d4f..0000000
--- a/pkgs/duply/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
1{ stdenv, fetchurl, makeWrapper, coreutils, python3, duplicity, gawk, gnupg1, bash, gnugrep, txt2man, which }:
2stdenv.mkDerivation rec {
3 name = "duply-${version}";
4 version = "2.1";
5
6 src = fetchurl {
7 url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz";
8 sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8";
9 };
10
11 buildInputs = [ txt2man makeWrapper ];
12
13 postPatch = "patchShebangs .";
14
15 installPhase = ''
16 mkdir -p "$out/bin"
17 mkdir -p "$out/share/man/man1"
18 install -vD duply "$out/bin"
19 sed -i $out/bin/duply -e "1a \
20 export PATH='${stdenv.lib.makeBinPath [ coreutils python3 duplicity gawk gnupg1 bash gnugrep txt2man which ]}'
21 " -e "1a \
22 export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*)
23 "
24 "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1"
25 '';
26
27 meta = with stdenv.lib; {
28 description = "Shell front end for the duplicity backup tool";
29 longDescription = ''
30 Duply is a shell front end for the duplicity backup tool
31 http://duplicity.nongnu.org/. It greatly simplifies it's usage by
32 implementing backup job profiles, batch commands and more. Who says
33 secure backups on non-trusted spaces are no child's play?
34 '';
35 homepage = http://duply.net/;
36 license = licenses.gpl2;
37 maintainers = [ maintainers.bjornfor ];
38 platforms = stdenv.lib.platforms.unix;
39 };
40}
diff --git a/pkgs/fiche/default.nix b/pkgs/fiche/default.nix
deleted file mode 100644
index cc67fb0..0000000
--- a/pkgs/fiche/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
1{ stdenv, mylibs }:
2stdenv.mkDerivation (mylibs.fetchedGithub ./fiche.json // rec {
3 installPhase = ''
4 mkdir -p $out/bin
5 install -m 0755 fiche $out/bin/
6 '';
7})
diff --git a/pkgs/fiche/fiche.json b/pkgs/fiche/fiche.json
deleted file mode 100644
index 036de7f..0000000
--- a/pkgs/fiche/fiche.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "4bba916-master",
3 "meta": {
4 "name": "fiche",
5 "url": "https://github.com/solusipse/fiche",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "solusipse",
10 "repo": "fiche",
11 "rev": "4bba916e0f4a54d98a3947df7e2d0714d92a8bab",
12 "sha256": "060pxn8ns2zqszv1dlf7zcaf42avn9svya6irwy5d1ry29hp2ds9",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/mpd_0_21/default.nix b/pkgs/mpd_0_21/default.nix
deleted file mode 100644
index 4f97e3f..0000000
--- a/pkgs/mpd_0_21/default.nix
+++ /dev/null
@@ -1,162 +0,0 @@
1{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost, darwin
2# Inputs
3, curl, libmms, libnfs, samba
4# Archive support
5, bzip2, zziplib
6# Codecs
7, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
8, libmad, libmikmod, mpg123, libopus, libvorbis, lame
9# Filters
10, libsamplerate
11# Outputs
12, alsaLib, libjack2, libpulseaudio, libshout
13# Misc
14, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
15# Services
16, yajl
17# Client support
18, mpd_clientlib
19# Tag support
20, libid3tag
21}:
22
23let
24 lib = stdenv.lib;
25
26 featureDependencies = {
27 # Storage plugins
28 udisks = [ dbus ];
29 webdav = [ curl expat ];
30 # Input plugins
31 curl = [ curl ];
32 mms = [ libmms ];
33 nfs = [ libnfs ];
34 smbclient = [ samba ];
35 # Archive support
36 bzip2 = [ bzip2 ];
37 zzip = [ zziplib ];
38 # Decoder plugins
39 audiofile = [ audiofile ];
40 faad = [ faad2 ];
41 ffmpeg = [ ffmpeg ];
42 flac = [ flac ];
43 fluidsynth = [ fluidsynth ];
44 gme = [ game-music-emu ];
45 mad = [ libmad ];
46 mikmod = [ libmikmod ];
47 mpg123 = [ mpg123 ];
48 opus = [ libopus ];
49 vorbis = [ libvorbis ];
50 # Encoder plugins
51 vorbisenc = [ libvorbis ];
52 lame = [ lame ];
53 # Filter plugins
54 libsamplerate = [ libsamplerate ];
55 # Output plugins
56 alsa = [ alsaLib ];
57 jack = [ libjack2 ];
58 pulse = [ libpulseaudio ];
59 shout = [ libshout ];
60 # Commercial services
61 qobuz = [ curl libgcrypt yajl ];
62 soundcloud = [ curl yajl ];
63 tidal = [ curl yajl ];
64 # Client support
65 libmpdclient = [ mpd_clientlib ];
66 # Tag support
67 id3tag = [ libid3tag ];
68 # Misc
69 dbus = [ dbus ];
70 expat = [ expat ];
71 icu = [ icu ];
72 pcre = [ pcre ];
73 sqlite = [ sqlite ];
74 syslog = [ ];
75 systemd = [ systemd ];
76 yajl = [ yajl ];
77 zeroconf = [ avahi dbus ];
78 };
79
80 run = { features ? null }:
81 let
82 # Disable platform specific features if needed
83 # using libmad to decode mp3 files on darwin is causing a segfault -- there
84 # is probably a solution, but I'm disabling it for now
85 platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smbclient" ]
86 ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" "syslog" ];
87
88 knownFeatures = builtins.attrNames featureDependencies;
89 platformFeatures = lib.subtractLists platformMask knownFeatures;
90
91 features_ = if (features == null )
92 then platformFeatures
93 else
94 let unknown = lib.subtractLists knownFeatures features; in
95 if (unknown != [])
96 then throw "Unknown feature(s): ${lib.concatStringsSep " " unknown}"
97 else
98 let unsupported = lib.subtractLists platformFeatures features; in
99 if (unsupported != [])
100 then throw "Feature(s) ${lib.concatStringsSep " " unsupported} are not supported on ${stdenv.hostPlatform.system}"
101 else features;
102
103 in stdenv.mkDerivation rec {
104 pname = "mpd";
105 version = "0.21.21";
106
107 src = fetchFromGitHub {
108 owner = "MusicPlayerDaemon";
109 repo = "MPD";
110 rev = "v${version}";
111 sha256 = "0ysyjlmmfm1y5jqyv83bs9p7zqr9pgj1hmdq2b7kx9kridclbnng";
112 };
113
114 buildInputs = [ glib boost ]
115 ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
116 ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ];
117
118 nativeBuildInputs = [ meson ninja pkgconfig ];
119
120 enableParallelBuilding = true;
121
122 mesonAutoFeatures = "disabled";
123 mesonFlags =
124 map (x: "-D${x}=enabled") features_
125 ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures)
126 ++ lib.optional (builtins.elem "zeroconf" features_)
127 "-Dzeroconf=avahi"
128 ++ lib.optional (builtins.elem "systemd" features_)
129 "-Dsystemd_system_unit_dir=etc/systemd/system";
130
131 meta = with stdenv.lib; {
132 description = "A flexible, powerful daemon for playing music";
133 homepage = "https://www.musicpd.org/";
134 license = licenses.gpl2;
135 maintainers = with maintainers; [ astsmtl ehmry fpletz tobim ];
136 platforms = platforms.unix;
137
138 longDescription = ''
139 Music Player Daemon (MPD) is a flexible, powerful daemon for playing
140 music. Through plugins and libraries it can play a variety of sound
141 files while being controlled by its network protocol.
142 '';
143 };
144 };
145in
146{
147 mpd = run { };
148 mpd-small = run { features = [
149 "webdav" "curl" "mms" "bzip2" "zzip"
150 "audiofile" "faad" "flac" "gme" "mad"
151 "mpg123" "opus" "vorbis" "vorbisenc"
152 "lame" "libsamplerate" "shout"
153 "libmpdclient" "id3tag" "expat" "pcre"
154 "yajl" "sqlite"
155 "soundcloud" "qobuz" "tidal"
156 ] ++ lib.optionals stdenv.isLinux [
157 "alsa" "systemd" "syslog"
158 ] ++ lib.optionals (!stdenv.isDarwin) [
159 "mad" "jack" "nfs"
160 ]; };
161 mpdWithFeatures = run;
162}
diff --git a/pkgs/mpd_0_21/default_old.nix b/pkgs/mpd_0_21/default_old.nix
deleted file mode 100644
index 129894d..0000000
--- a/pkgs/mpd_0_21/default_old.nix
+++ /dev/null
@@ -1,156 +0,0 @@
1{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost168, darwin
2, cmake, libupnp, sndio, chromaprint, soxr, libcdio, libcdio-paranoia, ao, libao
3, openal
4# Inputs
5, curl, libmms, libnfs, samba
6# Archive support
7, bzip2, zziplib
8# Codecs
9, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
10, libmad, libmikmod, mpg123, libopus, libvorbis, lame
11# Filters
12, libsamplerate
13# Outputs
14, alsaLib, libjack2, libpulseaudio, libshout
15# Misc
16, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
17# Services
18, yajl
19# Client support
20, mpd_clientlib
21# Tag support
22, libid3tag
23}:
24
25let
26 major = "0.21";
27 minor = "7";
28
29 lib = stdenv.lib;
30 mkDisable = f: "-D${f}=disabled";
31 mkEnable = f: "-D${f}=enabled";
32 keys = lib.mapAttrsToList (k: v: k);
33
34 featureDependencies = {
35 # Storage plugins
36 udisks = [ dbus ];
37 webdav = [ curl expat ];
38 # Input plugins
39 curl = [ curl ];
40 mms = [ libmms ];
41 nfs = [ libnfs ];
42 smbclient = [ samba ];
43 # Archive support
44 bzip2 = [ bzip2 ];
45 zzip = [ zziplib ];
46 # Decoder plugins
47 audiofile = [ audiofile ];
48 faad = [ faad2 ];
49 ffmpeg = [ ffmpeg ];
50 flac = [ flac ];
51 fluidsynth = [ fluidsynth ];
52 gme = [ game-music-emu ];
53 mad = [ libmad ];
54 mikmod = [ libmikmod ];
55 mpg123 = [ mpg123 ];
56 opus = [ libopus ];
57 vorbis = [ libvorbis ];
58 # Encoder plugins
59 vorbisenc = [ libvorbis ];
60 lame = [ lame ];
61 # Filter plugins
62 libsamplerate = [ libsamplerate ];
63 # Output plugins
64 alsa = [ alsaLib ];
65 jack = [ libjack2 ];
66 pulse = [ libpulseaudio ];
67 shout = [ libshout ];
68 # Commercial services
69 qobuz = [ curl libgcrypt yajl ];
70 soundcloud = [ curl yajl ];
71 tidal = [ curl yajl ];
72 # Client support
73 libmpdclient = [ mpd_clientlib ];
74 # Tag support
75 id3tag = [ libid3tag ];
76 # Misc
77 dbus = [ dbus ];
78 expat = [ expat ];
79 icu = [ icu ];
80 pcre = [ pcre ];
81 sqlite = [ sqlite ];
82 systemd = [ systemd ];
83 yajl = [ yajl ];
84 zeroconf = [ avahi dbus ];
85 };
86
87 run = { features ? null }:
88 let
89 fl = if (features == null )
90 then keys featureDependencies
91 else features;
92
93 # Disable platform specific features if needed
94 # using libmad to decode mp3 files on darwin is causing a segfault -- there
95 # is probably a solution, but I'm disabling it for now
96 platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smb" ]
97 ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" ];
98 features_ = lib.subtractLists platformMask fl;
99
100 in stdenv.mkDerivation rec {
101 name = "mpd-${version}";
102 version = "${major}${if minor == "" then "" else "." + minor}";
103
104 src = fetchFromGitHub {
105 owner = "MusicPlayerDaemon";
106 repo = "MPD";
107 rev = "v${version}";
108 sha256 = "11zi8hmlj63ngzl06vzx05669k20j4cdsp0caz4p4ayn46fd4m17";
109 };
110
111 buildInputs = [ cmake glib boost168 sndio libupnp chromaprint soxr
112 libcdio libcdio-paranoia ao libao openal libvorbis
113 ]
114 ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
115 ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AudioToolbox;
116
117 nativeBuildInputs = [ meson ninja pkgconfig ];
118
119 enableParallelBuilding = true;
120
121 mesonFlags =
122 map mkEnable features_ ++ map mkDisable (lib.subtractLists features_ (keys featureDependencies))
123 ++ [ "-Dsyslog=enabled" ]
124 ++ lib.optional (lib.any (x: x == "zeroconf") features_)
125 "-Dzeroconf=avahi"
126 ++ lib.optional stdenv.isLinux
127 "-Dsystemd_system_unit_dir=etc/systemd/system";
128
129 meta = with stdenv.lib; {
130 description = "A flexible, powerful daemon for playing music";
131 homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
132 license = licenses.gpl2;
133 maintainers = with maintainers; [ astsmtl fuuzetsu ehmry fpletz ];
134 platforms = platforms.unix;
135
136 longDescription = ''
137 Music Player Daemon (MPD) is a flexible, powerful daemon for playing
138 music. Through plugins and libraries it can play a variety of sound
139 files while being controlled by its network protocol.
140 '';
141 };
142 };
143in
144{
145 mpd = run { };
146 mpd-small = run { features = [
147 "webdav" "curl" "mms" "nfs" "bzip2" "zzip"
148 "audiofile" "faad" "flac" "gme" "mad"
149 "mpg123" "opus" "vorbis"
150 "vorbisenc" "lame" "libsamplerate"
151 "alsa" "shout" "libmpdclient"
152 "id3tag" "expat" "pcre" "yajl" "sqlite"
153 "soundcloud" "qobuz" "tidal"
154 "systemd"
155 ]; };
156}
diff --git a/pkgs/pg_activity/default.nix b/pkgs/pg_activity/default.nix
deleted file mode 100644
index a20ee8a..0000000
--- a/pkgs/pg_activity/default.nix
+++ /dev/null
@@ -1,5 +0,0 @@
1{ python2Packages, mylibs }:
2with python2Packages;
3buildPythonApplication (mylibs.fetchedGithub ./pg_activity.json // {
4 propagatedBuildInputs = [ psycopg2 psutil ];
5})
diff --git a/pkgs/pg_activity/pg_activity.json b/pkgs/pg_activity/pg_activity.json
deleted file mode 100644
index 4485d9a..0000000
--- a/pkgs/pg_activity/pg_activity.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "v1.4.0",
3 "meta": {
4 "name": "pg_activity",
5 "url": "https://github.com/julmon/pg_activity/",
6 "branch": "refs/tags/v1.4.0"
7 },
8 "github": {
9 "owner": "julmon",
10 "repo": "pg_activity",
11 "rev": "f26ae614c204254a805309026eebd5e9230b0214",
12 "sha256": "1bmvgrmna7vz2a6vknxm0k19vl9x7l6hn6vpfd7jgd53rz7c9w5p",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/python-packages/apprise/apprise.json b/pkgs/python-packages/apprise/apprise.json
deleted file mode 100644
index b408ea4..0000000
--- a/pkgs/python-packages/apprise/apprise.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "c9b957c-master",
3 "meta": {
4 "name": "apprise",
5 "url": "https://github.com/caronc/apprise",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "caronc",
10 "repo": "apprise",
11 "rev": "c9b957c4341e7d43e5be6463bd317a7401d083d9",
12 "sha256": "01zz4mh3xvplrm5xalzrcncnh0jq5y51pmdxkr4hdd6dz9wx0mbg",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/python-packages/apprise/default.nix b/pkgs/python-packages/apprise/default.nix
deleted file mode 100644
index d310599..0000000
--- a/pkgs/python-packages/apprise/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
1{ mylibs, pythonPackages }: with pythonPackages;
2buildPythonPackage rec {
3 pname = "apprise";
4 version = "0.7.4";
5 src = (mylibs.fetchedGithub ./apprise.json).src;
6 propagatedBuildInputs = [ decorator requests
7 requests_oauthlib oauthlib urllib3 six click markdown pyyaml
8 sleekxmpp
9 ];
10 doChecks = false;
11}
diff --git a/pkgs/python-packages/default.nix b/pkgs/python-packages/default.nix
index 94bb5fe..441c5bc 100644
--- a/pkgs/python-packages/default.nix
+++ b/pkgs/python-packages/default.nix
@@ -1,6 +1,5 @@
1{ mylibs, callPackage, python }: 1{ mylibs, callPackage, python }:
2{ 2{
3 apprise = callPackage ./apprise { inherit mylibs; pythonPackages = python.pkgs; };
4 blivet3 = callPackage ./blivet { inherit python; pythonPackages = python.pkgs; }; 3 blivet3 = callPackage ./blivet { inherit python; pythonPackages = python.pkgs; };
5 buildbot-plugins = callPackage ./buildbot/plugins { inherit python; }; 4 buildbot-plugins = callPackage ./buildbot/plugins { inherit python; };
6 wokkel = callPackage ./wokkel.nix { pythonPackages = python.pkgs; }; 5 wokkel = callPackage ./wokkel.nix { pythonPackages = python.pkgs; };
diff --git a/pkgs/signald/default.nix b/pkgs/signald/default.nix
deleted file mode 100644
index 593e63d..0000000
--- a/pkgs/signald/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
1{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl
2, makeWrapper }:
3
4let
5 pname = "signald";
6
7 version = "0.13.1";
8
9 # This package uses the .git directory
10 src = fetchgit {
11 url = "https://gitlab.com/signald/signald";
12 rev = version;
13 sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7";
14 leaveDotGit = true;
15 };
16
17 buildConfigJar = fetchurl {
18 url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar";
19 sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
20 };
21
22 patches = [ ./git-describe-always.patch ./gradle-plugin.patch ];
23
24 postPatch = ''
25 patchShebangs gradlew
26 sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
27 '';
28
29 # fake build to pre-download deps into fixed-output derivation
30 deps = stdenv.mkDerivation {
31 name = "${pname}-deps";
32 inherit src version postPatch patches;
33 nativeBuildInputs = [ gradle_6 perl ];
34 buildPhase = ''
35 export GRADLE_USER_HOME=$(mktemp -d)
36 gradle --no-daemon build
37 '';
38 # 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)
39 installPhase = ''
40 find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
41 | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
42 | sh
43 '';
44 # Don't move info to share/
45 forceShare = [ "dummy" ];
46 outputHashAlgo = "sha256";
47 outputHashMode = "recursive";
48 outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7";
49 };
50
51in stdenv.mkDerivation rec {
52 inherit pname src version postPatch patches;
53
54 buildPhase = ''
55 export GRADLE_USER_HOME=$(mktemp -d)
56
57 # Use the local packages from -deps
58 sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
59
60 gradle --offline --no-daemon distTar
61 '';
62
63 installPhase = ''
64 mkdir -p $out
65 tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
66 wrapProgram $out/bin/signald \
67 --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
68 --set JAVA_HOME "${jre}"
69 '';
70
71 nativeBuildInputs = [ git gradle_6 makeWrapper ];
72
73 doCheck = true;
74
75 meta = with lib; {
76 description = "Unofficial daemon for interacting with Signal";
77 longDescription = ''
78 Signald is a daemon that facilitates communication over Signal. It is
79 unofficial, unapproved, and not nearly as secure as the real Signal
80 clients.
81 '';
82 homepage = "https://signald.org";
83 license = licenses.gpl3Plus;
84 maintainers = with maintainers; [ expipiplus1 ];
85 platforms = platforms.unix;
86 };
87}
diff --git a/pkgs/signald/git-describe-always.patch b/pkgs/signald/git-describe-always.patch
deleted file mode 100644
index 2f4830e..0000000
--- a/pkgs/signald/git-describe-always.patch
+++ /dev/null
@@ -1,9 +0,0 @@
1diff --git a/version.sh b/version.sh
2index 7aeeb3c..060cba3 100755
3--- a/version.sh
4+++ b/version.sh
5@@ -1,3 +1,3 @@
6 #!/bin/sh
7-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)
8+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)
9 echo $VERSION
diff --git a/pkgs/signald/gradle-plugin.patch b/pkgs/signald/gradle-plugin.patch
deleted file mode 100644
index 6952654..0000000
--- a/pkgs/signald/gradle-plugin.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1diff --git a/build.gradle b/build.gradle
2index 11d7a99..66805bb 100644
3--- a/build.gradle
4+++ b/build.gradle
5@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
6 import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
7 import org.xml.sax.SAXParseException
8
9-plugins {
10- id 'de.fuerstenau.buildconfig' version '1.1.8'
11+buildscript {
12+ dependencies {
13+ classpath files ("BuildConfig.jar")
14+ }
15 }
16+apply plugin: 'de.fuerstenau.buildconfig'
17
18 apply plugin: 'java'
19 apply plugin: 'application'
20@@ -185,4 +188,4 @@ task integrationTest(type: Test) {
21 testClassesDirs = sourceSets.integrationTest.output.classesDirs
22 classpath = sourceSets.integrationTest.runtimeClasspath
23 outputs.upToDateWhen { false }
24-}
25\ No newline at end of file
26+}
diff --git a/pkgs/stgit/default.nix b/pkgs/stgit/default.nix
deleted file mode 100644
index da4f7ec..0000000
--- a/pkgs/stgit/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
1# Taken from nixpkgs repository
2{ lib
3, fetchFromGitHub
4, installShellFiles
5, python3Packages
6, asciidoc
7, docbook_xsl
8, git
9, perl
10, xmlto
11}:
12
13python3Packages.buildPythonApplication rec {
14 pname = "stgit";
15 version = "1.1";
16
17 src = fetchFromGitHub {
18 owner = "stacked-git";
19 repo = "stgit";
20 rev = "v${version}";
21 sha256 = "sha256-gfPf1yRmx1Mn1TyCBWmjQJBgXLlZrDcew32C9o6uNYk=";
22 };
23
24 nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl ];
25
26 format = "other";
27
28 checkInputs = [ git perl ];
29
30 postPatch = ''
31 for f in Documentation/*.xsl; do
32 substituteInPlace $f \
33 --replace http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \
34 ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl \
35 --replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
36 ${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl
37 done
38 '';
39
40 makeFlags = [
41 "prefix=${placeholder "out"}"
42 "MAN_BASE_URL=${placeholder "out"}/share/man"
43 "XMLTO_EXTRA=--skip-validation"
44 ];
45
46 buildFlags = [ "all" ];
47
48 checkTarget = "test";
49 checkFlags = [ "PERL_PATH=${perl}/bin/perl" ];
50
51 installTargets = [ "install" ];
52 postInstall = ''
53 installShellCompletion \
54 --zsh $out/share/stgit/completion/stgit.zsh
55 '';
56
57 meta = with lib; {
58 description = "A patch manager implemented on top of Git";
59 homepage = "https://stacked-git.github.io/";
60 license = licenses.gpl2Only;
61 platforms = platforms.unix;
62 maintainers = with maintainers; [ jshholland ];
63 };
64}
diff --git a/pkgs/telegram-cli/default.nix b/pkgs/telegram-cli/default.nix
deleted file mode 100644
index 87c93e5..0000000
--- a/pkgs/telegram-cli/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
1{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }:
2stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // {
3 buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
4 preBuild = ''
5 sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
6 '';
7 installPhase = ''
8 mkdir -p $out
9 install -Dm755 bin/telegram-cli $out/bin/telegram-cli
10 install -Dm644 tg-server.pub $out/etc/server.pub
11 install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
12 '';
13})
diff --git a/pkgs/telegram-cli/telegram-cli.json b/pkgs/telegram-cli/telegram-cli.json
deleted file mode 100644
index 2e7ed9a..0000000
--- a/pkgs/telegram-cli/telegram-cli.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "3da0e4a-master",
3 "meta": {
4 "name": "telegram-cli",
5 "url": "https://github.com/kenorb-contrib/tg/",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "kenorb-contrib",
10 "repo": "tg",
11 "rev": "3da0e4a54c3a63cee11aae3c23f2077adfc4949d",
12 "sha256": "0pvswzajipzkk1x5cyf10dw18ka9jalar0aa2i7y23ifm4ddnif4",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/woob/default.nix b/pkgs/woob/default.nix
deleted file mode 100644
index 22928b9..0000000
--- a/pkgs/woob/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
1{ lib
2, buildPythonPackage
3, fetchPypi
4, isPy27
5, Babel
6, colorama
7, cssselect
8, dateutil
9, feedparser
10, gdata
11, gnupg
12, html2text
13, libyaml
14, lxml
15, mechanize
16, nose
17, pdfminer
18, pillow
19, prettytable
20, pyqt5
21, pyyaml
22, requests
23, simplejson
24, termcolor
25, unidecode
26}:
27
28buildPythonPackage rec {
29 pname = "woob";
30 version = "3.0";
31 disabled = isPy27;
32
33 src = fetchPypi {
34 inherit pname version;
35 sha256 = "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7";
36 };
37
38 nativeBuildInputs = [ pyqt5 ];
39
40 propagatedBuildInputs = [
41 Babel
42 colorama
43 cssselect
44 dateutil
45 feedparser
46 gdata
47 gnupg
48 html2text
49 libyaml
50 lxml
51 mechanize
52 pdfminer
53 pillow
54 prettytable
55 pyqt5
56 pyyaml
57 requests
58 simplejson
59 termcolor
60 unidecode
61 ];
62
63 doCheck = false;
64
65 meta = with lib; {
66 homepage = "https://woob.tech";
67 description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
68 license = licenses.lgpl3Plus;
69 maintainers = [ maintainers.DamienCassou ];
70 };
71}
72
diff --git a/pkgs/zrepl/default.nix b/pkgs/zrepl/default.nix
deleted file mode 100644
index 1e89098..0000000
--- a/pkgs/zrepl/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
1{ buildGoModule, fetchFromGitHub }:
2buildGoModule rec {
3 name = "zrepl-${version}";
4 version = "0.3.0";
5 src = fetchFromGitHub {
6 owner = "zrepl";
7 repo = "zrepl";
8 rev = "v${version}";
9 sha256 = "11wfdvi3f4yw7kdapf0l38illnnn7jgi5cp4whrg5zsqyc0wqrym";
10 };
11 modSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
12 vendorSha256 = "0gh0x8321dhk1nhg1as0bl1bxlblrrcxxl1rb1d8825ly8bhcdkb";
13 subPackages = [ "." ];
14}