at 18.03-beta 18 kB view raw
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-18.03"> 6 7<title>Release 18.03 (“Impala”, 2018/03/??)</title> 8 9<section xmlns="http://docbook.org/ns/docbook" 10 xmlns:xlink="http://www.w3.org/1999/xlink" 11 xmlns:xi="http://www.w3.org/2001/XInclude" 12 version="5.0" 13 xml:id="sec-release-18.03-highlights"> 14 15<title>Highlights</title> 16 17<para>In addition to numerous new and upgraded packages, this release 18has the following highlights: </para> 19 20<itemizedlist> 21 <listitem> 22 <para> 23 Nix now defaults to 2.0; see its 24 <link xlink:href="https://nixos.org/nix/manual/#ssec-relnotes-2.0">release notes</link>. 25 </para> 26 </listitem> 27 28 <listitem> 29 <para> 30 Linux kernel defaults to the 4.14 branch (it was 4.9). 31 </para> 32 </listitem> 33 34 <listitem> 35 <para> 36 GCC defaults to 7.x (it was 6.x). 37 </para> 38 </listitem> 39 40 <listitem> 41 <para> 42 MariaDB 10.2, updated from 10.1, is now the default MySQL implementation. While upgrading a few changes 43 have been made to the infrastructure involved: 44 <itemizedlist> 45 <listitem> 46 <para> 47 <literal>libmysql</literal> has been deprecated, please use <literal>mysql.connector-c</literal> 48 instead, a compatibility passthru has been added to the MySQL packages. 49 </para> 50 </listitem> 51 <listitem> 52 <para> 53 The <literal>mysql57</literal> package has a new <literal>static</literal> output containing 54 the static libraries including <literal>libmysqld.a</literal> 55 </para> 56 </listitem> 57 </itemizedlist> 58 </para> 59 </listitem> 60 61 <listitem> 62 <para> 63 The GNOME version is now 3.26. 64 </para> 65 </listitem> 66 67 <listitem> 68 <para>PHP now defaults to PHP 7.2</para> 69 </listitem> 70</itemizedlist> 71 72</section> 73<section xmlns="http://docbook.org/ns/docbook" 74 xmlns:xlink="http://www.w3.org/1999/xlink" 75 xmlns:xi="http://www.w3.org/2001/XInclude" 76 version="5.0" 77 xml:id="sec-release-18.03-new-services"> 78 79<title>New Services</title> 80 81<para>The following new services were added since the last release:</para> 82 83<itemizedlist> 84 <listitem> 85 <para></para> 86 </listitem> 87</itemizedlist> 88 89</section> 90<section xmlns="http://docbook.org/ns/docbook" 91 xmlns:xlink="http://www.w3.org/1999/xlink" 92 xmlns:xi="http://www.w3.org/2001/XInclude" 93 version="5.0" 94 xml:id="sec-release-18.03-incompatibilities"> 95 96<title>Backward Incompatibilities</title> 97 98<para>When upgrading from a previous release, please be aware of the 99following incompatible changes:</para> 100 101<itemizedlist> 102 <listitem> 103 <para> 104 <literal>sound.enable</literal> now defaults to false. 105 </para> 106 </listitem> 107 <listitem> 108 <para> 109 Dollar signs in options under <option>services.postfix</option> are 110 passed verbatim to Postfix, which will interpret them as the beginning of 111 a parameter expression. This was already true for string-valued options 112 in the previous release, but not for list-valued options. If you need to 113 pass literal dollar signs through Postfix, double them. 114 </para> 115 </listitem> 116 <listitem> 117 <para> 118 The <literal>postage</literal> package (for web-based PostgreSQL 119 administration) has been renamed to <literal>pgmanage</literal>. The 120 corresponding module has also been renamed. To migrate please rename all 121 <option>services.postage</option> options to 122 <option>services.pgmanage</option>. 123 </para> 124 </listitem> 125 <listitem> 126 <para> 127 Package attributes starting with a digit have been prefixed with an 128 underscore sign. This is to avoid quoting in the configuration and 129 other issues with command-line tools like <literal>nix-env</literal>. 130 The change affects the following packages: 131 <itemizedlist> 132 <listitem> 133 <para><literal>2048-in-terminal</literal><literal>_2048-in-terminal</literal></para> 134 </listitem> 135 <listitem> 136 <para><literal>90secondportraits</literal><literal>_90secondportraits</literal></para> 137 </listitem> 138 <listitem> 139 <para><literal>2bwm</literal><literal>_2bwm</literal></para> 140 </listitem> 141 <listitem> 142 <para><literal>389-ds-base</literal><literal>_389-ds-base</literal></para> 143 </listitem> 144 </itemizedlist> 145 </para> 146 </listitem> 147 <listitem> 148 <para> 149 <emphasis role="strong"> 150 The OpenSSH service no longer enables support for DSA keys by default, 151 which could cause a system lock out. Update your keys or, unfavorably, 152 re-enable DSA support manually. 153 </emphasis> 154 </para> 155 156 <para> 157 DSA support was 158 <link xlink:href="https://www.openssh.com/legacy.html">deprecated in OpenSSH 7.0</link>, 159 due to it being too weak. To re-enable support, add 160 <literal>PubkeyAcceptedKeyTypes +ssh-dss</literal> to the end of your 161 <option>services.openssh.extraConfig</option>. 162 </para> 163 164 <para> 165 After updating the keys to be stronger, anyone still on a pre-17.03 166 version is safe to jump to 17.03, as vetted 167 <link xlink:href="https://search.nix.gsc.io/?q=stateVersion">here</link>. 168 </para> 169 </listitem> 170 <listitem> 171 <para> 172 The <literal>openssh</literal> package 173 now includes Kerberos support by default; 174 the <literal>openssh_with_kerberos</literal> package 175 is now a deprecated alias. 176 If you do not want Kerberos support, 177 you can do <literal>openssh.override { withKerboros = false; }</literal>. 178 Note, this also applies to the <literal>openssh_hpn</literal> package. 179 </para> 180 </listitem> 181 <listitem> 182 <para> 183 <literal>cc-wrapper</literal> has been split in two; there is now also a <literal>bintools-wrapper</literal>. 184 The most commonly used files in <filename>nix-support</filename> are now split between the two wrappers. 185 Some commonly used ones, like <filename>nix-support/dynamic-linker</filename>, are duplicated for backwards compatability, even though they rightly belong only in <literal>bintools-wrapper</literal>. 186 Other more obscure ones are just moved. 187 </para> 188 </listitem> 189 <listitem> 190 <para> 191 The propagation logic has been changed. 192 The new logic, along with new types of dependencies that go with, is thoroughly documented in the "Specifying dependencies" section of the "Standard Environment" chapter of the nixpkgs manual. 193 <!-- That's <xref linkend="ssec-stdenv-attributes"> were we to merge the manuals. --> 194 The old logic isn't but is easy to describe: dependencies were propagated as the same type of dependency no matter what. 195 In practice, that means that many <function>propagatedNativeBuildInputs</function> should instead be <function>propagatedBuildInputs</function>. 196 Thankfully, that was and is the least used type of dependency. 197 Also, it means that some <function>propagatedBuildInputs</function> should instead be <function>depsTargetTargetPropagated</function>. 198 Other types dependencies should be unaffected. 199 </para> 200 </listitem> 201 <listitem> 202 <para> 203 <literal>lib.addPassthru drv passthru</literal> is removed. Use <literal>lib.extendDerivation true passthru drv</literal> instead. 204 </para> 205 </listitem> 206 <listitem> 207 <para> 208 The <literal>memcached</literal> service no longer accept dynamic socket 209 paths via <option>services.memcached.socket</option>. Unix sockets can be 210 still enabled by <option>services.memcached.enableUnixSocket</option> and 211 will be accessible at <literal>/run/memcached/memcached.sock</literal>. 212 </para> 213 </listitem> 214 <listitem> 215 <para> 216 The <varname>hardware.amdHybridGraphics.disable</varname> option was removed for lack of a maintainer. If you still need this module, you may wish to include a copy of it from an older version of nixos in your imports. 217 </para> 218 </listitem> 219 <listitem> 220 <para> 221 The merging of config options for <varname>services.postfix.config</varname> 222 was buggy. Previously, if other options in the Postfix module like 223 <varname>services.postfix.useSrs</varname> were set and the user set config 224 options that were also set by such options, the resulting config wouldn't 225 include all options that were needed. They are now merged correctly. If 226 config options need to be overridden, <literal>lib.mkForce</literal> or 227 <literal>lib.mkOverride</literal> can be used. 228 </para> 229 </listitem> 230 <listitem> 231 <para> 232 The following changes apply if the <literal>stateVersion</literal> is changed to 18.03 or higher. 233 For <literal>stateVersion = "17.09"</literal> or lower the old behavior is preserved. 234 </para> 235 <itemizedlist> 236 <listitem> 237 <para> 238 <literal>matrix-synapse</literal> uses postgresql by default instead of sqlite. 239 Migration instructions can be found <link xlink:href="https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst#porting-from-sqlite"> here </link>. 240 </para> 241 </listitem> 242 </itemizedlist> 243 </listitem> 244 <listitem> 245 <para> 246 The <literal>jid</literal> package has been removed, due to maintenance 247 overhead of a go package having non-versioned dependencies. 248 </para> 249 </listitem> 250 <listitem> 251 <para> 252 When using <option>services.xserver.libinput</option> (enabled by default in GNOME), 253 it now handles all input devices, not just touchpads. As a result, you might need to 254 re-evaluate any custom Xorg configuration. In particular, 255 <literal>Option "XkbRules" "base"</literal> may result in broken keyboard layout. 256 </para> 257 </listitem> 258 <listitem> 259 <para> 260 The <literal>attic</literal> package was removed. A maintained fork called 261 <link xlink:href="https://www.borgbackup.org/">Borg</link> should be used instead. 262 Migration instructions can be found 263 <link xlink:href="http://borgbackup.readthedocs.io/en/stable/usage/upgrade.html#attic-and-borg-0-xx-to-borg-1-x">here</link>. 264 </para> 265 </listitem> 266 <listitem> 267 <para> 268 The Piwik analytics software was renamed to Matomo: 269 <itemizedlist> 270 <listitem> 271 <para>The package <literal>pkgs.piwik</literal> was renamed to <literal>pkgs.matomo</literal>.</para> 272 </listitem> 273 <listitem> 274 <para>The service <literal>services.piwik</literal> was renamed to <literal>services.matomo</literal>.</para> 275 </listitem> 276 <listitem> 277 <para> 278 The data directory <filename>/var/lib/piwik</filename> was renamed to <filename>/var/lib/matomo</filename>. 279 All files will be moved automatically on first startup, but you might need to adjust your backup scripts. 280 </para> 281 </listitem> 282 <listitem> 283 <para> 284 The default <option>serverName</option> for the nginx configuration changed from 285 <literal>piwik.${config.networking.hostName}</literal> to 286 <literal>matomo.${config.networking.hostName}.${config.networking.domain}</literal> 287 if <option>config.networking.domain</option> is set, 288 <literal>matomo.${config.networking.hostName}</literal> if it is not set. 289 If you change your <option>serverName</option>, remember you'll need to update the 290 <literal>trustedHosts[]</literal> array in <filename>/var/lib/matomo/config/config.ini.php</filename> 291 as well. 292 </para> 293 </listitem> 294 <listitem> 295 <para> 296 The <literal>piwik</literal> user was renamed to <literal>matomo</literal>. 297 The service will adjust ownership automatically for files in the data directory. 298 If you use unix socket authentication, remember to give the new <literal>matomo</literal> user 299 access to the database and to change the <literal>username</literal> to <literal>matomo</literal> 300 in the <literal>[database]</literal> section of <filename>/var/lib/matomo/config/config.ini.php</filename>. 301 </para> 302 </listitem> 303 <listitem> 304 <para> 305 If you named your database `piwik`, you might want to rename it to `matomo` to keep things clean, 306 but this is neither enforced nor required. 307 </para> 308 </listitem> 309 </itemizedlist> 310 </para> 311 </listitem> 312 <listitem> 313 <para> 314 <literal>nodejs-4_x</literal> is end-of-life. 315 <literal>nodejs-4_x</literal>, <literal>nodejs-slim-4_x</literal> and <literal>nodePackages_4_x</literal> are removed. 316 </para> 317 </listitem> 318 <listitem> 319 <para> 320 The <literal>pump.io</literal> NixOS module was removed. 321 It is now maintained as an 322 <link xlink:href="https://github.com/rvl/pump.io-nixos">external module</link>. 323 </para> 324 </listitem> 325</itemizedlist> 326 327</section> 328<section xmlns="http://docbook.org/ns/docbook" 329 xmlns:xlink="http://www.w3.org/1999/xlink" 330 xmlns:xi="http://www.w3.org/2001/XInclude" 331 version="5.0" 332 xml:id="sec-release-18.03-notable-changes"> 333 334<title>Other Notable Changes</title> 335 336<itemizedlist> 337 <listitem> 338 <para> 339 ZNC option <option>services.znc.mutable</option> now defaults to 340 <literal>true</literal>. That means that old configuration is not 341 overwritten by default when update to the znc options are made. 342 </para> 343 </listitem> 344 <listitem> 345 <para> 346 The option <option>networking.wireless.networks.&lt;name&gt;.auth</option> 347 has been added for wireless networks with WPA-Enterprise authentication. 348 There is also a new <option>extraConfig</option> option to directly 349 configure <literal>wpa_supplicant</literal> and <option>hidden</option> 350 to connect to hidden networks. 351 </para> 352 </listitem> 353 <listitem> 354 <para> 355 In the module <option>networking.interfaces.&lt;name&gt;</option> the 356 following options have been removed: 357 <itemizedlist> 358 <listitem> 359 <para><option>ipAddress</option></para> 360 </listitem> 361 <listitem> 362 <para><option>ipv6Address</option></para> 363 </listitem> 364 <listitem> 365 <para><option>prefixLength</option></para> 366 </listitem> 367 <listitem> 368 <para><option>ipv6PrefixLength</option></para> 369 </listitem> 370 <listitem> 371 <para><option>subnetMask</option></para> 372 </listitem> 373 </itemizedlist> 374 To assign static addresses to an interface the options 375 <option>ipv4.addresses</option> and <option>ipv6.addresses</option> 376 should be used instead. 377 The options <option>ip4</option> and <option>ip6</option> have been 378 renamed to <option>ipv4.addresses</option> <option>ipv6.addresses</option> 379 respectively. 380 The new options <option>ipv4.routes</option> and <option>ipv6.routes</option> 381 have been added to set up static routing. 382 </para> 383 </listitem> 384 <listitem> 385 <para> 386 The option <option>services.xserver.desktopManager.default</option> is now 387 <literal>none</literal> by default. An assertion failure is thrown if WM's 388 and DM's default are <literal>none</literal>. 389 To explicitly run a plain X session without and DM or WM, the newly 390 introduced option <option>services.xserver.plainX</option> must be set to true. 391 </para> 392 </listitem> 393 <listitem> 394 <para> 395 The option <option>services.logstash.listenAddress</option> is now <literal>127.0.0.1</literal> by default. 396 Previously the default behaviour was to listen on all interfaces. 397 </para> 398 </listitem> 399 <listitem> 400 <para> 401 <literal>services.btrfs.autoScrub</literal> has been added, to 402 periodically check btrfs filesystems for data corruption. 403 If there's a correct copy available, it will automatically repair 404 corrupted blocks. 405 </para> 406 </listitem> 407 <listitem> 408 <para> 409 <literal>displayManager.lightdm.greeters.gtk.clock-format.</literal> 410 has been added, the clock format string (as expected by 411 strftime, e.g. <literal>%H:%M</literal>) to use with the lightdm 412 gtk greeter panel. 413 </para> 414 <para> 415 If set to null the default clock format is used. 416 </para> 417 </listitem> 418 <listitem> 419 <para> 420 <literal>displayManager.lightdm.greeters.gtk.indicators</literal> 421 has been added, a list of allowed indicator modules to use with 422 the lightdm gtk greeter panel. 423 </para> 424 <para> 425 Built-in indicators include <literal>~a11y</literal>, 426 <literal>~language</literal>, <literal>~session</literal>, 427 <literal>~power</literal>, <literal>~clock</literal>, 428 <literal>~host</literal>, <literal>~spacer</literal>. Unity 429 indicators can be represented by short name 430 (e.g. <literal>sound</literal>, <literal>power</literal>), 431 service file name, or absolute path. 432 </para> 433 <para> 434 If set to <literal>null</literal> the default indicators are 435 used. 436 </para> 437 <para> 438 In order to have the previous default configuration add 439<programlisting> 440 services.xserver.displayManager.lightdm.greeters.gtk.indicators = [ 441 "~host" "~spacer" 442 "~clock" "~spacer" 443 "~session" 444 "~language" 445 "~a11y" 446 "~power" 447 ]; 448</programlisting> 449 to your <literal>configuration.nix</literal>. 450 </para> 451 </listitem> 452 <listitem> 453 <para> 454 The NixOS test driver supports user services declared by <literal>systemd.user.services</literal>. 455 The methods <literal>waitForUnit</literal>, <literal>getUnitInfo</literal>, <literal>startJob</literal> 456 and <literal>stopJob</literal> provide an optional <literal>$user</literal> argument for that purpose. 457 </para> 458 </listitem> 459 <listitem> 460 <para> 461 Enabling bash completion on NixOS, <literal>programs.bash.enableCompletion</literal>, will now also enable 462 completion for the Nix command line tools by installing the 463 <link xlink:href="https://github.com/hedning/nix-bash-completions">nix-bash-completions</link> package. 464 </para> 465 </listitem> 466</itemizedlist> 467 468</section> 469</section>