# Aide et conseil pour mon premier package NixOS

**URL:** https://discourse.nixosstag.fcio.net/t/aide-et-conseil-pour-mon-premier-package-nixos/58048
**Category:** Français (French)
**Created:** [December 30, 2024, 8:53am UTC](https://discourse.nixosstag.fcio.net/t/aide-et-conseil-pour-mon-premier-package-nixos/58048 "2024-12-30T08:53:00Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Nelson-numerical-sof](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/nelson-numerical-sof/32/30132_2.png) [@Nelson-numerical-sof](https://discourse.nixosstag.fcio.net/u/Nelson-numerical-sof)
#### Post date: [December 30, 2024, 8:53am UTC](https://discourse.nixosstag.fcio.net/t/aide-et-conseil-pour-mon-premier-package-nixos/58048/1 "2024-12-30T08:53:00Z")

</div>

Bonjour,

Je developpe un outils de calcul numérique et je souhaite le packager pour NixOS

> **[GitHub - nelson-lang/nelson: The Nelson Programming Language](https://github.com/nelson-lang/nelson)**
>
> The Nelson Programming Language

Je souhaiterai de l’aide et conseil sur mon premier package  
[https://github.com/nelson-lang/nelson/blob/8c32ac68caa4e842793e833d4d0cc8572af1598c/default.nix](https://github.com/nelson-lang/nelson/blob/master/default.nix)

Est-ce qu’il vous semble correct ou ai-je oublié quelque chose ?

Merci de votre contribution et conseils

---

<div class="post-metadata">

### Author: ![symphorien](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/symphorien/32/546_2.png) [@symphorien](https://discourse.nixosstag.fcio.net/u/symphorien)
#### Post date: [December 31, 2024, 6:38pm UTC](https://discourse.nixosstag.fcio.net/t/aide-et-conseil-pour-mon-premier-package-nixos/58048/2 "2024-12-31T18:38:25Z")

</div>

Bonjour,

c’est putôt bien 🙂 voilà quelques commentaires:

- 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:

```nix
{ stdenv, pkg-config, ... }:
stdenv.mkDerivation {
  nativeBuildInputs = [pkg-config];
}

```

plutôt que

```nix
{ pkgs }:
pkgs.stdenv.mkDerivation {
  nativeBuildInputs = [pkgs.pkg-config];
}

```

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](https://nixos.org/manual/nixpkgs/stable/#sec-functions-library-sources) ou [d’autres encore](https://nixos.org/manual/nixpkgs/stable/#sec-pkgs-nix-gitignore). Ces solutions ajoutent de la complexité et ne sont pas parfaites; c’est un compromis.

---

<div class="post-metadata">

### Author: ![Nelson-numerical-sof](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/nelson-numerical-sof/32/30132_2.png) [@Nelson-numerical-sof](https://discourse.nixosstag.fcio.net/u/Nelson-numerical-sof)
#### Post date: [December 31, 2024, 6:56pm UTC](https://discourse.nixosstag.fcio.net/t/aide-et-conseil-pour-mon-premier-package-nixos/58048/3 "2024-12-31T18:56:54Z")

</div>

Merci pour cette réponse
