> Excerpts from Alexander Foremny's message of Wed Jun 27 15:23:44 +0200 2012: Talking about Haskell its always good to know about your target executable / library.
imaginary dependency relations: Lib-A -> hoauth -> foo -> TARGET-EXECUTABLE you want: hoauth-patched -> foo' -> TARGET-EXECUTABLE' solution 1) The quick and dirty way is using ./Setup sdist or such and replace the src attribute in nixpkgs - however this requires you to keep patches against "official" nixpkgs. And that might influence other packages also depending on the library.. solution 2) use kind of magic deep overwriting (applyGlobalOverwrites) or such. At This point Peter or Andres Loeh should reply - because they have setup the current haskell packages system solution 3) use hack-nix: It differs from nixpkgs: It has a set packages it knows about which I like to call "package pool". By default its a limited set (latest versions found on hackage + some manually selected older versions to keep things compiling). Its advantage is that it does .cabal file dependency checking! The downside is: it does .cabal file dependency checking using brute force (and there are many ways to combine packages ..) By limiting the pool you can still get good results on average cases. Eg packaging hoauth was as much work as adding c library curl to the buildInputs of the curl hackage package.. no more manual work was required which took me about 15secs. Then you can easily add dev packages to the pool. By giving them a slightly higher version number - and the foo' and TARGET-EXECUTABLE' will be the result. See https://github.com/MarcWeber/hack-nix heading "How to tell hack-nix about custom packages which are not yet on hackage" Marc Weber _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev