!RbXGJhHMsnQcNIDFWN:nixos.org

Haskell in Nixpkgs/NixOS

721 Members
For discussions and questions about Haskell with Nix, cabal2nix and haskellPackages in nixpkgs | Current Docs: https://haskell4nix.readthedocs.io/ | More Nix: #community:nixos.org | More Haskell: #haskell-space:matrix.org143 Servers

Load older messages


SenderMessageTime
28 Nov 2025
@acidbong:envs.netAcid Bong i did, NixOS still pulled doc outputs

weird thing about Nixpkgs' outputs in general: they're all reachable from one another (meaning ffmpeg.dev is the same as ffmpeg.lib.bin.dev.bin.dev)

my workaround was to use symlinkJoin, but that looked kinda convoluted
16:20:50
@me:linj.techlinj

cannot reproduce. closure size of my cachix is only 155MiB

nix path-info -Sh $(nix build github:nixos/nixpkgs/nixos-unstable#cachix --print-out-paths)
/nix/store/k77ik2kcv82y2qvv3lg6x4r2cfwjbix2-cachix-1.9.1-bin 155.8 MiB

16:25:44
@ghpzin:envs.netghpzin You might disable documentation.doc.enable, if you do not want to pull them for any package. 16:25:51
@ghpzin:envs.netghpzin You might disable documentation.doc.enable, if you do not want to pull them for any package in environment.systemPackages 16:26:06
@acidbong:envs.netAcid Bong the way to reproduce is to have environment.systemPackages = [pkgs.cachix]; 16:27:44
@acidbong:envs.netAcid Bong it does help, but I want to have doc output from other packages 16:28:24
@acidbong:envs.netAcid Bong* it does help, but I want to have doc output from other packages, so not perfect16:28:31
@me:linj.techlinjinteresting, let me try16:28:58
@acidbong:envs.netAcid Bong it'll start like this:
these 279 paths will be fetched (160.57 MiB download, 1693.50 MiB unpacked):
  /nix/store/i6kmc2cg12acc5kx55vpkxwb1a07a17s-Diff-1.0.2-doc
  /nix/store/1aqpij0r645krf360sp91755gbr23g6k-OneTuple-0.4.2-doc
  /nix/store/nfnj3wiv2hmiybkywz72749b7vy17hpj-QuickCheck-2.15.0.1-doc
  /nix/store/19yjvfpkjxxcvi8kyvj21wk8qlf1qfy9-SHA-1.6.4.4-doc
  /nix/store/lr0vzbpjqzxli3i255y6rxxmihh75ljx-StateVar-1.2.2-doc
  /nix/store/0y1dvczs1hhnhq21fhx6gpv8jdswxcd3-adjunctions-4.4.3-doc
  /nix/store/qi4r1j0mf1qrfxkzgdcd402gkm8g1dz5-aeson-2.2.3.0-doc
  /nix/store/91hz94r3z28al926pj1z49nwd3a7l7xk-aeson-pretty-0.8.10-doc
  /nix/store/1qzz56rc62qbcaz6735nfrz68llmzmn9-algebraic-graphs-0.7-doc
  /nix/store/njypyw5wkzqjz8yg5h5jsc7fprhjacfq-amazonka-2.0-unstable-2025-04-16-doc
  /nix/store/mhr4sj0rv8amf2df1bqa1p23r2zxwa4v-amazonka-core-2.0-unstable-2025-04-16-doc
...
16:31:40
@acidbong:envs.netAcid Bong actually, this seems more like a buildEnv issue than Haskell (it's just only Haskell that has doc outputs for every library out there) 16:35:47
@me:linj.techlinj Acid Bong: Yeah, you are right. 17:05:07
@me:linj.techlinj Maybe we should add a variant of cachix that uses justStaticExecutables instead of enableSeparateBinOutput 17:05:47
@acidbong:envs.netAcid Bongi seem to be not alone in this: https://github.com/NixOS/nixpkgs/issues/31676817:07:32
@acidbong:envs.netAcid Bong maybe do that for all top-level standalone haskell packages? 17:07:58
@acidbong:envs.netAcid Bongalthough Nixfmt is fine already17:09:12
@me:linj.techlinj No, I do not think they are the same issue. Actually, from a certain perspective,
your "issue" is not an issue. It works as expected: you have documentation.doc.enable = true so cachix doc is pulled in
17:10:44
@me:linj.techlinj because it uses justStaticExecutables already 17:11:39
@acidbong:envs.netAcid Bong not cachix's doc, but all its dependencies' docs 17:12:27
@acidbong:envs.netAcid Bong* not only cachix's doc, but all its dependencies' docs17:12:37
@acidbong:envs.netAcid Bongand the second part is exactly undesirable17:12:48
@me:linj.techlinjhaha, its doc depends on its dependencies' doc17:15:01
@me:linj.techlinjYou can go to its dependencies' doc by clicking hyperlinks from its doc17:16:39
@acidbong:envs.netAcid Bongah, I thought buildEnv pulls docs recursively17:16:41
@me:linj.techlinjIt's a feature!17:16:44
29 Nov 2025
@maralorn:maralorn.demaralorn

linj: re: justStaticExecutables. This is interesting. I have been advocating to replace justStaticExecutables with enableSeparateBinOutput because I was not aware of any downsides of the later (when it works. It can cause build errors because of problems with cabal). And I always found it more elegant to reuse the library output instead of just deleting it.

No I am wondering whether that was a bad direction.

00:09:44
@maralorn:maralorn.demaralorn *

linj: re: justStaticExecutables. This is interesting. I have been advocating to replace justStaticExecutables with enableSeparateBinOutput because I was not aware of any downsides of the later (when it works. It can cause build errors because of problems with cabal). And I always found it more elegant to reuse the library output instead of just deleting it.

Now I am wondering whether that was a bad direction.

00:09:49
@maralorn:maralorn.demaralornIt is also kinda doubtful that the library docs of cachix are actually usefull docs for users of the executable.00:10:33
@acidbong:envs.netAcid Bong
In reply to @maralorn:maralorn.de
It is also kinda doubtful that the library docs of cachix are actually usefull docs for users of the executable.
yeah, cuz if they want Cachix the library, they can get haskellPackages.cachix (or shellFor {packages = h: [h.cachix];})
05:27:15
@sternenseemann:systemli.orgsterni (he/him) Wolfgang Walther: I could make a cabal2nix release for the next iteration, so end users on stable cabal2nix can benefit from _type etc. Not a big priority since it's somewhat fringe, but would be good to do eventually 14:46:16
@wolfgangwalther:matrix.orgWolfgang WaltherNo objections!18:03:35

Show newer messages


Back to Room ListRoom Version: 6