diff options
Diffstat (limited to 'nixos/doc/manual/release-notes/rl-1509.xml')
-rw-r--r-- | nixos/doc/manual/release-notes/rl-1509.xml | 319 |
1 files changed, 280 insertions, 39 deletions
diff --git a/nixos/doc/manual/release-notes/rl-1509.xml b/nixos/doc/manual/release-notes/rl-1509.xml index 098613f9685a..a68baa0d8078 100644 --- a/nixos/doc/manual/release-notes/rl-1509.xml +++ b/nixos/doc/manual/release-notes/rl-1509.xml @@ -4,7 +4,7 @@ version="5.0" xml:id="sec-release-15.09"> -<title>Release 15.09 (“Dingo”, 2015/09/??)</title> +<title>Release 15.09 (“Dingo”, 2015/09/30)</title> <para>In addition to numerous new and upgraded packages, this release has the following highlights:</para> @@ -12,16 +12,25 @@ has the following highlights:</para> <itemizedlist> <listitem> - <para>The Haskell packages infrastructure has been re-designed - from the ground up. NixOS now distributes the latest version of - every single package registered on <link - xlink:href="http://hackage.haskell.org/">Hackage</link>, i.e. well - over 8000 Haskell packages. Further information and usage - instructions for the improved infrastructure are available at - <link - xlink:href="https://nixos.org/wiki/Haskell">https://nixos.org/wiki/Haskell</link>. - Users migrating from an earlier release will also find helpful - information below, in the list of backwards-incompatible changes.</para> + <para>The <link xlink:href="http://haskell.org/">Haskell</link> + packages infrastructure has been re-designed from the ground up + ("Haskell NG"). NixOS now distributes the latest version + of every single package registered on <link + xlink:href="http://hackage.haskell.org/">Hackage</link> -- well in + excess of 8,000 Haskell packages. Detailed instructions on how to + use that infrastructure can be found in the <link + xlink:href="http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure">User's + Guide to the Haskell Infrastructure</link>. Users migrating from an + earlier release may find helpful information below, in the list of + backwards-incompatible changes. Furthermore, we distribute 51(!) + additional Haskell package sets that provide every single <link + xlink:href="http://www.stackage.org/">LTS Haskell</link> release + since version 0.0 as well as the most recent <link + xlink:href="http://www.stackage.org/">Stackage Nightly</link> + snapshot. The announcement <link + xlink:href="http://lists.science.uu.nl/pipermail/nix-dev/2015-September/018138.html">"Full + Stackage Support in Nixpkgs"</link> gives additional + details.</para> </listitem> <listitem> @@ -47,9 +56,105 @@ system.autoUpgrade.enable = true; 3.18.</para> </listitem> + <listitem> + <para>GNOME has been upgraded to 3.16. + </para> + </listitem> + + <listitem> + <para>Xfce has been upgraded to 4.12. + </para> + </listitem> + + <listitem> + <para>KDE 5 has been upgraded to KDE Frameworks 5.10, + Plasma 5.3.2 and Applications 15.04.3. + KDE 4 has been updated to kdelibs-4.14.10. + </para> + </listitem> + + <listitem> + <para>E19 has been upgraded to 0.16.8.15. + </para> + </listitem> + </itemizedlist> +<para>The following new services were added since the last release: + + <itemizedlist> + <listitem><para><literal>services/mail/exim.nix</literal></para></listitem> + <listitem><para><literal>services/misc/apache-kafka.nix</literal></para></listitem> + <listitem><para><literal>services/misc/canto-daemon.nix</literal></para></listitem> + <listitem><para><literal>services/misc/confd.nix</literal></para></listitem> + <listitem><para><literal>services/misc/devmon.nix</literal></para></listitem> + <listitem><para><literal>services/misc/gitit.nix</literal></para></listitem> + <listitem><para><literal>services/misc/ihaskell.nix</literal></para></listitem> + <listitem><para><literal>services/misc/mbpfan.nix</literal></para></listitem> + <listitem><para><literal>services/misc/mediatomb.nix</literal></para></listitem> + <listitem><para><literal>services/misc/mwlib.nix</literal></para></listitem> + <listitem><para><literal>services/misc/parsoid.nix</literal></para></listitem> + <listitem><para><literal>services/misc/plex.nix</literal></para></listitem> + <listitem><para><literal>services/misc/ripple-rest.nix</literal></para></listitem> + <listitem><para><literal>services/misc/ripple-data-api.nix</literal></para></listitem> + <listitem><para><literal>services/misc/subsonic.nix</literal></para></listitem> + <listitem><para><literal>services/misc/sundtek.nix</literal></para></listitem> + <listitem><para><literal>services/monitoring/cadvisor.nix</literal></para></listitem> + <listitem><para><literal>services/monitoring/das_watchdog.nix</literal></para></listitem> + <listitem><para><literal>services/monitoring/grafana.nix</literal></para></listitem> + <listitem><para><literal>services/monitoring/riemann-tools.nix</literal></para></listitem> + <listitem><para><literal>services/monitoring/teamviewer.nix</literal></para></listitem> + <listitem><para><literal>services/network-filesystems/u9fs.nix</literal></para></listitem> + <listitem><para><literal>services/networking/aiccu.nix</literal></para></listitem> + <listitem><para><literal>services/networking/asterisk.nix</literal></para></listitem> + <listitem><para><literal>services/networking/bird.nix</literal></para></listitem> + <listitem><para><literal>services/networking/charybdis.nix</literal></para></listitem> + <listitem><para><literal>services/networking/docker-registry-server.nix</literal></para></listitem> + <listitem><para><literal>services/networking/fan.nix</literal></para></listitem> + <listitem><para><literal>services/networking/firefox/sync-server.nix</literal></para></listitem> + <listitem><para><literal>services/networking/gateone.nix</literal></para></listitem> + <listitem><para><literal>services/networking/heyefi.nix</literal></para></listitem> + <listitem><para><literal>services/networking/i2p.nix</literal></para></listitem> + <listitem><para><literal>services/networking/lambdabot.nix</literal></para></listitem> + <listitem><para><literal>services/networking/mstpd.nix</literal></para></listitem> + <listitem><para><literal>services/networking/nix-serve.nix</literal></para></listitem> + <listitem><para><literal>services/networking/nylon.nix</literal></para></listitem> + <listitem><para><literal>services/networking/racoon.nix</literal></para></listitem> + <listitem><para><literal>services/networking/skydns.nix</literal></para></listitem> + <listitem><para><literal>services/networking/shout.nix</literal></para></listitem> + <listitem><para><literal>services/networking/softether.nix</literal></para></listitem> + <listitem><para><literal>services/networking/sslh.nix</literal></para></listitem> + <listitem><para><literal>services/networking/tinc.nix</literal></para></listitem> + <listitem><para><literal>services/networking/tlsdated.nix</literal></para></listitem> + <listitem><para><literal>services/networking/tox-bootstrapd.nix</literal></para></listitem> + <listitem><para><literal>services/networking/tvheadend.nix</literal></para></listitem> + <listitem><para><literal>services/networking/zerotierone.nix</literal></para></listitem> + <listitem><para><literal>services/scheduling/marathon.nix</literal></para></listitem> + <listitem><para><literal>services/security/fprintd.nix</literal></para></listitem> + <listitem><para><literal>services/security/hologram.nix</literal></para></listitem> + <listitem><para><literal>services/security/munge.nix</literal></para></listitem> + <listitem><para><literal>services/system/cloud-init.nix</literal></para></listitem> + <listitem><para><literal>services/web-servers/shellinabox.nix</literal></para></listitem> + <listitem><para><literal>services/web-servers/uwsgi.nix</literal></para></listitem> + <listitem><para><literal>services/x11/unclutter.nix</literal></para></listitem> + <listitem><para><literal>services/x11/display-managers/sddm.nix</literal></para></listitem> + <listitem><para><literal>system/boot/coredump.nix</literal></para></listitem> + <listitem><para><literal>system/boot/loader/loader.nix</literal></para></listitem> + <listitem><para><literal>system/boot/loader/generic-extlinux-compatible</literal></para></listitem> + <listitem><para><literal>system/boot/networkd.nix</literal></para></listitem> + <listitem><para><literal>system/boot/resolved.nix</literal></para></listitem> + <listitem><para><literal>system/boot/timesyncd.nix</literal></para></listitem> + <listitem><para><literal>tasks/filesystems/exfat.nix</literal></para></listitem> + <listitem><para><literal>tasks/filesystems/ntfs.nix</literal></para></listitem> + <listitem><para><literal>tasks/filesystems/vboxsf.nix</literal></para></listitem> + <listitem><para><literal>virtualisation/virtualbox-host.nix</literal></para></listitem> + <listitem><para><literal>virtualisation/vmware-guest.nix</literal></para></listitem> + <listitem><para><literal>virtualisation/xen-dom0.nix</literal></para></listitem> + </itemizedlist> +</para> + + <para>When upgrading from a previous release, please be aware of the following incompatible changes: @@ -104,56 +209,75 @@ which contains the latest Elm platform.</para></listitem> <para>Local printers are no longer shared or advertised by default. This behavior can be changed by enabling - <literal>services.printing.defaultShared</literal> or - <literal>services.printing.browsing</literal> respectively.</para> + <option>services.printing.defaultShared</option> or + <option>services.printing.browsing</option> respectively.</para> </listitem> <listitem> <para> The VirtualBox host and guest options have been named more consistently. They can now found in - <literal>virtualisation.virtualbox.host.*</literal> instead of - <literal>services.virtualboxHost.*</literal> and - <literal>virtualisation.virtualbox.guest.*</literal> instead of - <literal>services.virtualboxGuest.*</literal>. + <option>virtualisation.virtualbox.host.*</option> instead of + <option>services.virtualboxHost.*</option> and + <option>virtualisation.virtualbox.guest.*</option> instead of + <option>services.virtualboxGuest.*</option>. + </para> + + <para> + Also, there now is support for the <literal>vboxsf</literal> file + system using the <option>fileSystems</option> configuration + attribute. An example of how this can be used in a configuration: + +<programlisting> +fileSystems."/shiny" = { + device = "myshinysharedfolder"; + fsType = "vboxsf"; +}; +</programlisting> + </para> </listitem> <listitem> <para> - Haskell packages can no longer be found by name, i.e. the commands - <literal>nix-env -qa cabal-install</literal> and <literal>nix-env -i - ghc</literal> will fail, even though we <emphasis>do</emphasis> ship - both <literal>cabal-install</literal> and <literal>ghc</literal>. - The reason for this inconvenience is the sheer size of the Haskell - package set: name-based lookups such as these would become much - slower than they are today if we'd add the entire Hackage database - into the top level attribute set. Instead, the list of Haskell - packages can be displayed by + "<literal>nix-env -qa</literal>" no longer discovers + Haskell packages by name. The only packages visible in the global + scope are <literal>ghc</literal>, <literal>cabal-install</literal>, + and <literal>stack</literal>, but all other packages are hidden. The + reason for this inconvenience is the sheer size of the Haskell + package set. Name-based lookups are expensive, and most + <literal>nix-env -qa</literal> operations would become much slower + if we'd add the entire Hackage database into the top level attribute + set. Instead, the list of Haskell packages can be displayed by + running: </para> <programlisting> nix-env -f "<nixpkgs>" -qaP -A haskellPackages </programlisting> <para> - and packages can be installed with: + Executable programs written in Haskell can be installed with: </para> <programlisting> -nix-env -f "<nixpkgs>" -iA haskellPackages.cabal-install +nix-env -f "<nixpkgs>" -iA haskellPackages.pandoc </programlisting> + <para> + Installing Haskell <emphasis>libraries</emphasis> this way, however, is no + longer supported. See the next item for more details. + </para> </listitem> <listitem> <para> Previous versions of NixOS came with a feature called - <literal>ghc-wrapper</literal>, a small wrapper script that allows - GHC to transparently pick up on libraries installed in the user's - profile. This feature has been deprecated; - <literal>ghc-wrapper</literal> was removed from the distribution. - The proper way to register Haskell libraries with the compiler now - is the <literal>haskellPackages.ghcWithPackages</literal> - function. - <link xlink:href="https://nixos.org/wiki/Haskell">https://nixos.org/wiki/Haskell</link> - provides much information about this subject. + <literal>ghc-wrapper</literal>, a small script that allowed GHC to + transparently pick up on libraries installed in the user's profile. This + feature has been deprecated; <literal>ghc-wrapper</literal> was removed + from the distribution. The proper way to register Haskell libraries with + the compiler now is the <literal>haskellPackages.ghcWithPackages</literal> + function. The <link + xlink:href="http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure">User's + Guide to the Haskell Infrastructure</link> provides more information about + this subject. </para> </listitem> @@ -203,7 +327,7 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.cabal-install The <literal>locate</literal> service no longer indexes the Nix store by default, preventing packages with potentially numerous versions from cluttering the output. Indexing the store can be activated by setting - <literal>services.locate.includeStore = true</literal>. + <option>services.locate.includeStore = true</option>. </para> </listitem> @@ -216,6 +340,107 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.cabal-install </para> </listitem> +<listitem> + <para> + Python 2.6 has been marked as broken (as it no longer recieves + security updates from upstream). + </para> +</listitem> + +<listitem> + <para> + Any use of module arguments such as <varname>pkgs</varname> to access + library functions, or to define <literal>imports</literal> attributes + will now lead to an infinite loop at the time of the evaluation. + </para> + + <para> + In case of an infinite loop, use the <command>--show-trace</command> + command line argument and read the line just above the error message. + +<screen> +$ nixos-rebuild build --show-trace +… +while evaluating the module argument `pkgs' in "/etc/nixos/my-module.nix": +infinite recursion encountered +</screen> + </para> + + + <para> + Any use of <literal>pkgs.lib</literal>, should be replaced by + <varname>lib</varname>, after adding it as argument of the module. The + following module + +<programlisting> +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + options = { + foo = mkOption { … }; + }; + config = mkIf config.foo { … }; +} +</programlisting> + + should be modified to look like: + +<programlisting> +{ config, pkgs, lib, ... }: + +with lib; + +{ + options = { + foo = mkOption { <replaceable>option declaration</replaceable> }; + }; + config = mkIf config.foo { <replaceable>option definition</replaceable> }; +} +</programlisting> + </para> + + <para> + When <varname>pkgs</varname> is used to download other projects to + import their modules, and only in such cases, it should be replaced by + <literal>(import <nixpkgs> {})</literal>. The following module + +<programlisting> +{ config, pkgs, ... }: + +let + myProject = pkgs.fetchurl { + src = <replaceable>url</replaceable>; + sha256 = <replaceable>hash</replaceable>; + }; +in + +{ + imports = [ "${myProject}/module.nix" ]; +} +</programlisting> + + should be modified to look like: + +<programlisting> +{ config, pkgs, ... }: + +let + myProject = (import <nixpkgs> {}).fetchurl { + src = <replaceable>url</replaceable>; + sha256 = <replaceable>hash</replaceable>; + }; +in + +{ + imports = [ "${myProject}/module.nix" ]; +} +</programlisting> + </para> + +</listitem> + </itemizedlist> </para> @@ -239,10 +464,26 @@ nix-env -f "<nixpkgs>" -iA haskellPackages.cabal-install discovered in the Diffie-Hellman key exchange</link> can now replace OpenSSH's default version with one they generated themselves using the new - <literal>services.openssh.moduliFile</literal> option. + <option>services.openssh.moduliFile</option> option. </para> </listitem> + <listitem> <para> + A newly packaged TeX Live 2015 is provided in <literal>pkgs.texlive</literal>, + split into 6500 nix packages. For basic user documentation see + <link xlink:href="https://github.com/NixOS/nixpkgs/blob/release-15.09/pkgs/tools/typesetting/tex/texlive-new/default.nix#L1" + >the source</link>. + Beware of <link xlink:href="https://github.com/NixOS/nixpkgs/issues/9757" + >an issue</link> when installing a too large package set. + + The plan is to deprecate and maybe delete the original TeX packages + until the next release. + </para> </listitem> + + <listitem><para> + <option>buildEnv.env</option> on all Python interpreters + is now available for nix-shell interoperability. + </para> </listitem> </itemizedlist> </para> |