Unfree software: Difference between revisions

From NixOS Wiki
m Tomodachi94 moved page Unfree Software to Unfree software: use sentance case
Dander (talk | contribs)
link to nixpkgs manual instead of copying the content
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''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.
Unfree software refers to software that has restrictive licensing on modification and/or redistribution. This type of software cannot be freely provided or distributed in an official capacity, which means that unfree software is neither built by [[Hydra]], nor cached on the official [[Binary Cache|binary cache]]. Despite this, Nixpkgs offers a very large collection of unfree software as derivations, however they cannot be used by default without configuring Nixpkgs and opting in to unfree software usage.


== Using unfree packages ==
[https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree Nixpkgs manual on allowing unfree packages]
=== Per-package (preferred) ===
This method works for both NixOS system level configuration and [[Home Manager]]:
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
    "vscode"
  ];
}
 
</nowiki>}}
 
=== For all packages ===
 
This method works for both NixOS system level configuration and [[Home Manager]]:
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  nixpkgs.config.allowUnfree = true;
}
</nowiki>}}
 
=== Command line ===
 
You won't be able to install or search for an unfree package as a user unless you explicitly enable it:
 
{{file|~/.config/nixpkgs/config.nix|nix|<nowiki>
{
  allowUnfree = true;
}
</nowiki>}}
 
=== Temporarily allowing ===
 
For temporary allowing unfree packages, you can use an environment variable:
 
<syntaxhighlight lang="bash">
$ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p vscode
</syntaxhighlight>
 
Note for the new nix3-style commands, you need to pass <code>--impure</code> as well:
 
<syntaxhighlight lang="bash">
$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs#vscode --impure
</syntaxhighlight>
 
== Hydra ==
 
[[Hydra]] does not build unfree software, and unfree software is unavailable in <code>cache.nixos.org</code>.
 
== See also ==
 
* [https://nixos.org/nixpkgs/manual/#sec-allow-unfree Nixpkgs manual on allowing unfree packages]


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

Latest revision as of 22:25, 26 October 2024

Unfree software refers to software that has restrictive licensing on modification and/or redistribution. This type of software cannot be freely provided or distributed in an official capacity, which means that unfree software is neither built by Hydra, nor cached on the official binary cache. Despite this, Nixpkgs offers a very large collection of unfree software as derivations, however they cannot be used by default without configuring Nixpkgs and opting in to unfree software usage.

Nixpkgs manual on allowing unfree packages