···49 };
5051 extraConfig = mkOption {
52- type = types.str;
53 default = "";
54 description = ''
55 Extra directives added to to the end of MPD's configuration file,
···49 };
5051 extraConfig = mkOption {
52+ type = types.lines;
53 default = "";
54 description = ''
55 Extra directives added to to the end of MPD's configuration file,
+1
nixos/modules/services/backup/bacula.nix
···340341 extraConfig = mkOption {
342 default = "";
0343 description = ''
344 Extra configuration for Bacula Director Daemon.
345 '';
···340341 extraConfig = mkOption {
342 default = "";
343+ type = types.lines;
344 description = ''
345 Extra configuration for Bacula Director Daemon.
346 '';
···111 };
112113 extraConfig = mkOption {
114- type = types.str;
115 default = "";
116 example = "mail_debug = yes";
117 description = "Additional entries to put verbatim into Dovecot's config file.";
···111 };
112113 extraConfig = mkOption {
114+ type = types.lines;
115 default = "";
116 example = "mail_debug = yes";
117 description = "Additional entries to put verbatim into Dovecot's config file.";
+1-1
nixos/modules/services/misc/bepasty.nix
···53 };
5455 extraConfig = mkOption {
56- type = types.str;
57 description = ''
58 Extra configuration for bepasty server to be appended on the
59 configuration.
···53 };
5455 extraConfig = mkOption {
56+ type = types.lines;
57 description = ''
58 Extra configuration for bepasty server to be appended on the
59 configuration.
···107 };
108109 extraConfig = mkOption {
110- type = types.string;
111 default = "";
112 description = ''
113 Extra configuration options for Bosun. You should describe your
···107 };
108109 extraConfig = mkOption {
110+ type = types.lines;
111 default = "";
112 description = ''
113 Extra configuration options for Bosun. You should describe your
···20 default = false;
21 type = types.bool;
22 description = ''
23+ Whether to enable the atftpd TFTP server. By default, the server
24+ binds to address 0.0.0.0.
25+ '';
26+ };
27+28+ extraOptions = mkOption {
29+ default = [];
30+ type = types.listOf types.str;
31+ example = literalExample ''
32+ [ "--bind-address 192.168.9.1"
33+ "--verbose=7"
34+ ]
35+ '';
36+ description = ''
37+ Extra command line arguments to pass to atftp.
38 '';
39 };
4041 root = mkOption {
42+ default = "/srv/tftp";
43+ type = types.path;
44 description = ''
45 Document root directory for the atftpd.
46 '';
···53 config = mkIf cfg.enable {
5455 systemd.services.atftpd = {
56+ description = "TFTP Server";
57 after = [ "network.target" ];
58 wantedBy = [ "multi-user.target" ];
59 # runs as nobody
60+ serviceConfig.ExecStart = "${pkgs.atftp}/sbin/atftpd --daemon --no-fork ${lib.concatStringsSep " " cfg.extraOptions} ${cfg.root}";
61 };
6263 };
+1
nixos/modules/services/networking/bind.nix
···113 };
114115 extraConfig = mkOption {
0116 default = "";
117 description = "
118 Extra lines to be added verbatim to the generated named configuration file.
···113 };
114115 extraConfig = mkOption {
116+ type = types.lines;
117 default = "";
118 description = "
119 Extra lines to be added verbatim to the generated named configuration file.
+1
nixos/modules/services/networking/chrony.nix
···51 };
5253 extraConfig = mkOption {
054 default = "";
55 description = ''
56 Extra configuration directives that should be added to
···51 };
5253 extraConfig = mkOption {
54+ type = types.lines;
55 default = "";
56 description = ''
57 Extra configuration directives that should be added to
···140 ieee80211n=1
141 ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]
142 '';
143- type = types.string;
144 description = "Extra configuration options to put in hostapd.conf.";
145 };
146 };
···140 ieee80211n=1
141 ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]
142 '';
143+ type = types.lines;
144 description = "Extra configuration options to put in hostapd.conf.";
145 };
146 };
+1-1
nixos/modules/services/networking/kippo.nix
···46 };
47 extraConfig = mkOption {
48 default = "";
49- type = types.string;
50 description = ''Extra verbatim configuration added to the end of kippo.cfg.'';
51 };
52 };
···46 };
47 extraConfig = mkOption {
48 default = "";
49+ type = types.lines;
50 description = ''Extra verbatim configuration added to the end of kippo.cfg.'';
51 };
52 };
+1-1
nixos/modules/services/networking/murmur.nix
···230 };
231232 extraConfig = mkOption {
233- type = types.str;
234 default = "";
235 description = "Extra configuration to put into mumur.ini.";
236 };
···230 };
231232 extraConfig = mkOption {
233+ type = types.lines;
234 default = "";
235 description = "Extra configuration to put into mumur.ini.";
236 };
+1-1
nixos/modules/services/networking/openfire.nix
···47 export HOME=/tmp
48 mkdir /var/log/openfire || true
49 mkdir /etc/openfire || true
50- for i in ${openfire}/conf.inst/*; do
51 if ! test -f /etc/openfire/$(basename $i); then
52 cp $i /etc/openfire/
53 fi
···47 export HOME=/tmp
48 mkdir /var/log/openfire || true
49 mkdir /etc/openfire || true
50+ for i in ${pkgs.openfire}/conf.inst/*; do
51 if ! test -f /etc/openfire/$(basename $i); then
52 cp $i /etc/openfire/
53 fi
+1
nixos/modules/services/networking/prayer.nix
···56 };
5758 extraConfig = mkOption {
059 default = "" ;
60 description = ''
61 Extra configuration. Contents will be added verbatim to the configuration file.
···56 };
5758 extraConfig = mkOption {
59+ type = types.lines;
60 default = "" ;
61 description = ''
62 Extra configuration. Contents will be added verbatim to the configuration file.
···13 default = false;
14 description = ''
15 Whether to enable tftpd, a Trivial File Transfer Protocol server.
016 '';
17 };
1819 services.tftpd.path = mkOption {
20 type = types.path;
21- default = "/home/tftp";
22 description = ''
23 Where the tftp server files are stored.
24 '';
···13 default = false;
14 description = ''
15 Whether to enable tftpd, a Trivial File Transfer Protocol server.
16+ The server will be run as an xinetd service.
17 '';
18 };
1920 services.tftpd.path = mkOption {
21 type = types.path;
22+ default = "/srv/tftp";
23 description = ''
24 Where the tftp server files are stored.
25 '';
+1-1
nixos/modules/services/networking/unbound.nix
···7980 extraConfig = mkOption {
81 default = "";
82- type = types.str;
83 description = ''
84 Extra unbound config. See
85 <citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>8
···7980 extraConfig = mkOption {
81 default = "";
82+ type = types.lines;
83 description = ''
84 Extra unbound config. See
85 <citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>8
+1-1
nixos/modules/services/networking/xinetd.nix
···124 };
125126 extraConfig = mkOption {
127- type = types.string;
128 default = "";
129 description = "Extra configuration-lines added to the section of the service.";
130 };
···124 };
125126 extraConfig = mkOption {
127+ type = types.lines;
128 default = "";
129 description = "Extra configuration-lines added to the section of the service.";
130 };
+111-61
nixos/modules/services/networking/znc.nix
···26 };
2728 # Keep znc.conf in nix store, then symlink or copy into `dataDir`, depending on `mutable`.
029 mkZncConf = confOpts: ''
30- // Also check http://en.znc.in/wiki/Configuration
31-32- AnonIPLimit = 10
33- ConnectDelay = 5
34- # Add `LoadModule = x` for each module...
35 ${concatMapStrings (n: "LoadModule = ${n}\n") confOpts.modules}
36- MaxBufferSize = 500
37- ProtectWebSessions = true
38- SSLCertFile = ${cfg.dataDir}/znc.pem
39- ServerThrottle = 30
40- Skin = dark-clouds
41- StatusPrefix = *
42- Version = 1.2
4344- <Listener listener0>
45- AllowIRC = true
46- AllowWeb = true
47 IPv4 = true
48- IPv6 = false
49- Port = ${if confOpts.useSSL then "+" else ""}${toString confOpts.port}
50 SSL = ${if confOpts.useSSL then "true" else "false"}
51 </Listener>
5253 <User ${confOpts.userName}>
054 Admin = true
55- Allow = *
56 AltNick = ${confOpts.nick}_
57- AppendTimestamp = false
58- AutoClearChanBuffer = false
59- Buffer = 150
60- ChanModes = +stn
61- DenyLoadMod = false
62- DenySetBindHost = false
63- Ident = ident
64- JoinTries = 10
65- MaxJoins = 0
66- MaxNetworks = 1
67- MultiClients = true
68- Nick = ${confOpts.nick}
69- PrependTimestamp = true
70- QuitMsg = Quit
71 RealName = ${confOpts.nick}
72- TimestampFormat = [%H:%M:%S]
73 ${concatMapStrings (n: "LoadModule = ${n}\n") confOpts.userModules}
74-75- ${confOpts.passBlock}
000000076 </User>
77 ${confOpts.extraZncConf}
78 '';
···84 else mkZncConf cfg.confOptions;
85 };
860000000000000000000000000000000000000000000000000000000087in
8889{
···111 '';
112 };
113000000000114 dataDir = mkOption {
115 default = "/var/lib/znc/";
116 example = "/home/john/.znc/";
···125 example = "See: http://wiki.znc.in/Configuration";
126 type = types.lines;
127 description = ''
128- The contents of the `znc.conf` file to use when creating it.
129 If specified, `confOptions` will be ignored, and this value, as-is, will be used.
130 If left empty, a conf file with default values will be used.
131- Recommended to generate with `znc --makeconf` command.
132 '';
133 };
134135- /* TODO: add to the documentation of the current module:
136-137- Values to use when creating a `znc.conf` file.
138-139- confOptions = {
140- modules = [ "log" ];
141- userName = "john";
142- nick = "johntron";
143- };
144- */
145 confOptions = {
146 modules = mkOption {
147 type = types.listOf types.str;
148- default = [ "partyline" "webadmin" "adminlog" "log" ];
149 example = [ "partyline" "webadmin" "adminlog" "log" ];
150 description = ''
151 A list of modules to include in the `znc.conf` file.
···154155 userModules = mkOption {
156 type = types.listOf types.str;
157- default = [ ];
158- example = [ "fish" "push" ];
159 description = ''
160 A list of user modules to include in the `znc.conf` file.
161 '';
···166 example = "johntron";
167 type = types.string;
168 description = ''
169- The user name to use when generating the `znc.conf` file.
170- This is the user name used by the user logging into the ZNC web admin.
171 '';
172 };
17300000000000000000174 nick = mkOption {
175 default = "znc-user";
176 example = "john";
177 type = types.string;
178 description = ''
179- The IRC nick to use when generating the `znc.conf` file.
180 '';
181 };
182183 passBlock = mkOption {
184- default = defaultPassBlock;
185- example = "Must be the block generated by the `znc --makepass` command.";
186 type = types.string;
187 description = ''
188- The pass block to use when generating the `znc.conf` file.
189- This is the password used by the user logging into the ZNC web admin.
190- This is the block generated by the `znc --makepass` command.
191- !!! If not specified, please change this after starting the service. !!!
192 '';
193 };
194···206 example = true;
207 type = types.bool;
208 description = ''
209- Indicates whether the ZNC server should use SSL when listening on the specified port.
210 '';
211 };
212···214 default = "";
215 type = types.lines;
216 description = ''
217- Extra config to `znc.conf` file
218 '';
219 };
220 };
···265 after = [ "network.service" ];
266 serviceConfig = {
267 User = cfg.user;
0268 Restart = "always";
269 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
270 ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
···26 };
2728 # Keep znc.conf in nix store, then symlink or copy into `dataDir`, depending on `mutable`.
29+ notNull = a: ! isNull a;
30 mkZncConf = confOpts: ''
31+ Version = 1.6.3
000032 ${concatMapStrings (n: "LoadModule = ${n}\n") confOpts.modules}
00000003334+ <Listener l>
35+ Port = ${toString confOpts.port}
036 IPv4 = true
37+ IPv6 = true
038 SSL = ${if confOpts.useSSL then "true" else "false"}
39 </Listener>
4041 <User ${confOpts.userName}>
42+ ${confOpts.passBlock}
43 Admin = true
44+ Nick = ${confOpts.nick}
45 AltNick = ${confOpts.nick}_
46+ Ident = ${confOpts.nick}
000000000000047 RealName = ${confOpts.nick}
048 ${concatMapStrings (n: "LoadModule = ${n}\n") confOpts.userModules}
49+50+ ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (name: net: ''
51+ <Network ${name}>
52+ ${concatMapStrings (m: "LoadModule = ${m}\n") net.modules}
53+ Server = ${net.server} ${if net.useSSL then "+" else ""}${toString net.port}
54+55+ ${concatMapStrings (c: "<Chan #${c}>\n</Chan>\n") net.channels}
56+ </Network>
57+ '') confOpts.networks) }
58 </User>
59 ${confOpts.extraZncConf}
60 '';
···66 else mkZncConf cfg.confOptions;
67 };
6869+ networkOpts = { ... }: {
70+ options = {
71+ server = mkOption {
72+ type = types.str;
73+ example = "chat.freenode.net";
74+ description = ''
75+ IRC server address.
76+ '';
77+ };
78+79+ port = mkOption {
80+ type = types.int;
81+ default = 6697;
82+ example = 6697;
83+ description = ''
84+ IRC server port.
85+ '';
86+ };
87+88+ useSSL = mkOption {
89+ type = types.bool;
90+ default = true;
91+ description = ''
92+ Whether to use SSL to connect to the IRC server.
93+ '';
94+ };
95+96+ modulePackages = mkOption {
97+ type = types.listOf types.package;
98+ default = [];
99+ example = [ "pkgs.zncModules.push" "pkgs.zncModules.fish" ];
100+ description = ''
101+ External ZNC modules to build.
102+ '';
103+ };
104+105+ modules = mkOption {
106+ type = types.listOf types.str;
107+ default = [ "simple_away" ];
108+ example = literalExample "[ simple_away sasl ]";
109+ description = ''
110+ ZNC modules to load.
111+ '';
112+ };
113+114+ channels = mkOption {
115+ type = types.listOf types.str;
116+ default = [];
117+ example = [ "nixos" ];
118+ description = ''
119+ IRC channels to join.
120+ '';
121+ };
122+ };
123+ };
124+125in
126127{
···149 '';
150 };
151152+ group = mkOption {
153+ default = "";
154+ example = "users";
155+ type = types.string;
156+ description = ''
157+ Group to own the ZNCserver process.
158+ '';
159+ };
160+161 dataDir = mkOption {
162 default = "/var/lib/znc/";
163 example = "/home/john/.znc/";
···172 example = "See: http://wiki.znc.in/Configuration";
173 type = types.lines;
174 description = ''
175+ Config file as generated with `znc --makeconf` to use for the whole ZNC configuration.
176 If specified, `confOptions` will be ignored, and this value, as-is, will be used.
177 If left empty, a conf file with default values will be used.
0178 '';
179 };
1800000000000181 confOptions = {
182 modules = mkOption {
183 type = types.listOf types.str;
184+ default = [ "webadmin" "adminlog" ];
185 example = [ "partyline" "webadmin" "adminlog" "log" ];
186 description = ''
187 A list of modules to include in the `znc.conf` file.
···190191 userModules = mkOption {
192 type = types.listOf types.str;
193+ default = [ "chansaver" "controlpanel" ];
194+ example = [ "chansaver" "controlpanel" "fish" "push" ];
195 description = ''
196 A list of user modules to include in the `znc.conf` file.
197 '';
···202 example = "johntron";
203 type = types.string;
204 description = ''
205+ The user name used to log in to the ZNC web admin interface.
0206 '';
207 };
208209+ networks = mkOption {
210+ default = { };
211+ type = types.loaOf types.optionSet;
212+ description = ''
213+ IRC networks to connect the user to.
214+ '';
215+ options = [ networkOpts ];
216+ example = {
217+ "freenode" = {
218+ server = "chat.freenode.net";
219+ port = 6697;
220+ ssl = true;
221+ modules = [ "simple_away" ];
222+ };
223+ };
224+ };
225+226 nick = mkOption {
227 default = "znc-user";
228 example = "john";
229 type = types.string;
230 description = ''
231+ The IRC nick.
232 '';
233 };
234235 passBlock = mkOption {
236+ example = defaultPassBlock;
0237 type = types.string;
238 description = ''
239+ Generate with znc --makepass.
240+ This is the password used to log in to the ZNC web admin interface.
00241 '';
242 };
243···255 example = true;
256 type = types.bool;
257 description = ''
258+ Indicates whether the ZNC server should use SSL when listening on the specified port. A self-signed certificate will be generated.
259 '';
260 };
261···263 default = "";
264 type = types.lines;
265 description = ''
266+ Extra config to `znc.conf` file.
267 '';
268 };
269 };
···314 after = [ "network.service" ];
315 serviceConfig = {
316 User = cfg.user;
317+ Group = cfg.group;
318 Restart = "always";
319 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
320 ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
···1+Change the name of the library directory to match the version of the package.
2+3+diff -Naur ATS2-Postiats-0.2.11/configure postiats-new/configure
4+--- ATS2-Postiats-0.2.11/configure 2016-10-13 12:03:20.000000000 -0400
5++++ postiats-new/configure 2016-10-23 20:17:29.912579618 -0400
6+@@ -1,6 +1,6 @@
7+ #! /bin/sh
8+ # Guess values for system-dependent variables and create Makefiles.
9+-# Generated by GNU Autoconf 2.69 for ATS2/Postiats 0.2.10.
10++# Generated by GNU Autoconf 2.69 for ATS2/Postiats 0.2.11.
11+ #
12+ # Report bugs to <gmpostiats@gmail.com>.
13+ #
14+@@ -580,8 +580,8 @@
15+ # Identity of this package.
16+ PACKAGE_NAME='ATS2/Postiats'
17+ PACKAGE_TARNAME='ats2-postiats'
18+-PACKAGE_VERSION='0.2.10'
19+-PACKAGE_STRING='ATS2/Postiats 0.2.10'
20++PACKAGE_VERSION='0.2.11'
21++PACKAGE_STRING='ATS2/Postiats 0.2.11'
22+ PACKAGE_BUGREPORT='gmpostiats@gmail.com'
23+ PACKAGE_URL=''
24+25+@@ -1242,7 +1242,7 @@
26+ # Omit some internal or obsolete options to make the list less imposing.
27+ # This message is too long to be a string in the A/UX 3.1 sh.
28+ cat <<_ACEOF
29+-\`configure' configures ATS2/Postiats 0.2.10 to adapt to many kinds of systems.
30++\`configure' configures ATS2/Postiats 0.2.11 to adapt to many kinds of systems.
31+32+ Usage: $0 [OPTION]... [VAR=VALUE]...
33+34+@@ -1304,7 +1304,7 @@
35+36+ if test -n "$ac_init_help"; then
37+ case $ac_init_help in
38+- short | recursive ) echo "Configuration of ATS2/Postiats 0.2.10:";;
39++ short | recursive ) echo "Configuration of ATS2/Postiats 0.2.11:";;
40+ esac
41+ cat <<\_ACEOF
42+43+@@ -1384,7 +1384,7 @@
44+ test -n "$ac_init_help" && exit $ac_status
45+ if $ac_init_version; then
46+ cat <<\_ACEOF
47+-ATS2/Postiats configure 0.2.10
48++ATS2/Postiats configure 0.2.11
49+ generated by GNU Autoconf 2.69
50+51+ Copyright (C) 2012 Free Software Foundation, Inc.
52+@@ -1936,7 +1936,7 @@
53+ This file contains any messages produced by compilers while
54+ running configure, to aid debugging if configure makes a mistake.
55+56+-It was created by ATS2/Postiats $as_me 0.2.10, which was
57++It was created by ATS2/Postiats $as_me 0.2.11, which was
58+ generated by GNU Autoconf 2.69. Invocation command line was
59+60+ $ $0 $@
61+@@ -4226,7 +4226,7 @@
62+ # report actual input values of CONFIG_FILES etc. instead of their
63+ # values after options handling.
64+ ac_log="
65+-This file was extended by ATS2/Postiats $as_me 0.2.10, which was
66++This file was extended by ATS2/Postiats $as_me 0.2.11, which was
67+ generated by GNU Autoconf 2.69. Invocation command line was
68+69+ CONFIG_FILES = $CONFIG_FILES
70+@@ -4288,7 +4288,7 @@
71+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
72+ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
73+ ac_cs_version="\\
74+-ATS2/Postiats config.status 0.2.10
75++ATS2/Postiats config.status 0.2.11
76+ configured by $0, generated by GNU Autoconf 2.69,
77+ with options \\"\$ac_cs_config\\"
78+79+diff -Naur ATS2-Postiats-0.2.11/src/CBOOT/config.h postiats-new/src/CBOOT/config.h
80+--- ATS2-Postiats-0.2.11/src/CBOOT/config.h 2016-10-13 12:03:20.000000000 -0400
81++++ postiats-new/src/CBOOT/config.h 2016-10-23 20:16:34.613836556 -0400
82+@@ -44,7 +44,7 @@
83+ #define PACKAGE_NAME "ATS2/Postiats"
84+85+ /* Define to the full name and version of this package. */
86+-#define PACKAGE_STRING "ATS2/Postiats 0.2.10"
87++#define PACKAGE_STRING "ATS2/Postiats 0.2.11"
88+89+ /* Define to the one symbol short name of this package. */
90+ #define PACKAGE_TARNAME "ats2-postiats"
91+@@ -53,7 +53,7 @@
92+ #define PACKAGE_URL ""
93+94+ /* Define to the version of this package. */
95+-#define PACKAGE_VERSION "0.2.10"
96++#define PACKAGE_VERSION "0.2.11"
97+98+ /* The size of `void*', as computed by sizeof. */
99+ #define SIZEOF_VOIDP 8
···2index ce26bd7..9a98cc7 100644
3--- a/packages/net/_test.pony
4+++ b/packages/net/_test.pony
5-@@ -5,11 +5,7 @@ actor Main is TestList
6 new make() => None
78 fun tag tests(test: PonyTest) =>
9- test(_TestBroadcast)
10- test(_TestTCPWritev)
11-- ifdef not windows then
12-- test(_TestTCPExpect)
13-- end
14+ None
1516 class _TestPing is UDPNotify
···2index ce26bd7..9a98cc7 100644
3--- a/packages/net/_test.pony
4+++ b/packages/net/_test.pony
5+@@ -5,9 +5,7 @@ actor Main is TestList
6 new make() => None
78 fun tag tests(test: PonyTest) =>
9- test(_TestBroadcast)
10- test(_TestTCPWritev)
11+- test(_TestTCPExpect)
0012+ None
1314 class _TestPing is UDPNotify
···69 doCheck = false;
70 doInstallCheck = doCheck;
7172- postFixup = attrs.postFixup or ''
73 wrapPythonPrograms
74 '' + lib.optionalString catchConflicts ''
75 # check if we have two packages with the same name in closure and fail
76 # this shouldn't happen, something went wrong with dependencies specs
77 ${python.interpreter} ${./catch_conflicts.py}
78- '';
7980 passthru = {
81 inherit python; # The python interpreter
···69 doCheck = false;
70 doInstallCheck = doCheck;
7172+ postFixup = ''
73 wrapPythonPrograms
74 '' + lib.optionalString catchConflicts ''
75 # check if we have two packages with the same name in closure and fail
76 # this shouldn't happen, something went wrong with dependencies specs
77 ${python.interpreter} ${./catch_conflicts.py}
78+ '' + attrs.postFixup or '''';
7980 passthru = {
81 inherit python; # The python interpreter
···34 ] ++ lib.optional guileBindings
35 [ "--enable-guile" "--with-guile-site-dir=\${out}/share/guile/site" ];
3637- # Build of the Guile bindings is not parallel-safe. See
38- # <http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=330995a920037b6030ec0282b51dde3f8b493cad>
39- # for the actual fix. Also an apparent race in the generation of
40- # systemkey-args.h.
41- enableParallelBuilding = false;
4243 buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen ]
44 ++ lib.optional doCheck nettools
···41 sha256 = "1l0w12czavgs0wzw1c594g358ilvfg2fn32cn8z7pv84zxj4g429";
42 };
4344- postPatch =
45 let ippicvVersion = "20151201";
46 ippicvPlatform = if stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux" then "linux"
47 else throw "ICV is not available for this platform (or not yet supported by this package)";
···41 sha256 = "1l0w12czavgs0wzw1c594g358ilvfg2fn32cn8z7pv84zxj4g429";
42 };
4344+ preConfigure =
45 let ippicvVersion = "20151201";
46 ippicvPlatform = if stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux" then "linux"
47 else throw "ICV is not available for this platform (or not yet supported by this package)";
···3435 inherit blas64;
3637+ # Some hardening features are disabled due to sporadic failures in
38+ # OpenBLAS-based programs. The problem may not be with OpenBLAS itself, but
39+ # with how these flags interact with hardening measures used downstream.
40+ # In either case, OpenBLAS must only be used by trusted code--it is
41+ # inherently unsuitable for security-conscious applications--so there should
42+ # be no objection to disabling these hardening measures.
43+ hardeningDisable = [
44+ # don't modify or move the stack
45+ "stackprotector" "pic"
46+ # don't alter index arithmetic
47+ "strictoverflow"
48+ # don't interfere with dynamic target detection.
49+ "relro" "bindnow"
50+ ];
51+52 nativeBuildInputs = optionals stdenv.isDarwin [coreutils] ++ [gfortran perl which];
5354 makeFlags =
···1+--- a/configure
2++++ b/configure
3+@@ -8872,7 +8872,7 @@
4+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking libusb include dir" >&5
5+ $as_echo_n "checking libusb include dir... " >&6; }
6+ usb_incdir_found="no"
7+- for _incdir in "" "/usr/include/libusb-1.0" "/usr/local/include/libusb-1.0"; do
8++ for _incdir in "$($PKG_CONFIG --variable=includedir libusb-1.0)/libusb-1.0"; do
9+ _libusb_save_cppflags=$CPPFLAGS
10+ if test -n "${_incdir}"; then
11+ CPPFLAGS="-I${_incdir} ${CPPFLAGS}"