{
  lib,
  channels,
  ...
}: let
  buildFirefoxXpiAddon = lib.makeOverridable ({
    stdenv ? channels.nixpkgs.stdenv,
    fetchurl ? channels.nixpkgs.fetchurl,
    pname,
    version,
    addonId,
    url,
    sha256,
    meta,
    ...
  }:
    stdenv.mkDerivation {
      name = "${pname}-${version}";

      inherit meta;

      src = fetchurl {inherit url sha256;};

      preferLocalBuild = true;
      allowSubstitutes = true;

      passthru = {inherit addonId;};

      buildCommand = ''
        dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
        mkdir -p "$dst"
        install -v -m644 "$src" "$dst/${addonId}.xpi"
      '';
    });
in
  final: prev: {
    marleyos =
      prev.marleyos
      // {
        firefox-addons = import ./addons.nix {
          inherit buildFirefoxXpiAddon lib;
        };
      };
  }