J'ai une application logicielle qui peut être construite et installée avec stack
. Je voudrais aussi offrir un paquet binaire pour Linux et Mac. À cet effet, je considère nix
, car, entre autres choses, il peut être utilisé sous Linux et Mac. Cela me sauvera la peine d'avoir à maintenir deux types de paquets.Génération d'un package Nix à partir d'un projet de pile
Après avoir lu sur la façon dont nix
paquets sont définis, j'attendre à ce qu'un projet basé stack
pourrait être construit avec une configuration qui ressemblerait à ceci:
{ stdenv, fetchurl, stack }: # we need to depend on stack
stdenv.mkDerivation {
name = "some-haskell-package-0.1";
builder = ./builder.sh; # here we would call `stack install`
src = fetchurl { # ...
};
}
En regardant les ressources disponibles en ligne, je ne trouve pas description de la façon dont cela pourrait être fait. Je ne sais pas si cela signifie que stack
et nix
ne sont pas destinés à être utilisés de cette manière.
La seule chose que j'ai pu trouver dans le manuel est how stack
can use nix
, et un outil de conversion stack
to nix
.
Je suis également ouvert aux alternatives pour les emballages multi-plateformes.
Le Manuel Nix comporte une section intitulée «Comment construire un projet Haskell en utilisant Stack» https://nixos.org/nixpkgs/manual/#how-to-build-a-haskell-project-using-stack. Utilisez 'haskell.lib.buildStackProject' à la place de' stdenv.mkDerivation'. – MarcDefiant