Unfree software: Difference between revisions

From NixOS Wiki
m fix heading levels
m Copyedit
Line 1: Line 1:
Hydra does not test or build unfree software by policy. Most unfree licenses have restrictions on software distribution.
'''Unfree software''', sometimes called '''nonfree software''', is software that cannot be freely modified or distributed. [[Nixpkgs]] provides packages for unfree software, but additional configuration is required before they can be used.


== Per-package (Ideal) ==
== Using unfree packages ==
This method works for both NixOS system level configuration and [[Home manager]]:
=== Per-package (preferred) ===
This method works for both NixOS system level configuration and [[Home Manager]]:


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
Line 12: Line 13:


</nowiki>}}
</nowiki>}}
== For all packages ==


This method works for both NixOS system level configuration and [[Home manager]]:
=== For all packages ===
 
This method works for both NixOS system level configuration and [[Home Manager]]:


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
Line 22: Line 24:
</nowiki>}}
</nowiki>}}


== 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:
You won't be able to install or search for an unfree package as a user unless you explicitly enable it:
Line 32: Line 34:
</nowiki>}}
</nowiki>}}


== Temporary allowing ==
=== Temporarily allowing ===


For temporary allowing unfree packages, you can use an environment variable:
For temporary allowing unfree packages, you can use an environment variable:
Line 45: Line 47:
$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs#vscode --impure
$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs#vscode --impure
</syntaxhighlight>
</syntaxhighlight>
== Hydra ==
[[Hydra]] does not build unfree software, and unfree software is unavailable in <code>cache.nixos.org</code>.


== See also ==
== See also ==


* [https://nixos.org/nixpkgs/manual/#sec-allow-unfree Nixpkgs manual#Installing unfree packages]
* [https://nixos.org/nixpkgs/manual/#sec-allow-unfree Nixpkgs manual on allowing unfree packages]


[[Category:Software]]
[[Category:Software]]

Revision as of 05:58, 21 June 2024

Unfree software, sometimes called nonfree software, is software that cannot be freely modified or distributed. Nixpkgs provides packages for unfree software, but additional configuration is required before they can be used.

Using unfree packages

Per-package (preferred)

This method works for both NixOS system level configuration and Home Manager:

/etc/nixos/configuration.nix
{
  nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
    "vscode"
  ];
}

For all packages

This method works for both NixOS system level configuration and Home Manager:

/etc/nixos/configuration.nix
{
  nixpkgs.config.allowUnfree = true;
}

Command line

You won't be able to install or search for an unfree package as a user unless you explicitly enable it:

~/.config/nixpkgs/config.nix
{
  allowUnfree = true;
}

Temporarily allowing

For temporary allowing unfree packages, you can use an environment variable:

$ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p vscode

Note for the new nix3-style commands, you need to pass --impure as well:

$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs#vscode --impure

Hydra

Hydra does not build unfree software, and unfree software is unavailable in cache.nixos.org.

See also