···25252626- The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream.
27272828+- The Pocket ID module ([`services.pocket-id`][#opt-services.pocket-id.enable]) and package (`pocket-id`) has been updated to 1.0.0. Some environment variables have been changed or removed, see the [migration guide](https://pocket-id.org/docs/setup/migrate-to-v1/).
2929+2830- `renovate` was updated to v40. See the [upstream release notes](https://github.com/renovatebot/renovate/releases/tag/40.0.0) for breaking changes.
29313032## Other Notable Changes {#sec-release-25.11-notable-changes}
···167167 changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
168168 description = "Mozilla Firefox, free web browser (binary package)";
169169 homepage = "https://www.mozilla.org/firefox/";
170170- license = licenses.mpl20;
170170+ license = {
171171+ shortName = "firefox";
172172+ fullName = "Firefox Terms of Use";
173173+ url = "https://www.mozilla.org/about/legal/terms/firefox/";
174174+ # "You Are Responsible for the Consequences of Your Use of Firefox"
175175+ # (despite the heading, not an indemnity clause) states the following:
176176+ #
177177+ # > You agree that you will not use Firefox to infringe anyone’s rights
178178+ # > or violate any applicable laws or regulations.
179179+ # >
180180+ # > You will not do anything that interferes with or disrupts Mozilla’s
181181+ # > services or products (or the servers and networks which are connected
182182+ # > to Mozilla’s services).
183183+ #
184184+ # This conflicts with FSF freedom 0: "The freedom to run the program as
185185+ # you wish, for any purpose". (Why should Mozilla be involved in
186186+ # instances where you break your local laws just because you happen to
187187+ # use Firefox whilst doing it?)
188188+ free = false;
189189+ redistributable = true; # since MPL-2.0 still applies
190190+ };
171191 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
172192 platforms = builtins.attrNames mozillaPlatforms;
173193 hydraPlatforms = [ ];
···11+# Using an external Containerd
22+33+K3s ships with its own containerd binary, however, sometimes it's necessary to use an external
44+containerd. This can be done in a few lines of configuration.
55+66+## Configure Containerd
77+88+```nix
99+virtualisation.containerd = {
1010+ enable = true;
1111+ settings.plugins."io.containerd.grpc.v1.cri".cni = {
1212+ bin_dir = "/var/lib/rancher/k3s/data/current/bin";
1313+ conf_dir = "/var/lib/rancher/k3s/agent/etc/cni/net.d";
1414+ };
1515+ # Optionally, configure containerd to use the k3s pause image
1616+ settings.plugins."io.containerd.grpc.v1.cri" = {
1717+ sandbox_image = "docker.io/rancher/mirrored-pause:3.6";
1818+ };
1919+};
2020+```
2121+2222+## Configure k3s
2323+2424+```nix
2525+services.k3s = {
2626+ enable = true;
2727+ extraFlags = [ "--container-runtime-endpoint unix:///run/containerd/containerd.sock" ];
2828+};
2929+```
3030+3131+## Importing Container Images
3232+3333+K3s provides the `services.k3s.images` option to import container images at startup. This option
3434+does **not** work with an external containerd, but you can import the images via
3535+`ctr -n=k8s.io image import /var/lib/rancher/k3s/agent/images/*`. Note that you need to set the
3636+`k8s.io` namespace to make the images available to the cluster.