at 23.05-pre 117 kB view raw
1<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-release-22.05"> 2 <title>Release 22.05 (“Quokka”, 2022.05/30)</title> 3 <itemizedlist spacing="compact"> 4 <listitem> 5 <para> 6 Support is planned until the end of December 2022, handing over 7 to 22.11. 8 </para> 9 </listitem> 10 </itemizedlist> 11 <section xml:id="sec-release-22.05-highlights"> 12 <title>Highlights</title> 13 <para> 14 In addition to numerous new and upgraded packages, this release 15 has the following highlights: 16 </para> 17 <itemizedlist> 18 <listitem> 19<literallayout>Nix has been updated from 2.3 to 2.8. This mainly brings experimental support for Flakes, but also marks the <literal>nix</literal> command as experimental which now has to be enabled via the configuration explicitly. For more information and instructions for upgrades, see the relase notes for <link xlink:href="https://nixos.org/manual/nix/stable/release-notes/rl-2.4.html">nix-2.4</link>, 20<link xlink:href="https://nixos.org/manual/nix/stable/release-notes/rl-2.5.html">nix-2.5</link>, <link xlink:href="https://nixos.org/manual/nix/stable/release-notes/rl-2.6.html">nix-2.6</link>, <link xlink:href="https://nixos.org/manual/nix/stable/release-notes/rl-2.7.html">nix-2.7</link> and <link xlink:href="https://nixos.org/manual/nix/stable/release-notes/rl-2.8.html">nix-2.8</link></literallayout> 21 </listitem> 22 <listitem> 23 <para> 24 The <literal>firefox</literal> browser on 25 <literal>x86_64-linux</literal> now makes use of 26 profile-guided optimisation, resulting in a much more 27 responsive browsing experience. 28 </para> 29 </listitem> 30 <listitem> 31 <para> 32 GNOME has been upgraded to 42. Please take a look at their 33 <link xlink:href="https://release.gnome.org/42/">Release 34 Notes</link> for details. In particular, it replaces gedit 35 with GNOME Text Editor, GNOME Terminal with GNOME Console 36 (formerly King’s Cross) and GNOME Screenshot by a tool 37 integrated into the Shell. 38 </para> 39 </listitem> 40 <listitem> 41 <para> 42 PHP 8.1 is now available. 43 </para> 44 </listitem> 45 <listitem> 46 <para> 47 systemd services can now set 48 <link linkend="opt-systemd.services">systemd.services.&lt;name&gt;.reloadTriggers</link> 49 instead of <literal>reloadIfChanged</literal> for a more 50 granular distinction between reloads and restarts. 51 </para> 52 </listitem> 53 <listitem> 54 <para> 55 Systemd has been upgraded to the version 250. 56 </para> 57 </listitem> 58 <listitem> 59 <para> 60 Pulseaudio has been updated to version 15.0 and now optionally 61 <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters">supports 62 additional Bluetooth audio codecs</link> such as aptX or LDAC, 63 with codec switching available in 64 <literal>pavucontrol</literal>. This feature is disabled by 65 default, but can be enabled with the option 66 <literal>hardware.pulseaudio.package = pkgs.pulseaudioFull;</literal>. 67 Existing third-party modules that offered similar functions, 68 such as <literal>pulseaudio-modules-bt</literal> or 69 <literal>pulseaudio-hsphfpd</literal>, are obsolete and have 70 been removed. 71 </para> 72 </listitem> 73 <listitem> 74 <para> 75 PostgreSQL now defaults to major version 14. 76 </para> 77 </listitem> 78 <listitem> 79 <para> 80 Module authors can use 81 <literal>mkRenamedOptionModuleWith</literal> to automate the 82 deprecation cycle without annoying out-of-tree module authors 83 and their users. 84 </para> 85 </listitem> 86 <listitem> 87 <para> 88 The default GHC version has been updated from 8.10.7 to 9.0.2. 89 <literal>pkgs.haskellPackages</literal> and 90 <literal>pkgs.ghc</literal> will now use this version by 91 default. 92 </para> 93 </listitem> 94 <listitem> 95 <para> 96 The GNOME and Plasma installation CDs now use 97 <literal>pkgs.calamares</literal> and 98 <literal>pkgs.calamares-nixos-extensions</literal> to allow 99 users to easily install and set up NixOS with a GUI. 100 </para> 101 </listitem> 102 <listitem> 103 <para> 104 <literal>security.acme.defaults</literal> has been added to 105 simplify the configuration of settings for many certificates 106 at once. This also opens up the option to use DNS-01 107 validation when using <literal>enableACME</literal> web server 108 virtual hosts (e.g. 109 <literal>services.nginx.virtualHosts.*.enableACME</literal>). 110 </para> 111 </listitem> 112 </itemizedlist> 113 </section> 114 <section xml:id="sec-release-22.05-new-services"> 115 <title>New Services</title> 116 <itemizedlist> 117 <listitem> 118 <para> 119 <link xlink:href="https://1password.com/">1password</link>, 120 command-lines and graphic interface for 1Password. Available 121 as 122 <link linkend="opt-programs._1password.enable">programs._1password</link> 123 and 124 <link linkend="opt-programs._1password.enable">programs._1password-gui</link>. 125 </para> 126 </listitem> 127 <listitem> 128 <para> 129 <link xlink:href="https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw">aesmd</link>, 130 the Intel SGX Architectural Enclave Service Manager. Available 131 as 132 <link linkend="opt-services.aesmd.enable">services.aesmd</link>. 133 </para> 134 </listitem> 135 <listitem> 136 <para> 137 <link xlink:href="https://github.com/mbrubeck/agate">agate</link>, 138 a very simple server for the Gemini hypertext protocol. 139 Available as 140 <link linkend="opt-services.agate.enable">services.agate</link>. 141 </para> 142 </listitem> 143 <listitem> 144 <para> 145 <link xlink:href="https://github.com/linux-apfs/linux-apfs-rw">apfs</link>, 146 a kernel module for mounting the Apple File System (APFS). 147 </para> 148 </listitem> 149 <listitem> 150 <para> 151 <link xlink:href="https://gitlab.com/DarkElvenAngel/argononed">argonone</link>, 152 a replacement daemon for the Raspberry Pi Argon One power 153 button and cooler. Available at 154 <link xlink:href="options.html#opt-services.hardware.argonone.enable">services.hardware.argonone</link>. 155 </para> 156 </listitem> 157 <listitem> 158 <para> 159 <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm">ArchiSteamFarm</link>, 160 a C# application with primary purpose of idling Steam cards 161 from multiple accounts simultaneously. Available as 162 <link linkend="opt-services.archisteamfarm.enable">services.archisteamfarm</link>. 163 </para> 164 </listitem> 165 <listitem> 166 <para> 167 <link xlink:href="https://loic-sharma.github.io/BaGet/">BaGet</link>, 168 a lightweight NuGet and symbol server. Available at 169 <link linkend="opt-services.baget.enable">services.baget</link>. 170 </para> 171 </listitem> 172 <listitem> 173 <para> 174 <link xlink:href="https://github.com/xddxdd/bird-lg-go">bird-lg</link>, 175 a BGP looking glass for Bird Routing. Available as 176 <link linkend="opt-services.bird-lg.package">services.bird-lg</link>. 177 </para> 178 </listitem> 179 <listitem> 180 <para> 181 <link xlink:href="https://0xerr0r.github.io/blocky/">blocky</link>, 182 fast and lightweight DNS proxy as ad-blocker for local network 183 with many features. Available as 184 <link linkend="opt-services.blocky.enable">services.blocky</link>. 185 </para> 186 </listitem> 187 <listitem> 188 <para> 189 <link xlink:href="https://github.com/kissgyorgy/cloudflare-dyndns">cloudflare-dyndns</link>, 190 CloudFlare Dynamic DNS client. Available as 191 <link linkend="opt-services.cloudflare-dyndns.enable">services.cloudflare-dyndns</link>. 192 </para> 193 </listitem> 194 <listitem> 195 <para> 196 <link xlink:href="https://corosync.github.io/corosync/">Corosync</link> 197 and 198 <link xlink:href="https://clusterlabs.org/pacemaker/">Pacemaker</link>, 199 A open-source high availability resource manager. Available as 200 <link linkend="opt-services.corosync.enable">services.corosync</link> 201 and 202 <link linkend="opt-services.pacemaker.enable">services.pacemaker</link>. 203 </para> 204 </listitem> 205 <listitem> 206 <para> 207 <link xlink:href="https://github.com/lakinduakash/linux-wifi-hotspot">create_ap</link>, 208 a module for creating wifi hotspots using the program 209 linux-wifi-hotspot. Available as 210 <link linkend="opt-services.create_ap.enable">services.create_ap</link>. 211 </para> 212 </listitem> 213 <listitem> 214 <para> 215 <link xlink:href="https://www.envoyproxy.io/">Envoy</link>, a 216 high-performance reverse proxy. Available as 217 <link linkend="opt-services.envoy.enable">services.envoy</link>. 218 </para> 219 </listitem> 220 <listitem> 221 <para> 222 <link xlink:href="https://ergo.chat">ergochat</link>, a modern 223 IRC with IRCv3 features. Available as 224 <link linkend="opt-services.ergochat.enable">services.ergochat</link>. 225 </para> 226 </listitem> 227 <listitem> 228 <para> 229 <link xlink:href="https://github.com/audreyt/ethercalc">ethercalc</link>, 230 an online collaborative spreadsheet. Available as 231 <link linkend="opt-services.ethercalc.enable">services.ethercalc</link>. 232 </para> 233 </listitem> 234 <listitem> 235 <para> 236 <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>, 237 a lightweight shipper for forwarding and centralizing log 238 data. Available as 239 <link linkend="opt-services.filebeat.enable">services.filebeat</link>. 240 </para> 241 </listitem> 242 <listitem> 243 <para> 244 <link xlink:href="https://frrouting.org/">FRRouting</link>, a 245 popular suite of Internet routing protocol daemons (BGP, BFD, 246 OSPF, IS-IS, VRRP and others). Available as 247 <link linkend="opt-services.frr.babel.enable">services.frr</link>. 248 </para> 249 </listitem> 250 <listitem> 251 <para> 252 <link xlink:href="https://grafana.com/oss/mimir/">Grafana 253 Mimir</link>, an open source, horizontally scalable, highly 254 available, multi-tenant, long-term storage for Prometheus. 255 Available as 256 <link linkend="opt-services.mimir.enable">services.mimir</link>. 257 </para> 258 </listitem> 259 <listitem> 260 <para> 261 <link xlink:href="https://hastebin.com/about.md">Haste</link>, 262 a pastebin written in node.js. Available as 263 <link linkend="opt-services.haste-server.enable">services.haste</link>. 264 </para> 265 </listitem> 266 <listitem> 267 <para> 268 <link xlink:href="https://github.com/juanfont/headscale">headscale</link>, 269 an Open Source implementation of the 270 <link xlink:href="https://tailscale.io">Tailscale</link> 271 Control Server. Available as 272 <link linkend="opt-services.headscale.enable">services.headscale</link>. 273 </para> 274 </listitem> 275 <listitem> 276 <para> 277 <link xlink:href="https://github.com/hifi/heisenbridge">heisenbridge</link>, 278 a bouncer-style Matrix IRC bridge. Available as 279 <link linkend="opt-services.heisenbridge.enable">services.heisenbridge</link>. 280 </para> 281 </listitem> 282 <listitem> 283 <para> 284 <link xlink:href="https://github.com/aarond10/https_dns_proxy">https-dns-proxy</link>, 285 DNS to DNS over HTTPS (DoH) proxy. Available as 286 <link linkend="opt-services.https-dns-proxy.enable">services.https-dns-proxy</link>. 287 </para> 288 </listitem> 289 <listitem> 290 <para> 291 <link xlink:href="https://github.com/sezanzeb/input-remapper">input-remapper</link>, 292 an easy to use tool to change the mapping of your input device 293 buttons. Available at 294 <link linkend="opt-services.input-remapper.enable">services.input-remapper</link>. 295 </para> 296 </listitem> 297 <listitem> 298 <para> 299 <link xlink:href="https://invoiceplane.com">InvoicePlane</link>, 300 web application for managing and creating invoices. Available 301 at 302 <link linkend="opt-services.invoiceplane.sites._name_.enable">services.invoiceplane</link>. 303 </para> 304 </listitem> 305 <listitem> 306 <para> 307 <link xlink:href="https://userbase.kde.org/K3b">k3b</link>, 308 the KDE disk burning application. Available as 309 <link linkend="opt-programs.k3b.enable">programs.k3b</link>. 310 </para> 311 </listitem> 312 <listitem> 313 <para> 314 <link xlink:href="https://www.scorchworks.com/K40whisperer/k40whisperer.html">K40-Whisperer</link>, 315 a program to control cheap Chinese laser cutters. Available as 316 <link linkend="opt-programs.k40-whisperer.enable">programs.k40-whisperer.enable</link>. 317 Users must add themselves to the <literal>k40</literal> group 318 to be able to access the device. 319 </para> 320 </listitem> 321 <listitem> 322 <para> 323 <link xlink:href="https://kanidm.github.io/kanidm/stable/">kanidm</link>, 324 an identity management server written in Rust. Available as 325 <link linkend="opt-services.kanidm.enableServer">services.kanidm</link> 326 </para> 327 </listitem> 328 <listitem> 329 <para> 330 <link xlink:href="https://maddy.email/">Maddy</link>, a free 331 an open source mail server. Availabe as 332 <link linkend="opt-services.maddy.enable">services.maddy</link>. 333 </para> 334 </listitem> 335 <listitem> 336 <para> 337 <link xlink:href="https://conduit.rs/">matrix-conduit</link>, 338 a simple, fast and reliable chat server powered by matrix. 339 Available as 340 <link xlink:href="option.html#opt-services.matrix-conduit.enable">services.matrix-conduit</link>. 341 </para> 342 </listitem> 343 <listitem> 344 <para> 345 <link xlink:href="https://moosefs.com">Moosefs</link>, fault 346 tolerant petabyte distributed file system. Available as 347 <link linkend="opt-services.moosefs.master.enable">moosefs</link>. 348 </para> 349 </listitem> 350 <listitem> 351 <para> 352 <link xlink:href="https://github.com/mozilla-mobile/mozilla-vpn-client">mozillavpn</link>, 353 the client for the 354 <link xlink:href="https://vpn.mozilla.org/">Mozilla VPN</link> 355 service. Available as 356 <link linkend="opt-services.mozillavpn.enable">services.mozillavpn</link>. 357 </para> 358 </listitem> 359 <listitem> 360 <para> 361 <link xlink:href="https://github.com/mgumz/mtr-exporter">mtr-exporter</link>, 362 a Prometheus exporter for mtr metrics. Available as 363 <link linkend="opt-services.mtr-exporter.enable">services.mtr-exporter</link>. 364 </para> 365 </listitem> 366 <listitem> 367 <para> 368 <link xlink:href="https://nbd.sourceforge.io/">nbd</link>, a 369 Network Block Device server. Available as 370 <link linkend="opt-services.nbd.server.enable">services.nbd</link>. 371 </para> 372 </listitem> 373 <listitem> 374 <para> 375 <link xlink:href="https://github.com/netbox-community/netbox">netbox</link>, 376 infrastructure resource modeling (IRM) tool. Available as 377 <link linkend="opt-services.netbox.enable">services.netbox</link>. 378 </para> 379 </listitem> 380 <listitem> 381 <para> 382 <link xlink:href="https://github.com/vvilhonen/nethoscope">nethoscope</link>, 383 listen to your network traffic. Available as 384 <link linkend="opt-programs.nethoscope.enable">programs.nethoscope</link>. 385 </para> 386 </listitem> 387 <listitem> 388 <para> 389 <link xlink:href="https://nifi.apache.org">nifi</link>, an 390 easy to use, powerful, and reliable system to process and 391 distribute data. Available as 392 <link linkend="opt-services.nifi.enable">services.nifi</link>. 393 </para> 394 </listitem> 395 <listitem> 396 <para> 397 <link xlink:href="https://github.com/Mic92/nix-ld">nix-ld</link>, 398 Run unpatched dynamic binaries on NixOS. Available as 399 <link linkend="opt-programs.nix-ld.enable">programs.nix-ld</link>. 400 </para> 401 </listitem> 402 <listitem> 403 <para> 404 <link xlink:href="http://www.nncpgo.org">NNCP</link>, NNCP 405 (Node to Node copy) utilities and configuration, Available as 406 <link linkend="opt-programs.nncp.enable">programs.nncp</link>. 407 </para> 408 </listitem> 409 <listitem> 410 <para> 411 <link xlink:href="https://github.com/postgres/pgadmin4">pgadmin4</link>, 412 an admin interface for the PostgreSQL database. Available at 413 <link linkend="opt-services.pgadmin.enable">services.pgadmin</link>. 414 </para> 415 </listitem> 416 <listitem> 417 <para> 418 <link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin">PowerDNS-Admin</link>, 419 a web interface for the PowerDNS server. Available at 420 <link linkend="opt-services.powerdns-admin.enable">services.powerdns-admin</link>. 421 </para> 422 </listitem> 423 <listitem> 424 <para> 425 <link xlink:href="https://github.com/prometheus-pve/prometheus-pve-exporter">prometheus-pve-exporter</link>, 426 a tool that exposes information from the Proxmox VE API for 427 use by Prometheus. Available as 428 <link linkend="opt-services.prometheus.exporters.pve.enable">services.prometheus.exporters.pve</link>. 429 </para> 430 </listitem> 431 <listitem> 432 <para> 433 <link xlink:href="https://github.com/ThomasLeister/prosody-filer">prosody-filer</link>, 434 a server for handling XMPP HTTP Upload requests. Available at 435 <link linkend="opt-services.prosody-filer.enable">services.prosody-filer</link>. 436 </para> 437 </listitem> 438 <listitem> 439 <para> 440 <link xlink:href="https://public-inbox.org">Public 441 Inbox</link>, an <quote>archives first</quote> approach to 442 mailing lists. Available as 443 <link linkend="opt-services.public-inbox.enable">services.public-inbox</link>. 444 </para> 445 </listitem> 446 <listitem> 447 <para> 448 <link xlink:href="https://github.com/fleaz/r53-ddns">r53-ddns</link>, 449 a small tool to run your own DDNS service via AWS Route53. 450 Available as 451 <link linkend="opt-services.r53-ddns.enable">services.r53-ddns</link>. 452 </para> 453 </listitem> 454 <listitem> 455 <para> 456 <link xlink:href="https://ddvk.github.io/rmfakecloud/">rmfakecloud</link>, 457 a clone of the cloud sync the remarkable tablet. Available as 458 <link linkend="opt-services.rmfakecloud.enable">services.rmfakecloud</link>. 459 </para> 460 </listitem> 461 <listitem> 462 <para> 463 <link xlink:href="https://docs.docker.com/engine/security/rootless/">rootless 464 Docker</link>, a <literal>systemd --user</literal> Docker 465 service which runs without root permissions. Available as 466 <link linkend="opt-virtualisation.docker.rootless.enable">virtualisation.docker.rootless.enable</link>. 467 </para> 468 </listitem> 469 <listitem> 470 <para> 471 <link xlink:href="https://www.rstudio.com/products/rstudio/#rstudio-server">rstudio-server</link>, 472 a browser-based version of the RStudio IDE for the R 473 programming language. Available as 474 <link linkend="opt-services.rstudio-server.enable">services.rstudio-server</link>. 475 </para> 476 </listitem> 477 <listitem> 478 <para> 479 <link xlink:href="https://github.com/aler9/rtsp-simple-server">rtsp-simple-server</link>, 480 ready-to-use RTSP / RTMP / HLS server and proxy that allows to 481 read, publish and proxy video and audio streams. Available as 482 <link linkend="opt-services.rtsp-simple-server.enable">services.rtsp-simple-server</link>. 483 </para> 484 </listitem> 485 <listitem> 486 <para> 487 <link xlink:href="https://snipeitapp.com">Snipe-IT</link>, a 488 free open source IT asset/license management system. Available 489 as 490 <link linkend="opt-services.snipe-it.enable">services.snipe-it</link>. 491 </para> 492 </listitem> 493 <listitem> 494 <para> 495 <link xlink:href="https://snowflake.torproject.org/">snowflake-proxy</link>, 496 a system to defeat internet censorship. Available as 497 <link linkend="opt-services.snowflake-proxy.enable">services.snowflake-proxy</link>. 498 </para> 499 </listitem> 500 <listitem> 501 <para> 502 <link xlink:href="https://sslmate.com/">sslmate-agent</link>, 503 a daemon for managing SSL/TLS certificates on a server. 504 Available as 505 <link xlink:href="services.sslmate-agent.enable">services.sslmate-agent</link>. 506 </para> 507 </listitem> 508 <listitem> 509 <para> 510 <link xlink:href="https://starship.rs">starship</link>, a 511 minimal, blazing-fast, and infinitely customizable prompt for 512 any shell. Available at 513 <link linkend="opt-programs.starship.enable">programs.startship</link>. 514 </para> 515 </listitem> 516 <listitem> 517 <para> 518 <link xlink:href="https://github.com/rfjakob/systembus-notify">systembus-notify</link>, 519 allow system level notifications to reach the users. Available 520 as 521 <link xlink:href="opt-services.systembus-notify.enable">services.systembus-notify</link>. 522 Please keep in mind that this service should only be enabled 523 on machines with fully trusted users, as any local user is 524 able to DoS user sessions by spamming notifications. 525 </para> 526 </listitem> 527 <listitem> 528 <para> 529 <link xlink:href="https://goteleport.com">teleport</link>, 530 allows engineers and security professionals to unify access 531 for SSH servers, Kubernetes clusters, web applications, and 532 databases across all environments. Available at 533 <link linkend="opt-services.teleport.enable">services.teleport</link>. 534 </para> 535 </listitem> 536 <listitem> 537 <para> 538 <link xlink:href="https://tetrd.app">tetrd</link>, share your 539 internet connection from your device to your PC and vice versa 540 through a USB cable. Available at 541 <link linkend="opt-services.tetrd.enable">services.tetrd</link>. 542 </para> 543 </listitem> 544 <listitem> 545 <para> 546 <link xlink:href="https://upterm.dev">uptermd</link>, an 547 open-source solution for sharing terminal sessions instantly 548 over the public internet via secure tunnels. Available at 549 <link linkend="opt-services.uptermd.enable">services.uptermd</link>. 550 </para> 551 </listitem> 552 <listitem> 553 <para> 554 <link xlink:href="https://github.com/darrylb123/usbrelay">usbrelayd</link>, 555 an USB Relay MQTT daemon. Available as 556 <link linkend="opt-services.usbrelayd.enable">services.usbrelayd</link>. 557 </para> 558 </listitem> 559 <listitem> 560 <para> 561 <link xlink:href="https://github.com/miquels/webdav-server-rs">webdav-server-rs</link>, 562 Webdav server in rust. Available as 563 <link linkend="opt-services.webdav-server-rs.enable">services.webdav-server-rs</link>. 564 </para> 565 </listitem> 566 <listitem> 567 <para> 568 <link xlink:href="https://github.com/gin66/wg_netmanager">wg-netmanager</link>, 569 the Wireguard network manager. Available as 570 <link linkend="opt-services.wg-netmanager.enable">services.wg-netmanager</link>. 571 </para> 572 </listitem> 573 <listitem> 574 <para> 575 <link xlink:href="https://zammad.org/">Zammad</link>, a 576 web-based, open source user support/ticketing solution. 577 Available as 578 <link linkend="opt-services.zammad.enable">services.zammad</link>. 579 </para> 580 </listitem> 581 </itemizedlist> 582 </section> 583 <section xml:id="sec-release-22.05-incompatibilities"> 584 <title>Backward Incompatibilities</title> 585 <itemizedlist> 586 <listitem> 587 <para> 588 <literal>pkgs.ghc</literal> now refers to 589 <literal>pkgs.targetPackages.haskellPackages.ghc</literal>. 590 This <emphasis>only</emphasis> makes a difference if you are 591 cross-compiling and will ensure that 592 <literal>pkgs.ghc</literal> always runs on the host platform 593 and compiles for the target platform (similar to 594 <literal>pkgs.gcc</literal> for example). 595 <literal>haskellPackages.ghc</literal> still behaves as 596 before, running on the build platform and compiling for the 597 host platform (similar to <literal>stdenv.cc</literal>). This 598 means you don’t have to adjust your derivations if you use 599 <literal>haskellPackages.callPackage</literal>, but when using 600 <literal>pkgs.callPackage</literal> and taking 601 <literal>ghc</literal> as an input, you should now use 602 <literal>buildPackages.ghc</literal> instead to ensure cross 603 compilation keeps working (or switch to 604 <literal>haskellPackages.callPackage</literal>). 605 </para> 606 </listitem> 607 <listitem> 608 <para> 609 <literal>pkgs.ghc.withPackages</literal> as well as 610 <literal>haskellPackages.ghcWithPackages</literal> etc. now 611 needs be overridden directly, as opposed to overriding the 612 result of calling it. Additionally, the 613 <literal>withLLVM</literal> parameter has been renamed to 614 <literal>useLLVM</literal>. So instead of 615 <literal>(ghc.withPackages (p: [])).override { withLLVM = true; }</literal>, 616 one needs to use 617 <literal>(ghc.withPackages.override { useLLVM = true; }) (p: [])</literal>. 618 </para> 619 </listitem> 620 <listitem> 621 <para> 622 The update of the haskell package set brings with it a new 623 version of the <literal>xmonad</literal> module, which will 624 break your configuration if you use <literal>launch</literal> 625 as entrypoint. The example code the corresponding nixos module 626 was adjusted, you may want to have a look at it. 627 </para> 628 </listitem> 629 <listitem> 630 <para> 631 The <literal>home-assistant</literal> module now requires 632 users that don’t want their configuration to be managed 633 declaratively to set 634 <literal>services.home-assistant.config = null;</literal>. 635 This is required due to the way default settings are handled 636 with the new settings style. 637 </para> 638 <para> 639 Additionally the default list of 640 <literal>extraComponents</literal> now includes the minimal 641 dependencies to successfully complete the 642 <link xlink:href="https://www.home-assistant.io/getting-started/onboarding/">onboarding</link> 643 procedure. 644 </para> 645 </listitem> 646 <listitem> 647 <para> 648 <literal>pkgs.emacsPackages.orgPackages</literal> is removed 649 because org elpa is deprecated. The packages in the top level 650 of <literal>pkgs.emacsPackages</literal>, such as org and 651 org-contrib, refer to the ones in 652 <literal>pkgs.emacsPackages.elpaPackages</literal> and 653 <literal>pkgs.emacsPackages.nongnuPackages</literal> where the 654 new versions will release. 655 </para> 656 </listitem> 657 <listitem> 658 <para> 659 The configuration and state directories used by 660 <literal>nixos-containers</literal> have been moved from 661 <literal>/etc/containers</literal> and 662 <literal>/var/lib/containers</literal> to 663 <literal>/etc/nixos-containers</literal> and 664 <literal>/var/lib/nixos-containers</literal>. 665 </para> 666 <para> 667 If you are changing <literal>system.stateVersion</literal> to 668 <literal>&quot;22.05&quot;</literal> manually on an existing 669 system you are responsible for migrating these directories 670 yourself. 671 </para> 672 <para> 673 This is to improve compatibility with 674 <literal>libcontainer</literal> based software such as Podman 675 and Skopeo which assumes they have ownership over 676 <literal>/etc/containers</literal>. 677 </para> 678 </listitem> 679 <listitem> 680 <para> 681 <literal>lib.systems.supported</literal> has been removed, as 682 it was overengineered for determining the systems to support 683 in the nixpkgs flake. The list of systems exposed by the 684 nixpkgs flake can now be accessed as 685 <literal>lib.systems.flakeExposed</literal>. 686 </para> 687 </listitem> 688 <listitem> 689 <para> 690 For new installations 691 <literal>virtualisation.oci-containers.backend</literal> is 692 now set to <literal>podman</literal> by default. If you still 693 want to use Docker on systems where 694 <literal>system.stateVersion</literal> is set to to 695 <literal>&quot;22.05&quot;</literal> set 696 <literal>virtualisation.oci-containers.backend = &quot;docker&quot;;</literal>.Old 697 systems with older <literal>stateVersion</literal>s stay with 698 <quote>docker</quote>. 699 </para> 700 </listitem> 701 <listitem> 702 <para> 703 <literal>security.klogd</literal> was removed. Logging of 704 kernel messages is handled by systemd since Linux 3.5. 705 </para> 706 </listitem> 707 <listitem> 708 <para> 709 <literal>pkgs.ssmtp</literal> has been dropped due to the 710 program being unmaintained. <literal>pkgs.msmtp</literal> can 711 be used instead as a substitute <literal>sendmail</literal> 712 implementation. The corresponding options 713 <literal>services.ssmtp.*</literal> have been removed as well. 714 <literal>programs.msmtp.*</literal> can be used instead for an 715 equivalent setup. For example: 716 </para> 717 <programlisting language="bash"> 718{ 719 # Original ssmtp configuration: 720 services.ssmtp = { 721 enable = true; 722 useTLS = true; 723 useSTARTTLS = true; 724 hostName = &quot;smtp.example:587&quot;; 725 authUser = &quot;someone&quot;; 726 authPassFile = &quot;/secrets/password.txt&quot;; 727 }; 728 729 # Equivalent msmtp configuration: 730 programs.msmtp = { 731 enable = true; 732 accounts.default = { 733 tls = true; 734 tls_starttls = true; 735 auth = true; 736 host = &quot;smtp.example&quot;; 737 port = 587; 738 user = &quot;someone&quot;; 739 passwordeval = &quot;cat /secrets/password.txt&quot;; 740 }; 741 }; 742} 743</programlisting> 744 </listitem> 745 <listitem> 746 <para> 747 <literal>services.kubernetes.addons.dashboard</literal> was 748 removed due to it being an outdated version. 749 </para> 750 </listitem> 751 <listitem> 752 <para> 753 <literal>services.kubernetes.scheduler.{port,address}</literal> 754 now set <literal>--secure-port</literal> and 755 <literal>--bind-address</literal> instead of 756 <literal>--port</literal> and <literal>--address</literal>, 757 since the former have been deprecated and are no longer 758 functional in kubernetes&gt;=1.23. Ensure that you are not 759 relying on the insecure behaviour before upgrading. 760 </para> 761 </listitem> 762 <listitem> 763 <para> 764 In the PowerDNS Recursor module 765 (<literal>services.pdns-recursor</literal>), default values of 766 several IP address-related NixOS options have been updated to 767 match the default upstream behavior. In particular, Recursor 768 by default will: 769 </para> 770 <itemizedlist spacing="compact"> 771 <listitem> 772 <para> 773 listen on (and allows connections from) both IPv4 and IPv6 774 addresses 775 (<literal>services.pdns-recursor.dns.address</literal>, 776 <literal>services.pdns-recursor.dns.allowFrom</literal>); 777 </para> 778 </listitem> 779 <listitem> 780 <para> 781 allow only local connections to the REST API server 782 (<literal>services.pdns-recursor.api.allowFrom</literal>). 783 </para> 784 </listitem> 785 </itemizedlist> 786 </listitem> 787 <listitem> 788 <para> 789 In the ncdns module, the default value of 790 <literal>services.ncdns.address</literal> has been changed to 791 the IPv6 loopback address (<literal>::1</literal>). 792 </para> 793 </listitem> 794 <listitem> 795 <para> 796 <literal>openldap</literal> (and therefore the slapd LDAP 797 server) were updated to version 2.6.2. The project introduced 798 backwards-incompatible changes, namely the removal of the bdb, 799 hdb, ndb, and shell backends in slapd. Therefore before 800 updating, dump your database <literal>slapcat -n 1</literal> 801 in LDIF format, and reimport it after updating your 802 <literal>services.openldap.settings</literal>, which 803 represents your <literal>cn=config</literal>. 804 </para> 805 <para> 806 Additionally with 2.5 the argon2 module was included in the 807 standard distrubtion and renamed from 808 <literal>pw-argon2</literal> to <literal>argon2</literal>. 809 Remember to update your <literal>olcModuleLoad</literal> entry 810 in <literal>cn=config</literal>. 811 </para> 812 </listitem> 813 <listitem> 814 <para> 815 <literal>openssh</literal> has been update to 8.9p1, changing 816 the FIDO security key middleware interface. 817 </para> 818 </listitem> 819 <listitem> 820 <para> 821 <literal>git</literal> no longer hardcodes the path to 822 openssh’ ssh binary to reduce the amount of rebuilds. If you 823 are using git with ssh remotes and do not have a ssh binary in 824 your enviroment consider adding <literal>openssh</literal> to 825 it or switching to <literal>gitFull</literal>. 826 </para> 827 </listitem> 828 <listitem> 829 <para> 830 <literal>services.k3s.enable</literal> no longer implies 831 <literal>systemd.enableUnifiedCgroupHierarchy = false</literal>, 832 and will default to the <quote>systemd</quote> cgroup driver 833 when using <literal>services.k3s.docker = true</literal>. This 834 change may require a reboot to take effect, and k3s may not be 835 able to run if the boot cgroup hierarchy does not match its 836 configuration. The previous behavior may be retained by 837 explicitly setting 838 <literal>systemd.enableUnifiedCgroupHierarchy = false</literal> 839 in your configuration. 840 </para> 841 </listitem> 842 <listitem> 843 <para> 844 <literal>fonts.fonts</literal> no longer includes ancient 845 bitmap fonts when both 846 <literal>config.services.xserver.enable</literal> and 847 <literal>config.nixpkgs.config.allowUnfree</literal> are 848 enabled. If you still want these fonts, use: 849 </para> 850 <programlisting language="bash"> 851{ 852 fonts.fonts = [ 853 pkgs.xorg.fontbhlucidatypewriter100dpi 854 pkgs.xorg.fontbhlucidatypewriter75dpi 855 pkgs.xorg.fontbh100dpi 856 ]; 857} 858</programlisting> 859 </listitem> 860 <listitem> 861 <para> 862 <literal>services.prometheus.alertManagerTimeout</literal> has 863 been removed as it has been deprecated upstream and has no 864 effect. 865 </para> 866 </listitem> 867 <listitem> 868 <para> 869 The DHCP server (<literal>services.dhcpd4</literal>, 870 <literal>services.dhcpd6</literal>) has been hardened. The 871 service is now using the systemd’s 872 <literal>DynamicUser</literal> mechanism to run as an 873 unprivileged dynamically-allocated user with limited 874 capabilities. The dhcpd state files are now always stored in 875 <literal>/var/lib/dhcpd{4,6}</literal> and the 876 <literal>services.dhcpd4.stateDir</literal> and 877 <literal>service.dhcpd6.stateDir</literal> options have been 878 removed. If you were depending on root privileges or 879 set{uid,gid,cap} binaries in dhcpd shell hooks, you may give 880 dhcpd more capabilities with e.g. 881 <literal>systemd.services.dhcpd6.serviceConfig.AmbientCapabilities</literal>. 882 </para> 883 </listitem> 884 <listitem> 885 <para> 886 The <literal>mailpile</literal> email webclient 887 (<literal>services.mailpile</literal>) has been removed due to 888 its reliance on python2. 889 </para> 890 </listitem> 891 <listitem> 892 <para> 893 <literal>services.ipfs.extraFlags</literal> is now escaped 894 with <literal>utils.escapeSystemdExecArgs</literal>. If you 895 rely on systemd interpolating <literal>extraFlags</literal> in 896 the service <literal>ExecStart</literal>, this will no longer 897 work. 898 </para> 899 </listitem> 900 <listitem> 901 <para> 902 <literal>hbase</literal> version 0.98.24 has been removed. The 903 package now defaults to version 2.4.11. Versions 1.7.1 and 904 3.0.0-alpha-2 are also available. 905 </para> 906 </listitem> 907 <listitem> 908 <para> 909 <literal>services.paperless-ng</literal> was renamed to 910 <literal>services.paperless</literal>. Accordingly, the 911 <literal>paperless-ng-manage</literal> script (located in 912 <literal>dataDir</literal>) was renamed to 913 <literal>paperless-manage</literal>. 914 <literal>services.paperless</literal> now uses 915 <literal>paperless-ngx</literal>. 916 </para> 917 </listitem> 918 <listitem> 919 <para> 920 The <literal>matrix-synapse</literal> service 921 (<literal>services.matrix-synapse</literal>) has been 922 converted to use the <literal>settings</literal> option 923 defined in RFC42. This means that options that are part of 924 your <literal>homeserver.yaml</literal> configuration, and 925 that were specified at the top-level of the module 926 (<literal>services.matrix-synapse</literal>) now need to be 927 moved into 928 <literal>services.matrix-synapse.settings</literal>. And while 929 not all options you may use are defined in there, they are 930 still supported, because you can set arbitrary values in this 931 freeform type. 932 </para> 933 <para> 934 The <literal>listeners.*.bind_address</literal> option was 935 renamed to <literal>bind_addresses</literal> in order to match 936 the upstream <literal>homeserver.yaml</literal> option name. 937 It is now also a list of strings instead of a string. 938 </para> 939 <para> 940 An example to make the required migration clearer: 941 </para> 942 <para> 943 Before: 944 </para> 945 <programlisting language="bash"> 946{ 947 services.matrix-synapse = { 948 enable = true; 949 950 server_name = &quot;example.com&quot;; 951 public_baseurl = &quot;https://example.com:8448&quot;; 952 953 enable_registration = false; 954 registration_shared_secret = &quot;xohshaeyui8jic7uutuDogahkee3aehuaf6ei3Xouz4iicie5thie6nohNahceut&quot;; 955 macaroon_secret_key = &quot;xoo8eder9seivukaiPh1cheikohquuw8Yooreid0The4aifahth3Ou0aiShaiz4l&quot;; 956 957 tls_certificate_path = &quot;/var/lib/acme/example.com/fullchain.pem&quot;; 958 tls_certificate_path = &quot;/var/lib/acme/example.com/fullchain.pem&quot;; 959 960 listeners = [ { 961 port = 8448; 962 bind_address = &quot;&quot;; 963 type = &quot;http&quot;; 964 tls = true; 965 resources = [ { 966 names = [ &quot;client&quot; ]; 967 compress = true; 968 } { 969 names = [ &quot;federation&quot; ]; 970 compress = false; 971 } ]; 972 } ]; 973 974 }; 975} 976</programlisting> 977 <para> 978 After: 979 </para> 980 <programlisting language="bash"> 981{ 982 services.matrix-synapse = { 983 enable = true; 984 985 # this attribute set holds all values that go into your homeserver.yaml configuration 986 # See https://github.com/matrix-org/synapse/blob/develop/docs/sample_config.yaml for 987 # possible values. 988 settings = { 989 server_name = &quot;example.com&quot;; 990 public_baseurl = &quot;https://example.com:8448&quot;; 991 992 enable_registration = false; 993 # pass `registration_shared_secret` and `macaroon_secret_key` via `extraConfigFiles` instead 994 995 tls_certificate_path = &quot;/var/lib/acme/example.com/fullchain.pem&quot;; 996 tls_certificate_path = &quot;/var/lib/acme/example.com/fullchain.pem&quot;; 997 998 listeners = [ { 999 port = 8448; 1000 bind_addresses = [ 1001 &quot;::&quot; 1002 &quot;0.0.0.0&quot; 1003 ]; 1004 type = &quot;http&quot;; 1005 tls = true; 1006 resources = [ { 1007 names = [ &quot;client&quot; ]; 1008 compress = true; 1009 } { 1010 names = [ &quot;federation&quot; ]; 1011 compress = false; 1012 } ]; 1013 } ]; 1014 }; 1015 1016 extraConfigFiles = [ 1017 &quot;/run/keys/matrix-synapse/secrets.yaml&quot; 1018 ]; 1019 }; 1020} 1021</programlisting> 1022 <para> 1023 The secrets in your original config should be migrated into a 1024 YAML file that is included via 1025 <literal>extraConfigFiles</literal>. The filename must be 1026 quoted to prevent nix from copying it to the (world readable) 1027 store. 1028 </para> 1029 <para> 1030 Additionally a few option defaults have been synced up with 1031 upstream default values, for example the 1032 <literal>max_upload_size</literal> grew from 1033 <literal>10M</literal> to <literal>50M</literal>. For the same 1034 reason, the default <literal>media_store_path</literal> was 1035 changed from <literal>${dataDir}/media</literal> to 1036 <literal>${dataDir}/media_store</literal> if 1037 <literal>system.stateVersion</literal> is at least 1038 <literal>22.05</literal>. Files will need to be manually moved 1039 to the new location if the <literal>stateVersion</literal> is 1040 updated. 1041 </para> 1042 <para> 1043 As of Synapse 1.58.0, the old groups/communities feature has 1044 been disabled by default. It will be completely removed with 1045 Synapse 1.61.0. 1046 </para> 1047 </listitem> 1048 <listitem> 1049 <para> 1050 The Keycloak package (<literal>pkgs.keycloak</literal>) has 1051 been switched from the Wildfly version, which will soon be 1052 deprecated, to the Quarkus based version. The Keycloak service 1053 (<literal>services.keycloak</literal>) has been updated to 1054 accommodate the change and now differs from the previous 1055 version in a few ways: 1056 </para> 1057 <itemizedlist> 1058 <listitem> 1059 <para> 1060 <literal>services.keycloak.extraConfig</literal> has been 1061 removed in favor of the new 1062 <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link> 1063 <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link> 1064 option. The available options correspond directly to 1065 parameters in <literal>conf/keycloak.conf</literal>. Some 1066 of the most important parameters are documented as 1067 suboptions, the rest can be found in the 1068 <link xlink:href="https://www.keycloak.org/server/all-config">All 1069 configuration section of the Keycloak Server Installation 1070 and Configuration Guide</link>. While the new 1071 configuration is much simpler and cleaner than the old 1072 JBoss CLI one, this unfortunately mean that there’s no 1073 straightforward way to convert an old configuration to the 1074 new format and some settings may not even be available 1075 anymore. 1076 </para> 1077 </listitem> 1078 <listitem> 1079 <para> 1080 <literal>services.keycloak.frontendUrl</literal> was 1081 removed and the frontend URL is now configured through the 1082 <literal>hostname</literal> family of settings in 1083 <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link> 1084 instead. See the 1085 <link xlink:href="https://www.keycloak.org/server/hostname">Hostname 1086 section of the Keycloak Server Installation and 1087 Configuration Guide</link> for more details. Additionally, 1088 <literal>/auth</literal> was removed from the default 1089 context path and needs to be added back in 1090 <link linkend="opt-services.keycloak.settings.http-relative-path"><literal>services.keycloak.settings.http-relative-path</literal></link> 1091 if you want to keep compatibility with your current 1092 clients. 1093 </para> 1094 </listitem> 1095 <listitem> 1096 <para> 1097 <literal>services.keycloak.bindAddress</literal>, 1098 <literal>services.keycloak.forceBackendUrlToFrontendUrl</literal>, 1099 <literal>services.keycloak.httpPort</literal> and 1100 <literal>services.keycloak.httpsPort</literal> have been 1101 removed in favor of their equivalent options in 1102 <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>. 1103 <literal>httpPort</literal> and 1104 <literal>httpsPort</literal> have additionally had their 1105 types changed from <literal>str</literal> to 1106 <literal>port</literal>. 1107 </para> 1108 <para> 1109 The new names are as follows: 1110 </para> 1111 <itemizedlist spacing="compact"> 1112 <listitem> 1113 <para> 1114 <literal>bindAddress</literal>: 1115 <link linkend="opt-services.keycloak.settings.http-host"><literal>services.keycloak.settings.http-host</literal></link> 1116 </para> 1117 </listitem> 1118 <listitem> 1119 <para> 1120 <literal>forceBackendUrlToFrontendUrl</literal>: 1121 <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel"><literal>services.keycloak.settings.hostname-strict-backchannel</literal></link> 1122 </para> 1123 </listitem> 1124 <listitem> 1125 <para> 1126 <literal>httpPort</literal>: 1127 <link linkend="opt-services.keycloak.settings.http-port"><literal>services.keycloak.settings.http-port</literal></link> 1128 </para> 1129 </listitem> 1130 <listitem> 1131 <para> 1132 <literal>httpsPort</literal>: 1133 <link linkend="opt-services.keycloak.settings.https-port"><literal>services.keycloak.settings.https-port</literal></link> 1134 </para> 1135 </listitem> 1136 </itemizedlist> 1137 </listitem> 1138 </itemizedlist> 1139 <para> 1140 For example, when using a reverse proxy the migration could 1141 look like this: 1142 </para> 1143 <para> 1144 Before: 1145 </para> 1146 <programlisting language="bash"> 1147 services.keycloak = { 1148 enable = true; 1149 httpPort = &quot;8080&quot;; 1150 frontendUrl = &quot;https://keycloak.example.com/auth&quot;; 1151 database.passwordFile = &quot;/run/keys/db_password&quot;; 1152 extraConfig = { 1153 &quot;subsystem=undertow&quot;.&quot;server=default-server&quot;.&quot;http-listener=default&quot;.proxy-address-forwarding = true; 1154 }; 1155 }; 1156</programlisting> 1157 <para> 1158 After: 1159 </para> 1160 <programlisting language="bash"> 1161 services.keycloak = { 1162 enable = true; 1163 settings = { 1164 http-port = 8080; 1165 hostname = &quot;keycloak.example.com&quot;; 1166 http-relative-path = &quot;/auth&quot;; 1167 proxy = &quot;edge&quot;; 1168 }; 1169 database.passwordFile = &quot;/run/keys/db_password&quot;; 1170 }; 1171</programlisting> 1172 </listitem> 1173 <listitem> 1174 <para> 1175 The MoinMoin wiki engine 1176 (<literal>services.moinmoin</literal>) has been removed, 1177 because Python 2 is being retired from nixpkgs. 1178 </para> 1179 </listitem> 1180 <listitem> 1181 <para> 1182 Services in the <literal>hadoop</literal> module previously 1183 set <literal>openFirewall</literal> to true by default. This 1184 has now been changed to false. Node definitions for multi-node 1185 clusters would need <literal>openFirewall = true;</literal> to 1186 be added to to hadoop services when upgrading from NixOS 1187 21.11. 1188 </para> 1189 </listitem> 1190 <listitem> 1191 <para> 1192 <literal>services.hadoop.yarn.nodemanager</literal> now uses 1193 cgroup-based CPU limit enforcement by default. Additionally, 1194 the option <literal>useCGroups</literal> was added to 1195 nodemanagers as an easy way to switch back to the old 1196 behavior. 1197 </para> 1198 </listitem> 1199 <listitem> 1200 <para> 1201 The <literal>wafHook</literal> hook now honors 1202 <literal>NIX_BUILD_CORES</literal> when 1203 <literal>enableParallelBuilding</literal> is not set 1204 explicitly. Packages can restore the old behaviour by setting 1205 <literal>enableParallelBuilding=false</literal>. 1206 </para> 1207 </listitem> 1208 <listitem> 1209 <para> 1210 <literal>pkgs.claws-mail-gtk2</literal>, representing Claws 1211 Mail’s older release version three, was removed in order to 1212 get rid of Python 2. Please switch to 1213 <literal>claws-mail</literal>, which is Claws Mail’s latest 1214 release based on GTK+3 and Python 3. 1215 </para> 1216 </listitem> 1217 <listitem> 1218 <para> 1219 The <literal>writers.writePython2</literal> and corresponding 1220 <literal>writers.writePython2Bin</literal> convenience 1221 functions to create executable Python 2 scripts in the store 1222 were removed in preparation of removal of the Python 2 1223 interpreter. Scripts have to be converted to Python 3 for use 1224 with <literal>writers.writePython3</literal> or 1225 <literal>writers.writePyPy2</literal> needs to be used. 1226 </para> 1227 </listitem> 1228 <listitem> 1229 <para> 1230 <literal>buildGoModule</literal> was updated to use 1231 <literal>go_1_17</literal>, third party derivations that 1232 specify &gt;= go 1.17 in the main <literal>go.mod</literal> 1233 will need to regenerate their <literal>vendorSha256</literal> 1234 hash. 1235 </para> 1236 </listitem> 1237 <listitem> 1238 <para> 1239 The <literal>gnome-passwordsafe</literal> package updated to 1240 <link xlink:href="https://gitlab.gnome.org/World/secrets/-/tags/6.0">version 1241 6.x</link> and renamed to <literal>gnome-secrets</literal>. 1242 </para> 1243 </listitem> 1244 <listitem> 1245 <para> 1246 <literal>services.gnome.experimental-features.realtime-scheduling</literal> 1247 option has been removed, as GNOME Shell now 1248 <link xlink:href="https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2060">uses 1249 rtkit</link>. Use 1250 <literal>security.rtkit.enable = true;</literal> instead. As 1251 before, you will need to have it enabled using GSettings. 1252 </para> 1253 </listitem> 1254 <listitem> 1255 <para> 1256 <literal>services.telepathy</literal> will no longer be 1257 enabled by default for GNOME desktops, one should enable it in 1258 their configs if using Empathy or Polari. 1259 </para> 1260 </listitem> 1261 <listitem> 1262 <para> 1263 If you previously used 1264 <literal>/etc/docker/daemon.json</literal>, you need to 1265 incorporate the changes into the new option 1266 <literal>virtualisation.docker.daemon.settings</literal>. 1267 </para> 1268 </listitem> 1269 <listitem> 1270 <para> 1271 Ntopng (<literal>services.ntopng</literal>) is updated to 1272 5.2.1 and uses a separate Redis instance if 1273 <literal>system.stateVersion</literal> is at least 1274 <literal>22.05</literal>. Existing setups shouldn’t be 1275 affected. 1276 </para> 1277 </listitem> 1278 <listitem> 1279 <para> 1280 The backward compatibility in 1281 <literal>services.wordpress</literal> to configure sites with 1282 the old interface has been removed. Please use 1283 <literal>services.wordpress.sites</literal> instead. 1284 </para> 1285 </listitem> 1286 <listitem> 1287 <para> 1288 The backward compatibility in 1289 <literal>services.dokuwiki</literal> to configure sites with 1290 the old interface has been removed. Please use 1291 <literal>services.dokuwiki.sites</literal> instead. 1292 </para> 1293 </listitem> 1294 <listitem> 1295 <para> 1296 opensmtpd-extras is no longer build with python2 scripting 1297 support due to python2 deprecation in nixpkgs 1298 </para> 1299 </listitem> 1300 <listitem> 1301 <para> 1302 <literal>services.miniflux.adminCredentialFiles</literal> is 1303 now required, instead of defaulting to 1304 <literal>admin</literal> and <literal>password</literal>. 1305 </para> 1306 </listitem> 1307 <listitem> 1308 <para> 1309 The <literal>taskserver</literal> module no longer implicitly 1310 opens ports in the firewall configuration. This is now 1311 controlled through the option 1312 <literal>services.taskserver.openFirewall</literal>. 1313 </para> 1314 </listitem> 1315 <listitem> 1316 <para> 1317 The <literal>autorestic</literal> package has been upgraded 1318 from 1.3.0 to 1.5.0 which introduces breaking changes in 1319 config file, check 1320 <link xlink:href="https://autorestic.vercel.app/migration/1.4_1.5">their 1321 migration guide</link> for more details. 1322 </para> 1323 </listitem> 1324 <listitem> 1325 <para> 1326 <literal>teleport</literal> has been upgraded to major version 1327 9. Please see upstream 1328 <link xlink:href="https://goteleport.com/docs/setup/operations/upgrading/">upgrade 1329 instructions</link> and 1330 <link xlink:href="https://goteleport.com/docs/changelog/#900">release 1331 notes</link>. 1332 </para> 1333 </listitem> 1334 <listitem> 1335 <para> 1336 For <literal>pkgs.python3.pkgs.ipython</literal>, its direct 1337 dependency 1338 <literal>pkgs.python3.pkgs.matplotlib-inline</literal> (which 1339 is really an adapter to integrate matplotlib in ipython if it 1340 is installed) does not depend on 1341 <literal>pkgs.python3.pkgs.matplotlib</literal> anymore. This 1342 is closer to a non-Nix install of ipython. This has the added 1343 benefit to reduce the closure size of 1344 <literal>ipython</literal> from ~400MB to ~160MB (including 1345 ~100MB for python itself). 1346 </para> 1347 </listitem> 1348 <listitem> 1349 <para> 1350 <literal>documentation.man</literal> has been refactored to 1351 support choosing a man implementation other than GNU’s 1352 <literal>man-db</literal>. For this, 1353 <literal>documentation.man.manualPages</literal> has been 1354 renamed to 1355 <literal>documentation.man.man-db.manualPages</literal>. If 1356 you want to use the new alternative man implementation 1357 <literal>mandoc</literal>, add 1358 <literal>documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }</literal> 1359 to your configuration. 1360 </para> 1361 </listitem> 1362 <listitem> 1363 <para> 1364 Normal users (with <literal>isNormalUser = true</literal>) 1365 which have non-empty <literal>subUidRanges</literal> or 1366 <literal>subGidRanges</literal> set no longer have additional 1367 implicit ranges allocated. To enable automatic allocation back 1368 set <literal>autoSubUidGidRange = true</literal>. 1369 </para> 1370 </listitem> 1371 <listitem> 1372 <para> 1373 <literal>idris2</literal> now requires 1374 <literal>--package</literal> when using packages 1375 <literal>contrib</literal> and <literal>network</literal>, 1376 while previously these idris2 packages were automatically 1377 loaded. 1378 </para> 1379 </listitem> 1380 <listitem> 1381 <para> 1382 The iputils package, which is installed by default, no longer 1383 provides the legacy tools <literal>tftpd</literal> and 1384 <literal>traceroute6</literal>. More tools 1385 (<literal>ninfod</literal>, <literal>rarpd</literal>, and 1386 <literal>rdisc</literal>) are going to be removed in the next 1387 release. See 1388 <link xlink:href="https://github.com/iputils/iputils/releases/tag/20211215">upstream’s 1389 release notes</link> for more details and available 1390 replacements. 1391 </para> 1392 </listitem> 1393 <listitem> 1394 <para> 1395 <literal>services.thelounge.private</literal> was removed in 1396 favor of <literal>services.thelounge.public</literal>, to 1397 follow with upstream changes. 1398 </para> 1399 </listitem> 1400 <listitem> 1401 <para> 1402 <literal>pkgs.docbookrx</literal> was removed since it’s 1403 unmaintained 1404 </para> 1405 </listitem> 1406 <listitem> 1407 <para> 1408 <literal>pkgs._7zz</literal> is now correctly licensed as 1409 LGPL3+ and BSD3 with optional unfree unRAR licensed code 1410 </para> 1411 </listitem> 1412 <listitem> 1413 <para> 1414 The <literal>vim.customize</literal> function produced by 1415 <literal>vimUtils.makeCustomizable</literal> now has a 1416 slightly different interface: 1417 </para> 1418 <itemizedlist spacing="compact"> 1419 <listitem> 1420 <para> 1421 The wrapper now includes everything in the given Vim 1422 derivation if <literal>name</literal> is 1423 <literal>&quot;vim&quot;</literal> (the default). This 1424 makes the <literal>wrapManual</literal> argument obsolete, 1425 but this behavior can be overriden by setting the 1426 <literal>standalone</literal> argument. 1427 </para> 1428 </listitem> 1429 <listitem> 1430 <para> 1431 All the executables present in the given derivation (or, 1432 in <literal>standalone</literal> mode, only the 1433 <literal>*vim</literal> ones) are wrapped. This makes the 1434 <literal>wrapGui</literal> argument obsolete. 1435 </para> 1436 </listitem> 1437 <listitem> 1438 <para> 1439 The <literal>vimExecutableName</literal> and 1440 <literal>gvimExecutableName</literal> arguments were 1441 replaced by a single <literal>executableName</literal> 1442 argument in which the shell variable 1443 <literal>$exe</literal> can be used to refer to the 1444 wrapped executable’s name. 1445 </para> 1446 </listitem> 1447 </itemizedlist> 1448 <para> 1449 See the comments in 1450 <literal>pkgs/applications/editors/vim/plugins/vim-utils.nix</literal> 1451 for more details. 1452 </para> 1453 <para> 1454 <literal>vimUtils.vimWithRC</literal> was removed. You should 1455 instead use <literal>customize</literal> on a Vim derivation, 1456 which now accepts <literal>vimrcFile</literal> and 1457 <literal>gvimrcFile</literal> arguments. 1458 </para> 1459 </listitem> 1460 <listitem> 1461 <para> 1462 <literal>tilp2</literal> was removed together with its module 1463 </para> 1464 </listitem> 1465 <listitem> 1466 <para> 1467 The F-PROT antivirus (<literal>fprot</literal> package) and 1468 its service module were removed because it reached 1469 <link xlink:href="https://kb.cyren.com/av-support/index.php?/Knowledgebase/Article/View/434/0/end-of-sale--end-of-life-for-f-prot-and-csam">end-of-life</link>. 1470 </para> 1471 </listitem> 1472 <listitem> 1473 <para> 1474 <literal>bird1</literal> and its modules 1475 <literal>services.bird</literal> as well as 1476 <literal>services.bird6</literal> have been removed. Upgrade 1477 to <literal>services.bird2</literal>. 1478 </para> 1479 </listitem> 1480 <listitem> 1481 <para> 1482 The options 1483 <literal>networking.interfaces.&lt;name&gt;.ipv4.routes</literal> 1484 and 1485 <literal>networking.interfaces.&lt;name&gt;.ipv6.routes</literal> 1486 are no longer ignored when using networkd instead of the 1487 default scripted network backend by setting 1488 <literal>networking.useNetworkd</literal> to 1489 <literal>true</literal>. 1490 </para> 1491 </listitem> 1492 <listitem> 1493 <para> 1494 The <literal>miller</literal> package has been upgraded from 1495 5.10.3 to 1496 <link xlink:href="https://github.com/johnkerl/miller/releases/tag/v6.2.0">6.2.0</link>. 1497 See 1498 <link xlink:href="https://miller.readthedocs.io/en/latest/new-in-miller-6">What’s 1499 new in Miller 6</link>. 1500 </para> 1501 </listitem> 1502 <listitem> 1503 <para> 1504 MultiMC has been replaced with the fork PrismLauncher due to 1505 upstream developers being hostile to 3rd party package 1506 maintainers. PrismLauncher removes all MultiMC branding and is 1507 aimed at providing proper 3rd party packages like the one 1508 contained in Nixpkgs. This change affects the data folder 1509 where game instances and other save and configuration files 1510 are stored. Users with existing installations should rename 1511 <literal>~/.local/share/multimc</literal> to 1512 <literal>~/.local/share/PrismLauncher</literal>. The main 1513 config file’s path has also moved from 1514 <literal>~/.local/share/multimc/multimc.cfg</literal> to 1515 <literal>~/.local/share/PrismLauncher/prismlauncher.cfg</literal>. 1516 </para> 1517 </listitem> 1518 <listitem> 1519 <para> 1520 <literal>systemd-nspawn@.service</literal> settings have been 1521 reverted to the default systemd behaviour. User namespaces are 1522 now activated by default. If you want to keep running nspawn 1523 containers without user namespaces you need to set 1524 <literal>systemd.nspawn.&lt;name&gt;.execConfig.PrivateUsers = false</literal> 1525 </para> 1526 </listitem> 1527 <listitem> 1528 <para> 1529 <literal>systemd-shutdown</literal> is now properly linked on 1530 shutdown to unmount all filesystems and device mapper devices 1531 cleanly. This can be disabled using 1532 <literal>systemd.shutdownRamfs.enable</literal>. 1533 </para> 1534 </listitem> 1535 <listitem> 1536 <para> 1537 The Tor SOCKS proxy is now actually disabled if 1538 <literal>services.tor.client.enable</literal> is set to 1539 <literal>false</literal> (the default). If you are using this 1540 functionality but didn’t change the setting or set it to 1541 <literal>false</literal>, you now need to set it to 1542 <literal>true</literal>. 1543 </para> 1544 </listitem> 1545 <listitem> 1546 <para> 1547 <literal>services.github-runner</literal> has been hardened. 1548 Notably address families and system calls have been 1549 restricted, which may adversely affect some kinds of testing, 1550 e.g. using <literal>AF_BLUETOOTH</literal> to test bluetooth 1551 devices. 1552 </para> 1553 </listitem> 1554 <listitem> 1555 <para> 1556 The terraform 0.12 compatibility has been removed and the 1557 <literal>terraform.withPlugins</literal> and 1558 <literal>terraform-providers.mkProvider</literal> 1559 implementations simplified. Providers now need to be stored 1560 under 1561 <literal>$out/libexec/terraform-providers/&lt;registry&gt;/&lt;owner&gt;/&lt;name&gt;/&lt;version&gt;/&lt;os&gt;_&lt;arch&gt;/terraform-provider-&lt;name&gt;_v&lt;version&gt;</literal> 1562 (which mkProvider does). 1563 </para> 1564 <para> 1565 This breaks back-compat so it’s not possible to mix-and-match 1566 with previous versions of nixpkgs. In exchange, it now becomes 1567 possible to use the providers from 1568 <link xlink:href="https://github.com/numtide/nixpkgs-terraform-providers-bin">nixpkgs-terraform-providers-bin</link> 1569 directly. 1570 </para> 1571 </listitem> 1572 <listitem> 1573 <para> 1574 The <literal>dendrite</literal> package has been upgraded from 1575 0.5.1 to 1576 <link xlink:href="https://github.com/matrix-org/dendrite/releases/tag/v0.6.5">0.6.5</link>. 1577 Instances configured with split sqlite databases, which has 1578 been the default in NixOS, require merging of the federation 1579 sender and signing key databases. See upstream 1580 <link xlink:href="https://github.com/matrix-org/dendrite/releases/tag/v0.6.0">release 1581 notes</link> on version 0.6.0 for details on database changes. 1582 </para> 1583 </listitem> 1584 <listitem> 1585 <para> 1586 The existing <literal>pkgs.opentelemetry-collector</literal> 1587 has been moved to 1588 <literal>pkgs.opentelemetry-collector-contrib</literal> to 1589 match the actual source being the <quote>contrib</quote> 1590 edition. <literal>pkgs.opentelemetry-collector</literal> is 1591 now the actual core release of opentelemetry-collector. If you 1592 use the community contributions you should change the package 1593 you refer to. If you don’t need them update your commands from 1594 <literal>otelcontribcol</literal> to 1595 <literal>otelcorecol</literal> and enjoy a 7x smaller binary. 1596 </para> 1597 </listitem> 1598 <listitem> 1599 <para> 1600 <literal>services.zookeeper</literal> has a new option 1601 <literal>jre</literal> for specifying the JRE to start 1602 zookeeper with. It defaults to the JRE that 1603 <literal>pkgs.zookeeper</literal> was wrapped with, instead of 1604 <literal>pkgs.jre</literal>. This changes the JRE to 1605 <literal>pkgs.jdk11_headless</literal> by default. 1606 </para> 1607 </listitem> 1608 <listitem> 1609 <para> 1610 <literal>pkgs.pgadmin</literal> now refers to 1611 <literal>pkgs.pgadmin4</literal>. <literal>pgadmin3</literal> 1612 has been removed. 1613 </para> 1614 </listitem> 1615 <listitem> 1616 <para> 1617 <literal>pkgs.minetestclient_4</literal> and 1618 <literal>pkgs.minetestserver_4</literal> have been removed, as 1619 the last 4.x release was in 2018. 1620 <literal>pkgs.minetestclient</literal> (equivalent to 1621 <literal>pkgs.minetest</literal> ) and 1622 <literal>pkgs.minetestserver</literal> can be used instead. 1623 </para> 1624 </listitem> 1625 <listitem> 1626 <para> 1627 <literal>pkgs.noto-fonts-cjk</literal> is now deprecated in 1628 favor of <literal>pkgs.noto-fonts-cjk-sans</literal> and 1629 <literal>pkgs.noto-fonts-cjk-serif</literal> because they each 1630 have different release schedules. To maintain compatibility 1631 with prior releases of Nixpkgs, 1632 <literal>pkgs.noto-fonts-cjk</literal> is currently an alias 1633 of <literal>pkgs.noto-fonts-cjk-sans</literal> and doesn’t 1634 include serif fonts. 1635 </para> 1636 </listitem> 1637 <listitem> 1638 <para> 1639 <literal>pkgs.epgstation</literal> has been upgraded from v1 1640 to v2, resulting in incompatible changes in the database 1641 scheme and configuration format. 1642 </para> 1643 </listitem> 1644 <listitem> 1645 <para> 1646 Some top-level settings under 1647 <link linkend="opt-services.epgstation.enable">services.epgstation</link> 1648 is now deprecated because it was redudant due to the same 1649 options being present in 1650 <link linkend="opt-services.epgstation.settings">services.epgstation.settings</link>. 1651 </para> 1652 </listitem> 1653 <listitem> 1654 <para> 1655 The option <literal>services.epgstation.basicAuth</literal> 1656 was removed because basic authentication support was dropped 1657 by upstream. 1658 </para> 1659 </listitem> 1660 <listitem> 1661 <para> 1662 The option 1663 <link linkend="opt-services.epgstation.database.passwordFile">services.epgstation.database.passwordFile</link> 1664 no longer has a default value. Make sure to set this option 1665 explicitly before upgrading. Change the database password if 1666 necessary. 1667 </para> 1668 </listitem> 1669 <listitem> 1670 <para> 1671 The 1672 <link linkend="opt-services.epgstation.settings">services.epgstation.settings</link> 1673 option now expects options for <literal>config.yml</literal> 1674 in EPGStation v2. 1675 </para> 1676 </listitem> 1677 <listitem> 1678 <para> 1679 Existing data for the 1680 <link linkend="opt-services.epgstation.enable">services.epgstation</link> 1681 module would have to be backed up prior to the upgrade. To 1682 back up exising data to 1683 <literal>/tmp/epgstation.bak</literal>, run 1684 <literal>sudo -u epgstation epgstation run backup /tmp/epgstation.bak</literal>. 1685 To import that data after to the upgrade, run 1686 <literal>sudo -u epgstation epgstation run v1migrate /tmp/epgstation.bak</literal> 1687 </para> 1688 </listitem> 1689 <listitem> 1690 <para> 1691 <literal>switch-to-configuration</literal> (the script that is 1692 run when running <literal>nixos-rebuild switch</literal> for 1693 example) has been reworked 1694 </para> 1695 <itemizedlist spacing="compact"> 1696 <listitem> 1697 <para> 1698 The interface that allows activation scripts to restart 1699 units has been streamlined. Restarting and reloading is 1700 now done by a single file 1701 <literal>/run/nixos/activation-restart-list</literal> that 1702 honors <literal>restartIfChanged</literal> and 1703 <literal>reloadIfChanged</literal> of the units. 1704 </para> 1705 <itemizedlist spacing="compact"> 1706 <listitem> 1707 <para> 1708 Preferring to reload instead of restarting can still 1709 be achieved using 1710 <literal>/run/nixos/activation-reload-list</literal>. 1711 </para> 1712 </listitem> 1713 </itemizedlist> 1714 </listitem> 1715 <listitem> 1716 <para> 1717 The script now uses a proper ini-file parser to parse 1718 systemd units. Some values are now only searched in one 1719 section instead of in the entire unit. This is only 1720 relevant for units that don’t use the NixOS systemd moule. 1721 </para> 1722 <itemizedlist spacing="compact"> 1723 <listitem> 1724 <para> 1725 <literal>RefuseManualStop</literal>, 1726 <literal>X-OnlyManualStart</literal>, 1727 <literal>X-StopOnRemoval</literal>, 1728 <literal>X-StopOnReconfiguration</literal> are only 1729 searched in the <literal>[Unit]</literal> section 1730 </para> 1731 </listitem> 1732 <listitem> 1733 <para> 1734 <literal>X-ReloadIfChanged</literal>, 1735 <literal>X-RestartIfChanged</literal>, 1736 <literal>X-StopIfChanged</literal> are only searched 1737 in the <literal>[Service]</literal> section 1738 </para> 1739 </listitem> 1740 </itemizedlist> 1741 </listitem> 1742 </itemizedlist> 1743 </listitem> 1744 <listitem> 1745 <para> 1746 The <literal>services.bookstack.cacheDir</literal> option has 1747 been removed, since the cache directory is now handled by 1748 systemd. 1749 </para> 1750 </listitem> 1751 <listitem> 1752 <para> 1753 The <literal>services.bookstack.extraConfig</literal> option 1754 has been replaced by 1755 <literal>services.bookstack.config</literal> which implements 1756 a 1757 <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link> 1758 configuration. 1759 </para> 1760 </listitem> 1761 <listitem> 1762 <para> 1763 <literal>lib.assertMsg</literal> and 1764 <literal>lib.assertOneOf</literal> no longer return 1765 <literal>false</literal> if the passed condition is 1766 <literal>false</literal>, <literal>throw</literal>ing the 1767 given error message instead (which makes the resulting error 1768 message less cluttered). This will not impact the behaviour of 1769 code using these functions as intended, namely as top-level 1770 wrapper for <literal>assert</literal> conditions. 1771 </para> 1772 </listitem> 1773 <listitem> 1774 <para> 1775 The <literal>vpnc</literal> package has been changed to use 1776 GnuTLS instead of OpenSSL by default for licensing reasons. 1777 </para> 1778 </listitem> 1779 <listitem> 1780 <para> 1781 The default version of <literal>nextcloud</literal> is 1782 <emphasis role="strong">nextcloud24</emphasis>. Please note 1783 that it’s <emphasis role="strong">not</emphasis> possible to 1784 upgrade <literal>nextcloud</literal> across multiple major 1785 versions! This means it’s e.g. not possible to upgrade from 1786 <literal>nextcloud22</literal> to 1787 <literal>nextcloud24</literal> in a single deploy and most 1788 <literal>21.11</literal> users will have to upgrade to 1789 <literal>nextcloud23</literal> first. 1790 </para> 1791 </listitem> 1792 <listitem> 1793 <para> 1794 <literal>pkgs.vimPlugins.onedark-nvim</literal> now refers to 1795 <link xlink:href="https://github.com/navarasu/onedark.nvim">navarasu/onedark.nvim</link> 1796 (formerly refers to 1797 <link xlink:href="https://github.com/olimorris/onedarkpro.nvim">olimorris/onedarkpro.nvim</link>). 1798 </para> 1799 </listitem> 1800 <listitem> 1801 <para> 1802 <literal>services.pipewire.enable</literal> will default to 1803 enabling the WirePlumber session manager instead of 1804 pipewire-media-session. pipewire-media-session is deprecated 1805 by upstream and not recommended, but can still be manually 1806 enabled by setting 1807 <literal>services.pipewire.media-session.enable</literal> to 1808 <literal>true</literal> and 1809 <literal>services.pipewire.wireplumber.enable</literal> to 1810 <literal>false</literal>. 1811 </para> 1812 </listitem> 1813 <listitem> 1814 <para> 1815 <literal>pkgs.makeDesktopItem</literal> has been refactored to 1816 provide a more idiomatic API. Specifically: 1817 </para> 1818 <itemizedlist spacing="compact"> 1819 <listitem> 1820 <para> 1821 All valid options as of FDO Desktop Entry specification 1822 version 1.4 can now be passed in as explicit arguments 1823 </para> 1824 </listitem> 1825 <listitem> 1826 <para> 1827 <literal>exec</literal> can now be null, for entries that 1828 are not of type Application 1829 </para> 1830 </listitem> 1831 <listitem> 1832 <para> 1833 <literal>mimeType</literal> argument is renamed to 1834 <literal>mimeTypes</literal> for consistency 1835 </para> 1836 </listitem> 1837 <listitem> 1838 <para> 1839 <literal>mimeTypes</literal>, 1840 <literal>categories</literal>, 1841 <literal>implements</literal>, 1842 <literal>keywords</literal>, <literal>onlyShowIn</literal> 1843 and <literal>notShowIn</literal> take lists of strings 1844 instead of one string with semicolon separators 1845 </para> 1846 </listitem> 1847 <listitem> 1848 <para> 1849 <literal>extraDesktopEntries</literal> renamed to 1850 <literal>extraConfig</literal> for consistency 1851 </para> 1852 </listitem> 1853 <listitem> 1854 <para> 1855 Actions should now be provided as an attrset 1856 <literal>actions</literal>, the <literal>Actions</literal> 1857 line will be autogenerated. 1858 </para> 1859 </listitem> 1860 <listitem> 1861 <para> 1862 <literal>extraEntries</literal> is removed. 1863 </para> 1864 </listitem> 1865 <listitem> 1866 <para> 1867 Additional validation is added both at eval time and at 1868 build time. 1869 </para> 1870 </listitem> 1871 </itemizedlist> 1872 <para> 1873 See the <literal>vscode</literal> package for a more detailed 1874 example. 1875 </para> 1876 </listitem> 1877 <listitem> 1878 <para> 1879 Existing <literal>resholve*</literal> functions have been 1880 renamed and nested under <literal>pkgs.resholve</literal>. 1881 Update uses to: 1882 </para> 1883 <itemizedlist spacing="compact"> 1884 <listitem> 1885 <para> 1886 <literal>resholvePackage</literal> -&gt; 1887 <literal>resholve.mkDerivation</literal> 1888 </para> 1889 </listitem> 1890 <listitem> 1891 <para> 1892 <literal>resholveScript</literal> -&gt; 1893 <literal>resholve.writeScript</literal> 1894 </para> 1895 </listitem> 1896 <listitem> 1897 <para> 1898 <literal>resholveScriptBin</literal> -&gt; 1899 <literal>resholve.writeScriptBin</literal> 1900 </para> 1901 </listitem> 1902 </itemizedlist> 1903 </listitem> 1904 <listitem> 1905 <para> 1906 <literal>pkgs.cosmopolitan</literal> no longer provides the 1907 <literal>cosmoc</literal> command. It has been moved to 1908 <literal>pkgs.cosmoc</literal>. 1909 </para> 1910 </listitem> 1911 <listitem> 1912 <para> 1913 <literal>pkgs.graalvmXX-ce</literal> packages no longer 1914 provide support for Python/Ruby/WASM, instead focusing only in 1915 Java and Native Image Support. If you need to add support 1916 back, please see the 1917 <literal>pkgs.graalvmCEPackages.mkGraal</literal> function to 1918 create your own customized version of GraalVM with support for 1919 what you need. 1920 </para> 1921 </listitem> 1922 </itemizedlist> 1923 </section> 1924 <section xml:id="sec-release-22.05-notable-changes"> 1925 <title>Other Notable Changes</title> 1926 <itemizedlist> 1927 <listitem> 1928 <para> 1929 The option 1930 <link linkend="opt-services.redis.servers">services.redis.servers</link> 1931 was added to support per-application 1932 <literal>redis-server</literal> which is more secure since 1933 Redis databases are only mere key prefixes without any 1934 configuration or ACL of their own. Backward-compatibility is 1935 preserved by mapping old 1936 <literal>services.redis.settings</literal> to 1937 <literal>services.redis.servers.&quot;&quot;.settings</literal>, 1938 but you are strongly encouraged to name each 1939 <literal>redis-server</literal> instance after the application 1940 using it, instead of keeping that nameless one. Except for the 1941 nameless 1942 <literal>services.redis.servers.&quot;&quot;</literal> still 1943 accessible at <literal>127.0.0.1:6379</literal>, and to the 1944 members of the Unix group <literal>redis</literal> through the 1945 Unix socket <literal>/run/redis/redis.sock</literal>, all 1946 other <literal>services.redis.servers.${serverName}</literal> 1947 are only accessible by default to the members of the Unix 1948 group <literal>redis-${serverName}</literal> through the Unix 1949 socket <literal>/run/redis-${serverName}/redis.sock</literal>. 1950 </para> 1951 </listitem> 1952 <listitem> 1953 <para> 1954 The option 1955 <link linkend="opt-virtualisation.vmVariant">virtualisation.vmVariant</link> 1956 was added to allow users to make changes to the 1957 <literal>nixos-rebuild build-vm</literal> configuration that 1958 do not apply to their normal system. 1959 </para> 1960 <para> 1961 The <literal>config.system.build.vm</literal> attribute now 1962 always exists and defaults to the value from 1963 <literal>vmVariant</literal>. Configurations that import the 1964 <literal>virtualisation/qemu-vm.nix</literal> module 1965 themselves will override this value, such that 1966 <literal>vmVariant</literal> is not used. 1967 </para> 1968 <para> 1969 Similarly 1970 <link linkend="opt-virtualisation.vmVariantWithBootLoader">virtualisation.vmVariantWithBootloader</link> 1971 was added. 1972 </para> 1973 </listitem> 1974 <listitem> 1975 <para> 1976 The configuration portion of the <literal>nix-daemon</literal> 1977 module has been reworked and exposed as 1978 <link xlink:href="options.html#opt-nix-settings">nix.settings</link>: 1979 </para> 1980 <itemizedlist spacing="compact"> 1981 <listitem> 1982 <para> 1983 Legacy options have been mapped to the corresponding 1984 options under under 1985 <link xlink:href="options.html#opt-nix.settings">nix.settings</link> 1986 and will be deprecated when NixOS 21.11 reaches end of 1987 life. 1988 </para> 1989 </listitem> 1990 <listitem> 1991 <para> 1992 <link xlink:href="options.html#opt-nix.buildMachines.publicHostKey">nix.buildMachines.publicHostKey</link> 1993 has been added. 1994 </para> 1995 </listitem> 1996 </itemizedlist> 1997 </listitem> 1998 <listitem> 1999 <para> 2000 <link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link> 2001 defaults to 1.23.2, which will enable 2002 <link xlink:href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html">Instance 2003 Metadata Service Version 2</link> and require tokens on new 2004 clusters with Kubernetes &gt;= 1.22. This will increase 2005 security by default, but may break some types of workloads. 2006 The default behaviour for 2007 <literal>spec.kubeDNS.nodeLocalDNS.forwardToKubeDNS</literal> 2008 has changed from <literal>true</literal> to 2009 <literal>false</literal>. Cilium now has 2010 <literal>disable-cnp-status-updates: true</literal> by 2011 default. Set this to false if you rely on the 2012 CiliumNetworkPolicy status fields. Support for Kubernetes 2013 1.17, the Lyft CNI, Weave CNI on Kubernetes &gt;= 1.23, CentOS 2014 7 and 8, Debian 9, RHEL 7, and Ubuntu 16.05 (Xenial) has been 2015 removed. See the 2016 <link xlink:href="https://kops.sigs.k8s.io/releases/1.22-notes/">1.22 2017 release notes</link> and 2018 <link xlink:href="https://kops.sigs.k8s.io/releases/1.23-notes/">1.23 2019 release notes</link> for more details, including other 2020 significant changes. 2021 </para> 2022 </listitem> 2023 <listitem> 2024 <para> 2025 Mattermost has been upgraded to extended support version 6.3 2026 as the previously packaged extended support version 5.37 is 2027 <link xlink:href="https://docs.mattermost.com/upgrade/extended-support-release.html">reaching 2028 end of life</link>. Migration may take some time, see the 2029 <link xlink:href="https://docs.mattermost.com/install/self-managed-changelog.html#release-v6-3-extended-support-release">changelog</link> 2030 and 2031 <link xlink:href="https://docs.mattermost.com/upgrade/important-upgrade-notes.html">important 2032 upgrade notes</link>. 2033 </para> 2034 </listitem> 2035 <listitem> 2036 <para> 2037 The 2038 <literal>writers.writePyPy2</literal>/<literal>writers.writePyPy3</literal> 2039 and corresponding 2040 <literal>writers.writePyPy2Bin</literal>/<literal>writers.writePyPy3Bin</literal> 2041 convenience functions to create executable Python 2/3 scripts 2042 using the PyPy interpreter were added. 2043 </para> 2044 </listitem> 2045 <listitem> 2046 <para> 2047 Some improvements have been made to the 2048 <literal>hadoop</literal> module: 2049 </para> 2050 <itemizedlist spacing="compact"> 2051 <listitem> 2052 <para> 2053 A <literal>gatewayRole</literal> option has been added, 2054 for deploying hadoop cluster configuration files to a node 2055 that does not have any active services 2056 </para> 2057 </listitem> 2058 <listitem> 2059 <para> 2060 Support for older versions of hadoop have been added to 2061 the module 2062 </para> 2063 </listitem> 2064 <listitem> 2065 <para> 2066 Overriding and extending site XML files has been made 2067 easier 2068 </para> 2069 </listitem> 2070 </itemizedlist> 2071 </listitem> 2072 <listitem> 2073 <para> 2074 The auto-upgrade service now accepts persistent (default: 2075 true) parameter. By default auto-upgrade will now run 2076 immediately if it would have been triggered at least once 2077 during the time when the timer was inactive. 2078 </para> 2079 </listitem> 2080 <listitem> 2081 <para> 2082 Mastodon now uses <literal>services.redis.servers</literal> to 2083 start a new redis server, instead of using a global redis 2084 server. This improves compatibility with other services that 2085 use redis. 2086 </para> 2087 <para> 2088 Note that this will recreate the redis database, although 2089 according to the 2090 <link xlink:href="https://docs.joinmastodon.org/admin/backups/">Mastodon 2091 docs</link>, this is almost harmless: 2092 </para> 2093 <blockquote> 2094 <para> 2095 Losing the Redis database is almost harmless: The only 2096 irrecoverable data will be the contents of the Sidekiq 2097 queues and scheduled retries of previously failed jobs. The 2098 home and list feeds are stored in Redis, but can be 2099 regenerated with tootctl. 2100 </para> 2101 </blockquote> 2102 <para> 2103 If you do want to save the redis database, you can use the 2104 following commands: 2105 </para> 2106 <programlisting language="bash"> 2107redis-cli save 2108cp /var/lib/redis/dump.rdb &quot;/var/lib/redis-mastodon/dump.rdb&quot; 2109</programlisting> 2110 </listitem> 2111 <listitem> 2112 <para> 2113 Peertube now uses services.redis.servers to start a new redis 2114 server, instead of using a global redis server. This improves 2115 compatibility with other services that use redis. 2116 </para> 2117 <para> 2118 Redis database is used for storage only cache and job queue. 2119 More information can be found here - 2120 <link xlink:href="https://docs.joinpeertube.org/contribute-architecture">Peertube 2121 architecture</link>. 2122 </para> 2123 <para> 2124 If you do want to save the redis database, you can use the 2125 following commands before upgrade OS: 2126 </para> 2127 <programlisting language="bash"> 2128redis-cli save 2129sudo mkdir /var/lib/redis-peertube 2130sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb 2131</programlisting> 2132 </listitem> 2133 <listitem> 2134 <para> 2135 Added the <literal>keter</literal> NixOS module. Keter reverse 2136 proxies requests to your loaded application based on virtual 2137 hostnames. 2138 </para> 2139 </listitem> 2140 <listitem> 2141 <para> 2142 If you are using Wayland you can choose to use the Ozone 2143 Wayland support in Chrome and several Electron apps by setting 2144 the environment variable <literal>NIXOS_OZONE_WL=1</literal> 2145 (for example via 2146 <literal>environment.sessionVariables.NIXOS_OZONE_WL = &quot;1&quot;</literal>). 2147 This is not enabled by default because Ozone Wayland is still 2148 under heavy development and behavior is not always flawless. 2149 Furthermore, not all Electron apps use the latest Electron 2150 versions. 2151 </para> 2152 </listitem> 2153 <listitem> 2154 <para> 2155 A new option group 2156 <literal>systemd.network.wait-online</literal> was added, with 2157 options to configure 2158 <literal>systemd-networkd-wait-online.service</literal>: 2159 </para> 2160 <itemizedlist spacing="compact"> 2161 <listitem> 2162 <para> 2163 <literal>anyInterface</literal> allows specifying that the 2164 network should be considered online when <emphasis>at 2165 least one</emphasis> interface is online (useful on 2166 laptops) 2167 </para> 2168 </listitem> 2169 <listitem> 2170 <para> 2171 <literal>timeout</literal> defines how long to wait for 2172 the network to come online 2173 </para> 2174 </listitem> 2175 <listitem> 2176 <para> 2177 <literal>extraArgs</literal> for everything else 2178 </para> 2179 </listitem> 2180 </itemizedlist> 2181 </listitem> 2182 <listitem> 2183 <para> 2184 The <literal>influxdb2</literal> package was split into 2185 <literal>influxdb2-server</literal> and 2186 <literal>influxdb2-cli</literal>, matching the split that took 2187 place upstream. A combined <literal>influxdb2</literal> 2188 package is still provided in this release for backwards 2189 compatibilty, but will be removed at a later date. 2190 </para> 2191 </listitem> 2192 <listitem> 2193 <para> 2194 The <literal>unifi</literal> package was switched from 2195 <literal>unifi6</literal> to <literal>unifi7</literal>. Direct 2196 downgrades from Unifi 7 to Unifi 6 are not possible and 2197 require restoring from a backup made by Unifi 6. 2198 </para> 2199 </listitem> 2200 <listitem> 2201 <para> 2202 <literal>programs.zsh.autosuggestions.strategy</literal> now 2203 takes a list of strings instead of a string. 2204 </para> 2205 </listitem> 2206 <listitem> 2207 <para> 2208 The <literal>asterisk</literal> and 2209 <literal>asterisk-stable</literal> packages were switched from 2210 <literal>asterisk_18</literal> to the newly-packaged 2211 <literal>asterisk_19</literal>. Asterisk 13 and 17 have been 2212 removed as they have reached their end of life. 2213 </para> 2214 </listitem> 2215 <listitem> 2216 <para> 2217 The <literal>services.unifi.openPorts</literal> option default 2218 value of <literal>true</literal> is now deprecated and will be 2219 changed to <literal>false</literal> in 22.11. Configurations 2220 using this default will print a warning when rebuilt. 2221 </para> 2222 </listitem> 2223 <listitem> 2224 <para> 2225 The <literal>services.unifi-video.openPorts</literal> option 2226 default value of <literal>true</literal> is now deprecated and 2227 will be changed to <literal>false</literal> in 22.11. 2228 Configurations using this default will print a warning when 2229 rebuilt. 2230 </para> 2231 </listitem> 2232 <listitem> 2233 <para> 2234 <literal>security.acme</literal> certificates will now 2235 correctly check for CA revokation before reaching their 2236 minimum age. 2237 </para> 2238 </listitem> 2239 <listitem> 2240 <para> 2241 Removing domains from 2242 <literal>security.acme.certs._name_.extraDomainNames</literal> 2243 will now correctly remove those domains during rebuild/renew. 2244 </para> 2245 </listitem> 2246 <listitem> 2247 <para> 2248 MariaDB is now offered in several versions, not just the 2249 newest one. So if you have a need for running MariaDB 10.4 for 2250 example, you can now just set 2251 <literal>services.mysql.package = pkgs.mariadb_104;</literal>. 2252 In general, it is recommended to run the newest version, to 2253 get the newest features, while sticking with an LTS version 2254 will most likely provide a more stable experience. Sometimes 2255 software is also incompatible with the newest version of 2256 MariaDB. 2257 </para> 2258 </listitem> 2259 <listitem> 2260 <para> 2261 The option 2262 <link linkend="opt-programs.ssh.enableAskPassword">programs.ssh.enableAskPassword</link> 2263 was added, decoupling the setting of 2264 <literal>SSH_ASKPASS</literal> from 2265 <literal>services.xserver.enable</literal>. This allows easy 2266 usage in non-X11 environments, e.g. Wayland. 2267 </para> 2268 </listitem> 2269 <listitem> 2270 <para> 2271 <link linkend="opt-programs.ssh.knownHosts">programs.ssh.knownHosts</link> 2272 has gained an <literal>extraHostNames</literal> option to 2273 augment <literal>hostNames</literal>. It is now possible to 2274 use the attribute name of a <literal>knownHosts</literal> 2275 entry as the primary host name and specify secondary host 2276 names using <literal>extraHostNames</literal> without having 2277 to duplicate the primary host name. 2278 </para> 2279 </listitem> 2280 <listitem> 2281 <para> 2282 The <literal>services.stubby</literal> module was converted to 2283 a 2284 <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link> 2285 configuration. 2286 </para> 2287 </listitem> 2288 <listitem> 2289 <para> 2290 The option 2291 <link linkend="opt-services.xserver.desktopManager.runXdgAutostartIfNone">services.xserver.desktopManager.runXdgAutostartIfNone</link> 2292 was added in order to automatically run XDG autostart files 2293 for sessions without a desktop manager. This replaces helpers 2294 like the <literal>dex</literal> package. 2295 </para> 2296 </listitem> 2297 <listitem> 2298 <para> 2299 When setting 2300 <link linkend="opt-i18n.inputMethod.enabled">i18n.inputMethod.enabled</link> 2301 to <literal>fcitx5</literal>, it no longer creates 2302 corresponding systemd user services. It now relies on XDG 2303 autostart files to start and work properly in your desktop 2304 sessions. If you are using only a window manager without a 2305 desktop manager, you need to enable 2306 <literal>services.xserver.desktopManager.runXdgAutostartIfNone</literal> 2307 or using the <literal>dex</literal> package to make 2308 <literal>fcitx5</literal> work. 2309 </para> 2310 </listitem> 2311 <listitem> 2312 <para> 2313 The option <literal>services.duplicati.dataDir</literal> has 2314 been added to allow changing the location of duplicati’s 2315 files. 2316 </para> 2317 </listitem> 2318 <listitem> 2319 <para> 2320 The options <literal>boot.extraModprobeConfig</literal> and 2321 <literal>boot.blacklistedKernelModules</literal> now also take 2322 effect in the initrd by copying the file 2323 <literal>/etc/modprobe.d/nixos.conf</literal> into the initrd. 2324 </para> 2325 </listitem> 2326 <listitem> 2327 <para> 2328 <literal>nixos-generate-config</literal> now puts the dhcp 2329 configuration in <literal>hardware-configuration.nix</literal> 2330 instead of <literal>configuration.nix</literal>. 2331 </para> 2332 </listitem> 2333 <listitem> 2334 <para> 2335 ORY Kratos was updated to version 0.9.0-alpha.3, which 2336 introduces some breaking changes: 2337 </para> 2338 <itemizedlist spacing="compact"> 2339 <listitem> 2340 <para> 2341 All endpoints at the Admin API are now exposed at 2342 <literal>/admin/</literal>. For example, endpoint 2343 <literal>https://kratos:4434/identities</literal> is now 2344 exposed at 2345 <literal>https://kratos:4434/admin/identities</literal> 2346 </para> 2347 </listitem> 2348 <listitem> 2349 <para> 2350 Configuration key 2351 <literal>selfservice.whitelisted_return_urls</literal> has 2352 been renamed to <literal>allowed_return_urls</literal> 2353 </para> 2354 </listitem> 2355 <listitem> 2356 <para> 2357 The <literal>password_identifier</literal> form field of 2358 the password login strategy has been renamed to 2359 <literal>identifier</literal> to make compatibility with 2360 passwordless flows possible. 2361 </para> 2362 </listitem> 2363 <listitem> 2364 <para> 2365 Instead of having a global 2366 <literal>default_schema_url</literal> which developers 2367 used to update their schema, you now need to define the 2368 <literal>default_schema_id</literal> which must reference 2369 schema ID in your config. 2370 </para> 2371 </listitem> 2372 <listitem> 2373 <para> 2374 Calling <literal>/self-service/recovery</literal> without 2375 flow ID or with an invalid flow ID while authenticated 2376 will now respond with an error instead of redirecting to 2377 the default page. 2378 </para> 2379 </listitem> 2380 <listitem> 2381 <para> 2382 If you are relying on the SQLite images, update your 2383 Docker Pull commands as follows: 2384 </para> 2385 <itemizedlist spacing="compact"> 2386 <listitem> 2387 <para> 2388 <literal>docker pull oryd/kratos:{version}</literal> 2389 </para> 2390 </listitem> 2391 </itemizedlist> 2392 </listitem> 2393 <listitem> 2394 <para> 2395 Additionally, all passwords now have to be at least 8 2396 characters long. 2397 </para> 2398 </listitem> 2399 <listitem> 2400 <para> 2401 For more details, see: 2402 </para> 2403 <itemizedlist spacing="compact"> 2404 <listitem> 2405 <para> 2406 <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.8.1-alpha.1">Release 2407 Notes for v0.8.1-alpha-1</link> 2408 </para> 2409 </listitem> 2410 <listitem> 2411 <para> 2412 <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.8.2-alpha.1">Release 2413 Notes for v0.8.2-alpha-1</link> 2414 </para> 2415 </listitem> 2416 <listitem> 2417 <para> 2418 <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.1">Release 2419 Notes for v0.9.0-alpha-1</link> 2420 </para> 2421 </listitem> 2422 <listitem> 2423 <para> 2424 <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.3">Release 2425 Notes for v0.9.0-alpha-3</link> 2426 </para> 2427 </listitem> 2428 </itemizedlist> 2429 </listitem> 2430 </itemizedlist> 2431 </listitem> 2432 <listitem> 2433 <para> 2434 <literal>fetchFromSourcehut</literal> now allows fetching 2435 repositories recursively using <literal>fetchgit</literal> or 2436 <literal>fetchhg</literal> if the argument 2437 <literal>fetchSubmodules</literal> is set to 2438 <literal>true</literal>. 2439 </para> 2440 </listitem> 2441 <listitem> 2442 <para> 2443 A module for declarative configuration of openconnect VPN 2444 profiles was added under 2445 <literal>networking.openconnect</literal>. 2446 </para> 2447 </listitem> 2448 <listitem> 2449 <para> 2450 The <literal>element-desktop</literal> package now has an 2451 <literal>useKeytar</literal> option (defaults to 2452 <literal>true</literal>), which allows disabling 2453 <literal>keytar</literal> and in turn 2454 <literal>libsecret</literal> usage (which binds to native 2455 credential managers / keychain libraries). 2456 </para> 2457 </listitem> 2458 <listitem> 2459 <para> 2460 The option <literal>services.thelounge.plugins</literal> has 2461 been added to allow installing plugins for The Lounge. Plugins 2462 can be found in 2463 <literal>pkgs.theLoungePlugins.plugins</literal> and 2464 <literal>pkgs.theLoungePlugins.themes</literal>. 2465 </para> 2466 </listitem> 2467 <listitem> 2468 <para> 2469 The option 2470 <literal>services.xserver.videoDriver = [ &quot;nvidia&quot; ];</literal> 2471 will now also install 2472 <link xlink:href="https://github.com/elFarto/nvidia-vaapi-driver">nvidia 2473 VA-API drivers</link> by default. 2474 </para> 2475 </listitem> 2476 <listitem> 2477 <para> 2478 The <literal>firmwareLinuxNonfree</literal> package has been 2479 renamed to <literal>linux-firmware</literal>. 2480 </para> 2481 </listitem> 2482 <listitem> 2483 <para> 2484 It is now possible to specify wordlists to include as handy to 2485 access environment variables using the 2486 <literal>config.environment.wordlist</literal> configuration 2487 options. 2488 </para> 2489 </listitem> 2490 <listitem> 2491 <para> 2492 The <literal>services.mbpfan</literal> module was converted to 2493 a 2494 <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 2495 0042</link> configuration. 2496 </para> 2497 </listitem> 2498 <listitem> 2499 <para> 2500 The default value for 2501 <literal>programs.spacefm.settings.graphical_su</literal> got 2502 unset. It previously pointed to <literal>gksu</literal> which 2503 has been removed. 2504 </para> 2505 </listitem> 2506 <listitem> 2507 <para> 2508 The <link xlink:href="https://dino.im">Dino</link> XMPP client 2509 was updated to 0.3, adding support for audio and video calls. 2510 </para> 2511 </listitem> 2512 <listitem> 2513 <para> 2514 <literal>services.mattermost.plugins</literal> has been added 2515 to allow the declarative installation of Mattermost plugins. 2516 Plugins are automatically repackaged using autoPatchelf. 2517 </para> 2518 </listitem> 2519 <listitem> 2520 <para> 2521 <link linkend="opt-services.logrotate.enable">services.logrotate.enable</link> 2522 now defaults to true if any rotate path has been defined, and 2523 some paths have been added by default. 2524 </para> 2525 </listitem> 2526 <listitem> 2527 <para> 2528 The logrotate module also has been updated to freeform syntax: 2529 <literal>services.logrotate.paths</literal> and 2530 <literal>services.logrotate.extraConfig</literal> will work, 2531 but issue deprecation warnings and 2532 <link linkend="opt-services.logrotate.settings">services.logrotate.settings</link> 2533 should now be used instead. 2534 </para> 2535 </listitem> 2536 <listitem> 2537 <para> 2538 <literal>security.pam.ussh</literal> has been added, which 2539 allows authorizing PAM sessions based on SSH 2540 <emphasis>certificates</emphasis> held within an SSH agent, 2541 using 2542 <link xlink:href="https://github.com/uber/pam-ussh">pam-ussh</link>. 2543 </para> 2544 </listitem> 2545 <listitem> 2546 <para> 2547 The <literal>vscode-extensions.ionide.ionide-fsharp</literal> 2548 package has been updated to 6.0.0 and now requires .NET 6.0. 2549 </para> 2550 </listitem> 2551 <listitem> 2552 <para> 2553 The <literal>phpPackages.box</literal> package has been 2554 updated from 2.7.5 to 3.16.0. See the 2555 <link xlink:href="https://github.com/box-project/box/blob/master/UPGRADE.md#from-27-to-30">upgrade 2556 guide</link> for more details. 2557 </para> 2558 </listitem> 2559 <listitem> 2560 <para> 2561 The <literal>zrepl</literal> package has been updated from 2562 0.4.0 to 0.5: 2563 </para> 2564 <itemizedlist spacing="compact"> 2565 <listitem> 2566 <para> 2567 The RPC protocol version was bumped; all zrepl daemons in 2568 a setup must be updated and restarted before replication 2569 can resume. 2570 </para> 2571 </listitem> 2572 <listitem> 2573 <para> 2574 A bug involving encrypt-on-receive has been fixed. Read 2575 the 2576 <link xlink:href="https://zrepl.github.io/configuration/sendrecvoptions.html#job-recv-options-placeholder">zrepl 2577 documentation</link> and check the output of 2578 <literal>zfs get -r encryption,zrepl:placeholder PATH_TO_ROOTFS</literal> 2579 on the receiver. 2580 </para> 2581 </listitem> 2582 </itemizedlist> 2583 </listitem> 2584 <listitem> 2585 <para> 2586 The <literal>polybar</literal> package has been updated from 2587 3.5.7 to 3.6.2. See 2588 <link xlink:href="https://github.com/polybar/polybar/releases/tag/3.6.0">the 2589 changelog</link> for more details. 2590 </para> 2591 <itemizedlist spacing="compact"> 2592 <listitem> 2593 <para> 2594 Breaking changes include changes to escaping rules in 2595 configuration values, changes in behavior when 2596 encountering invalid tag names, and changes to 2597 inter-process-messaging (IPC). 2598 </para> 2599 </listitem> 2600 </itemizedlist> 2601 </listitem> 2602 <listitem> 2603 <para> 2604 Renamed option 2605 <literal>services.openssh.challengeResponseAuthentication</literal> 2606 to 2607 <literal>services.openssh.kbdInteractiveAuthentication</literal>. 2608 Reason is that the old name has been deprecated upstream. 2609 Using the old option name will still work, but produce a 2610 warning. 2611 </para> 2612 </listitem> 2613 <listitem> 2614 <para> 2615 <literal>services.autorandr</literal> now allows for adding 2616 hooks and profiles declaratively. 2617 </para> 2618 </listitem> 2619 <listitem> 2620 <para> 2621 The <literal>pomerium-cli</literal> command has been moved out 2622 of the <literal>pomerium</literal> package into the 2623 <literal>pomerium-cli</literal> package, following upstream’s 2624 repository split. If you are using the 2625 <literal>pomerium-cli</literal> command, you should now 2626 install the <literal>pomerium-cli</literal> package. 2627 </para> 2628 </listitem> 2629 <listitem> 2630 <para> 2631 The option 2632 <link linkend="opt-networking.networkmanager.enableFccUnlock">services.networking.networkmanager.enableFccUnlock</link> 2633 was added to support FCC unlock procedures. Since release 2634 1.18.4, the ModemManager daemon no longer automatically 2635 performs the FCC unlock procedure by default. See 2636 <link xlink:href="https://modemmanager.org/docs/modemmanager/fcc-unlock/">the 2637 docs</link> for more details. 2638 </para> 2639 </listitem> 2640 <listitem> 2641 <para> 2642 <literal>programs.tmux</literal> has a new option 2643 <literal>plugins</literal> that accepts a list of packages 2644 from the <literal>tmuxPlugins</literal> group. The specified 2645 packages are added to the system and loaded by 2646 <literal>tmux</literal>. 2647 </para> 2648 </listitem> 2649 <listitem> 2650 <para> 2651 The polkit service, available at 2652 <literal>security.polkit.enable</literal>, is now disabled by 2653 default. It will automatically be enabled through services and 2654 desktop environments as needed. 2655 </para> 2656 </listitem> 2657 <listitem> 2658 <para> 2659 <literal>mercury</literal> was updated to 22.01.1, which has 2660 some breaking changes 2661 (<link xlink:href="https://dl.mercurylang.org/release/release-notes-22.01.html">Mercury 2662 22.01 news</link>). 2663 </para> 2664 </listitem> 2665 <listitem> 2666 <para> 2667 xfsprogs was update to version 5.15, which enables inobtcount 2668 and bigtime by default on filesystem creation. Support for 2669 these features was added in kernel 5.10 and deemed stable in 2670 kernel 5.15. If you want to be able to mount XFS filesystems 2671 created with this release of xfsprogs on kernel releases older 2672 than 5.10, you need to format them with 2673 <literal>mkfs.xfs -m bigtime=0 -m inobtcount=0</literal>. 2674 </para> 2675 </listitem> 2676 <listitem> 2677 <para> 2678 <literal>services.xserver.desktopManager.xfce</literal> now 2679 includes Xfce’s screen locker, 2680 <literal>xfce4-screensaver</literal> that is enabled by 2681 default. You can disable it by setting 2682 <literal>false</literal> to 2683 <link linkend="opt-services.xserver.desktopManager.xfce.enableScreensaver">services.xserver.desktopManager.xfce.enableScreensaver</link>. 2684 </para> 2685 </listitem> 2686 <listitem> 2687 <para> 2688 The <literal>hadoop</literal> package has added support for 2689 <literal>aarch64-linux</literal> and 2690 <literal>aarch64-darwin</literal> as of 3.3.1 2691 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158613">#158613</link>). 2692 </para> 2693 </listitem> 2694 <listitem> 2695 <para> 2696 The <literal>R</literal> package now builds again on 2697 <literal>aarch64-darwin</literal> 2698 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>). 2699 </para> 2700 </listitem> 2701 <listitem> 2702 <para> 2703 The <literal>nss</literal> package was split into 2704 <literal>nss_esr</literal> and <literal>nss_latest</literal>, 2705 with <literal>nss</literal> being an alias for 2706 <literal>nss_esr</literal>. This was done to ease maintenance 2707 of <literal>nss</literal> and dependent high-profile packages 2708 like <literal>firefox</literal>. 2709 </para> 2710 </listitem> 2711 <listitem> 2712 <para> 2713 The default <literal>scribus</literal> version is now 1.5, 2714 while version 1.4 is still available as 2715 <literal>scribus_1_4</literal> 2716 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/172700">#172700</link>). 2717 </para> 2718 </listitem> 2719 <listitem> 2720 <para> 2721 The Nextcloud module now supports to create a Mysql database 2722 automatically with 2723 <literal>services.nextcloud.database.createLocally</literal> 2724 enabled. 2725 </para> 2726 </listitem> 2727 <listitem> 2728 <para> 2729 The Nextcloud module now allows setting the value of the 2730 <literal>max-age</literal> directive of the 2731 <literal>Strict-Transport-Security</literal> HTTP header, 2732 which is now controlled by the 2733 <literal>services.nextcloud.https</literal> option, rather 2734 than <literal>services.nginx.recommendedHttpHeaders</literal>. 2735 </para> 2736 </listitem> 2737 <listitem> 2738 <para> 2739 The <literal>spark3</literal> package has been updated from 2740 3.1.2 to 3.2.1 2741 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/160075">#160075</link>): 2742 </para> 2743 <itemizedlist spacing="compact"> 2744 <listitem> 2745 <para> 2746 Testing has been enabled for 2747 <literal>aarch64-linux</literal> in addition to 2748 <literal>x86_64-linux</literal>. 2749 </para> 2750 </listitem> 2751 <listitem> 2752 <para> 2753 The <literal>spark3</literal> package is now usable on 2754 <literal>aarch64-darwin</literal> as a result of 2755 <link xlink:href="https://github.com/NixOS/nixpkgs/pull/158613">#158613</link> 2756 and 2757 <link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>. 2758 </para> 2759 </listitem> 2760 </itemizedlist> 2761 </listitem> 2762 <listitem> 2763 <para> 2764 The option <literal>services.snapserver.openFirewall</literal> 2765 will no longer default to <literal>true</literal> starting 2766 with NixOS 22.11. Enable it explicitly if you need to control 2767 Snapserver remotely or connect streamig clients from other 2768 hosts. 2769 </para> 2770 </listitem> 2771 <listitem> 2772 <para> 2773 The option 2774 <link xlink:href="options.html#opt-networking.useDHCP">networking.useDHCP</link> 2775 isn’t deprecated anymore. When using 2776 <link xlink:href="options.html#opt-networking.useNetworkd"><literal>systemd-networkd</literal></link>, 2777 a generic <literal>.network</literal>-unit is added which 2778 enables DHCP for each interface matching 2779 <literal>en*</literal>, <literal>eth*</literal> or 2780 <literal>wl*</literal> with priority 99 (which means that it 2781 doesn’t have any effect if such an interface is matched by a 2782 <literal>.network-</literal>unit with a lower priority). In 2783 case of scripted networking, no behavior was changed. 2784 </para> 2785 </listitem> 2786 <listitem> 2787 <para> 2788 The new 2789 <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook"><literal>postgresqlTestHook</literal></link> 2790 runs a PostgreSQL server for the duration of package checks. 2791 </para> 2792 </listitem> 2793 <listitem> 2794 <para> 2795 <literal>zfs</literal> was updated from 2.1.4 to 2.1.5, 2796 enabling it to be used with Linux kernel 5.18. 2797 </para> 2798 </listitem> 2799 <listitem> 2800 <para> 2801 <literal>stdenv.mkDerivation</literal> now supports a 2802 self-referencing <literal>finalAttrs:</literal> parameter 2803 containing the final <literal>mkDerivation</literal> arguments 2804 including overrides. <literal>drv.overrideAttrs</literal> now 2805 supports two parameters 2806 <literal>finalAttrs: previousAttrs:</literal>. This allows 2807 packaging configuration to be overridden in a consistent 2808 manner by providing an alternative to 2809 <literal>rec {}</literal> syntax. 2810 </para> 2811 <para> 2812 Additionally, <literal>passthru</literal> can now reference 2813 <literal>finalAttrs.finalPackage</literal> containing the 2814 final package, including attributes such as the output paths 2815 and <literal>overrideAttrs</literal>. 2816 </para> 2817 <para> 2818 New language integrations can be simplified by overriding a 2819 <quote>prototype</quote> package containing the 2820 language-specific logic. This removes the need for a extra 2821 layer of overriding for the <quote>generic builder</quote> 2822 arguments, thus removing a usability problem and source of 2823 error. 2824 </para> 2825 </listitem> 2826 </itemizedlist> 2827 </section> 2828</section>