···2233## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
4455-The `wrapFirefox` function allows to pass policies, preferences and extension that are available to firefox. With the help of `fetchFirefoxAddon` this allows build a firefox version that already comes with addons pre-installed:
55+The `wrapFirefox` function allows to pass policies, preferences and extension that are available to Firefox. With the help of `fetchFirefoxAddon` this allows build a Firefox version that already comes with addons pre-installed:
6677```nix
88{
99- myFirefox = wrapFirefox firefox-unwrapped {
99+ # Nix firefox addons only work with the firefox-esr package.
1010+ myFirefox = wrapFirefox firefox-esr-unwrapped {
1011 nixExtensions = [
1112 (fetchFirefoxAddon {
1213 name = "ublock"; # Has to be unique!
···4546Nix installed addons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded addons are checksumed and manual addons can't be installed. Also make sure that the `name` field of fetchFirefoxAddon is unique. If you remove an addon from the nixExtensions array, rebuild and start Firefox the removed addon will be completly removed with all of its settings.
46474748## Troubleshooting {#sec-firefox-troubleshooting}
4949+If addons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for addons thus nix addons get disabled by the normal Firefox binary.
5050+4851If addons do not appear installed although they have been defined in your nix configuration file reset the local addon state of your Firefox profile by clicking `help -> restart with addons disabled -> restart -> refresh firefox`. This can happen if you switch from manual addon mode to nix addon mode and then back to manual mode and then again to nix addon mode.
4952
+5-5
lib/fixed-points.nix
···7272 # into one where changes made in the first are available in the
7373 # 'super' of the second
7474 composeExtensions =
7575- f: g: self: super:
7676- let fApplied = f self super;
7777- super' = super // fApplied;
7878- in fApplied // g self super';
7575+ f: g: final: prev:
7676+ let fApplied = f final prev;
7777+ prev' = prev // fApplied;
7878+ in fApplied // g final prev';
79798080 # Compose several extending functions of the type expected by 'extends' into
8181 # one where changes made in preceding functions are made available to
···8484 # composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet
8585 # ^final ^prev ^overrides ^final ^prev ^overrides
8686 composeManyExtensions =
8787- lib.foldr (x: y: composeExtensions x y) (self: super: {});
8787+ lib.foldr (x: y: composeExtensions x y) (final: prev: {});
88888989 # Create an overridable, recursive attribute set. For example:
9090 #
···304304 </listitem>
305305 <listitem>
306306 <para>
307307+ Firefox v91 does not support addons with invalid signature
308308+ anymore. Firefox ESR needs to be used for nix addon support.
309309+ </para>
310310+ </listitem>
311311+ <listitem>
312312+ <para>
307313 The <literal>erigon</literal> ethereum node has moved to a new
308314 database format in <literal>2021-05-04</literal>, and requires
309315 a full resync
316316+ </para>
317317+ </listitem>
318318+ <listitem>
319319+ <para>
320320+ The <literal>erigon</literal> ethereum node has moved it’s
321321+ database location in <literal>2021-08-03</literal>, users
322322+ upgrading must manually move their chaindata (see
323323+ <link xlink:href="https://github.com/ledgerwatch/erigon/releases/tag/v2021.08.03">release
324324+ notes</link>).
310325 </para>
311326 </listitem>
312327 <listitem>
···870885 kernel 5.7 or later, the <literal>exfatprogs</literal>
871886 user-space utilities are used instead of
872887 <literal>exfat</literal>.
888888+ </para>
889889+ </listitem>
890890+ <listitem>
891891+ <para>
892892+ The <literal>todoman</literal> package was upgraded from 3.9.0
893893+ to 4.0.0. This introduces breaking changes in the
894894+ <link xlink:href="https://todoman.readthedocs.io/en/stable/configure.html#configuration-file">configuration
895895+ file</link> format.
873896 </para>
874897 </listitem>
875898 </itemizedlist>
+7
nixos/doc/manual/release-notes/rl-2111.section.md
···64646565## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
66666767+6768- The `paperless` module and package have been removed. All users should migrate to the
6869 successor `paperless-ng` instead. The Paperless project [has been
6970 archived](https://github.com/the-paperless-project/paperless/commit/9b0063c9731f7c5f65b1852cb8caff97f5e40ba4)
···113114114115- The `staticjinja` package has been upgraded from 1.0.4 to 4.1.0
115116117117+- Firefox v91 does not support addons with invalid signature anymore. Firefox ESR needs to be used for nix addon support.
118118+116119- The `erigon` ethereum node has moved to a new database format in `2021-05-04`, and requires a full resync
120120+121121+- The `erigon` ethereum node has moved it's database location in `2021-08-03`, users upgrading must manually move their chaindata (see [release notes](https://github.com/ledgerwatch/erigon/releases/tag/v2021.08.03)).
117122118123- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
119124···252257253258- If `exfat` is included in `boot.supportedFilesystems` and when using kernel 5.7
254259 or later, the `exfatprogs` user-space utilities are used instead of `exfat`.
260260+261261+- The `todoman` package was upgraded from 3.9.0 to 4.0.0. This introduces breaking changes in the [configuration file](https://todoman.readthedocs.io/en/stable/configure.html#configuration-file) format.
255262256263## Other Notable Changes {#sec-release-21.11-notable-changes}
257264
···9191 # and an extid attribute
9292 extensions = if nameArray != (lib.unique nameArray) then
9393 throw "Firefox addon name needs to be unique"
9494+ else if ! (lib.hasSuffix "esr" browser.name) then
9595+ throw "Nix addons are only supported in Firefox ESR"
9496 else builtins.map (a:
9597 if ! (builtins.hasAttr "extid" a) then
9698 throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"