Hello,
I would like to be able to install some unfree firefox extensions, but without allowing any unfree package. I saw that the global allowUnfree
seems to work (Allow unfree packages in repo from NUR), but I would like to be able to specify packages I allow.
My use case here is with pkgs.nur.repos.rycee-firefox-addons.gaoptout
. I add it to firefox with:
programs.firefox.profiles.default.extensions = with pkgs.nur.repos.rycee.firefox-addons; [
gaoptout
];
And try to allow it that way:
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "gaoptout" ];
But I still get the unfree license error:
error: Package ‘gaoptout-1.0.8’ in /nix/store/ayjf12761b0sf8w0wqzqbh49s8lphqiv-source/pkgs/firefox-addons/default.nix:93 has an unfree license (‘gaooba’), refusing to evaluate.
Thank you!
Hmm, it worked for me.
$ cat 'example.nix'
{ lib, pkgs, ... }:
{
home.stateVersion = "23.11";
home.username = "example";
home.homeDirectory = "/home/example";
nixpkgs.overlays = [
(final: prev: {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
pkgs = prev;
};
})
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"gaoptout"
];
programs.firefox = {
enable = true;
profiles.default.extensions = with pkgs.nur.repos.rycee.firefox-addons; [
gaoptout
];
};
}
$ home-manager -f 'example.nix' build
/nix/store/d7w2wk2my9d2chhpxm32s6kx0vgpj69g-home-manager-generation
$ unzip -p 'result/home-files/.mozilla/firefox/default/extensions/{6d96bb5e-1175-4ebf-8ab5-5f56f1c79f65}.xpi' '_locales/en/messages.json' | jq '.gaoptout_name.message'
"Google Analytics Opt-out Add-on (by Google)"
1 Like
Thank you for your feedback!
Indeed, I forgot to precise that I’m using Home Manager here. If I move the allowUnfreePredicate out of hm, it’s working, thanks!
However, do you know how I could make it work in Home Manager? That way, I could let everything related to firefox in one file.