# Release 20.03 (“Markhor”, 2020.03/??)

## Highlights

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

- Support is planned until the end of October 2020, handing over to 20.09.

- Postgresql for NixOS service now defaults to v11.

- The graphical installer image starts the graphical session automatically. Before you'd be greeted by a tty and asked to enter `systemctl start display-manager`. It is now possible to disable the display-manager from running by selecting the `Disable display-manager` quirk in the boot menu.

- By default zfs pools will now be trimmed on a weekly basis. Trimming is only done on supported devices (i.e. NVME or SSDs) and should improve throughput and lifetime of these devices. It is controlled by the `services.zfs.trim.enable` varname. The zfs scrub service (`services.zfs.autoScrub.enable`) and the zfs autosnapshot service (`services.zfs.autoSnapshot.enable`) are now only enabled if zfs is set in `config.boot.initrd.supportedFilesystems` or `config.boot.supportedFilesystems`. These lists will automatically contain zfs as soon as any zfs mountpoint is configured in `fileSystems`.

- `nixos-option` has been rewritten in C++, speeding it up, improving correctness, and adding a `--all` option which prints all options and their values.

## New Services

The following new services were added since the last release:

- The kubernetes kube-proxy now supports a new hostname configuration `services.kubernetes.proxy.hostname` which has to be set if the hostname of the node should be non default.

## Backward Incompatibilities

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

- GnuPG is now built without support for a graphical passphrase entry by default. Please enable the `gpg-agent` user service via the NixOS option `programs.gnupg.agent.enable`. Note that upstream recommends using `gpg-agent` and will spawn a `gpg-agent` on the first invocation of GnuPG anyway.

- The `dynamicHosts` option has been removed from the networkd module. Allowing (multiple) regular users to override host entries affecting the whole system opens up a huge attack vector. There seem to be very rare cases where this might be useful. Consider setting system-wide host entries using networking.hosts, provide them via the DNS server in your network, or use environment.etc to add a file into `/etc/NetworkManager/dnsmasq.d` reconfiguring `hostsdir`.

- The `99-main.network` file was removed. Maching all network interfaces caused many breakages, see #18962 and #71106.

  We already don't support the global networking.useDHCP, networking.defaultGateway and networking.defaultGateway6 options if networking.useNetworkd is enabled, but direct users to configure the per-device networking.interfaces.<name>.… options.

- The SLIM Display Manager has been removed, as it has been unmaintained since 2013. Consider migrating to a different display manager such as LightDM (current default in NixOS), SDDM, GDM, or using the startx module which uses Xinitrc.

## Other Notable Changes

- SD images are now compressed by default using `bzip2`.

- OpenSSH has been upgraded from 7.9 to 8.1, improving security and adding features but with potential incompatibilities. Consult the release announcement for more information.