Home Explore Blog CI



nixpkgs

1st chunk of `nixos/doc/manual/release-notes/rl-1609.section.md`
845c5ea50e094aa4c0396116e27314b6fab2d698766c54d80000000100000d2d
# 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 16.09 "Flounder" Release Highlights and Incompatible Changes
Summary
The NixOS 16.09 release, codenamed "Flounder", brings significant disk space reduction through closure size optimization and enhances security with hardened package builds. It also introduces PXE netboot support and updates to X.org server 1.18. The release is based on Glibc 2.24, GCC 5.4.0, and systemd 231, with Linux kernel 4.4 as the default. Incompatible changes include the adoption of multiple outputs in Nix packages, removal of support for all LTS Haskell package sets, dropping shell aliases for systemd sub-commands, Redis binding to 127.0.0.1 only, making /var/empty immutable, and renaming Gitlab's maintenance script.