Unfree software: Difference between revisions

From NixOS Wiki
imported>Gerg-L
mNo edit summary
imported>Hypnosis2839
m (formatting)
Line 18: Line 18:
}
}
</syntaxhighlight>
</syntaxhighlight>
The previous method '''should''' work for Home-Manager standalone but is currently broken
The previous method '''should''' work for Home-Manager standalone but is currently broken.
see: [https://github.com/nix-community/home-manager/issues/2942 Home-Manager Issue 2942]
see: [https://github.com/nix-community/home-manager/issues/2942 Home-Manager Issue 2942]
the work-around is using:
the work-around is using:
Line 30: Line 30:
=== Command Line ===
=== Command Line ===


You won't be able to install or search for an unfree package as a user, unless you explicitly enable it in ''~/.config/nixpkgs/config.nix'' (the file and folder may need to be created):
You won't be able to install or search for an unfree package as a user, unless you explicitly enable it in <code>~/.config/nixpkgs/config.nix</code> (the file and folder may need to be created):


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
Line 41: Line 41:
=== Temporary allowing ===
=== Temporary allowing ===


For temporary allowing unfree packages you can set the environment variable ''NIXPKGS_ALLOW_UNFREE'', e.g.
For temporary allowing unfree packages you can set the environment variable <code>NIXPKGS_ALLOW_UNFREE</code>, e.g.


<syntaxhighlight lang="bash">$ NIXPKGS_ALLOW_UNFREE=1 nix-shell</syntaxhighlight>
<syntaxhighlight lang="bash">$ NIXPKGS_ALLOW_UNFREE=1 nix-shell</syntaxhighlight>

Revision as of 17:12, 6 August 2023

Per-package (Ideal)

This method works for NixOS system level configuration and Home-Manager standalone

{lib, ...}: {
  nixpkgs.config.allowUnfreePredicate = pkg:
    builtins.elem (lib.getName pkg) [
      # Add additional package names here
      "hello-unfree"
    ];
}

For all packages

This method works for NixOS system level configuration

{
  nixpkgs.config.allowUnfree = true;
}

The previous method should work for Home-Manager standalone but is currently broken. see: Home-Manager Issue 2942 the work-around is using:

{
  nixpkgs.config.allowUnfreePredicate = _: true;
}


Command Line

You won't be able to install or search for an unfree package as a user, unless you explicitly enable it in ~/.config/nixpkgs/config.nix (the file and folder may need to be created):

{
  allowUnfree = true;
}


Temporary allowing

For temporary allowing unfree packages you can set the environment variable NIXPKGS_ALLOW_UNFREE, e.g.

$ NIXPKGS_ALLOW_UNFREE=1 nix-shell

Note for nix3 commands you need to pass --impure as well

More precision

For whitelisting only specific unfree licenses see the "Installing unfree packages" section of the Nixpkgs manual.

Note that we are not able to test or build unfree software on Hydra due to policy. Most unfree licenses prohibit us from either executing or distributing the software.