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-14.04">
6 <title>Release 14.04 (“Baboon”, 2014/04/30)</title>
7
8 <para>
9 This is the second stable release branch of NixOS. In addition to numerous
10 new and upgraded packages and modules, this release has the following
11 highlights:
12 <itemizedlist>
13 <listitem>
14 <para>
15 Installation on UEFI systems is now supported. See
16 <xref linkend="sec-installation"/> for details.
17 </para>
18 </listitem>
19 <listitem>
20 <para>
21 Systemd has been updated to version 212, which has
22 <link xlink:href="http://cgit.freedesktop.org/systemd/systemd/plain/NEWS?id=v212">numerous
23 improvements</link>. NixOS now automatically starts systemd user instances
24 when you log in. You can define global user units through the
25 <option>systemd.unit.*</option> options.
26 </para>
27 </listitem>
28 <listitem>
29 <para>
30 NixOS is now based on Glibc 2.19 and GCC 4.8.
31 </para>
32 </listitem>
33 <listitem>
34 <para>
35 The default Linux kernel has been updated to 3.12.
36 </para>
37 </listitem>
38 <listitem>
39 <para>
40 KDE has been updated to 4.12.
41 </para>
42 </listitem>
43 <listitem>
44 <para>
45 GNOME 3.10 experimental support has been added.
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Nix has been updated to 1.7
51 (<link
52 xlink:href="http://nixos.org/nix/manual/#ssec-relnotes-1.7">details</link>).
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 NixOS now supports fully declarative management of users and groups. If
58 you set <option>users.mutableUsers</option> to <literal>false</literal>,
59 then the contents of <filename>/etc/passwd</filename> and
60 <filename>/etc/group</filename> will be
61 <link
62 xlink:href="https://www.usenix.org/legacy/event/lisa02/tech/full_papers/traugott/traugott_html/">congruent</link>
63 to your NixOS configuration. For instance, if you remove a user from
64 <option>users.extraUsers</option> and run
65 <command>nixos-rebuild</command>, the user account will cease to exist.
66 Also, imperative commands for managing users and groups, such as
67 <command>useradd</command>, are no longer available. If
68 <option>users.mutableUsers</option> is <literal>true</literal> (the
69 default), then behaviour is unchanged from NixOS 13.10.
70 </para>
71 </listitem>
72 <listitem>
73 <para>
74 NixOS now has basic container support, meaning you can easily run a NixOS
75 instance as a container in a NixOS host system. These containers are
76 suitable for testing and experimentation but not production use, since
77 they’re not fully isolated from the host. See
78 <xref linkend="ch-containers"/> for details.
79 </para>
80 </listitem>
81 <listitem>
82 <para>
83 Systemd units provided by packages can now be overridden from the NixOS
84 configuration. For instance, if a package <literal>foo</literal> provides
85 systemd units, you can say:
86<programlisting>
87systemd.packages = [ pkgs.foo ];
88</programlisting>
89 to enable those units. You can then set or override unit options in the
90 usual way, e.g.
91<programlisting>
92systemd.services.foo.wantedBy = [ "multi-user.target" ];
93systemd.services.foo.serviceConfig.MemoryLimit = "512M";
94</programlisting>
95 </para>
96 </listitem>
97 </itemizedlist>
98 </para>
99
100 <para>
101 When upgrading from a previous release, please be aware of the following
102 incompatible changes:
103 <itemizedlist>
104 <listitem>
105 <para>
106 Nixpkgs no longer exposes unfree packages by default. If your NixOS
107 configuration requires unfree packages from Nixpkgs, you need to enable
108 support for them explicitly by setting:
109<programlisting>
110nixpkgs.config.allowUnfree = true;
111</programlisting>
112 Otherwise, you get an error message such as:
113<screen>
114error: package ‘nvidia-x11-331.49-3.12.17’ in ‘…/nvidia-x11/default.nix:56’
115 has an unfree license, refusing to evaluate
116</screen>
117 </para>
118 </listitem>
119 <listitem>
120 <para>
121 The Adobe Flash player is no longer enabled by default in the Firefox and
122 Chromium wrappers. To enable it, you must set:
123<programlisting>
124nixpkgs.config.allowUnfree = true;
125nixpkgs.config.firefox.enableAdobeFlash = true; # for Firefox
126nixpkgs.config.chromium.enableAdobeFlash = true; # for Chromium
127</programlisting>
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 The firewall is now enabled by default. If you don’t want this, you need
133 to disable it explicitly:
134<programlisting>
135networking.firewall.enable = false;
136</programlisting>
137 </para>
138 </listitem>
139 <listitem>
140 <para>
141 The option <option>boot.loader.grub.memtest86</option> has been renamed to
142 <option>boot.loader.grub.memtest86.enable</option>.
143 </para>
144 </listitem>
145 <listitem>
146 <para>
147 The <literal>mysql55</literal> service has been merged into the
148 <literal>mysql</literal> service, which no longer sets a default for the
149 option <option>services.mysql.package</option>.
150 </para>
151 </listitem>
152 <listitem>
153 <para>
154 Package variants are now differentiated by suffixing the name, rather than
155 the version. For instance, <filename>sqlite-3.8.4.3-interactive</filename>
156 is now called <filename>sqlite-interactive-3.8.4.3</filename>. This
157 ensures that <literal>nix-env -i sqlite</literal> is unambiguous, and that
158 <literal>nix-env -u</literal> won’t “upgrade”
159 <literal>sqlite</literal> to <literal>sqlite-interactive</literal> or vice
160 versa. Notably, this change affects the Firefox wrapper (which provides
161 plugins), as it is now called <literal>firefox-wrapper</literal>. So when
162 using <command>nix-env</command>, you should do <literal>nix-env -e
163 firefox; nix-env -i firefox-wrapper</literal> if you want to keep using
164 the wrapper. This change does not affect declarative package management,
165 since attribute names like <literal>pkgs.firefoxWrapper</literal> were
166 already unambiguous.
167 </para>
168 </listitem>
169 <listitem>
170 <para>
171 The symlink <filename>/etc/ca-bundle.crt</filename> is gone. Programs
172 should instead use the environment variable
173 <envar>OPENSSL_X509_CERT_FILE</envar> (which points to
174 <filename>/etc/ssl/certs/ca-bundle.crt</filename>).
175 </para>
176 </listitem>
177 </itemizedlist>
178 </para>
179</section>