Home Explore Blog Models CI



nixpkgs

1st chunk of `nixos/doc/manual/release-notes/rl-1609.section.md`
c673baa9d55fb74b0af5bc36197298fc7c6063db86c37c8b0000000100000d2d
# Release 16.09 ("Flounder", 2016/09/30) {#sec-release-16.09}

In addition to numerous new and upgraded packages, this release has the following highlights:

- Many NixOS configurations and Nix packages now use significantly less disk space, thanks to the [extensive work on closure size reduction](https://github.com/NixOS/nixpkgs/issues/7117). For example, the closure size of a minimal NixOS container went down from \~424 MiB in 16.03 to \~212 MiB in 16.09, while the closure size of Firefox went from \~651 MiB to \~259 MiB.

- To improve security, packages are now [built using various hardening features](https://github.com/NixOS/nixpkgs/pull/12895). See the Nixpkgs manual for more information.

- Support for PXE netboot. See [](#sec-booting-from-pxe) for documentation.

- X.org server 1.18. If you use the `ati_unfree` driver, 1.17 is still used due to an ABI incompatibility.

- This release is based on Glibc 2.24, GCC 5.4.0 and systemd 231. The default Linux kernel remains 4.4.

The following new services were added since the last release:

- `(this will get automatically generated at release time)`

When upgrading from a previous release, please be aware of the following incompatible changes:

- A large number of packages have been converted to use the multiple outputs feature of Nix to greatly reduce the amount of required disk space, as mentioned above. This may require changes to any custom packages to make them build again; see the relevant chapter in the Nixpkgs manual for more information. (Additional caveat to packagers: some packaging conventions related to multiple-output packages [were changed](https://github.com/NixOS/nixpkgs/pull/14766) late (August 2016) in the release cycle and differ from the initial introduction of multiple outputs.)

- Previous versions of Nixpkgs had support for all versions of the LTS Haskell package set. That support has been dropped. The previously provided `haskell.packages.lts-x_y` package sets still exist in name to avoid breaking user code, but these package sets don't actually contain the versions mandated by the corresponding LTS release. Instead, our package set it loosely based on the latest available LTS release, i.e. LTS 7.x at the time of this writing. New releases of NixOS and Nixpkgs will drop those old names entirely. [The motivation for this change](https://nixos.org/nix-dev/2016-June/020585.html) has been discussed at length on the `nix-dev` mailing list and in [Github issue \#14897](https://github.com/NixOS/nixpkgs/issues/14897). Development strategies for Haskell hackers who want to rely on Nix and NixOS have been described in [another nix-dev article](https://nixos.org/nix-dev/2016-June/020642.html).

- Shell aliases for systemd sub-commands [were dropped](https://github.com/NixOS/nixpkgs/pull/15598): `start`, `stop`, `restart`, `status`.

- Redis now binds to 127.0.0.1 only instead of listening to all network interfaces. This is the default behavior of Redis 3.2

- `/var/empty` is now immutable. Activation script runs `chattr +i` to forbid any modifications inside the folder. See [ the pull request](https://github.com/NixOS/nixpkgs/pull/18365) for what bugs this caused.

- Gitlab's maintenance script `gitlab-runner` was removed and split up into the more clearer `gitlab-run` and `gitlab-rake` scripts, because `gitlab-runner` is a component of Gitlab CI.

Title: NixOS Release 16.09 ("Flounder") Highlights and Incompatible Changes
Summary
NixOS Release 16.09, codenamed "Flounder" and released on September 30, 2016, introduces significant improvements, including drastic disk space reduction for packages and configurations (e.g., Firefox closure size cut by ~60%) through extensive closure size reduction and Nix's multiple outputs feature. The release also enhances security via hardening features and adds PXE netboot support. Core components are updated to X.org server 1.18, Glibc 2.24, GCC 5.4.0, and systemd 231, while retaining Linux kernel 4.4. Users upgrading should be aware of several incompatible changes: custom packages may need adjustments due to the multiple output conversion; specific LTS Haskell package set support has been revised; systemd shell aliases (`start`, `stop`, `restart`, `status`) have been removed; Redis now binds only to 127.0.0.1; `/var/empty` is now immutable; and Gitlab's `gitlab-runner` script was split into `gitlab-run` and `gitlab-rake`.