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