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-unstable">
6
7<title>Release 15.07 (“Dingo”, 2015/07/??)</title>
8
9<para>In addition to numerous new and upgraded packages, this release has the following highlights:
10
11 <itemizedlist>
12 <listitem>
13 <para>
14 The Haskell packages infrastructure has been re-designed from the ground up.
15 NixOS now distributes the latest version of every single package registered on
16 <link xlink:href="http://hackage.haskell.org/">Hackage</link>, i.e. well over
17 8000 Haskell packages. Further information and usage instructions for the
18 improved infrastructure are available at <link
19 xlink:href="https://nixos.org/wiki/Haskell">https://nixos.org/wiki/Haskell</link>.
20 Users migrating from an earlier release will find also find helpful information
21 below, in the list of backwards-incompatible changes.
22 </para>
23 </listitem>
24
25 <listitem>
26 <para>
27 Users running an SSH server who worry about the quality of their
28 <literal>/etc/ssh/moduli</literal> file with respect to the <link
29 xlink:href="https://stribika.github.io/2015/01/04/secure-secure-shell.html">vulnerabilities
30 discovered in the Diffie-Hellman key exchange</link> can now replace OpenSSH's
31 default version with one they generated themselves using the new
32 <literal>services.openssh.moduliFile</literal> option.
33 </para>
34 </listitem>
35 </itemizedlist>
36
37</para>
38
39
40<para>When upgrading from a previous release, please be aware of the
41following incompatible changes:
42
43<itemizedlist>
44
45<listitem><para><command>sshd</command> no longer supports DSA and ECDSA
46host keys by default. If you have existing systems with such host keys
47and want to continue to use them, please set
48
49<programlisting>
50system.stateVersion = "14.12";
51</programlisting>
52
53(The new option <option>system.stateVersion</option> ensures that
54certain configuration changes that could break existing systems (such
55as the <command>sshd</command> host key setting) will maintain
56compatibility with the specified NixOS release.)</para></listitem>
57
58<listitem><para><command>cron</command> is no longer enabled by
59default, unless you have a non-empty
60<option>services.cron.systemCronJobs</option>. To force
61<command>cron</command> to be enabled, set
62<option>services.cron.enable = true</option>.</para></listitem>
63
64<listitem><para>Nix now requires binary caches to be cryptographically
65signed. If you have unsigned binary caches that you want to continue
66to use, you should set <option>nix.requireSignedBinaryCaches =
67false</option>.</para></listitem>
68
69<listitem><para>Steam now doesn't need root rights to work. Instead of using
70<literal>*-steam-chrootenv</literal>, you should now just run <literal>steam</literal>.
71<literal>steamChrootEnv</literal> package was renamed to <literal>steam</literal>,
72and old <literal>steam</literal> package -- to <literal>steamOriginal</literal>.
73</para></listitem>
74
75<listitem><para>CMPlayer has been renamed to bomi upstream. Package <literal>cmplayer</literal>
76was accordingly renamed to <literal>bomi</literal>
77</para></listitem>
78
79<listitem><para>Atom Shell has been renamed to Electron upstream. Package <literal>atom-shell</literal>
80was accordingly renamed to <literal>electron</literal>
81</para></listitem>
82
83<listitem><para>Elm is not released on Hackage anymore. You should now use <literal>elmPackages.elm</literal>
84which contains the latest Elm platform.</para></listitem>
85
86<listitem>
87 <para>
88 The CUPS printing service has been updated to version <literal>2.0.2</literal>.
89 Furthermore its systemd service has been renamed to <literal>cups.service</literal>.
90 </para>
91 <para>
92 Local printers are no longer shared or advertised by default. This behavior
93 can be changed by enabling <literal>services.printing.defaultShared</literal>
94 or <literal>services.printing.browsing</literal> respectively.
95 </para>
96</listitem>
97
98<listitem>
99 <para>
100 The VirtualBox host and guest options have been moved/renamed more
101 consistently and less confusing to be now found in
102 <literal>virtualisation.virtualbox.host.*</literal> instead of
103 <literal>services.virtualboxHost.*</literal> and
104 <literal>virtualisation.virtualbox.guest.*</literal> instead of
105 <literal>services.virtualboxGuest.*</literal>.
106 </para>
107</listitem>
108
109<listitem>
110 <para>
111 Haskell packages can no longer be found by name, i.e. the commands
112 <literal>nix-env -qa cabal-install</literal> and <literal>nix-env -i
113 ghc</literal> will fail, even though we <emphasis>do</emphasis> ship
114 both <literal>cabal-install</literal> and <literal>ghc</literal>.
115 The reason for this inconvenience is the sheer size of the Haskell
116 package set: name-based lookups such as these would become much
117 slower than they are today if we'd add the entire Hackage database
118 into the top level attribute set. Instead, the list of Haskell
119 packages can be displayed by
120 </para>
121 <programlisting>
122nix-env -f "<nixpkgs>" -qaP -A haskellPackages
123</programlisting>
124 <para>
125 and packages can be installed with:
126 </para>
127 <programlisting>
128nix-env -f "<nixpkgs>" -iA haskellPackages.cabal-install
129</programlisting>
130</listitem>
131
132<listitem>
133 <para>
134 Previous versions of NixOS came with a feature called
135 <literal>ghc-wrapper</literal>, a small wrapper script that allows
136 GHC to transparently pick up on libraries installed in the user's
137 profile. This feature has been deprecated;
138 <literal>ghc-wrapper</literal> was removed from the distribution.
139 The proper way to register Haskell libraries with the compiler now
140 is the <literal>haskellPackages.ghcWithPackages</literal>
141 function.
142 <link xlink:href="https://nixos.org/wiki/Haskell">https://nixos.org/wiki/Haskell</link>
143 provides much information about this subject.
144 </para>
145</listitem>
146
147<listitem>
148 <para>
149 All Haskell builds that have been generated with version 1.x of
150 the <literal>cabal2nix</literal> utility are now invalid and need
151 to be re-generated with a current version of
152 <literal>cabal2nix</literal> to function. The most recent version
153 of this tool can be installed by running
154 <literal>nix-env -i cabal2nix</literal>.
155 </para>
156</listitem>
157
158<listitem>
159 <para>
160 The <literal>haskellPackages</literal> set in Nixpkgs used to have a
161 function attribute called <literal>extension</literal> that users
162 could override in their <literal>~/.nixpkgs/config.nix</literal>
163 files to configure additional attributes, etc. That function still
164 exists, but it's now called <literal>overrides</literal>.
165 </para>
166</listitem>
167
168<listitem>
169 <para>
170 The OpenBLAS library has been updated to version
171 <literal>0.2.14</literal>. Support for the
172 <literal>x86_64-darwin</literal> platform was added. Dynamic
173 architecture detection was enabled; OpenBLAS now selects
174 microarchitecture-optimized routines at runtime, so optimal
175 performance is achieved without the need to rebuild OpenBLAS
176 locally. OpenBLAS has replaced ATLAS in most packages which use an
177 optimized BLAS or LAPACK implementation.
178 </para>
179</listitem>
180
181<listitem>
182 <para>
183 The <literal>phpfpm</literal> is now using the default PHP version
184 (<literal>pkgs.php</literal>) instead of PHP 5.4 (<literal>pkgs.php54</literal>).
185 </para>
186</listitem>
187
188<listitem>
189 <para>
190 The <literal>locate</literal> service no longer indexes the Nix store
191 by default, preventing packages with potentially numerous versions from
192 cluttering the output. Indexing the store can be activated by setting
193 <literal>services.locate.includeStore = true</literal>.
194 </para>
195</listitem>
196
197<listitem>
198 <para>
199 The Nix expression search path (<envar>NIX_PATH</envar>) no longer
200 contains <filename>/etc/nixos/nixpkgs</filename> by default. You
201 can override <envar>NIX_PATH</envar> by setting
202 <option>nix.nixPath</option>.
203 </para>
204</listitem>
205
206</itemizedlist>
207</para>
208
209
210<para>The following new services were added since the last release:
211
212<itemizedlist>
213<listitem><para><literal>brltty</literal></para></listitem>
214<listitem><para><literal>marathon</literal></para></listitem>
215<listitem><para><literal>tvheadend</literal></para></listitem>
216</itemizedlist>
217</para>
218
219
220<para>Other notable improvements:
221
222<itemizedlist>
223 <listitem><para>The nixos and nixpkgs channels were unified,
224 so one <emphasis>can</emphasis> use <literal>nix-env -iA nixos.bash</literal>
225 instead of <literal>nix-env -iA nixos.pkgs.bash</literal>.
226 See <link xlink:href="https://github.com/NixOS/nixpkgs/commit/2cd7c1f198">the commit</link> for details.
227 </para></listitem>
228</itemizedlist>
229</para>
230
231</section>