|
|
(20 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>
| |
| 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]
| |
| the work-around is using:
| |
| <syntaxhighlight lang="nix">
| |
| {
| |
| nixpkgs.config.allowUnfreePredicate = _: true;
| |
| }
| |
| </syntaxhighlight>
| |
|
| |
|
| | | [[Category:Software]] |
| === Command Line ===
| | [[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.
| |