Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/numtide/nixpkgs-unfree
nixpkgs with the unfree bits enabled
https://github.com/numtide/nixpkgs-unfree
nix-flake
Last synced: 6 days ago
JSON representation
nixpkgs with the unfree bits enabled
- Host: GitHub
- URL: https://github.com/numtide/nixpkgs-unfree
- Owner: numtide
- License: mit
- Created: 2022-02-04T15:15:43.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-08T14:22:26.000Z (14 days ago)
- Last Synced: 2024-12-09T15:44:13.470Z (13 days ago)
- Topics: nix-flake
- Language: Nix
- Homepage:
- Size: 279 KB
- Stars: 95
- Watchers: 10
- Forks: 12
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nixpkgs-unfree - nixpkgs with the unfree bits enabled
**STATUS: alpha**
The [nixpkgs](https://github.com/NixOS/nixpkgs) project contains package
definitions for free and unfree packages but only builds free packages. This
project is complementary. We're enabling the unfree bits and making the flake
use-case a bit easier to use.In the future, we would also like to evolve this project to build and cache
the unfree packages.## Features
### Nix run
Thanks to this flake, it's shorter to run unfree packages. Eg:
```console
$ nix run github:numtide/nixpkgs-unfree/nixos-unstable#slack
```Vs:
```console
$ NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs/nixos-unstable#slack --impure
```See the [supported channels](#supported-channels) section to find out which channels are being synched.
### Flake usage
If your flake depends on unfree packages, you can point it to this
project to avoid creating more instances of nixpkgs. See
for a more
in-depth explanation of the issue.Here is how you can replace your instance of nixpkgs with unfree packages
enabled:```nix
{
inputs.nixpkgs.url = "github:numtide/nixpkgs-unfree?ref=nixos-unstable";inputs.otherdep.url = "github:otheruser/otherdep";
inputs.otherdep.inputs.nixpkgs.follows = "nixpkgs";outputs = { self, nixpkgs, ... }: { ... };
}
```Or, potentially, you might want to explicitly access unfree packages and have
a separate instance:```nix
{
# The main nixpkgs instance
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";# The unfree instance
inputs.nixpkgs-unfree.url = "github:numtide/nixpkgs-unfree";
inputs.nixpkgs-unfree.inputs.nixpkgs.follows = "nixpkgs";outputs = { self, nixpkgs, nixpkgs-unfree }: { ... };
}
```### Flake templates
For new flakes, you can use also use our templates like this:
``` console
$ nix flake init -t github:numtide/nixpkgs-unfree
$ nix flake init -t github:numtide/nixpkgs-unfree#devShell # for mkShell based setup
```### Synched channels
The following channels are synched daily with upstream:
* nixos-unstable
* nixpkgs-unstable
* nixos-24.05Let us know if any other channel is needed.
## FAQ
### nixpkgs instances
This repository includes a trace warning for code that `import nixpkgs`.
If another input depends on it, you can bypass the warning by passing the
real nixpkgs to it.Before:
```nix
{
inputs.nixpkgs.url = "github:numtide/nixpkgs-unfree?ref=nixos-unstable";inputs.otherdep.url = "github:otheruser/otherdep";
inputs.otherdep.inputs.nixpkgs.follows = "nixpkgs";
}
```Assuming that "otherdep" creates a new instance of nixpkgs, change the inputs
to:```nix
{
inputs.nixpkgs.url = "github:numtide/nixpkgs-unfree?ref=nixos-unstable";inputs.otherdep.url = "github:otheruser/otherdep";
inputs.otherdep.inputs.nixpkgs.follows = "nixpkgs/nixpkgs";
}
```With that, it will access the same version of nixpkgs as the main project.
## Credits
The first implementation of that idea was done by @domenkozar at
.## Terms and Conditions
All the code in this repository is published under the MIT and will always
remain under an OSI-compliant license.If you're interested in supporting this project,
[get in touch!](https://numtide.com/#contact).