1# Release 16.03 ("Emu", 2016/03/31) {#sec-release-16.03} 2 3In addition to numerous new and upgraded packages, this release has the following highlights: 4 5- Systemd 229, bringing [numerous improvements](https://github.com/systemd/systemd/blob/v229/NEWS) over 217. 6 7- Linux 4.4 (was 3.18). 8 9- GCC 5.3 (was 4.9). Note that GCC 5 [changes the C++ ABI in an incompatible way](https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html); this may cause problems if you try to link objects compiled with different versions of GCC. 10 11- Glibc 2.23 (was 2.21). 12 13- Binutils 2.26 (was 2.23.1). See \#909 14 15- Improved support for ensuring [bitwise reproducible builds](https://reproducible-builds.org/). For example, `stdenv` now sets the environment variable `SOURCE_DATE_EPOCH` to a deterministic value, and Nix has [gained an option](https://nixos.org/nix/manual/#ssec-relnotes-1.11) to repeat a build a number of times to test determinism. An ongoing project, the goal of exact reproducibility is to allow binaries to be verified independently (e.g., a user might only trust binaries that appear in three independent binary caches). 16 17- Perl 5.22. 18 19The following new services were added since the last release: 20 21- `services/monitoring/longview.nix` 22 23- `hardware/video/webcam/facetimehd.nix` 24 25- `i18n/input-method/default.nix` 26 27- `i18n/input-method/fcitx.nix` 28 29- `i18n/input-method/ibus.nix` 30 31- `i18n/input-method/nabi.nix` 32 33- `i18n/input-method/uim.nix` 34 35- `programs/fish.nix` 36 37- `security/acme.nix` 38 39- `security/audit.nix` 40 41- `security/oath.nix` 42 43- `services/hardware/irqbalance.nix` 44 45- `services/mail/dspam.nix` 46 47- `services/mail/opendkim.nix` 48 49- `services/mail/postsrsd.nix` 50 51- `services/mail/rspamd.nix` 52 53- `services/mail/rmilter.nix` 54 55- `services/misc/autofs.nix` 56 57- `services/misc/bepasty.nix` 58 59- `services/misc/calibre-server.nix` 60 61- `services/misc/cfdyndns.nix` 62 63- `services/misc/gammu-smsd.nix` 64 65- `services/misc/mathics.nix` 66 67- `services/misc/matrix-synapse.nix` 68 69- `services/misc/octoprint.nix` 70 71- `services/monitoring/hdaps.nix` 72 73- `services/monitoring/heapster.nix` 74 75- `services/monitoring/longview.nix` 76 77- `services/network-filesystems/netatalk.nix` 78 79- `services/network-filesystems/xtreemfs.nix` 80 81- `services/networking/autossh.nix` 82 83- `services/networking/dnschain.nix` 84 85- `services/networking/gale.nix` 86 87- `services/networking/miniupnpd.nix` 88 89- `services/networking/namecoind.nix` 90 91- `services/networking/ostinato.nix` 92 93- `services/networking/pdnsd.nix` 94 95- `services/networking/shairport-sync.nix` 96 97- `services/networking/supplicant.nix` 98 99- `services/search/kibana.nix` 100 101- `services/security/haka.nix` 102 103- `services/security/physlock.nix` 104 105- `services/web-apps/pump.io.nix` 106 107- `services/x11/hardware/libinput.nix` 108 109- `services/x11/window-managers/windowlab.nix` 110 111- `system/boot/initrd-network.nix` 112 113- `system/boot/initrd-ssh.nix` 114 115- `system/boot/loader/loader.nix` 116 117- `system/boot/networkd.nix` 118 119- `system/boot/resolved.nix` 120 121- `virtualisation/lxd.nix` 122 123- `virtualisation/rkt.nix` 124 125When upgrading from a previous release, please be aware of the following incompatible changes: 126 127- We no longer produce graphical ISO images and VirtualBox images for `i686-linux`. A minimal ISO image is still provided. 128 129- Firefox and similar browsers are now _wrapped by default_. The package and attribute names are plain `firefox` or `midori`, etc. Backward-compatibility attributes were set up, but note that `nix-env -u` will _not_ update your current `firefox-with-plugins`; you have to uninstall it and install `firefox` instead. 130 131- `wmiiSnap` has been replaced with `wmii_hg`, but `services.xserver.windowManager.wmii.enable` has been updated respectively so this only affects you if you have explicitly installed `wmiiSnap`. 132 133- `jobs` NixOS option has been removed. It served as compatibility layer between Upstart jobs and SystemD services. All services have been rewritten to use `systemd.services` 134 135- `wmiimenu` is removed, as it has been removed by the developers upstream. Use `wimenu` from the `wmii-hg` package. 136 137- Gitit is no longer automatically added to the module list in NixOS and as such there will not be any manual entries for it. You will need to add an import statement to your NixOS configuration in order to use it, e.g. 138 139 ```nix 140 { 141 imports = [ <nixpkgs/nixos/modules/services/misc/gitit.nix> ]; 142 } 143 ``` 144 145 will include the Gitit service configuration options. 146 147- `nginx` does not accept flags for enabling and disabling modules anymore. Instead it accepts `modules` argument, which is a list of modules to be built in. All modules now reside in `nginxModules` set. Example configuration: 148 149 ```nix 150 nginx.override { 151 modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ]; 152 } 153 ``` 154 155- `s3sync` is removed, as it hasn\'t been developed by upstream for 4 years and only runs with ruby 1.8. For an actively-developer alternative look at `tarsnap` and others. 156 157- `ruby_1_8` has been removed as it\'s not supported from upstream anymore and probably contains security issues. 158 159- `tidy-html5` package is removed. Upstream only provided `(lib)tidy5` during development, and now they went back to `(lib)tidy` to work as a drop-in replacement of the original package that has been unmaintained for years. You can (still) use the `html-tidy` package, which got updated to a stable release from this new upstream. 160 161- `extraDeviceOptions` argument is removed from `bumblebee` package. Instead there are now two separate arguments: `extraNvidiaDeviceOptions` and `extraNouveauDeviceOptions` for setting extra X11 options for nvidia and nouveau drivers, respectively. 162 163- The `Ctrl+Alt+Backspace` key combination no longer kills the X server by default. There\'s a new option `services.xserver.enableCtrlAltBackspace` allowing to enable the combination again. 164 165- `emacsPackagesNg` now contains all packages from the ELPA, MELPA, and MELPA Stable repositories. 166 167- Data directory for Postfix MTA server is moved from `/var/postfix` to `/var/lib/postfix`. Old configurations are migrated automatically. `service.postfix` module has also received many improvements, such as correct directories\' access rights, new `aliasFiles` and `mapFiles` options and more. 168 169- Filesystem options should now be configured as a list of strings, not a comma-separated string. The old style will continue to work, but print a warning, until the 16.09 release. An example of the new style: 170 171 ```nix 172 { 173 fileSystems."/example" = { 174 device = "/dev/sdc"; 175 fsType = "btrfs"; 176 options = [ "noatime" "compress=lzo" "space_cache" "autodefrag" ]; 177 }; 178 } 179 ``` 180 181- CUPS, installed by `services.printing` module, now has its data directory in `/var/lib/cups`. Old configurations from `/etc/cups` are moved there automatically, but there might be problems. Also configuration options `services.printing.cupsdConf` and `services.printing.cupsdFilesConf` were removed because they had been allowing one to override configuration variables required for CUPS to work at all on NixOS. For most use cases, `services.printing.extraConf` and new option `services.printing.extraFilesConf` should be enough; if you encounter a situation when they are not, please file a bug. 182 183 There are also Gutenprint improvements; in particular, a new option `services.printing.gutenprint` is added to enable automatic updating of Gutenprint PPMs; it\'s greatly recommended to enable it instead of adding `gutenprint` to the `drivers` list. 184 185- `services.xserver.vaapiDrivers` has been removed. Use `hardware.opengl.extraPackages{,32}` instead. You can also specify VDPAU drivers there. 186 187- `programs.ibus` moved to `i18n.inputMethod.ibus`. The option `programs.ibus.plugins` changed to `i18n.inputMethod.ibus.engines` and the option to enable ibus changed from `programs.ibus.enable` to `i18n.inputMethod.enabled`. `i18n.inputMethod.enabled` should be set to the used input method name, `"ibus"` for ibus. An example of the new style: 188 189 ```nix 190 { 191 i18n.inputMethod.enabled = "ibus"; 192 i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ]; 193 } 194 ``` 195 196 That is equivalent to the old version: 197 198 ```nix 199 { 200 programs.ibus.enable = true; 201 programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ]; 202 } 203 ``` 204 205- `services.udev.extraRules` option now writes rules to `99-local.rules` instead of `10-local.rules`. This makes all the user rules apply after others, so their results wouldn\'t be overriden by anything else. 206 207- Large parts of the `services.gitlab` module has been been rewritten. There are new configuration options available. The `stateDir` option was renamned to `statePath` and the `satellitesDir` option was removed. Please review the currently available options. 208 209- The option `services.nsd.zones.<name>.data` no longer interpret the dollar sign (\$) as a shell variable, as such it should not be escaped anymore. Thus the following zone data: 210 211 ```dns-zone 212 $ORIGIN example.com. 213 $TTL 1800 214 @ IN SOA ns1.vpn.nbp.name. admin.example.com. ( 215 216 ``` 217 218 Should modified to look like the actual file expected by nsd: 219 220 ```dns-zone 221 $ORIGIN example.com. 222 $TTL 1800 223 @ IN SOA ns1.vpn.nbp.name. admin.example.com. ( 224 225 ``` 226 227- `service.syncthing.dataDir` options now has to point to exact folder where syncthing is writing to. Example configuration should look something like: 228 229 ```nix 230 { 231 services.syncthing = { 232 enable = true; 233 dataDir = "/home/somebody/.syncthing"; 234 user = "somebody"; 235 }; 236 } 237 ``` 238 239- `networking.firewall.allowPing` is now enabled by default. Users are encouraged to configure an appropriate rate limit for their machines using the Kernel interface at `/proc/sys/net/ipv4/icmp_ratelimit` and `/proc/sys/net/ipv6/icmp/ratelimit` or using the firewall itself, i.e. by setting the NixOS option `networking.firewall.pingLimit`. 240 241- Systems with some broadcom cards used to result into a generated config that is no longer accepted. If you get errors like 242 243 ```ShellSession 244 error: path ‘/nix/store/*-broadcom-sta-*’ does not exist and cannot be created 245 ``` 246 247 you should either re-run `nixos-generate-config` or manually replace `"${config.boot.kernelPackages.broadcom_sta}"` by `config.boot.kernelPackages.broadcom_sta` in your `/etc/nixos/hardware-configuration.nix`. More discussion is on [ the github issue](https://github.com/NixOS/nixpkgs/pull/12595). 248 249- The `services.xserver.startGnuPGAgent` option has been removed. GnuPG 2.1.x changed the way the gpg-agent works, and that new approach no longer requires (or even supports) the \"start everything as a child of the agent\" scheme we\'ve implemented in NixOS for older versions. To configure the gpg-agent for your X session, add the following code to `~/.bashrc` or some file that's sourced when your shell is started: 250 251 ```shell 252 GPG_TTY=$(tty) 253 export GPG_TTY 254 ``` 255 256 If you want to use gpg-agent for SSH, too, add the following to your session initialization (e.g. `displayManager.sessionCommands`) 257 258 ```shell 259 gpg-connect-agent /bye 260 unset SSH_AGENT_PID 261 export SSH_AUTH_SOCK="''${HOME}/.gnupg/S.gpg-agent.ssh" 262 ``` 263 264 and make sure that 265 266 ```conf 267 enable-ssh-support 268 ``` 269 270 is included in your `~/.gnupg/gpg-agent.conf`. You will need to use `ssh-add` to re-add your ssh keys. If gpg's automatic transformation of the private keys to the new format fails, you will need to re-import your private keyring as well: 271 272 ```ShellSession 273 gpg --import ~/.gnupg/secring.gpg 274 ``` 275 276 The `gpg-agent(1)` man page has more details about this subject, i.e. in the \"EXAMPLES\" section. 277 278Other notable improvements: 279 280- `ejabberd` module is brought back and now works on NixOS. 281 282- Input method support was improved. New NixOS modules (fcitx, nabi and uim), fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n) have been added.