at 23.05-pre 23 kB view raw
1<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-release-15.09"> 2 <title>Release 15.09 (<quote>Dingo</quote>, 2015/09/30)</title> 3 <para> 4 In addition to numerous new and upgraded packages, this release has 5 the following highlights: 6 </para> 7 <itemizedlist> 8 <listitem> 9 <para> 10 The <link xlink:href="http://haskell.org/">Haskell</link> 11 packages infrastructure has been re-designed from the ground up 12 (&quot;Haskell NG&quot;). NixOS now distributes the latest 13 version of every single package registered on 14 <link xlink:href="http://hackage.haskell.org/">Hackage</link> -- 15 well in excess of 8,000 Haskell packages. Detailed instructions 16 on how to use that infrastructure can be found in the 17 <link xlink:href="https://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure">User's 18 Guide to the Haskell Infrastructure</link>. Users migrating from 19 an earlier release may find helpful information below, in the 20 list of backwards-incompatible changes. Furthermore, we 21 distribute 51(!) additional Haskell package sets that provide 22 every single <link xlink:href="http://www.stackage.org/">LTS 23 Haskell</link> release since version 0.0 as well as the most 24 recent <link xlink:href="http://www.stackage.org/">Stackage 25 Nightly</link> snapshot. The announcement 26 <link xlink:href="https://nixos.org/nix-dev/2015-September/018138.html">&quot;Full 27 Stackage Support in Nixpkgs&quot;</link> gives additional 28 details. 29 </para> 30 </listitem> 31 <listitem> 32 <para> 33 Nix has been updated to version 1.10, which among other 34 improvements enables cryptographic signatures on binary caches 35 for improved security. 36 </para> 37 </listitem> 38 <listitem> 39 <para> 40 You can now keep your NixOS system up to date automatically by 41 setting 42 </para> 43 </listitem> 44 </itemizedlist> 45 <programlisting language="bash"> 46{ 47 system.autoUpgrade.enable = true; 48} 49</programlisting> 50 <para> 51 This will cause the system to periodically check for updates in your 52 current channel and run <literal>nixos-rebuild</literal>. 53 </para> 54 <itemizedlist> 55 <listitem> 56 <para> 57 This release is based on Glibc 2.21, GCC 4.9 and Linux 3.18. 58 </para> 59 </listitem> 60 <listitem> 61 <para> 62 GNOME has been upgraded to 3.16. 63 </para> 64 </listitem> 65 <listitem> 66 <para> 67 Xfce has been upgraded to 4.12. 68 </para> 69 </listitem> 70 <listitem> 71 <para> 72 KDE 5 has been upgraded to KDE Frameworks 5.10, Plasma 5.3.2 and 73 Applications 15.04.3. KDE 4 has been updated to kdelibs-4.14.10. 74 </para> 75 </listitem> 76 <listitem> 77 <para> 78 E19 has been upgraded to 0.16.8.15. 79 </para> 80 </listitem> 81 </itemizedlist> 82 <para> 83 The following new services were added since the last release: 84 </para> 85 <itemizedlist> 86 <listitem> 87 <para> 88 <literal>services/mail/exim.nix</literal> 89 </para> 90 </listitem> 91 <listitem> 92 <para> 93 <literal>services/misc/apache-kafka.nix</literal> 94 </para> 95 </listitem> 96 <listitem> 97 <para> 98 <literal>services/misc/canto-daemon.nix</literal> 99 </para> 100 </listitem> 101 <listitem> 102 <para> 103 <literal>services/misc/confd.nix</literal> 104 </para> 105 </listitem> 106 <listitem> 107 <para> 108 <literal>services/misc/devmon.nix</literal> 109 </para> 110 </listitem> 111 <listitem> 112 <para> 113 <literal>services/misc/gitit.nix</literal> 114 </para> 115 </listitem> 116 <listitem> 117 <para> 118 <literal>services/misc/ihaskell.nix</literal> 119 </para> 120 </listitem> 121 <listitem> 122 <para> 123 <literal>services/misc/mbpfan.nix</literal> 124 </para> 125 </listitem> 126 <listitem> 127 <para> 128 <literal>services/misc/mediatomb.nix</literal> 129 </para> 130 </listitem> 131 <listitem> 132 <para> 133 <literal>services/misc/mwlib.nix</literal> 134 </para> 135 </listitem> 136 <listitem> 137 <para> 138 <literal>services/misc/parsoid.nix</literal> 139 </para> 140 </listitem> 141 <listitem> 142 <para> 143 <literal>services/misc/plex.nix</literal> 144 </para> 145 </listitem> 146 <listitem> 147 <para> 148 <literal>services/misc/ripple-rest.nix</literal> 149 </para> 150 </listitem> 151 <listitem> 152 <para> 153 <literal>services/misc/ripple-data-api.nix</literal> 154 </para> 155 </listitem> 156 <listitem> 157 <para> 158 <literal>services/misc/subsonic.nix</literal> 159 </para> 160 </listitem> 161 <listitem> 162 <para> 163 <literal>services/misc/sundtek.nix</literal> 164 </para> 165 </listitem> 166 <listitem> 167 <para> 168 <literal>services/monitoring/cadvisor.nix</literal> 169 </para> 170 </listitem> 171 <listitem> 172 <para> 173 <literal>services/monitoring/das_watchdog.nix</literal> 174 </para> 175 </listitem> 176 <listitem> 177 <para> 178 <literal>services/monitoring/grafana.nix</literal> 179 </para> 180 </listitem> 181 <listitem> 182 <para> 183 <literal>services/monitoring/riemann-tools.nix</literal> 184 </para> 185 </listitem> 186 <listitem> 187 <para> 188 <literal>services/monitoring/teamviewer.nix</literal> 189 </para> 190 </listitem> 191 <listitem> 192 <para> 193 <literal>services/network-filesystems/u9fs.nix</literal> 194 </para> 195 </listitem> 196 <listitem> 197 <para> 198 <literal>services/networking/aiccu.nix</literal> 199 </para> 200 </listitem> 201 <listitem> 202 <para> 203 <literal>services/networking/asterisk.nix</literal> 204 </para> 205 </listitem> 206 <listitem> 207 <para> 208 <literal>services/networking/bird.nix</literal> 209 </para> 210 </listitem> 211 <listitem> 212 <para> 213 <literal>services/networking/charybdis.nix</literal> 214 </para> 215 </listitem> 216 <listitem> 217 <para> 218 <literal>services/networking/docker-registry-server.nix</literal> 219 </para> 220 </listitem> 221 <listitem> 222 <para> 223 <literal>services/networking/fan.nix</literal> 224 </para> 225 </listitem> 226 <listitem> 227 <para> 228 <literal>services/networking/firefox/sync-server.nix</literal> 229 </para> 230 </listitem> 231 <listitem> 232 <para> 233 <literal>services/networking/gateone.nix</literal> 234 </para> 235 </listitem> 236 <listitem> 237 <para> 238 <literal>services/networking/heyefi.nix</literal> 239 </para> 240 </listitem> 241 <listitem> 242 <para> 243 <literal>services/networking/i2p.nix</literal> 244 </para> 245 </listitem> 246 <listitem> 247 <para> 248 <literal>services/networking/lambdabot.nix</literal> 249 </para> 250 </listitem> 251 <listitem> 252 <para> 253 <literal>services/networking/mstpd.nix</literal> 254 </para> 255 </listitem> 256 <listitem> 257 <para> 258 <literal>services/networking/nix-serve.nix</literal> 259 </para> 260 </listitem> 261 <listitem> 262 <para> 263 <literal>services/networking/nylon.nix</literal> 264 </para> 265 </listitem> 266 <listitem> 267 <para> 268 <literal>services/networking/racoon.nix</literal> 269 </para> 270 </listitem> 271 <listitem> 272 <para> 273 <literal>services/networking/skydns.nix</literal> 274 </para> 275 </listitem> 276 <listitem> 277 <para> 278 <literal>services/networking/shout.nix</literal> 279 </para> 280 </listitem> 281 <listitem> 282 <para> 283 <literal>services/networking/softether.nix</literal> 284 </para> 285 </listitem> 286 <listitem> 287 <para> 288 <literal>services/networking/sslh.nix</literal> 289 </para> 290 </listitem> 291 <listitem> 292 <para> 293 <literal>services/networking/tinc.nix</literal> 294 </para> 295 </listitem> 296 <listitem> 297 <para> 298 <literal>services/networking/tlsdated.nix</literal> 299 </para> 300 </listitem> 301 <listitem> 302 <para> 303 <literal>services/networking/tox-bootstrapd.nix</literal> 304 </para> 305 </listitem> 306 <listitem> 307 <para> 308 <literal>services/networking/tvheadend.nix</literal> 309 </para> 310 </listitem> 311 <listitem> 312 <para> 313 <literal>services/networking/zerotierone.nix</literal> 314 </para> 315 </listitem> 316 <listitem> 317 <para> 318 <literal>services/scheduling/marathon.nix</literal> 319 </para> 320 </listitem> 321 <listitem> 322 <para> 323 <literal>services/security/fprintd.nix</literal> 324 </para> 325 </listitem> 326 <listitem> 327 <para> 328 <literal>services/security/hologram.nix</literal> 329 </para> 330 </listitem> 331 <listitem> 332 <para> 333 <literal>services/security/munge.nix</literal> 334 </para> 335 </listitem> 336 <listitem> 337 <para> 338 <literal>services/system/cloud-init.nix</literal> 339 </para> 340 </listitem> 341 <listitem> 342 <para> 343 <literal>services/web-servers/shellinabox.nix</literal> 344 </para> 345 </listitem> 346 <listitem> 347 <para> 348 <literal>services/web-servers/uwsgi.nix</literal> 349 </para> 350 </listitem> 351 <listitem> 352 <para> 353 <literal>services/x11/unclutter.nix</literal> 354 </para> 355 </listitem> 356 <listitem> 357 <para> 358 <literal>services/x11/display-managers/sddm.nix</literal> 359 </para> 360 </listitem> 361 <listitem> 362 <para> 363 <literal>system/boot/coredump.nix</literal> 364 </para> 365 </listitem> 366 <listitem> 367 <para> 368 <literal>system/boot/loader/loader.nix</literal> 369 </para> 370 </listitem> 371 <listitem> 372 <para> 373 <literal>system/boot/loader/generic-extlinux-compatible</literal> 374 </para> 375 </listitem> 376 <listitem> 377 <para> 378 <literal>system/boot/networkd.nix</literal> 379 </para> 380 </listitem> 381 <listitem> 382 <para> 383 <literal>system/boot/resolved.nix</literal> 384 </para> 385 </listitem> 386 <listitem> 387 <para> 388 <literal>system/boot/timesyncd.nix</literal> 389 </para> 390 </listitem> 391 <listitem> 392 <para> 393 <literal>tasks/filesystems/exfat.nix</literal> 394 </para> 395 </listitem> 396 <listitem> 397 <para> 398 <literal>tasks/filesystems/ntfs.nix</literal> 399 </para> 400 </listitem> 401 <listitem> 402 <para> 403 <literal>tasks/filesystems/vboxsf.nix</literal> 404 </para> 405 </listitem> 406 <listitem> 407 <para> 408 <literal>virtualisation/virtualbox-host.nix</literal> 409 </para> 410 </listitem> 411 <listitem> 412 <para> 413 <literal>virtualisation/vmware-guest.nix</literal> 414 </para> 415 </listitem> 416 <listitem> 417 <para> 418 <literal>virtualisation/xen-dom0.nix</literal> 419 </para> 420 </listitem> 421 </itemizedlist> 422 <para> 423 When upgrading from a previous release, please be aware of the 424 following incompatible changes: 425 </para> 426 <itemizedlist spacing="compact"> 427 <listitem> 428 <para> 429 <literal>sshd</literal> no longer supports DSA and ECDSA host 430 keys by default. If you have existing systems with such host 431 keys and want to continue to use them, please set 432 </para> 433 </listitem> 434 </itemizedlist> 435 <programlisting language="bash"> 436{ 437 system.stateVersion = &quot;14.12&quot;; 438} 439</programlisting> 440 <para> 441 The new option <literal>system.stateVersion</literal> ensures that 442 certain configuration changes that could break existing systems 443 (such as the <literal>sshd</literal> host key setting) will maintain 444 compatibility with the specified NixOS release. NixOps sets the 445 state version of existing deployments automatically. 446 </para> 447 <itemizedlist> 448 <listitem> 449 <para> 450 <literal>cron</literal> is no longer enabled by default, unless 451 you have a non-empty 452 <literal>services.cron.systemCronJobs</literal>. To force 453 <literal>cron</literal> to be enabled, set 454 <literal>services.cron.enable = true</literal>. 455 </para> 456 </listitem> 457 <listitem> 458 <para> 459 Nix now requires binary caches to be cryptographically signed. 460 If you have unsigned binary caches that you want to continue to 461 use, you should set 462 <literal>nix.requireSignedBinaryCaches = false</literal>. 463 </para> 464 </listitem> 465 <listitem> 466 <para> 467 Steam now doesn't need root rights to work. Instead of using 468 <literal>*-steam-chrootenv</literal>, you should now just run 469 <literal>steam</literal>. <literal>steamChrootEnv</literal> 470 package was renamed to <literal>steam</literal>, and old 471 <literal>steam</literal> package -- to 472 <literal>steamOriginal</literal>. 473 </para> 474 </listitem> 475 <listitem> 476 <para> 477 CMPlayer has been renamed to bomi upstream. Package 478 <literal>cmplayer</literal> was accordingly renamed to 479 <literal>bomi</literal> 480 </para> 481 </listitem> 482 <listitem> 483 <para> 484 Atom Shell has been renamed to Electron upstream. Package 485 <literal>atom-shell</literal> was accordingly renamed to 486 <literal>electron</literal> 487 </para> 488 </listitem> 489 <listitem> 490 <para> 491 Elm is not released on Hackage anymore. You should now use 492 <literal>elmPackages.elm</literal> which contains the latest Elm 493 platform. 494 </para> 495 </listitem> 496 <listitem> 497 <para> 498 The CUPS printing service has been updated to version 499 <literal>2.0.2</literal>. Furthermore its systemd service has 500 been renamed to <literal>cups.service</literal>. 501 </para> 502 <para> 503 Local printers are no longer shared or advertised by default. 504 This behavior can be changed by enabling 505 <literal>services.printing.defaultShared</literal> or 506 <literal>services.printing.browsing</literal> respectively. 507 </para> 508 </listitem> 509 <listitem> 510 <para> 511 The VirtualBox host and guest options have been named more 512 consistently. They can now found in 513 <literal>virtualisation.virtualbox.host.*</literal> instead of 514 <literal>services.virtualboxHost.*</literal> and 515 <literal>virtualisation.virtualbox.guest.*</literal> instead of 516 <literal>services.virtualboxGuest.*</literal>. 517 </para> 518 <para> 519 Also, there now is support for the <literal>vboxsf</literal> 520 file system using the <literal>fileSystems</literal> 521 configuration attribute. An example of how this can be used in a 522 configuration: 523 </para> 524 </listitem> 525 </itemizedlist> 526 <programlisting language="bash"> 527{ 528 fileSystems.&quot;/shiny&quot; = { 529 device = &quot;myshinysharedfolder&quot;; 530 fsType = &quot;vboxsf&quot;; 531 }; 532} 533</programlisting> 534 <itemizedlist spacing="compact"> 535 <listitem> 536 <para> 537 &quot;<literal>nix-env -qa</literal>&quot; no longer discovers 538 Haskell packages by name. The only packages visible in the 539 global scope are <literal>ghc</literal>, 540 <literal>cabal-install</literal>, and <literal>stack</literal>, 541 but all other packages are hidden. The reason for this 542 inconvenience is the sheer size of the Haskell package set. 543 Name-based lookups are expensive, and most 544 <literal>nix-env -qa</literal> operations would become much 545 slower if we'd add the entire Hackage database into the top 546 level attribute set. Instead, the list of Haskell packages can 547 be displayed by running: 548 </para> 549 </listitem> 550 </itemizedlist> 551 <programlisting> 552nix-env -f &quot;&lt;nixpkgs&gt;&quot; -qaP -A haskellPackages 553</programlisting> 554 <para> 555 Executable programs written in Haskell can be installed with: 556 </para> 557 <programlisting> 558nix-env -f &quot;&lt;nixpkgs&gt;&quot; -iA haskellPackages.pandoc 559</programlisting> 560 <para> 561 Installing Haskell <emphasis>libraries</emphasis> this way, however, 562 is no longer supported. See the next item for more details. 563 </para> 564 <itemizedlist> 565 <listitem> 566 <para> 567 Previous versions of NixOS came with a feature called 568 <literal>ghc-wrapper</literal>, a small script that allowed GHC 569 to transparently pick up on libraries installed in the user's 570 profile. This feature has been deprecated; 571 <literal>ghc-wrapper</literal> was removed from the 572 distribution. The proper way to register Haskell libraries with 573 the compiler now is the 574 <literal>haskellPackages.ghcWithPackages</literal> function. The 575 <link xlink:href="https://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure">User's 576 Guide to the Haskell Infrastructure</link> provides more 577 information about this subject. 578 </para> 579 </listitem> 580 <listitem> 581 <para> 582 All Haskell builds that have been generated with version 1.x of 583 the <literal>cabal2nix</literal> utility are now invalid and 584 need to be re-generated with a current version of 585 <literal>cabal2nix</literal> to function. The most recent 586 version of this tool can be installed by running 587 <literal>nix-env -i cabal2nix</literal>. 588 </para> 589 </listitem> 590 <listitem> 591 <para> 592 The <literal>haskellPackages</literal> set in Nixpkgs used to 593 have a function attribute called <literal>extension</literal> 594 that users could override in their 595 <literal>~/.nixpkgs/config.nix</literal> files to configure 596 additional attributes, etc. That function still exists, but it's 597 now called <literal>overrides</literal>. 598 </para> 599 </listitem> 600 <listitem> 601 <para> 602 The OpenBLAS library has been updated to version 603 <literal>0.2.14</literal>. Support for the 604 <literal>x86_64-darwin</literal> platform was added. Dynamic 605 architecture detection was enabled; OpenBLAS now selects 606 microarchitecture-optimized routines at runtime, so optimal 607 performance is achieved without the need to rebuild OpenBLAS 608 locally. OpenBLAS has replaced ATLAS in most packages which use 609 an optimized BLAS or LAPACK implementation. 610 </para> 611 </listitem> 612 <listitem> 613 <para> 614 The <literal>phpfpm</literal> is now using the default PHP 615 version (<literal>pkgs.php</literal>) instead of PHP 5.4 616 (<literal>pkgs.php54</literal>). 617 </para> 618 </listitem> 619 <listitem> 620 <para> 621 The <literal>locate</literal> service no longer indexes the Nix 622 store by default, preventing packages with potentially numerous 623 versions from cluttering the output. Indexing the store can be 624 activated by setting 625 <literal>services.locate.includeStore = true</literal>. 626 </para> 627 </listitem> 628 <listitem> 629 <para> 630 The Nix expression search path (<literal>NIX_PATH</literal>) no 631 longer contains <literal>/etc/nixos/nixpkgs</literal> by 632 default. You can override <literal>NIX_PATH</literal> by setting 633 <literal>nix.nixPath</literal>. 634 </para> 635 </listitem> 636 <listitem> 637 <para> 638 Python 2.6 has been marked as broken (as it no longer receives 639 security updates from upstream). 640 </para> 641 </listitem> 642 <listitem> 643 <para> 644 Any use of module arguments such as <literal>pkgs</literal> to 645 access library functions, or to define 646 <literal>imports</literal> attributes will now lead to an 647 infinite loop at the time of the evaluation. 648 </para> 649 <para> 650 In case of an infinite loop, use the 651 <literal>--show-trace</literal> command line argument and read 652 the line just above the error message. 653 </para> 654 <programlisting> 655$ nixos-rebuild build --show-trace 656657while evaluating the module argument `pkgs' in &quot;/etc/nixos/my-module.nix&quot;: 658infinite recursion encountered 659</programlisting> 660 <para> 661 Any use of <literal>pkgs.lib</literal>, should be replaced by 662 <literal>lib</literal>, after adding it as argument of the 663 module. The following module 664 </para> 665 <programlisting language="bash"> 666{ config, pkgs, ... }: 667 668with pkgs.lib; 669 670{ 671 options = { 672 foo = mkOption { … }; 673 }; 674 config = mkIf config.foo { … }; 675} 676</programlisting> 677 <para> 678 should be modified to look like: 679 </para> 680 <programlisting language="bash"> 681{ config, pkgs, lib, ... }: 682 683with lib; 684 685{ 686 options = { 687 foo = mkOption { option declaration }; 688 }; 689 config = mkIf config.foo { option definition }; 690} 691</programlisting> 692 <para> 693 When <literal>pkgs</literal> is used to download other projects 694 to import their modules, and only in such cases, it should be 695 replaced by <literal>(import &lt;nixpkgs&gt; {})</literal>. The 696 following module 697 </para> 698 <programlisting language="bash"> 699{ config, pkgs, ... }: 700 701let 702 myProject = pkgs.fetchurl { 703 src = url; 704 sha256 = hash; 705 }; 706in 707 708{ 709 imports = [ &quot;${myProject}/module.nix&quot; ]; 710} 711</programlisting> 712 <para> 713 should be modified to look like: 714 </para> 715 <programlisting language="bash"> 716{ config, pkgs, ... }: 717 718let 719 myProject = (import &lt;nixpkgs&gt; {}).fetchurl { 720 src = url; 721 sha256 = hash; 722 }; 723in 724 725{ 726 imports = [ &quot;${myProject}/module.nix&quot; ]; 727} 728</programlisting> 729 </listitem> 730 </itemizedlist> 731 <para> 732 Other notable improvements: 733 </para> 734 <itemizedlist> 735 <listitem> 736 <para> 737 The nixos and nixpkgs channels were unified, so one 738 <emphasis>can</emphasis> use 739 <literal>nix-env -iA nixos.bash</literal> instead of 740 <literal>nix-env -iA nixos.pkgs.bash</literal>. See 741 <link xlink:href="https://github.com/NixOS/nixpkgs/commit/2cd7c1f198">the 742 commit</link> for details. 743 </para> 744 </listitem> 745 <listitem> 746 <para> 747 Users running an SSH server who worry about the quality of their 748 <literal>/etc/ssh/moduli</literal> file with respect to the 749 <link xlink:href="https://stribika.github.io/2015/01/04/secure-secure-shell.html">vulnerabilities 750 discovered in the Diffie-Hellman key exchange</link> can now 751 replace OpenSSH's default version with one they generated 752 themselves using the new 753 <literal>services.openssh.moduliFile</literal> option. 754 </para> 755 </listitem> 756 <listitem> 757 <para> 758 A newly packaged TeX Live 2015 is provided in 759 <literal>pkgs.texlive</literal>, split into 6500 nix packages. 760 For basic user documentation see 761 <link xlink:href="https://github.com/NixOS/nixpkgs/blob/release-15.09/pkgs/tools/typesetting/tex/texlive/default.nix#L1">the 762 source</link>. Beware of 763 <link xlink:href="https://github.com/NixOS/nixpkgs/issues/9757">an 764 issue</link> when installing a too large package set. The plan 765 is to deprecate and maybe delete the original TeX packages until 766 the next release. 767 </para> 768 </listitem> 769 <listitem> 770 <para> 771 <literal>buildEnv.env</literal> on all Python interpreters is 772 now available for nix-shell interoperability. 773 </para> 774 </listitem> 775 </itemizedlist> 776</section>