default.nix appelle callpackage sur nelson.nix. La façon idiomatique d’écrire un fichier qui est appelé par callPackage c’est une fonction qui prend toutes les dépendances en argument, plutôt qu’une fonction qui prend pkgs en argument:
Le style actuel est incorrect pour de la cross-compilation, mais il n’est pas certain que c’est important
eigen est une bibliothèque je pense donc ça doit probablement être un buildInput plutôt qu’un nativeBuildInput. En cas de doute il est possible d’ajouter strictDeps = true et de voir si ça compile encore.
pour la source: je pense que le but ici est de compiler “la source dans le dossier courant” plutôt que “la version 1.2.3”. Dans ce cas là il est possible de mettre src=./.;. À chaque lancement de nix-build, nix va copier l’état actuel du dossier dans /nix/store, et compiler à partir de là. C’est pas super performant, et une nouvelle copie est faite si une seule lettre change dans le README. Il est possible de rafiner ça avec diverse fonctions ou d’autres encore. Ces solutions ajoutent de la complexité et ne sont pas parfaites; c’est un compromis.