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>Unstable</title>
8
9<para>In addition to numerous new and upgraded packages, this release
10has the following highlights:</para>
11
12<itemizedlist>
13
14 <listitem>
15 <para>Firefox and similar browsers are now <emphasis>wrapped by default</emphasis>.
16 The package and attribute names are plain <literal>firefox</literal>
17 or <literal>midori</literal>, etc. Backward-compatibility attributes were set up,
18 but note that <command>nix-env -u</command> will <emphasis>not</emphasis> update
19 your current <literal>firefox-with-plugins</literal>;
20 you have to uninstall it and install <literal>firefox</literal> instead.
21 More discussion is <link xlink:href="https://github.com/NixOS/nixpkgs/pull/12299">
22 on the PR</link>. </para>
23 </listitem>
24
25</itemizedlist>
26
27<para>The following new services were added since the last release:
28
29 <itemizedlist>
30 <listitem><para><literal>services/monitoring/longview.nix</literal></para></listitem>
31 <listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
32 <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
33 <listitem><para><literal>services/security/haka.nix</literal></para></listitem>
34 <listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
35 </itemizedlist>
36</para>
37
38<para>When upgrading from a previous release, please be aware of the
39following incompatible changes:</para>
40
41<itemizedlist>
42 <listitem>
43 <para><command>wmiiSnap</command> has been replaced with
44 <command>wmii_hg</command>, but
45 <command>services.xserver.windowManager.wmii.enable</command> has
46 been updated respectively so this only affects you if you have
47 explicitly installed <command>wmiiSnap</command>.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>jobs</literal> NixOS option has been removed. It served as
53 compatibility layer between Upstart jobs and SystemD services. All services
54 have been rewritten to use <literal>systemd.services</literal></para>
55 </listitem>
56
57 <listitem>
58 <para><command>wmiimenu</command> is removed, as it has been
59 removed by the developers upstream. Use <command>wimenu</command>
60 from the <command>wmii-hg</command> package.</para>
61 </listitem>
62
63 <listitem>
64 <para>Gitit is no longer automatically added to the module list in
65 NixOS and as such there will not be any manual entries for it. You
66 will need to add an import statement to your NixOS configuration
67 in order to use it, e.g.
68
69<programlisting><![CDATA[
70{
71 imports = [ <nixos/modules/services/misc/gitit.nix> ];
72}
73]]></programlisting>
74
75 will include the Gitit service configuration options.</para>
76 </listitem>
77
78 <listitem>
79 <para><command>nginx</command> does not accept flags for enabling and
80 disabling modules anymore. Instead it accepts <literal>modules</literal>
81 argument, which is a list of modules to be built in. All modules now
82 reside in <literal>nginxModules</literal> set. Example configuration:
83
84<programlisting><![CDATA[
85nginx.override {
86 modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
87}
88]]></programlisting>
89 </para>
90 </listitem>
91
92 <listitem>
93 <para><command>s3sync</command> is removed, as it hasn't been
94 developed by upstream for 4 years and only runs with ruby 1.8.
95 For an actively-developer alternative look at
96 <command>tarsnap</command> and others.
97 </para>
98 </listitem>
99
100 <listitem>
101 <para><command>ruby_1_8</command> has been removed as it's not
102 supported from upstream anymore and probably contains security
103 issues.
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>tidy-html5</literal> package is removed.
109 Upstream only provided <literal>(lib)tidy5</literal> during development,
110 and now they went back to <literal>(lib)tidy</literal> to work as a drop-in
111 replacement of the original package that has been unmaintained for years.
112 You can (still) use the <literal>html-tidy</literal> package, which got updated
113 to a stable release from this new upstream.</para>
114 </listitem>
115
116 <listitem>
117 <para><literal>extraDeviceOptions</literal> argument is removed
118 from <literal>bumblebee</literal> package. Instead there are
119 now two separate arguments: <literal>extraNvidiaDeviceOptions</literal>
120 and <literal>extraNouveauDeviceOptions</literal> for setting
121 extra X11 options for nvidia and nouveau drivers, respectively.
122 </para>
123 </listitem>
124
125 <listitem>
126 <para>The <literal>Ctrl+Alt+Backspace</literal> key combination
127 no longer kills the X server by default.
128 There's a new option <option>services.xserver.enableCtrlAltBackspace</option>
129 allowing to enable the combination again.
130 </para>
131 </listitem>
132
133 <listitem>
134 <para><literal>emacsPackagesNg</literal> now contains all packages
135 from the ELPA, MELPA, and MELPA Stable repositories.
136 </para>
137 </listitem>
138
139 <listitem>
140 <para>Data directory for Postfix MTA server is moved from
141 <filename>/var/postfix</filename> to <filename>/var/lib/postfix</filename>.
142 Old configurations are migrated automatically. <literal>service.postfix</literal>
143 module has also received many improvements, such as correct directories' access
144 rights, new <literal>aliasFiles</literal> and <literal>mapFiles</literal>
145 options and more.</para>
146 </listitem>
147
148 <listitem>
149 <para>Filesystem options should now be configured as a list of strings, not
150 a comma-separated string. The old style will continue to work, but print a
151 warning, until the 16.09 release. An example of the new style:
152
153<programlisting>
154fileSystems."/example" = {
155 device = "/dev/sdc";
156 fsType = "btrfs";
157 options = [ "noatime" "compress=lzo" "space_cache" "autodefrag" ];
158};
159</programlisting>
160 </para>
161 </listitem>
162
163 <listitem>
164 <para>CUPS, installed by <literal>services.printing</literal> module, now
165 has its data directory in <filename>/var/lib/cups</filename>. Old
166 configurations from <filename>/etc/cups</filename> are moved there
167 automatically, but there might be problems. Also configuration options
168 <literal>services.printing.cupsdConf</literal> and
169 <literal>services.printing.cupsdFilesConf</literal> were removed
170 because they had been allowing one to override configuration variables
171 required for CUPS to work at all on NixOS. For most use cases,
172 <literal>services.printing.extraConf</literal> and new option
173 <literal>services.printing.extraFilesConf</literal> should be enough;
174 if you encounter a situation when they are not, please file a bug.</para>
175
176 <para>There are also Gutenprint improvements; in particular, a new option
177 <literal>services.printing.gutenprint</literal> is added to enable automatic
178 updating of Gutenprint PPMs; it's greatly recommended to enable it instead
179 of adding <literal>gutenprint</literal> to the <literal>drivers</literal> list.
180 </para>
181 </listitem>
182
183 <listitem>
184 <para><literal>services.xserver.vaapiDrivers</literal> has been removed. Use
185 <literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
186 also specify VDPAU drivers there.</para>
187 </listitem>
188
189 <listitem>
190 <para>
191 <literal>programs.ibus</literal> moved to <literal>i18n.inputMethod.ibus</literal>.
192 The option <literal>programs.ibus.plugins</literal> changed to <literal>i18n.inputMethod.ibus.engines</literal>
193 and the option to enable ibus changed from <literal>programs.ibus.enable</literal> to
194 <literal>i18n.inputMethod.enabled</literal>.
195 <literal>i18n.inputMethod.enabled</literal> should be set to the used input method name,
196 <literal>"ibus"</literal> for ibus.
197 An example of the new style:
198
199<programlisting>
200i18n.inputMethod.enabled = "ibus";
201i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
202</programlisting>
203
204That is equivalent to the old version:
205
206<programlisting>
207programs.ibus.enable = true;
208programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
209</programlisting>
210
211 </para>
212 </listitem>
213
214 <listitem>
215 <para><literal>services.udev.extraRules</literal> option now writes rules
216 to <filename>99-local.rules</filename> instead of <filename>10-local.rules</filename>.
217 This makes all the user rules apply after others, so their results wouldn't be
218 overriden by anything else.</para>
219 </listitem>
220
221 <listitem>
222 <para>Large parts of the <literal>services.gitlab</literal> module has been
223 been rewritten. There are new configuration options available. The
224 <literal>stateDir</literal> option was renamned to
225 <literal>statePath</literal> and the <literal>satellitesDir</literal> option
226 was removed. Please review the currently available options.</para>
227 </listitem>
228
229</itemizedlist>
230
231
232<para>Other notable improvements:
233<itemizedlist>
234 <listitem>
235 <para>The <command>command-not-found</command> hook was extended.
236 Apart from <literal>$NIX_AUTO_INSTALL</literal> variable,
237 it newly also checks for <literal>$NIX_AUTO_RUN</literal>
238 which causes it to directly run the missing commands via
239 <command>nix-shell</command> (without installing anything). </para>
240 </listitem>
241
242 <listitem>
243 <para><literal>ejabberd</literal> module is brought back and now works on
244 NixOS.</para>
245 </listitem>
246
247 <listitem>
248 <para>Input method support was improved. New NixOS modules (fcitx, nabi and uim),
249 fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n)
250 have been added.</para>
251 </listitem>
252
253</itemizedlist></para>
254
255</section>