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-17.09">
6
7<title>Release 17.09 (“Hummingbird”, 2017/09/??)</title>
8
9<para>In addition to numerous new and upgraded packages, this release
10has the following highlights: </para>
11
12<itemizedlist>
13 <listitem>
14 <para>
15 The GNOME version is now 3.24.
16 </para>
17 </listitem>
18 <listitem>
19 <para>
20 The user handling now keeps track of deallocated UIDs/GIDs. When a user
21 or group is revived, this allows it to be allocated the UID/GID it had before.
22 A consequence is that UIDs and GIDs are no longer reused.
23 </para>
24 </listitem>
25 <listitem>
26 <para>
27 The module option <option>services.xserver.xrandrHeads</option> now
28 causes the first head specified in this list to be set as the primary
29 head. Apart from that, it's now possible to also set additional options
30 by using an attribute set, for example:
31<programlisting>
32{ services.xserver.xrandrHeads = [
33 "HDMI-0"
34 {
35 output = "DVI-0";
36 primary = true;
37 monitorConfig = ''
38 Option "Rotate" "right"
39 '';
40 }
41 ];
42}
43</programlisting>
44 This will set the <literal>DVI-0</literal> output to be the primary head,
45 even though <literal>HDMI-0</literal> is the first head in the list.
46 </para>
47 </listitem>
48</itemizedlist>
49
50<para>The following new services were added since the last release:</para>
51
52<itemizedlist>
53 <listitem>
54 <para></para>
55 </listitem>
56</itemizedlist>
57
58
59<para>When upgrading from a previous release, please be aware of the
60following incompatible changes:</para>
61
62<itemizedlist>
63 <listitem>
64 <para>
65 <literal>aiccu</literal> package was removed. This is due to SixXS
66 <link xlink:href="https://www.sixxs.net/main/"> sunsetting</link> its IPv6 tunnel.
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Top-level <literal>idea</literal> package collection was renamed.
72 All JetBrains IDEs are now at <literal>jetbrains</literal>.
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 <literal>flexget</literal>'s state database cannot be upgraded to its
78 new internal format, requiring removal of any existing
79 <literal>db-config.sqlite</literal> which will be automatically recreated.
80 </para>
81 </listitem>
82 <listitem>
83 <para>
84 The ipfs package now doesn't ignore the <literal>dataDir</literal> option anymore. If you've ever set this option to anything other than the default you'll have to either unset it (so the default gets used) or migrate the old data manually with
85<programlisting>
86dataDir=<valueOfDataDir>
87mv /var/lib/ipfs/.ipfs/* $dataDir
88rmdir /var/lib/ipfs/.ipfs
89</programlisting>
90 </para>
91 </listitem>
92 <listitem>
93 <para>
94 The following changes apply if the <literal>stateVersion</literal> is changed to 17.09 or higher.
95 For <literal>stateVersion = "17.03</literal> or lower the old behavior is preserved.
96 </para>
97 <para>
98 The <literal>postgres</literal> default version was changed from 9.5 to 9.6.
99 </para>
100 <para>
101 The <literal>postgres</literal> superuser name has changed from <literal>root</literal> to <literal>postgres</literal> to more closely follow what other Linux distributions are doing.
102 </para>
103 <para>
104 The <literal>postgres</literal> default <literal>dataDir</literal> has changed from <literal>/var/db/postgres</literal> to <literal>/var/lib/postgresql/$psqlSchema</literal> where $psqlSchema is 9.6 for example.
105 </para>
106 <para>
107 The <literal>mysql</literal> default <literal>dataDir</literal> has changed from <literal>/var/mysql</literal> to <literal>/var/lib/mysql</literal>.
108 </para>
109 <para>
110 Radicale's default package has changed from 1.x to 2.x. Instructions to migrate can be found <link xlink:href="http://radicale.org/1to2/"> here </link>. It is also possible to use the newer version by setting the <literal>package</literal> to <literal>radicale2</literal>, which is done automatically when <literal>stateVersion</literal> is 17.09 or higher.
111 </para>
112 </listitem>
113 <listitem>
114 <para>
115 The <literal>caddy</literal> service was previously using an extra
116 <literal>.caddy</literal> in the data directory specified with the
117 <literal>dataDir</literal> option. The contents of the
118 <literal>.caddy</literal> directory are now expected to be in the
119 <literal>dataDir</literal>.
120 </para>
121 </listitem>
122 <listitem>
123 <para>
124 The <literal>ssh-agent</literal> user service is not started by default
125 anymore. Use <literal>programs.ssh.startAgent</literal> to enable it if
126 needed. There is also a new <literal>programs.gnupg.agent</literal>
127 module that creates a <literal>gpg-agent</literal> user service. It can
128 also serve as a SSH agent if <literal>enableSSHSupport</literal> is set.
129 </para>
130 </listitem>
131 <listitem>
132 <para>
133 The <literal>services.tinc.networks.<name>.listenAddress</literal>
134 option had a misleading name that did not correspond to its behavior. It
135 now correctly defines the ip to listen for incoming connections on. To
136 keep the previous behaviour, use
137 <literal>services.tinc.networks.<name>.bindToAddress</literal>
138 instead. Refer to the description of the options for more details.
139 </para>
140 </listitem>
141 <listitem>
142 <para>
143 <literal>tlsdate</literal> package and module were removed. This is due to the project
144 being dead and not building with openssl 1.1.
145 </para>
146 </listitem>
147 <listitem>
148 <para>
149 <literal>wvdial</literal> package and module were removed. This is due to the project
150 being dead and not building with openssl 1.1.
151 </para>
152 </listitem>
153 <listitem>
154 <para>
155 <literal>cc-wrapper</literal>'s setup-hook now exports a number of
156 environment variables corresponding to binutils binaries,
157 (e.g. <envar>LD</envar>, <envar>STRIP</envar>, <envar>RANLIB</envar>,
158 etc). This is done to prevent packages' build systems guessing, which is
159 harder to predict, especially when cross-compiling. However, some packages
160 have broken due to this—their build systems either not supporting, or
161 claiming to support without adequate testing, taking such environment
162 variables as parameters.
163 </para>
164 </listitem>
165 <listitem>
166 <para>
167 <literal>services.firefox.syncserver</literal> now runs by default as a
168 non-root user. To accomodate this change, the default sqlite database
169 location has also been changed. Migration should work automatically.
170 Refer to the description of the options for more details.
171 </para>
172 </listitem>
173 <listitem>
174 <para>
175 The <literal>compiz</literal> window manager and package was
176 removed. The system support had been broken for several years.
177 </para>
178 </listitem>
179</itemizedlist>
180
181<para>Other notable improvements:</para>
182
183<itemizedlist>
184
185 <listitem>
186 <para>
187 Modules can now be disabled by using <link
188 xlink:href="https://nixos.org/nixpkgs/manual/#sec-replace-modules">
189 disabledModules</link>, allowing another to take it's place. This can be
190 used to import a set of modules from another channel while keeping the
191 rest of the system on a stable release.
192 </para>
193 </listitem>
194 <listitem>
195 <para>
196 Updated to FreeType 2.7.1, including a new TrueType engine.
197 The new engine replaces the Infinality engine which was the default in
198 NixOS. The default font rendering settings are now provided by
199 fontconfig-penultimate, replacing fontconfig-ultimate; the new defaults
200 are less invasive and provide rendering that is more consistent with
201 other systems and hopefully with each font designer's intent. Some
202 system-wide configuration has been removed from the Fontconfig NixOS
203 module where user Fontconfig settings are available.
204 </para>
205 </listitem>
206 <listitem>
207 <para>
208 ZFS/SPL have been updated to 0.7.0, <literal>zfsUnstable, splUnstable</literal>
209 have therefore been removed.
210 </para>
211 </listitem>
212 <listitem>
213 <para>
214 The <option>time.timeZone</option> option now allows the value
215 <literal>null</literal> in addition to timezone strings. This value
216 allows changing the timezone of a system imperatively using
217 <command>timedatectl set-timezone</command>. The default timezone
218 is still UTC.
219 </para>
220 </listitem>
221 <listitem>
222 <para>
223 Nixpkgs overlays may now be specified with a file as well as a directory. The
224 value of <literal><nixpkgs-overlays></literal> may be a file, and
225 <filename>~/.config/nixpkgs/overlays.nix</filename> can be used instead of the
226 <filename>~/.config/nixpkgs/overalys</filename> directory.
227 </para>
228 <para>
229 See the overlays chapter of the Nixpkgs manual for more details.
230 </para>
231 </listitem>
232
233</itemizedlist>
234
235</section>