|
|
(22 intermediate revisions by 9 users not shown) |
Line 1: |
Line 1: |
| | 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. |
|
| |
|
| === Per-package (Ideal) ===
| | [https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree Nixpkgs manual on allowing unfree packages] |
| This method works for NixOS system level configuration and Home-Manager standalone
| |
| <syntaxhighlight lang="nix">
| |
| {lib, ...}: {
| |
| nixpkgs.config.allowUnfreePredicate = pkg:
| |
| builtins.elem (lib.getName pkg) [
| |
| # Add additional package names here
| |
| "hello-unfree"
| |
| ];
| |
| }
| |
| </syntaxhighlight>
| |
| === For all packages ===
| |
| This method works for NixOS system level configuration
| |
| <syntaxhighlight lang="nix">
| |
| {
| |
| nixpkgs.config.allowUnfree = true;
| |
| }
| |
| </syntaxhighlight>
| |
| This 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]
| |
| the work-around is using:
| |
| <syntaxhighlight lang="nix">
| |
| {
| |
| nixpkgs.config.allowUnfreePredicate = _: true;
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
|
| | | [[Category:Software]] |
| === Imperative CLI ===
| | [[Category:Nixpkgs]] |
| | |
| 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):
| |
| | |
| <syntaxhighlight lang="nix">
| |
| {
| |
| allowUnfree = true;
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| | |
| === Temporary allowing ===
| |
| | |
| For temporary allowing unfree packages you can set the environment variable ''NIXPKGS_ALLOW_UNFREE'', e.g.
| |
| | |
| <syntaxhighlight lang="bash">$ NIXPKGS_ALLOW_UNFREE=1 nix-shell</syntaxhighlight>
| |
| | |
| Note for nix3 commands you need to pass <code>--impure</code> as well
| |
| | |
| === More precision ===
| |
| | |
| For whitelisting '''only specific''' unfree licenses
| |
| see the [https://nixos.org/nixpkgs/manual/#sec-allow-unfree "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.
| |
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