1<section xmlns="http://docbook.org/ns/docbook"
2 xmlns:xlink="http://www.w3.org/1999/xlink"
3 xmlns:xi="http://www.w3.org/2001/XInclude"
4 version="5.0"
5 xml:id="sec-release-18.03">
6 <title>Release 18.03 (“Impala”, 2018/04/04)</title>
7
8 <section xmlns="http://docbook.org/ns/docbook"
9 xmlns:xlink="http://www.w3.org/1999/xlink"
10 xmlns:xi="http://www.w3.org/2001/XInclude"
11 version="5.0"
12 xml:id="sec-release-18.03-highlights">
13 <title>Highlights</title>
14
15 <para>
16 In addition to numerous new and upgraded packages, this release has the
17 following highlights:
18 </para>
19
20 <itemizedlist>
21 <listitem>
22 <para>
23 End of support is planned for end of October 2018, handing over to 18.09.
24 </para>
25 </listitem>
26 <listitem>
27 <para>
28 Platform support: x86_64-linux and x86_64-darwin since release time (the
29 latter isn't NixOS, really). Binaries for aarch64-linux are available, but
30 no channel exists yet, as it's waiting for some test fixes, etc.
31 </para>
32 </listitem>
33 <listitem>
34 <para>
35 Nix now defaults to 2.0; see its
36 <link xlink:href="https://nixos.org/nix/manual/#ssec-relnotes-2.0">release
37 notes</link>.
38 </para>
39 </listitem>
40 <listitem>
41 <para>
42 Core version changes: linux: 4.9 -> 4.14, glibc: 2.25 -> 2.26, gcc: 6 ->
43 7, systemd: 234 -> 237.
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Desktop version changes: gnome: 3.24 -> 3.26, (KDE) plasma-desktop: 5.10
49 -> 5.12.
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 MariaDB 10.2, updated from 10.1, is now the default MySQL implementation.
55 While upgrading a few changes have been made to the infrastructure
56 involved:
57 <itemizedlist>
58 <listitem>
59 <para>
60 <literal>libmysql</literal> has been deprecated, please use
61 <literal>mysql.connector-c</literal> instead, a compatibility passthru
62 has been added to the MySQL packages.
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 The <literal>mysql57</literal> package has a new
68 <literal>static</literal> output containing the static libraries
69 including <literal>libmysqld.a</literal>
70 </para>
71 </listitem>
72 </itemizedlist>
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 PHP now defaults to PHP 7.2, updated from 7.1.
78 </para>
79 </listitem>
80 </itemizedlist>
81 </section>
82
83 <section xmlns="http://docbook.org/ns/docbook"
84 xmlns:xlink="http://www.w3.org/1999/xlink"
85 xmlns:xi="http://www.w3.org/2001/XInclude"
86 version="5.0"
87 xml:id="sec-release-18.03-new-services">
88 <title>New Services</title>
89
90 <para>
91 The following new services were added since the last release:
92 </para>
93
94 <itemizedlist>
95 <listitem>
96 <para>
97 <literal>./config/krb5/default.nix</literal>
98 </para>
99 </listitem>
100 <listitem>
101 <para>
102 <literal>./hardware/digitalbitbox.nix</literal>
103 </para>
104 </listitem>
105 <listitem>
106 <para>
107 <literal>./misc/label.nix</literal>
108 </para>
109 </listitem>
110 <listitem>
111 <para>
112 <literal>./programs/ccache.nix</literal>
113 </para>
114 </listitem>
115 <listitem>
116 <para>
117 <literal>./programs/criu.nix</literal>
118 </para>
119 </listitem>
120 <listitem>
121 <para>
122 <literal>./programs/digitalbitbox/default.nix</literal>
123 </para>
124 </listitem>
125 <listitem>
126 <para>
127 <literal>./programs/less.nix</literal>
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 <literal>./programs/npm.nix</literal>
133 </para>
134 </listitem>
135 <listitem>
136 <para>
137 <literal>./programs/plotinus.nix</literal>
138 </para>
139 </listitem>
140 <listitem>
141 <para>
142 <literal>./programs/rootston.nix</literal>
143 </para>
144 </listitem>
145 <listitem>
146 <para>
147 <literal>./programs/systemtap.nix</literal>
148 </para>
149 </listitem>
150 <listitem>
151 <para>
152 <literal>./programs/sway.nix</literal>
153 </para>
154 </listitem>
155 <listitem>
156 <para>
157 <literal>./programs/udevil.nix</literal>
158 </para>
159 </listitem>
160 <listitem>
161 <para>
162 <literal>./programs/way-cooler.nix</literal>
163 </para>
164 </listitem>
165 <listitem>
166 <para>
167 <literal>./programs/yabar.nix</literal>
168 </para>
169 </listitem>
170 <listitem>
171 <para>
172 <literal>./programs/zsh/zsh-autoenv.nix</literal>
173 </para>
174 </listitem>
175 <listitem>
176 <para>
177 <literal>./services/backup/borgbackup.nix</literal>
178 </para>
179 </listitem>
180 <listitem>
181 <para>
182 <literal>./services/backup/crashplan-small-business.nix</literal>
183 </para>
184 </listitem>
185 <listitem>
186 <para>
187 <literal>./services/desktops/dleyna-renderer.nix</literal>
188 </para>
189 </listitem>
190 <listitem>
191 <para>
192 <literal>./services/desktops/dleyna-server.nix</literal>
193 </para>
194 </listitem>
195 <listitem>
196 <para>
197 <literal>./services/desktops/pipewire.nix</literal>
198 </para>
199 </listitem>
200 <listitem>
201 <para>
202 <literal>./services/desktops/gnome3/chrome-gnome-shell.nix</literal>
203 </para>
204 </listitem>
205 <listitem>
206 <para>
207 <literal>./services/desktops/gnome3/tracker-miners.nix</literal>
208 </para>
209 </listitem>
210 <listitem>
211 <para>
212 <literal>./services/hardware/fwupd.nix</literal>
213 </para>
214 </listitem>
215 <listitem>
216 <para>
217 <literal>./services/hardware/interception-tools.nix</literal>
218 </para>
219 </listitem>
220 <listitem>
221 <para>
222 <literal>./services/hardware/u2f.nix</literal>
223 </para>
224 </listitem>
225 <listitem>
226 <para>
227 <literal>./services/hardware/usbmuxd.nix</literal>
228 </para>
229 </listitem>
230 <listitem>
231 <para>
232 <literal>./services/mail/clamsmtp.nix</literal>
233 </para>
234 </listitem>
235 <listitem>
236 <para>
237 <literal>./services/mail/dkimproxy-out.nix</literal>
238 </para>
239 </listitem>
240 <listitem>
241 <para>
242 <literal>./services/mail/pfix-srsd.nix</literal>
243 </para>
244 </listitem>
245 <listitem>
246 <para>
247 <literal>./services/misc/gitea.nix</literal>
248 </para>
249 </listitem>
250 <listitem>
251 <para>
252 <literal>./services/misc/home-assistant.nix</literal>
253 </para>
254 </listitem>
255 <listitem>
256 <para>
257 <literal>./services/misc/ihaskell.nix</literal>
258 </para>
259 </listitem>
260 <listitem>
261 <para>
262 <literal>./services/misc/logkeys.nix</literal>
263 </para>
264 </listitem>
265 <listitem>
266 <para>
267 <literal>./services/misc/novacomd.nix</literal>
268 </para>
269 </listitem>
270 <listitem>
271 <para>
272 <literal>./services/misc/osrm.nix</literal>
273 </para>
274 </listitem>
275 <listitem>
276 <para>
277 <literal>./services/misc/plexpy.nix</literal>
278 </para>
279 </listitem>
280 <listitem>
281 <para>
282 <literal>./services/misc/pykms.nix</literal>
283 </para>
284 </listitem>
285 <listitem>
286 <para>
287 <literal>./services/misc/tzupdate.nix</literal>
288 </para>
289 </listitem>
290 <listitem>
291 <para>
292 <literal>./services/monitoring/fusion-inventory.nix</literal>
293 </para>
294 </listitem>
295 <listitem>
296 <para>
297 <literal>./services/monitoring/prometheus/exporters.nix</literal>
298 </para>
299 </listitem>
300 <listitem>
301 <para>
302 <literal>./services/network-filesystems/beegfs.nix</literal>
303 </para>
304 </listitem>
305 <listitem>
306 <para>
307 <literal>./services/network-filesystems/davfs2.nix</literal>
308 </para>
309 </listitem>
310 <listitem>
311 <para>
312 <literal>./services/network-filesystems/openafs/client.nix</literal>
313 </para>
314 </listitem>
315 <listitem>
316 <para>
317 <literal>./services/network-filesystems/openafs/server.nix</literal>
318 </para>
319 </listitem>
320 <listitem>
321 <para>
322 <literal>./services/network-filesystems/ceph.nix</literal>
323 </para>
324 </listitem>
325 <listitem>
326 <para>
327 <literal>./services/networking/aria2.nix</literal>
328 </para>
329 </listitem>
330 <listitem>
331 <para>
332 <literal>./services/networking/monero.nix</literal>
333 </para>
334 </listitem>
335 <listitem>
336 <para>
337 <literal>./services/networking/nghttpx/default.nix</literal>
338 </para>
339 </listitem>
340 <listitem>
341 <para>
342 <literal>./services/networking/nixops-dns.nix</literal>
343 </para>
344 </listitem>
345 <listitem>
346 <para>
347 <literal>./services/networking/rxe.nix</literal>
348 </para>
349 </listitem>
350 <listitem>
351 <para>
352 <literal>./services/networking/stunnel.nix</literal>
353 </para>
354 </listitem>
355 <listitem>
356 <para>
357 <literal>./services/web-apps/matomo.nix</literal>
358 </para>
359 </listitem>
360 <listitem>
361 <para>
362 <literal>./services/web-apps/restya-board.nix</literal>
363 </para>
364 </listitem>
365 <listitem>
366 <para>
367 <literal>./services/web-servers/mighttpd2.nix</literal>
368 </para>
369 </listitem>
370 <listitem>
371 <para>
372 <literal>./services/x11/fractalart.nix</literal>
373 </para>
374 </listitem>
375 <listitem>
376 <para>
377 <literal>./system/boot/binfmt.nix</literal>
378 </para>
379 </listitem>
380 <listitem>
381 <para>
382 <literal>./system/boot/grow-partition.nix</literal>
383 </para>
384 </listitem>
385 <listitem>
386 <para>
387 <literal>./tasks/filesystems/ecryptfs.nix</literal>
388 </para>
389 </listitem>
390 <listitem>
391 <para>
392 <literal>./virtualisation/hyperv-guest.nix</literal>
393 </para>
394 </listitem>
395 </itemizedlist>
396 </section>
397
398 <section xmlns="http://docbook.org/ns/docbook"
399 xmlns:xlink="http://www.w3.org/1999/xlink"
400 xmlns:xi="http://www.w3.org/2001/XInclude"
401 version="5.0"
402 xml:id="sec-release-18.03-incompatibilities">
403 <title>Backward Incompatibilities</title>
404
405 <para>
406 When upgrading from a previous release, please be aware of the following
407 incompatible changes:
408 </para>
409
410 <itemizedlist>
411 <listitem>
412 <para>
413 <literal>sound.enable</literal> now defaults to false.
414 </para>
415 </listitem>
416 <listitem>
417 <para>
418 Dollar signs in options under <option>services.postfix</option> are passed
419 verbatim to Postfix, which will interpret them as the beginning of a
420 parameter expression. This was already true for string-valued options in
421 the previous release, but not for list-valued options. If you need to pass
422 literal dollar signs through Postfix, double them.
423 </para>
424 </listitem>
425 <listitem>
426 <para>
427 The <literal>postage</literal> package (for web-based PostgreSQL
428 administration) has been renamed to <literal>pgmanage</literal>. The
429 corresponding module has also been renamed. To migrate please rename all
430 <option>services.postage</option> options to
431 <option>services.pgmanage</option>.
432 </para>
433 </listitem>
434 <listitem>
435 <para>
436 Package attributes starting with a digit have been prefixed with an
437 underscore sign. This is to avoid quoting in the configuration and other
438 issues with command-line tools like <literal>nix-env</literal>. The change
439 affects the following packages:
440 <itemizedlist>
441 <listitem>
442 <para>
443 <literal>2048-in-terminal</literal> →
444 <literal>_2048-in-terminal</literal>
445 </para>
446 </listitem>
447 <listitem>
448 <para>
449 <literal>90secondportraits</literal> →
450 <literal>_90secondportraits</literal>
451 </para>
452 </listitem>
453 <listitem>
454 <para>
455 <literal>2bwm</literal> → <literal>_2bwm</literal>
456 </para>
457 </listitem>
458 <listitem>
459 <para>
460 <literal>389-ds-base</literal> → <literal>_389-ds-base</literal>
461 </para>
462 </listitem>
463 </itemizedlist>
464 </para>
465 </listitem>
466 <listitem>
467 <para>
468 <emphasis role="strong"> The OpenSSH service no longer enables support for
469 DSA keys by default, which could cause a system lock out. Update your keys
470 or, unfavorably, re-enable DSA support manually. </emphasis>
471 </para>
472 <para>
473 DSA support was
474 <link xlink:href="https://www.openssh.com/legacy.html">deprecated in
475 OpenSSH 7.0</link>, due to it being too weak. To re-enable support, add
476 <literal>PubkeyAcceptedKeyTypes +ssh-dss</literal> to the end of your
477 <option>services.openssh.extraConfig</option>.
478 </para>
479 <para>
480 After updating the keys to be stronger, anyone still on a pre-17.03
481 version is safe to jump to 17.03, as vetted
482 <link xlink:href="https://search.nix.gsc.io/?q=stateVersion">here</link>.
483 </para>
484 </listitem>
485 <listitem>
486 <para>
487 The <literal>openssh</literal> package now includes Kerberos support by
488 default; the <literal>openssh_with_kerberos</literal> package is now a
489 deprecated alias. If you do not want Kerberos support, you can do
490 <literal>openssh.override { withKerberos = false; }</literal>. Note, this
491 also applies to the <literal>openssh_hpn</literal> package.
492 </para>
493 </listitem>
494 <listitem>
495 <para>
496 <literal>cc-wrapper</literal> has been split in two; there is now also a
497 <literal>bintools-wrapper</literal>. The most commonly used files in
498 <filename>nix-support</filename> are now split between the two wrappers.
499 Some commonly used ones, like
500 <filename>nix-support/dynamic-linker</filename>, are duplicated for
501 backwards compatability, even though they rightly belong only in
502 <literal>bintools-wrapper</literal>. Other more obscure ones are just
503 moved.
504 </para>
505 </listitem>
506 <listitem>
507 <para>
508 The propagation logic has been changed. The new logic, along with new
509 types of dependencies that go with, is thoroughly documented in the
510 "Specifying dependencies" section of the "Standard Environment" chapter of
511 the nixpkgs manual.
512<!-- That's <xref linkend="ssec-stdenv-attributes"> were we to merge the manuals. -->
513 The old logic isn't but is easy to describe: dependencies were propagated
514 as the same type of dependency no matter what. In practice, that means
515 that many <function>propagatedNativeBuildInputs</function> should instead
516 be <function>propagatedBuildInputs</function>. Thankfully, that was and is
517 the least used type of dependency. Also, it means that some
518 <function>propagatedBuildInputs</function> should instead be
519 <function>depsTargetTargetPropagated</function>. Other types dependencies
520 should be unaffected.
521 </para>
522 </listitem>
523 <listitem>
524 <para>
525 <literal>lib.addPassthru drv passthru</literal> is removed. Use
526 <literal>lib.extendDerivation true passthru drv</literal> instead.
527 </para>
528 </listitem>
529 <listitem>
530 <para>
531 The <literal>memcached</literal> service no longer accept dynamic socket
532 paths via <option>services.memcached.socket</option>. Unix sockets can be
533 still enabled by <option>services.memcached.enableUnixSocket</option> and
534 will be accessible at <literal>/run/memcached/memcached.sock</literal>.
535 </para>
536 </listitem>
537 <listitem>
538 <para>
539 The <varname>hardware.amdHybridGraphics.disable</varname> option was
540 removed for lack of a maintainer. If you still need this module, you may
541 wish to include a copy of it from an older version of nixos in your
542 imports.
543 </para>
544 </listitem>
545 <listitem>
546 <para>
547 The merging of config options for
548 <varname>services.postfix.config</varname> was buggy. Previously, if other
549 options in the Postfix module like
550 <varname>services.postfix.useSrs</varname> were set and the user set
551 config options that were also set by such options, the resulting config
552 wouldn't include all options that were needed. They are now merged
553 correctly. If config options need to be overridden,
554 <literal>lib.mkForce</literal> or <literal>lib.mkOverride</literal> can be
555 used.
556 </para>
557 </listitem>
558 <listitem>
559 <para>
560 The following changes apply if the <literal>stateVersion</literal> is
561 changed to 18.03 or higher. For <literal>stateVersion = "17.09"</literal>
562 or lower the old behavior is preserved.
563 </para>
564 <itemizedlist>
565 <listitem>
566 <para>
567 <literal>matrix-synapse</literal> uses postgresql by default instead of
568 sqlite. Migration instructions can be found
569 <link xlink:href="https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst#porting-from-sqlite">
570 here </link>.
571 </para>
572 </listitem>
573 </itemizedlist>
574 </listitem>
575 <listitem>
576 <para>
577 The <literal>jid</literal> package has been removed, due to maintenance
578 overhead of a go package having non-versioned dependencies.
579 </para>
580 </listitem>
581 <listitem>
582 <para>
583 When using <option>services.xserver.libinput</option> (enabled by default
584 in GNOME), it now handles all input devices, not just touchpads. As a
585 result, you might need to re-evaluate any custom Xorg configuration. In
586 particular, <literal>Option "XkbRules" "base"</literal> may result in
587 broken keyboard layout.
588 </para>
589 </listitem>
590 <listitem>
591 <para>
592 The <literal>attic</literal> package was removed. A maintained fork called
593 <link xlink:href="https://www.borgbackup.org/">Borg</link> should be used
594 instead. Migration instructions can be found
595 <link xlink:href="http://borgbackup.readthedocs.io/en/stable/usage/upgrade.html#attic-and-borg-0-xx-to-borg-1-x">here</link>.
596 </para>
597 </listitem>
598 <listitem>
599 <para>
600 The Piwik analytics software was renamed to Matomo:
601 <itemizedlist>
602 <listitem>
603 <para>
604 The package <literal>pkgs.piwik</literal> was renamed to
605 <literal>pkgs.matomo</literal>.
606 </para>
607 </listitem>
608 <listitem>
609 <para>
610 The service <literal>services.piwik</literal> was renamed to
611 <literal>services.matomo</literal>.
612 </para>
613 </listitem>
614 <listitem>
615 <para>
616 The data directory <filename>/var/lib/piwik</filename> was renamed to
617 <filename>/var/lib/matomo</filename>. All files will be moved
618 automatically on first startup, but you might need to adjust your
619 backup scripts.
620 </para>
621 </listitem>
622 <listitem>
623 <para>
624 The default <option>serverName</option> for the nginx configuration
625 changed from <literal>piwik.${config.networking.hostName}</literal> to
626 <literal>matomo.${config.networking.hostName}.${config.networking.domain}</literal>
627 if <option>config.networking.domain</option> is set,
628 <literal>matomo.${config.networking.hostName}</literal> if it is not
629 set. If you change your <option>serverName</option>, remember you'll
630 need to update the <literal>trustedHosts[]</literal> array in
631 <filename>/var/lib/matomo/config/config.ini.php</filename> as well.
632 </para>
633 </listitem>
634 <listitem>
635 <para>
636 The <literal>piwik</literal> user was renamed to
637 <literal>matomo</literal>. The service will adjust ownership
638 automatically for files in the data directory. If you use unix socket
639 authentication, remember to give the new <literal>matomo</literal> user
640 access to the database and to change the <literal>username</literal> to
641 <literal>matomo</literal> in the <literal>[database]</literal> section
642 of <filename>/var/lib/matomo/config/config.ini.php</filename>.
643 </para>
644 </listitem>
645 <listitem>
646 <para>
647 If you named your database `piwik`, you might want to rename it to
648 `matomo` to keep things clean, but this is neither enforced nor
649 required.
650 </para>
651 </listitem>
652 </itemizedlist>
653 </para>
654 </listitem>
655 <listitem>
656 <para>
657 <literal>nodejs-4_x</literal> is end-of-life.
658 <literal>nodejs-4_x</literal>, <literal>nodejs-slim-4_x</literal> and
659 <literal>nodePackages_4_x</literal> are removed.
660 </para>
661 </listitem>
662 <listitem>
663 <para>
664 The <literal>pump.io</literal> NixOS module was removed. It is now
665 maintained as an
666 <link xlink:href="https://github.com/rvl/pump.io-nixos">external
667 module</link>.
668 </para>
669 </listitem>
670 <listitem>
671 <para>
672 The Prosody XMPP server has received a major update. The following modules
673 were renamed:
674 <itemizedlist>
675 <listitem>
676 <para>
677 <option>services.prosody.modules.httpserver</option> is now
678 <option>services.prosody.modules.http_files</option>
679 </para>
680 </listitem>
681 <listitem>
682 <para>
683 <option>services.prosody.modules.console</option> is now
684 <option>services.prosody.modules.admin_telnet</option>
685 </para>
686 </listitem>
687 </itemizedlist>
688 </para>
689 <para>
690 Many new modules are now core modules, most notably
691 <option>services.prosody.modules.carbons</option> and
692 <option>services.prosody.modules.mam</option>.
693 </para>
694 <para>
695 The better-performing <literal>libevent</literal> backend is now enabled
696 by default.
697 </para>
698 <para>
699 <literal>withCommunityModules</literal> now passes through the modules to
700 <option>services.prosody.extraModules</option>. Use
701 <literal>withOnlyInstalledCommunityModules</literal> for modules that
702 should not be enabled directly, e.g <literal>lib_ldap</literal>.
703 </para>
704 </listitem>
705 <listitem>
706 <para>
707 All prometheus exporter modules are now defined as submodules. The
708 exporters are configured using
709 <literal>services.prometheus.exporters</literal>.
710 </para>
711 </listitem>
712 </itemizedlist>
713 </section>
714
715 <section xmlns="http://docbook.org/ns/docbook"
716 xmlns:xlink="http://www.w3.org/1999/xlink"
717 xmlns:xi="http://www.w3.org/2001/XInclude"
718 version="5.0"
719 xml:id="sec-release-18.03-notable-changes">
720 <title>Other Notable Changes</title>
721
722 <itemizedlist>
723 <listitem>
724 <para>
725 ZNC option <option>services.znc.mutable</option> now defaults to
726 <literal>true</literal>. That means that old configuration is not
727 overwritten by default when update to the znc options are made.
728 </para>
729 </listitem>
730 <listitem>
731 <para>
732 The option <option>networking.wireless.networks.<name>.auth</option>
733 has been added for wireless networks with WPA-Enterprise authentication.
734 There is also a new <option>extraConfig</option> option to directly
735 configure <literal>wpa_supplicant</literal> and <option>hidden</option> to
736 connect to hidden networks.
737 </para>
738 </listitem>
739 <listitem>
740 <para>
741 In the module <option>networking.interfaces.<name></option> the
742 following options have been removed:
743 <itemizedlist>
744 <listitem>
745 <para>
746 <option>ipAddress</option>
747 </para>
748 </listitem>
749 <listitem>
750 <para>
751 <option>ipv6Address</option>
752 </para>
753 </listitem>
754 <listitem>
755 <para>
756 <option>prefixLength</option>
757 </para>
758 </listitem>
759 <listitem>
760 <para>
761 <option>ipv6PrefixLength</option>
762 </para>
763 </listitem>
764 <listitem>
765 <para>
766 <option>subnetMask</option>
767 </para>
768 </listitem>
769 </itemizedlist>
770 To assign static addresses to an interface the options
771 <option>ipv4.addresses</option> and <option>ipv6.addresses</option> should
772 be used instead. The options <option>ip4</option> and <option>ip6</option>
773 have been renamed to <option>ipv4.addresses</option>
774 <option>ipv6.addresses</option> respectively. The new options
775 <option>ipv4.routes</option> and <option>ipv6.routes</option> have been
776 added to set up static routing.
777 </para>
778 </listitem>
779 <listitem>
780 <para>
781 The option <option>services.logstash.listenAddress</option> is now
782 <literal>127.0.0.1</literal> by default. Previously the default behaviour
783 was to listen on all interfaces.
784 </para>
785 </listitem>
786 <listitem>
787 <para>
788 <literal>services.btrfs.autoScrub</literal> has been added, to
789 periodically check btrfs filesystems for data corruption. If there's a
790 correct copy available, it will automatically repair corrupted blocks.
791 </para>
792 </listitem>
793 <listitem>
794 <para>
795 <literal>displayManager.lightdm.greeters.gtk.clock-format.</literal> has
796 been added, the clock format string (as expected by strftime, e.g.
797 <literal>%H:%M</literal>) to use with the lightdm gtk greeter panel.
798 </para>
799 <para>
800 If set to null the default clock format is used.
801 </para>
802 </listitem>
803 <listitem>
804 <para>
805 <literal>displayManager.lightdm.greeters.gtk.indicators</literal> has been
806 added, a list of allowed indicator modules to use with the lightdm gtk
807 greeter panel.
808 </para>
809 <para>
810 Built-in indicators include <literal>~a11y</literal>,
811 <literal>~language</literal>, <literal>~session</literal>,
812 <literal>~power</literal>, <literal>~clock</literal>,
813 <literal>~host</literal>, <literal>~spacer</literal>. Unity indicators can
814 be represented by short name (e.g. <literal>sound</literal>,
815 <literal>power</literal>), service file name, or absolute path.
816 </para>
817 <para>
818 If set to <literal>null</literal> the default indicators are used.
819 </para>
820 <para>
821 In order to have the previous default configuration add
822<programlisting>
823 services.xserver.displayManager.lightdm.greeters.gtk.indicators = [
824 "~host" "~spacer"
825 "~clock" "~spacer"
826 "~session"
827 "~language"
828 "~a11y"
829 "~power"
830 ];
831</programlisting>
832 to your <literal>configuration.nix</literal>.
833 </para>
834 </listitem>
835 <listitem>
836 <para>
837 The NixOS test driver supports user services declared by
838 <literal>systemd.user.services</literal>. The methods
839 <literal>waitForUnit</literal>, <literal>getUnitInfo</literal>,
840 <literal>startJob</literal> and <literal>stopJob</literal> provide an
841 optional <literal>$user</literal> argument for that purpose.
842 </para>
843 </listitem>
844 <listitem>
845 <para>
846 Enabling bash completion on NixOS,
847 <literal>programs.bash.enableCompletion</literal>, will now also enable
848 completion for the Nix command line tools by installing the
849 <link xlink:href="https://github.com/hedning/nix-bash-completions">nix-bash-completions</link>
850 package.
851 </para>
852 </listitem>
853 </itemizedlist>
854 </section>
855</section>