#+title: Débugger un paquet nix
​#+filetags: nix

* 1. Démarrer un shell.
*** Nixpkgs
#+begin_src sh
cd nixpkgs
mkdir lol
cd lol
nix-shell ../ -A kent
#+end_src

*** Paquet local
Sans flakes

#+begin_src sh
nix-shell -E 'with import <nixpkgs> {}; callPackage ./default.nix {}'
#+end_src

Avec Flakes

#+begin_src sh
nix develop .#my-package
#+end_src

* 2. Débug
Le plus simple est d'utiliser genericBuild avec les différentes phases,
exemple :

#+begin_src sh
phases="checkPhase installPhase" genericBuild
#+end_src

Liste des phases : unpackPhase patchPhase configurePhase buildPhase
checkPhase installPhase fixupPhase installCheckPhase distPhase Puis

#+begin_src nix
$ export out=~/tmpdev/bc-build/out
$ source $stdenv/setup
$ genericBuild
#+end_src

Pour faire une seule phase

#+begin_src nix
phases="buildPhase checkPhase" genericBuild
#+end_src

NB: on peut faire aussi

#+begin_src nix
[nix-shell]$ eval ${unpackPhase:-unpackPhase}
[nix-shell]$ cd source
[nix-shell]$ eval ${configurePhase:-configurePhase}
[nix-shell]$ eval ${buildPhase:-buildPhase}
#+end_src

* Ressources
- https://nixos.wiki/wiki/Create_and_debug_nix_packages
- [[denote:20240515T225840][Nixpgs]]