/dreampkgs

A collection of software packages managed with dream2nix

Primary LanguageNixMIT LicenseMIT

dreampkgs is a collection of software packages managed with dream2nix, a framework for automated packaging.

Both dream2nix and dreampkgs are unstable at this point.

The goal of this repo is to test and improve dream2nix.

If you are interested in this project, please try adding any package you like or help fixing existing packages.
It is valuable to get PRs and feedback to see what needs to be improved.

See hydra jobs here: https://hydra.ngi0.nixos.org/jobset/dreampkgs/main#tabs-jobs

To interact with the CLI, use nix 2.4 with enabled experimental features nix-command + flakes.

Packaging workflow

clone repo

git clone https://github.com/DavHau/dreampkgs
cd dreampkgs

list existing packages

nix flake show

add a package

nix run . -- add {tarball URL or flake-style spec}

update a package to another version

nix run . -- update {package-name}

build a package

nix build .#{package-name}

build a dependency of a package

(Useful for debugging failing builds of dependencies)

nix build .#{package-name}.packages.{dependency-name}

modify the build recipe of a package or dependency

Open ./overrides/{subsystem}/default.nix and add or modify entries.
See the documentation for the Override System

Developing/Debugging dream2nix

Use dreampkgs with a local checkout of dream2nix

Temporarily override the dream2nix input of dreampkgs via:

nix flake lock --override-input dream2nix path:///$HOME/path/to/dream2nix

This command needs to be re-executed after each change on dream2nix.