summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/naemon/default.nix18
-rw-r--r--modules/opendmarc.nix14
-rw-r--r--modules/webapps/diaspora.nix28
-rw-r--r--modules/webapps/mastodon.nix26
-rw-r--r--modules/webapps/mediagoblin.nix26
-rw-r--r--modules/webapps/peertube.nix26
-rw-r--r--modules/websites/httpd-service-builder.nix2
-rw-r--r--modules/websites/location-options.nix54
-rw-r--r--modules/websites/vhost-options.nix275
-rw-r--r--nix/sources.json16
-rw-r--r--overlays/bonfire/default.nix24
-rw-r--r--overlays/databases/mysql/default.nix11
-rw-r--r--overlays/default.nix5
-rw-r--r--overlays/neomutt/commands.patch87
-rw-r--r--overlays/neomutt/default.nix18
-rw-r--r--overlays/pelican/default.nix3
-rw-r--r--overlays/pelican/pelican.json15
-rw-r--r--overlays/profanity/default.nix20
-rw-r--r--overlays/simp_le/default.nix3
-rw-r--r--overlays/vit/default.nix8
-rw-r--r--overlays/vit/vit.json15
-rw-r--r--overlays/weechat/default.nix4
-rw-r--r--pkgs/crypto/cardano-cli/default.nix2
-rw-r--r--pkgs/crypto/iota-cli-app/default.nix4
-rw-r--r--pkgs/mtop/default.nix2
-rw-r--r--pkgs/note/default.nix5
-rw-r--r--pkgs/python-packages/buildbot/plugins/buildslist/default.nix4
-rw-r--r--pkgs/python-packages/wokkel.nix2
-rw-r--r--pkgs/simp_le/default.nix32
-rw-r--r--pkgs/telegram-cli/default.nix3
-rw-r--r--pkgs/telegram-cli/telegram-cli.json10
-rw-r--r--pkgs/telegram-cli/telegram-cli.patch90
-rw-r--r--pkgs/terminal-velocity/default.nix4
-rw-r--r--pkgs/tiv/default.nix2
-rw-r--r--pkgs/webapps/mediagoblin/default.nix2
-rw-r--r--pkgs/webapps/peertube/default.nix2
36 files changed, 134 insertions, 728 deletions
diff --git a/modules/naemon/default.nix b/modules/naemon/default.nix
index 38e99a9c..976de693 100644
--- a/modules/naemon/default.nix
+++ b/modules/naemon/default.nix
@@ -137,18 +137,18 @@ in
137 } 137 }
138 ]; 138 ];
139 139
140 users.users = optionalAttrs (cfg.user == "naemon") (singleton 140 users.users = optionalAttrs (cfg.user == "naemon") {
141 { 141 naemon = {
142 name = "naemon";
143 group = cfg.group; 142 group = cfg.group;
144 uid = config.ids.uids.nagios; 143 uid = config.ids.uids.nagios;
145 extraGroups = [ "keys" ]; 144 extraGroups = [ "keys" ];
146 }); 145 };
147 users.groups = optionalAttrs (cfg.user == "naemon") (singleton 146 };
148 { 147 users.groups = optionalAttrs (cfg.user == "naemon") {
149 name = "naemon"; 148 naemon = {
150 gid = config.ids.gids.nagios; 149 gid = config.ids.gids.nagios;
151 }); 150 };
151 };
152 152
153 services.filesWatcher.naemon = { 153 services.filesWatcher.naemon = {
154 paths = [ config.secrets.fullPaths."naemon/resources.cfg" ]; 154 paths = [ config.secrets.fullPaths."naemon/resources.cfg" ];
diff --git a/modules/opendmarc.nix b/modules/opendmarc.nix
index e18ec82a..6137d100 100644
--- a/modules/opendmarc.nix
+++ b/modules/opendmarc.nix
@@ -59,16 +59,18 @@ in {
59 59
60 config = mkIf cfg.enable { 60 config = mkIf cfg.enable {
61 61
62 users.users = optionalAttrs (cfg.user == "opendmarc") (singleton 62 users.users = optionalAttrs (cfg.user == "opendmarc") {
63 { name = "opendmarc"; 63 opendmarc = {
64 group = cfg.group; 64 group = cfg.group;
65 uid = config.ids.uids.opendmarc; 65 uid = config.ids.uids.opendmarc;
66 }); 66 };
67 };
67 68
68 users.groups = optionalAttrs (cfg.group == "opendmarc") (singleton 69 users.groups = optionalAttrs (cfg.group == "opendmarc") {
69 { name = "opendmarc"; 70 opendmarc = {
70 gid = config.ids.gids.opendmarc; 71 gid = config.ids.gids.opendmarc;
71 }); 72 };
73 };
72 74
73 environment.systemPackages = [ pkgs.opendmarc ]; 75 environment.systemPackages = [ pkgs.opendmarc ];
74 76
diff --git a/modules/webapps/diaspora.nix b/modules/webapps/diaspora.nix
index 65599b73..d9e9989f 100644
--- a/modules/webapps/diaspora.nix
+++ b/modules/webapps/diaspora.nix
@@ -108,19 +108,21 @@ in
108 }; 108 };
109 109
110 config = lib.mkIf cfg.enable { 110 config = lib.mkIf cfg.enable {
111 users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton { 111 users.users = lib.optionalAttrs (cfg.user == name) {
112 inherit name; 112 "${name}" = {
113 inherit uid; 113 inherit uid;
114 group = cfg.group; 114 group = cfg.group;
115 description = "Diaspora user"; 115 description = "Diaspora user";
116 home = cfg.dataDir; 116 home = cfg.dataDir;
117 packages = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby ]; 117 packages = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby ];
118 useDefaultShell = true; 118 useDefaultShell = true;
119 }); 119 };
120 users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton { 120 };
121 inherit name; 121 users.groups = lib.optionalAttrs (cfg.group == name) {
122 inherit gid; 122 "${name}" = {
123 }); 123 inherit gid;
124 };
125 };
124 126
125 systemd.services.diaspora = { 127 systemd.services.diaspora = {
126 description = "Diaspora"; 128 description = "Diaspora";
diff --git a/modules/webapps/mastodon.nix b/modules/webapps/mastodon.nix
index 68531cf3..cd550c0e 100644
--- a/modules/webapps/mastodon.nix
+++ b/modules/webapps/mastodon.nix
@@ -96,18 +96,20 @@ in
96 }; 96 };
97 97
98 config = lib.mkIf cfg.enable { 98 config = lib.mkIf cfg.enable {
99 users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton { 99 users.users = lib.optionalAttrs (cfg.user == name) {
100 inherit name; 100 "${name}" = {
101 inherit uid; 101 inherit uid;
102 group = cfg.group; 102 group = cfg.group;
103 description = "Mastodon user"; 103 description = "Mastodon user";
104 home = cfg.dataDir; 104 home = cfg.dataDir;
105 useDefaultShell = true; 105 useDefaultShell = true;
106 }); 106 };
107 users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton { 107 };
108 inherit name; 108 users.groups = lib.optionalAttrs (cfg.group == name) {
109 inherit gid; 109 "${name}" = {
110 }); 110 inherit gid;
111 };
112 };
111 113
112 systemd.services.mastodon-streaming = { 114 systemd.services.mastodon-streaming = {
113 description = "Mastodon Streaming"; 115 description = "Mastodon Streaming";
diff --git a/modules/webapps/mediagoblin.nix b/modules/webapps/mediagoblin.nix
index 78bbef6f..dbc4c2b1 100644
--- a/modules/webapps/mediagoblin.nix
+++ b/modules/webapps/mediagoblin.nix
@@ -151,18 +151,20 @@ in
151 }; 151 };
152 152
153 config = lib.mkIf cfg.enable { 153 config = lib.mkIf cfg.enable {
154 users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton { 154 users.users = lib.optionalAttrs (cfg.user == name) {
155 inherit name; 155 "${name}" = {
156 inherit uid; 156 inherit uid;
157 group = cfg.group; 157 group = cfg.group;
158 description = "Mediagoblin user"; 158 description = "Mediagoblin user";
159 home = cfg.dataDir; 159 home = cfg.dataDir;
160 useDefaultShell = true; 160 useDefaultShell = true;
161 }); 161 };
162 users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton { 162 };
163 inherit name; 163 users.groups = lib.optionalAttrs (cfg.group == name) {
164 inherit gid; 164 "${name}" = {
165 }); 165 inherit gid;
166 };
167 };
166 168
167 systemd.services.mediagoblin-web = { 169 systemd.services.mediagoblin-web = {
168 description = "Mediagoblin service"; 170 description = "Mediagoblin service";
diff --git a/modules/webapps/peertube.nix b/modules/webapps/peertube.nix
index 89dcc67a..281ff8bc 100644
--- a/modules/webapps/peertube.nix
+++ b/modules/webapps/peertube.nix
@@ -53,18 +53,20 @@ in
53 }; 53 };
54 54
55 config = lib.mkIf cfg.enable { 55 config = lib.mkIf cfg.enable {
56 users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton { 56 users.users = lib.optionalAttrs (cfg.user == name) {
57 inherit name; 57 "${name}" = {
58 inherit uid; 58 inherit uid;
59 group = cfg.group; 59 group = cfg.group;
60 description = "Peertube user"; 60 description = "Peertube user";
61 home = cfg.dataDir; 61 home = cfg.dataDir;
62 useDefaultShell = true; 62 useDefaultShell = true;
63 }); 63 };
64 users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton { 64 };
65 inherit name; 65 users.groups = lib.optionalAttrs (cfg.group == name) {
66 inherit gid; 66 "${name}" = {
67 }); 67 inherit gid;
68 };
69 };
68 70
69 systemd.services.peertube = { 71 systemd.services.peertube = {
70 description = "Peertube"; 72 description = "Peertube";
diff --git a/modules/websites/httpd-service-builder.nix b/modules/websites/httpd-service-builder.nix
index ec79a90c..c5f72f96 100644
--- a/modules/websites/httpd-service-builder.nix
+++ b/modules/websites/httpd-service-builder.nix
@@ -470,7 +470,7 @@ in
470 }; 470 };
471 471
472 virtualHosts = mkOption { 472 virtualHosts = mkOption {
473 type = with types; attrsOf (submodule (import ./vhost-options.nix)); 473 type = with types; attrsOf (submodule (import <nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix>));
474 default = { 474 default = {
475 localhost = { 475 localhost = {
476 documentRoot = "${pkg}/htdocs"; 476 documentRoot = "${pkg}/htdocs";
diff --git a/modules/websites/location-options.nix b/modules/websites/location-options.nix
deleted file mode 100644
index 8ea88f94..00000000
--- a/modules/websites/location-options.nix
+++ /dev/null
@@ -1,54 +0,0 @@
1{ config, lib, name, ... }:
2let
3 inherit (lib) mkOption types;
4in
5{
6 options = {
7
8 proxyPass = mkOption {
9 type = with types; nullOr str;
10 default = null;
11 example = "http://www.example.org/";
12 description = ''
13 Sets up a simple reverse proxy as described by <link xlink:href="https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html#simple" />.
14 '';
15 };
16
17 index = mkOption {
18 type = with types; nullOr str;
19 default = null;
20 example = "index.php index.html";
21 description = ''
22 Adds DirectoryIndex directive. See <link xlink:href="https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryindex" />.
23 '';
24 };
25
26 alias = mkOption {
27 type = with types; nullOr path;
28 default = null;
29 example = "/your/alias/directory";
30 description = ''
31 Alias directory for requests. See <link xlink:href="https://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias" />.
32 '';
33 };
34
35 extraConfig = mkOption {
36 type = types.lines;
37 default = "";
38 description = ''
39 These lines go to the end of the location verbatim.
40 '';
41 };
42
43 priority = mkOption {
44 type = types.int;
45 default = 1000;
46 description = ''
47 Order of this location block in relation to the others in the vhost.
48 The semantics are the same as with `lib.mkOrder`. Smaller values have
49 a greater priority.
50 '';
51 };
52
53 };
54}
diff --git a/modules/websites/vhost-options.nix b/modules/websites/vhost-options.nix
deleted file mode 100644
index 263980ad..00000000
--- a/modules/websites/vhost-options.nix
+++ /dev/null
@@ -1,275 +0,0 @@
1{ config, lib, name, ... }:
2let
3 inherit (lib) literalExample mkOption nameValuePair types;
4in
5{
6 options = {
7
8 hostName = mkOption {
9 type = types.str;
10 default = name;
11 description = "Canonical hostname for the server.";
12 };
13
14 serverAliases = mkOption {
15 type = types.listOf types.str;
16 default = [];
17 example = ["www.example.org" "www.example.org:8080" "example.org"];
18 description = ''
19 Additional names of virtual hosts served by this virtual host configuration.
20 '';
21 };
22
23 listen = mkOption {
24 type = with types; listOf (submodule ({
25 options = {
26 port = mkOption {
27 type = types.port;
28 description = "Port to listen on";
29 };
30 ip = mkOption {
31 type = types.str;
32 default = "*";
33 description = "IP to listen on. 0.0.0.0 for IPv4 only, * for all.";
34 };
35 ssl = mkOption {
36 type = types.bool;
37 default = false;
38 description = "Whether to enable SSL (https) support.";
39 };
40 };
41 }));
42 default = [];
43 example = [
44 { ip = "195.154.1.1"; port = 443; ssl = true;}
45 { ip = "192.154.1.1"; port = 80; }
46 { ip = "*"; port = 8080; }
47 ];
48 description = ''
49 Listen addresses and ports for this virtual host.
50 <note><para>
51 This option overrides <literal>addSSL</literal>, <literal>forceSSL</literal> and <literal>onlySSL</literal>.
52 </para></note>
53 '';
54 };
55
56 enableSSL = mkOption {
57 type = types.bool;
58 visible = false;
59 default = false;
60 };
61
62 addSSL = mkOption {
63 type = types.bool;
64 default = false;
65 description = ''
66 Whether to enable HTTPS in addition to plain HTTP. This will set defaults for
67 <literal>listen</literal> to listen on all interfaces on the respective default
68 ports (80, 443).
69 '';
70 };
71
72 onlySSL = mkOption {
73 type = types.bool;
74 default = false;
75 description = ''
76 Whether to enable HTTPS and reject plain HTTP connections. This will set
77 defaults for <literal>listen</literal> to listen on all interfaces on port 443.
78 '';
79 };
80
81 forceSSL = mkOption {
82 type = types.bool;
83 default = false;
84 description = ''
85 Whether to add a separate nginx server block that permanently redirects (301)
86 all plain HTTP traffic to HTTPS. This will set defaults for
87 <literal>listen</literal> to listen on all interfaces on the respective default
88 ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
89 '';
90 };
91
92 enableACME = mkOption {
93 type = types.bool;
94 default = false;
95 description = ''
96 Whether to ask Let's Encrypt to sign a certificate for this vhost.
97 Alternately, you can use an existing certificate through <option>useACMEHost</option>.
98 '';
99 };
100
101 useACMEHost = mkOption {
102 type = types.nullOr types.str;
103 default = null;
104 description = ''
105 A host of an existing Let's Encrypt certificate to use.
106 This is useful if you have many subdomains and want to avoid hitting the
107 <link xlink:href="https://letsencrypt.org/docs/rate-limits/">rate limit</link>.
108 Alternately, you can generate a certificate through <option>enableACME</option>.
109 <emphasis>Note that this option does not create any certificates, nor it does add subdomains to existing ones – you will need to create them manually using <xref linkend="opt-security.acme.certs"/>.</emphasis>
110 '';
111 };
112
113 acmeRoot = mkOption {
114 type = types.str;
115 default = "/var/lib/acme/acme-challenges";
116 description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here";
117 };
118
119 sslServerCert = mkOption {
120 type = types.path;
121 example = "/var/host.cert";
122 description = "Path to server SSL certificate.";
123 };
124
125 sslServerKey = mkOption {
126 type = types.path;
127 example = "/var/host.key";
128 description = "Path to server SSL certificate key.";
129 };
130
131 sslServerChain = mkOption {
132 type = types.nullOr types.path;
133 default = null;
134 example = "/var/ca.pem";
135 description = "Path to server SSL chain file.";
136 };
137
138 http2 = mkOption {
139 type = types.bool;
140 default = false;
141 description = ''
142 Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. <emphasis>However, if you use the prefork mpm, there will
143 be severe restrictions.</emphasis> Refer to <link xlink:href="https://httpd.apache.org/docs/2.4/howto/http2.html#mpm-config"/> for details.
144 '';
145 };
146
147 adminAddr = mkOption {
148 type = types.nullOr types.str;
149 default = null;
150 example = "admin@example.org";
151 description = "E-mail address of the server administrator.";
152 };
153
154 documentRoot = mkOption {
155 type = types.nullOr types.path;
156 default = null;
157 example = "/data/webserver/docs";
158 description = ''
159 The path of Apache's document root directory. If left undefined,
160 an empty directory in the Nix store will be used as root.
161 '';
162 };
163
164 servedDirs = mkOption {
165 type = types.listOf types.attrs;
166 default = [];
167 example = [
168 { urlPath = "/nix";
169 dir = "/home/eelco/Dev/nix-homepage";
170 }
171 ];
172 description = ''
173 This option provides a simple way to serve static directories.
174 '';
175 };
176
177 servedFiles = mkOption {
178 type = types.listOf types.attrs;
179 default = [];
180 example = [
181 { urlPath = "/foo/bar.png";
182 file = "/home/eelco/some-file.png";
183 }
184 ];
185 description = ''
186 This option provides a simple way to serve individual, static files.
187
188 <note><para>
189 This option has been deprecated and will be removed in a future
190 version of NixOS. You can achieve the same result by making use of
191 the <literal>locations.&lt;name&gt;.alias</literal> option.
192 </para></note>
193 '';
194 };
195
196 extraConfig = mkOption {
197 type = types.lines;
198 default = "";
199 example = ''
200 <Directory /home>
201 Options FollowSymlinks
202 AllowOverride All
203 </Directory>
204 '';
205 description = ''
206 These lines go to httpd.conf verbatim. They will go after
207 directories and directory aliases defined by default.
208 '';
209 };
210
211 enableUserDir = mkOption {
212 type = types.bool;
213 default = false;
214 description = ''
215 Whether to enable serving <filename>~/public_html</filename> as
216 <literal>/~<replaceable>username</replaceable></literal>.
217 '';
218 };
219
220 globalRedirect = mkOption {
221 type = types.nullOr types.str;
222 default = null;
223 example = http://newserver.example.org/;
224 description = ''
225 If set, all requests for this host are redirected permanently to
226 the given URL.
227 '';
228 };
229
230 logFormat = mkOption {
231 type = types.str;
232 default = "common";
233 example = "combined";
234 description = ''
235 Log format for Apache's log files. Possible values are: combined, common, referer, agent.
236 '';
237 };
238
239 robotsEntries = mkOption {
240 type = types.lines;
241 default = "";
242 example = "Disallow: /foo/";
243 description = ''
244 Specification of pages to be ignored by web crawlers. See <link
245 xlink:href='http://www.robotstxt.org/'/> for details.
246 '';
247 };
248
249 locations = mkOption {
250 type = with types; attrsOf (submodule (import ./location-options.nix));
251 default = {};
252 example = literalExample ''
253 {
254 "/" = {
255 proxyPass = "http://localhost:3000";
256 };
257 "/foo/bar.png" = {
258 alias = "/home/eelco/some-file.png";
259 };
260 };
261 '';
262 description = ''
263 Declarative location config. See <link
264 xlink:href="https://httpd.apache.org/docs/2.4/mod/core.html#location"/> for details.
265 '';
266 };
267
268 };
269
270 config = {
271
272 locations = builtins.listToAttrs (map (elem: nameValuePair elem.urlPath { alias = elem.file; }) config.servedFiles);
273
274 };
275}
diff --git a/nix/sources.json b/nix/sources.json
index 7c306c9e..09c44558 100644
--- a/nix/sources.json
+++ b/nix/sources.json
@@ -18,27 +18,27 @@
18 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" 18 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
19 }, 19 },
20 "nixpkgs": { 20 "nixpkgs": {
21 "branch": "nixos-19.03", 21 "branch": "nixos-unstable",
22 "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to", 22 "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to",
23 "homepage": "https://github.com/NixOS/nixpkgs", 23 "homepage": "https://github.com/NixOS/nixpkgs",
24 "owner": "NixOS", 24 "owner": "NixOS",
25 "repo": "nixpkgs-channels", 25 "repo": "nixpkgs-channels",
26 "rev": "34c7eb7545d155cc5b6f499b23a7cb1c96ab4d59", 26 "rev": "ae6bdcc53584aaf20211ce1814bea97ece08a248",
27 "sha256": "11z6ajj108fy2q5g8y4higlcaqncrbjm3dnv17pvif6avagw4mcb", 27 "sha256": "0hjhznns1cxgl3hww2d5si6vhy36pnm53hms9h338v6r633dcy77",
28 "type": "tarball", 28 "type": "tarball",
29 "url": "https://github.com/NixOS/nixpkgs-channels/archive/34c7eb7545d155cc5b6f499b23a7cb1c96ab4d59.tar.gz", 29 "url": "https://github.com/NixOS/nixpkgs-channels/archive/ae6bdcc53584aaf20211ce1814bea97ece08a248.tar.gz",
30 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" 30 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
31 }, 31 },
32 "nixpkgs-nixops": { 32 "nixpkgs-nixops": {
33 "branch": "nixos-19.09", 33 "branch": "nixos-unstable",
34 "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to", 34 "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to",
35 "homepage": "https://github.com/NixOS/nixpkgs", 35 "homepage": "https://github.com/NixOS/nixpkgs",
36 "owner": "NixOS", 36 "owner": "NixOS",
37 "repo": "nixpkgs-channels", 37 "repo": "nixpkgs-channels",
38 "rev": "856dbd1a5c7fd826cf3668ff12a7389be0686f41", 38 "rev": "ae6bdcc53584aaf20211ce1814bea97ece08a248",
39 "sha256": "1d895i1lc25d2akniaqg2n1jrg2rcd1gih8rpmhyrlv4lpggfmsx", 39 "sha256": "0hjhznns1cxgl3hww2d5si6vhy36pnm53hms9h338v6r633dcy77",
40 "type": "tarball", 40 "type": "tarball",
41 "url": "https://github.com/NixOS/nixpkgs-channels/archive/856dbd1a5c7fd826cf3668ff12a7389be0686f41.tar.gz", 41 "url": "https://github.com/NixOS/nixpkgs-channels/archive/ae6bdcc53584aaf20211ce1814bea97ece08a248.tar.gz",
42 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" 42 "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
43 }, 43 },
44 "nixpkgs-nixops-next": { 44 "nixpkgs-nixops-next": {
diff --git a/overlays/bonfire/default.nix b/overlays/bonfire/default.nix
new file mode 100644
index 00000000..68bde20f
--- /dev/null
+++ b/overlays/bonfire/default.nix
@@ -0,0 +1,24 @@
1self: super: {
2 bonfire = let
3 click = self.python3Packages.click.overridePythonAttrs(old: rec {
4 version = "6.7";
5 src = self.python3Packages.fetchPypi {
6 pname = "click";
7 inherit version;
8 sha256 = "02qkfpykbq35id8glfgwc38yc430427yd05z1wc5cnld8zgicmgi";
9 };
10 });
11 in
12 super.bonfire.overridePythonAttrs(old: {
13 version = "0.0.8";
14 src = self.fetchFromGitHub {
15 owner = "blue-yonder";
16 repo = "bonfire";
17 rev = "0a0f18469d484aba6871fa7421bbb2c00ccefcb0";
18 sha256 = "1y2r537ibghhmk6jngw0zwvh1vn2bihqcvji50ffh1j0qc6q3x6x";
19 };
20 postPatch = "";
21 propagatedBuildInputs = self.lib.remove self.python3Packages.click old.propagatedBuildInputs ++ [ click ];
22 meta.broken = false;
23 });
24}
diff --git a/overlays/databases/mysql/default.nix b/overlays/databases/mysql/default.nix
index 797332bb..24bad1b6 100644
--- a/overlays/databases/mysql/default.nix
+++ b/overlays/databases/mysql/default.nix
@@ -3,16 +3,5 @@ self: super: rec {
3 mariadbPAM = super.mariadb.overrideAttrs(old: { 3 mariadbPAM = super.mariadb.overrideAttrs(old: {
4 cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ]; 4 cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ];
5 buildInputs = old.buildInputs ++ [ self.pam ]; 5 buildInputs = old.buildInputs ++ [ self.pam ];
6 postInstall = old.postInstall + ''
7 # FIXME: hack because mariadb cannot find dialog.so
8 # fixed in 20.03: https://github.com/NixOS/nixpkgs/pull/80768
9 ln -s /nix $out/nix
10 cp "$dev"/lib/mysql/plugin/{caching_sha2_password.so,dialog.so,mysql_clear_password.so,sha256_password.so} "$out"/lib/mysql/plugin
11 '';
12 }) // (with super.mariadb; {
13 inherit client;
14 servier = super.mariadb;
15 inherit connector-c;
16 inherit galera;
17 }); 6 });
18} 7}
diff --git a/overlays/default.nix b/overlays/default.nix
index b488fd73..881083dd 100644
--- a/overlays/default.nix
+++ b/overlays/default.nix
@@ -4,6 +4,7 @@
4 4
5 bitlbee = import ./bitlbee; 5 bitlbee = import ./bitlbee;
6 bitlbee-discord = import ./bitlbee-discord; 6 bitlbee-discord = import ./bitlbee-discord;
7 bonfire = import ./bonfire;
7 bundix = import ./bundix; 8 bundix = import ./bundix;
8 dwm = import ./dwm; 9 dwm = import ./dwm;
9 elinks = import ./elinks; 10 elinks = import ./elinks;
@@ -13,24 +14,20 @@
13 ldapvi = import ./ldapvi; 14 ldapvi = import ./ldapvi;
14 lesspipe = import ./lesspipe; 15 lesspipe = import ./lesspipe;
15 mysql = import ./databases/mysql; 16 mysql = import ./databases/mysql;
16 neomutt = import ./neomutt;
17 nixops = import ./nixops; 17 nixops = import ./nixops;
18 pass = import ./pass; 18 pass = import ./pass;
19 pelican = import ./pelican; 19 pelican = import ./pelican;
20 postgresql = import ./databases/postgresql; 20 postgresql = import ./databases/postgresql;
21 profanity = import ./profanity;
22 s6 = import ./s6; 21 s6 = import ./s6;
23 sc-im = import ./sc-im; 22 sc-im = import ./sc-im;
24 shaarli = import ./shaarli; 23 shaarli = import ./shaarli;
25 slrn = import ./slrn; 24 slrn = import ./slrn;
26 taskwarrior = import ./taskwarrior; 25 taskwarrior = import ./taskwarrior;
27 vcsh = import ./vcsh; 26 vcsh = import ./vcsh;
28 vit = import ./vit;
29 weboob = import ./weboob; 27 weboob = import ./weboob;
30 weechat = import ./weechat; 28 weechat = import ./weechat;
31 ympd = import ./ympd; 29 ympd = import ./ympd;
32 doing = import ./doing; 30 doing = import ./doing;
33 xmr-stak = import ./xmr-stak; 31 xmr-stak = import ./xmr-stak;
34 simp_le = import ./simp_le;
35} 32}
36// import ./python-packages 33// import ./python-packages
diff --git a/overlays/neomutt/commands.patch b/overlays/neomutt/commands.patch
deleted file mode 100644
index 6c910cfb..00000000
--- a/overlays/neomutt/commands.patch
+++ /dev/null
@@ -1,87 +0,0 @@
1commit 763056828abe9716c4dfce754a47d8ecdefb3029
2Author: Ismaël Bouya <ismael.bouya@normalesup.org>
3Date: Mon Feb 10 16:13:33 2020 +0100
4
5 Fix commands that don’t need to have a non-empty mailbox to be valid
6
7 Some commands act on the whole mailbox (tag-pattern, delete-pattern,
8 search), and even though they don’t do anything when the mailbox is
9 empty, there is no reason to fail when it happens. This commit removes
10 the check that the mailbox is non-empty before doing said actions.
11
12diff --git a/index.c b/index.c
13index 0f4b9f99f..0adfc19f1 100644
14--- a/index.c
15+++ b/index.c
16@@ -1642,7 +1642,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
17 case OP_JUMP:
18 {
19 int msg_num = 0;
20- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
21+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
22 break;
23 if (isdigit(LastKey))
24 mutt_unget_event(LastKey, 0);
25@@ -1687,7 +1687,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
26
27 case OP_MAIN_DELETE_PATTERN:
28 if (!prereq(Context, menu,
29- CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE | CHECK_READONLY | CHECK_ATTACH))
30+ CHECK_IN_MAILBOX | CHECK_READONLY | CHECK_ATTACH))
31 {
32 break;
33 }
34@@ -1852,12 +1852,17 @@ int mutt_index_menu(struct MuttWindow *dlg)
35 menu->redraw = REDRAW_FULL;
36 break;
37
38- case OP_SEARCH:
39+ // Initiating a search can happen on an empty mailbox, but
40+ // searching for next/previous/... needs to be on a message and
41+ // thus a non-empty mailbox
42 case OP_SEARCH_REVERSE:
43 case OP_SEARCH_NEXT:
44 case OP_SEARCH_OPPOSITE:
45 if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
46 break;
47+ case OP_SEARCH:
48+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
49+ break;
50 menu->current = mutt_search_command(menu->current, op);
51 if (menu->current == -1)
52 menu->current = menu->oldcurrent;
53@@ -1926,14 +1931,14 @@ int mutt_index_menu(struct MuttWindow *dlg)
54 }
55
56 case OP_MAIN_TAG_PATTERN:
57- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
58+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
59 break;
60 mutt_pattern_func(MUTT_TAG, _("Tag messages matching: "));
61 menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
62 break;
63
64 case OP_MAIN_UNDELETE_PATTERN:
65- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE | CHECK_READONLY))
66+ if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_READONLY))
67 break;
68 /* L10N: CHECK_ACL */
69 /* L10N: Due to the implementation details we do not know whether we
70@@ -1950,7 +1955,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
71 break;
72
73 case OP_MAIN_UNTAG_PATTERN:
74- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
75+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
76 break;
77 if (mutt_pattern_func(MUTT_UNTAG, _("Untag messages matching: ")) == 0)
78 menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
79@@ -3189,7 +3194,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
80 }
81
82 case OP_MAIN_COLLAPSE_ALL:
83- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
84+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
85 break;
86
87 if ((C_Sort & SORT_MASK) != SORT_THREADS)
diff --git a/overlays/neomutt/default.nix b/overlays/neomutt/default.nix
deleted file mode 100644
index 0b237342..00000000
--- a/overlays/neomutt/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
1self: super: {
2 neomutt = super.neomutt.overrideAttrs (old:
3 rec {
4 name = "neomutt-${version}";
5 version = "20191207";
6 src = self.fetchFromGitHub {
7 owner = "neomutt";
8 repo = "neomutt";
9 rev = version;
10 sha256 = "16xr7wdmjw0i72xbnyyh098wx4cr0m8w2cr1szdi1b14p4kpgr67";
11 };
12 patches = old.patches or [] ++ [ ./commands.patch ];
13 buildInputs = old.buildInputs ++ [ self.gdbm ];
14 configureFlags = old.configureFlags ++ [ "--gdbm" ];
15 doCheck = false;
16 }
17 );
18}
diff --git a/overlays/pelican/default.nix b/overlays/pelican/default.nix
index 5a487aa6..4f8aece9 100644
--- a/overlays/pelican/default.nix
+++ b/overlays/pelican/default.nix
@@ -1,6 +1,7 @@
1self: super: { 1self: super: {
2 pelican = with self.python3Packages; 2 pelican = with self.python3Packages;
3 pelican.overrideAttrs(old: self.mylibs.fetchedGithub ./pelican.json // { 3 pelican.overrideAttrs(old: {
4 propagatedBuildInputs = old.propagatedBuildInputs ++ [ pyyaml markdown ]; 4 propagatedBuildInputs = old.propagatedBuildInputs ++ [ pyyaml markdown ];
5 doInstallCheck = false;
5 }); 6 });
6} 7}
diff --git a/overlays/pelican/pelican.json b/overlays/pelican/pelican.json
deleted file mode 100644
index d8f4425e..00000000
--- a/overlays/pelican/pelican.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "4.0.1",
3 "meta": {
4 "name": "pelican",
5 "url": "https://github.com/getpelican/pelican",
6 "branch": "refs/tags/4.0.1"
7 },
8 "github": {
9 "owner": "getpelican",
10 "repo": "pelican",
11 "rev": "24d6efa9fda4ad45649ddf88c1c596193d589bf8",
12 "sha256": "09fcwnnfln0cl5v0qpxzrllj27znrg6dbhaksxrl0192c3mbyjvl",
13 "fetchSubmodules": true
14 }
15}
diff --git a/overlays/profanity/default.nix b/overlays/profanity/default.nix
deleted file mode 100644
index 64fae490..00000000
--- a/overlays/profanity/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
1self: super: {
2 profanity = (super.profanity.override {
3 notifySupport = true;
4 inherit (self) libnotify gpgme gdk_pixbuf;
5 python = self.python3;
6 }).overrideAttrs (old: rec {
7 version = "0.7.1";
8 pname = "profanity";
9 name = "profanity-0.7.1";
10 src = self.fetchFromGitHub {
11 owner = "profanity-im";
12 repo = "profanity";
13 rev = version;
14 sha256 = "1mcgr86wqyzqx7mqxfkk2jwx6cgnvrky3zi4v1ww0lh6j05wj9gf";
15 };
16 patches = builtins.tail old.patches;
17 buildInputs = old.buildInputs ++ [ self.libsignal-protocol-c self.libgcrypt ];
18 configureFlags = old.configureFlags ++ [ "--enable-plugins" "--enable-omemo" ];
19 });
20}
diff --git a/overlays/simp_le/default.nix b/overlays/simp_le/default.nix
deleted file mode 100644
index 76891eda..00000000
--- a/overlays/simp_le/default.nix
+++ /dev/null
@@ -1,3 +0,0 @@
1self: super: {
2 simp_le = self.simp_le_0_17;
3}
diff --git a/overlays/vit/default.nix b/overlays/vit/default.nix
deleted file mode 100644
index 46242840..00000000
--- a/overlays/vit/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
1self: super:
2{
3 vit = (super.vit.override { inherit (self) taskwarrior; }).overrideAttrs (old:
4 self.mylibs.fetchedGithub ./vit.json // {
5 buildInputs = old.buildInputs ++ (with self.perlPackages; [ TryTiny TextCharWidth ]);
6 }
7 );
8}
diff --git a/overlays/vit/vit.json b/overlays/vit/vit.json
deleted file mode 100644
index d062f685..00000000
--- a/overlays/vit/vit.json
+++ /dev/null
@@ -1,15 +0,0 @@
1{
2 "tag": "dbacada-1.3",
3 "meta": {
4 "name": "vit",
5 "url": "https://github.com/scottkosty/vit",
6 "branch": "1.3"
7 },
8 "github": {
9 "owner": "scottkosty",
10 "repo": "vit",
11 "rev": "dbacada5867b238fdf35dbf00a3ca0daf7703038",
12 "sha256": "1wlk62cv6dc0dqv8265xcx2l7ydzg40xf6l4qbrf6h5156ncc90l",
13 "fetchSubmodules": true
14 }
15}
diff --git a/overlays/weechat/default.nix b/overlays/weechat/default.nix
index 17faa0ec..e8cc792f 100644
--- a/overlays/weechat/default.nix
+++ b/overlays/weechat/default.nix
@@ -2,9 +2,7 @@ self: super: {
2 weechat = super.weechat.override { 2 weechat = super.weechat.override {
3 configure = { availablePlugins, ... }: { 3 configure = { availablePlugins, ... }: {
4 plugins = with self; with availablePlugins; [ 4 plugins = with self; with availablePlugins; [
5 # Make sure websocket_client is not 0.55.0, it provokes 5 (python.withPackages (ps: with ps; [websocket_client emoji]))
6 # regular crashes
7 (python.withPackages (ps: with ps; assert websocket_client.version == "0.54.0"; [websocket_client emoji]))
8 perl 6 perl
9 ruby 7 ruby
10 ]; 8 ];
diff --git a/pkgs/crypto/cardano-cli/default.nix b/pkgs/crypto/cardano-cli/default.nix
index 4bd18d94..3cd5a4cc 100644
--- a/pkgs/crypto/cardano-cli/default.nix
+++ b/pkgs/crypto/cardano-cli/default.nix
@@ -11,6 +11,6 @@ rustPlatform.buildRustPackage rec {
11 fetchSubmodules = true; 11 fetchSubmodules = true;
12 }; 12 };
13 13
14 cargoSha256 = "1jra0635inm95xp7vg8l7s7ybijcy28956cd6jl8qw2p8bw0z1p3"; 14 cargoSha256 = "0j68dsqahvgpa9ms62149530lbfa55lmpd56rgdxkrh2z32lshs8";
15 verifyCargoDeps = true; 15 verifyCargoDeps = true;
16} 16}
diff --git a/pkgs/crypto/iota-cli-app/default.nix b/pkgs/crypto/iota-cli-app/default.nix
index 1a9d3ed7..17d7714b 100644
--- a/pkgs/crypto/iota-cli-app/default.nix
+++ b/pkgs/crypto/iota-cli-app/default.nix
@@ -1,6 +1,6 @@
1{ stdenv, mylibs, fetchurl, fetchgit, callPackage, nodePackages, nodejs-8_x }: 1{ stdenv, mylibs, fetchurl, fetchgit, callPackage, nodePackages, nodejs-10_x }:
2let 2let
3 nodeEnv = callPackage mylibs.nodeEnv { nodejs = nodejs-8_x; }; 3 nodeEnv = callPackage mylibs.nodeEnv { nodejs = nodejs-10_x; };
4 # built using node2nix -8 -l package-lock.json 4 # built using node2nix -8 -l package-lock.json
5 # and changing "./." to "src" 5 # and changing "./." to "src"
6 packageEnv = import ./node-packages.nix { 6 packageEnv = import ./node-packages.nix {
diff --git a/pkgs/mtop/default.nix b/pkgs/mtop/default.nix
index 4a894303..3f6b6bc8 100644
--- a/pkgs/mtop/default.nix
+++ b/pkgs/mtop/default.nix
@@ -1,6 +1,6 @@
1{ buildPerlPackage, fetchurl, perlPackages, lib }: 1{ buildPerlPackage, fetchurl, perlPackages, lib }:
2buildPerlPackage rec { 2buildPerlPackage rec {
3 name = "mtop-${version}"; 3 pname = "mtop";
4 version = "0.6.6"; 4 version = "0.6.6";
5 src = fetchurl { 5 src = fetchurl {
6 url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz"; 6 url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz";
diff --git a/pkgs/note/default.nix b/pkgs/note/default.nix
index 0c422bcc..d5fcccd7 100644
--- a/pkgs/note/default.nix
+++ b/pkgs/note/default.nix
@@ -1,8 +1,9 @@
1{ lib, buildPerlPackage, fetchurl, perlPackages }: 1{ lib, buildPerlPackage, fetchurl, perlPackages }:
2buildPerlPackage rec { 2buildPerlPackage rec {
3 name = "note-1.3.26"; 3 pname = "note";
4 version = "1.3.26";
4 src = fetchurl { 5 src = fetchurl {
5 url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz"; 6 url = "mirror://cpan/authors/id/T/TL/TLINDEN/${pname}-${version}.tar.gz";
6 sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq"; 7 sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq";
7 }; 8 };
8 outputs = ["out" "man"]; 9 outputs = ["out" "man"];
diff --git a/pkgs/python-packages/buildbot/plugins/buildslist/default.nix b/pkgs/python-packages/buildbot/plugins/buildslist/default.nix
index e5087e4a..dc6104e4 100644
--- a/pkgs/python-packages/buildbot/plugins/buildslist/default.nix
+++ b/pkgs/python-packages/buildbot/plugins/buildslist/default.nix
@@ -1,4 +1,4 @@
1{ mylibs, stdenv, runCommand, writeScriptBin, buildBowerComponents, pythonPackages, libsass, python, python2, fetchurl, jq, yarn, nodejs }: 1{ mylibs, stdenv, runCommand, writeScriptBin, buildBowerComponents, pythonPackages, libsass, python, fetchurl, jq, yarn, nodejs }:
2let 2let
3 buildslist_src = mylibs.fetchedGit ./buildslist.json; 3 buildslist_src = mylibs.fetchedGit ./buildslist.json;
4 packagejson = runCommand "package.json" { buildInputs = [ jq ]; } '' 4 packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
@@ -6,7 +6,7 @@ let
6 ''; 6 '';
7 nodeHeaders = fetchurl { 7 nodeHeaders = fetchurl {
8 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz"; 8 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
9 sha256 = "1g6zi96k8sbim8wa8rzskxy44mgpcv1mn2bs8p4mq36w3kwglwyj"; 9 sha256 = "1df3yhlwlvai0m9kvjyknjg11hnw0kj0rnhyzbwvsfjnmr6z8r76";
10 }; 10 };
11 buildslist_yarn = mylibs.yarn2nixPackage.mkYarnModules rec { 11 buildslist_yarn = mylibs.yarn2nixPackage.mkYarnModules rec {
12 name = "buildslist-yarn-modules"; 12 name = "buildslist-yarn-modules";
diff --git a/pkgs/python-packages/wokkel.nix b/pkgs/python-packages/wokkel.nix
index b34caecd..3237f2b5 100644
--- a/pkgs/python-packages/wokkel.nix
+++ b/pkgs/python-packages/wokkel.nix
@@ -7,5 +7,5 @@ buildPythonPackage rec {
7 sha256 = "1spq44gg8gsviqx1dvlmjpgfc0wk0jpyx4ap01y2pad1ai9cw016"; 7 sha256 = "1spq44gg8gsviqx1dvlmjpgfc0wk0jpyx4ap01y2pad1ai9cw016";
8 }; 8 };
9 propagatedBuildInputs = [ twisted.extras.tls twisted incremental dateutil ]; 9 propagatedBuildInputs = [ twisted.extras.tls twisted incremental dateutil ];
10 doChecks = false; 10 doCheck = false;
11} 11}
diff --git a/pkgs/simp_le/default.nix b/pkgs/simp_le/default.nix
deleted file mode 100644
index eaefba36..00000000
--- a/pkgs/simp_le/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
1{ stdenv, python3Packages, bash }:
2
3python3Packages.buildPythonApplication rec {
4 pname = "simp_le-client";
5 version = "0.17.0";
6
7 src = python3Packages.fetchPypi {
8 inherit pname version;
9 sha256 = "0m1jynar4calaffp2zdxr5yy9vnhw2qf2hsfxwzfwf8fqb5h7bjb";
10 };
11
12 postPatch = ''
13 # drop upper bound of idna requirement
14 sed -ri "s/'(idna)<[^']+'/'\1'/" setup.py
15 substituteInPlace simp_le.py \
16 --replace "/bin/sh" "${bash}/bin/sh"
17 '';
18
19 checkPhase = ''
20 $out/bin/simp_le --test
21 '';
22
23 propagatedBuildInputs = with python3Packages; [ acme setuptools_scm josepy idna ];
24
25 meta = with stdenv.lib; {
26 homepage = https://github.com/zenhack/simp_le;
27 description = "Simple Let's Encrypt client";
28 license = licenses.gpl3;
29 maintainers = with maintainers; [ gebner makefu ];
30 platforms = platforms.linux;
31 };
32}
diff --git a/pkgs/telegram-cli/default.nix b/pkgs/telegram-cli/default.nix
index 6987748d..87c93e56 100644
--- a/pkgs/telegram-cli/default.nix
+++ b/pkgs/telegram-cli/default.nix
@@ -1,8 +1,5 @@
1{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }: 1{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }:
2stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // { 2stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // {
3 patches = [
4 ./telegram-cli.patch
5 ];
6 buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ]; 3 buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
7 preBuild = '' 4 preBuild = ''
8 sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c 5 sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
diff --git a/pkgs/telegram-cli/telegram-cli.json b/pkgs/telegram-cli/telegram-cli.json
index 53e0a7b2..2e7ed9a6 100644
--- a/pkgs/telegram-cli/telegram-cli.json
+++ b/pkgs/telegram-cli/telegram-cli.json
@@ -1,15 +1,15 @@
1{ 1{
2 "tag": "6547c0b-master", 2 "tag": "3da0e4a-master",
3 "meta": { 3 "meta": {
4 "name": "telegram-cli", 4 "name": "telegram-cli",
5 "url": "https://github.com/vysheng/tg", 5 "url": "https://github.com/kenorb-contrib/tg/",
6 "branch": "master" 6 "branch": "master"
7 }, 7 },
8 "github": { 8 "github": {
9 "owner": "vysheng", 9 "owner": "kenorb-contrib",
10 "repo": "tg", 10 "repo": "tg",
11 "rev": "6547c0b21b977b327b3c5e8142963f4bc246187a", 11 "rev": "3da0e4a54c3a63cee11aae3c23f2077adfc4949d",
12 "sha256": "07sss5cnw2ygd7mp8f5532lmj7qm6ywqf4cjaq5g13i8igzqzwzj", 12 "sha256": "0pvswzajipzkk1x5cyf10dw18ka9jalar0aa2i7y23ifm4ddnif4",
13 "fetchSubmodules": true 13 "fetchSubmodules": true
14 } 14 }
15} 15}
diff --git a/pkgs/telegram-cli/telegram-cli.patch b/pkgs/telegram-cli/telegram-cli.patch
deleted file mode 100644
index 2d2b7b04..00000000
--- a/pkgs/telegram-cli/telegram-cli.patch
+++ /dev/null
@@ -1,90 +0,0 @@
1diff --git a/tgl/crypto/rsa_pem_openssl.c b/tgl/crypto/rsa_pem_openssl.c
2index db653f2..5e6a697 100644
3--- a/tgl/crypto/rsa_pem_openssl.c
4+++ b/tgl/crypto/rsa_pem_openssl.c
5@@ -36,6 +36,12 @@ TGLC_WRAPPER_ASSOC(rsa,RSA)
6 // TODO: Refactor crucial struct-identity into its own header.
7 TGLC_WRAPPER_ASSOC(bn,BIGNUM)
8
9+/*
10+ * Since OpenSSL version 1.1.0 the RSA struct (rsa_st) is opaque,
11+ * see also https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
12+ */
13+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
14+
15 TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
16 RSA *ret = RSA_new ();
17 ret->e = unwrap_bn (TGLC_bn_new ());
18@@ -47,7 +53,30 @@ TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
19 #define RSA_GETTER(M) \
20 TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
21 return wrap_bn (unwrap_rsa (key)->M); \
22- } \
23+ }
24+
25+#else // OPENSSL_VERSION_NUMBER
26+
27+TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
28+ RSA *ret = RSA_new ();
29+ BIGNUM *ret_e = unwrap_bn (TGLC_bn_new ());
30+ BIGNUM *ret_n = unwrap_bn (TGLC_bn_bin2bn (n, n_bytes, NULL));
31+ RSA_set0_key (ret, ret_n, ret_e, NULL);
32+ TGLC_bn_set_word (wrap_bn (ret_e), e);
33+ return wrap_rsa (ret);
34+}
35+
36+#define RSA_GETTER(M) \
37+TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
38+ BIGNUM *rsa_n, *rsa_e, *rsa_d; \
39+ RSA_get0_key(unwrap_rsa (key), \
40+ (const BIGNUM **) &rsa_n, \
41+ (const BIGNUM **) &rsa_e, \
42+ (const BIGNUM **) &rsa_d); \
43+ return wrap_bn (rsa_ ## M); \
44+}
45+
46+#endif // OPENSSL_VERSION_NUMBER
47
48 RSA_GETTER(n);
49 RSA_GETTER(e);
50@@ -60,4 +89,4 @@ TGLC_rsa *TGLC_pem_read_RSAPublicKey (FILE *fp) {
51 return wrap_rsa (PEM_read_RSAPublicKey (fp, NULL, NULL, NULL));
52 }
53
54-#endif
55+#endif // TGL_AVOID_OPENSSL
56diff --git a/tgl/mtproto-utils.c b/tgl/mtproto-utils.c
57index 0948bc8..cfdb216 100644
58--- a/tgl/mtproto-utils.c
59+++ b/tgl/mtproto-utils.c
60@@ -98,7 +98,7 @@ static unsigned long long BN2ull (TGLC_bn *b) {
61 if (sizeof (unsigned long) == 8) {
62 return TGLC_bn_get_word (b);
63 } else if (sizeof (unsigned long long) == 8) {
64- assert (0); // As long as nobody ever uses this code, assume it is broken.
65+// assert (0); // As long as nobody ever uses this code, assume it is broken.
66 unsigned long long tmp;
67 /* Here be dragons, but it should be okay due to be64toh */
68 TGLC_bn_bn2bin (b, (unsigned char *) &tmp);
69@@ -112,7 +112,7 @@ static void ull2BN (TGLC_bn *b, unsigned long long val) {
70 if (sizeof (unsigned long) == 8 || val < (1ll << 32)) {
71 TGLC_bn_set_word (b, val);
72 } else if (sizeof (unsigned long long) == 8) {
73- assert (0); // As long as nobody ever uses this code, assume it is broken.
74+// assert (0); // As long as nobody ever uses this code, assume it is broken.
75 htobe64(val);
76 /* Here be dragons, but it should be okay due to htobe64 */
77 TGLC_bn_bin2bn ((unsigned char *) &val, 8, b);
78diff --git a/tgl/tl-parser/tl-parser.c b/tgl/tl-parser/tl-parser.c
79index 524b196..aeadbd2 100644
80--- a/tgl/tl-parser/tl-parser.c
81+++ b/tgl/tl-parser/tl-parser.c
82@@ -1903,7 +1903,7 @@ struct tl_combinator_tree *tl_parse_args134 (struct tree *T) {
83 //assert (S->data);
84 char *name = S->data;
85 if (!name) {
86- static char s[20];
87+ static char s[21];
88 sprintf (s, "%lld", lrand48 () * (1ll << 32) + lrand48 ());
89 name = s;
90 }
diff --git a/pkgs/terminal-velocity/default.nix b/pkgs/terminal-velocity/default.nix
index 9e79deea..1a015c04 100644
--- a/pkgs/terminal-velocity/default.nix
+++ b/pkgs/terminal-velocity/default.nix
@@ -15,6 +15,10 @@ buildPythonApplication rec {
15 ./fix_build.patch 15 ./fix_build.patch
16 ]; 16 ];
17 17
18 preCheck = ''
19 # Needed for urwid test
20 export LC_ALL=en_US.UTF-8
21 '';
18 propagatedBuildInputs = [ 22 propagatedBuildInputs = [
19 chardet 23 chardet
20 urwid 24 urwid
diff --git a/pkgs/tiv/default.nix b/pkgs/tiv/default.nix
index c03aabe0..3e7a56cd 100644
--- a/pkgs/tiv/default.nix
+++ b/pkgs/tiv/default.nix
@@ -1,6 +1,6 @@
1{ buildPerlPackage, fetchurl, perlPackages }: 1{ buildPerlPackage, fetchurl, perlPackages }:
2buildPerlPackage rec { 2buildPerlPackage rec {
3 name = "tiv-${version}"; 3 pname = "tiv";
4 version = "2015"; 4 version = "2015";
5 src = fetchurl { 5 src = fetchurl {
6 url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz"; 6 url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz";
diff --git a/pkgs/webapps/mediagoblin/default.nix b/pkgs/webapps/mediagoblin/default.nix
index f6393fe3..c20bcb42 100644
--- a/pkgs/webapps/mediagoblin/default.nix
+++ b/pkgs/webapps/mediagoblin/default.nix
@@ -28,6 +28,8 @@ let
28 inherit (old) pname; 28 inherit (old) pname;
29 sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9"; 29 sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
30 }; 30 };
31 doCheck = false;
32 doInstallCheck = false;
31 }); 33 });
32 amqp = super.amqp.overridePythonAttrs(old: rec { 34 amqp = super.amqp.overridePythonAttrs(old: rec {
33 version = "1.4.9"; 35 version = "1.4.9";
diff --git a/pkgs/webapps/peertube/default.nix b/pkgs/webapps/peertube/default.nix
index 89954192..99291060 100644
--- a/pkgs/webapps/peertube/default.nix
+++ b/pkgs/webapps/peertube/default.nix
@@ -3,7 +3,7 @@
3let 3let
4 nodeHeaders = fetchurl { 4 nodeHeaders = fetchurl {
5 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz"; 5 url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
6 sha256 = "1g6zi96k8sbim8wa8rzskxy44mgpcv1mn2bs8p4mq36w3kwglwyj"; 6 sha256 = "1df3yhlwlvai0m9kvjyknjg11hnw0kj0rnhyzbwvsfjnmr6z8r76";
7 }; 7 };
8 patchedPackages = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec { 8 patchedPackages = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec {
9 patches = if ldap then [ ./ldap.patch ././yarn_fix_bluebird_ldap.patch ] else [ ./yarn_fix_bluebird.patch ]; 9 patches = if ldap then [ ./ldap.patch ././yarn_fix_bluebird_ldap.patch ] else [ ./yarn_fix_bluebird.patch ];