Merge pull request #237028 from maralorn/separate-bin

haskellPackages: Use separate bin output for multiple packages
This commit is contained in:
maralorn 2023-06-13 16:50:11 +02:00 committed by GitHub
commit b37b2d4b09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 2 deletions

View File

@ -23,7 +23,7 @@ installing and using them.
All of these packages are originally defined in the `haskellPackages` package
set and are re-exposed with a reduced dependency closure for convenience.
(see `justStaticExecutables` below)
(see `justStaticExecutables` or `separateBinOutput` below)
The `haskellPackages` set includes at least one version of every package from
Hackage as well as some manually injected packages. This amounts to a lot of

View File

@ -38,6 +38,9 @@
- `fileSystems.<name>.autoResize` now uses `systemd-growfs` to resize the file system online in stage 2. This means that `f2fs` and `ext2` can no longer be auto resized, while `xfs` and `btrfs` now can be.
- The following packages in `haskellPackages` have now a separate bin output: `cabal-fmt`, `calligraphy`, `eventlog2html`, `ghc-debug-brick`, `hindent`, `nixfmt`, `releaser`. This means you need to replace e.g. `"${pkgs.haskellPackages.nixfmt}/bin/nixfmt"` with `"${lib.getBin pkgs.haskellPackages.nixfmt}/bin/nixfmt"` or `"${lib.getExe pkgs.haskellPackages.nixfmt}"`. The binaries also wont be in scope if you rely on them being installed e.g. via `ghcWithPackages`. `environment.packages` picks the `bin` output automatically, so for normal installation no intervention is required. Also, toplevel attributes like `pkgs.nixfmt` are not impacted negatively by this change.
## Other Notable Changes {#sec-release-23.11-notable-changes}
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.

View File

@ -283,6 +283,13 @@ self: super: builtins.intersectAttrs super {
sfml-audio = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.sfml-audio;
# avoid compiling twice by providing executable as a separate output (with small closure size)
cabal-fmt = enableSeparateBinOutput super.cabal-fmt;
hindent = enableSeparateBinOutput super.hindent;
releaser = enableSeparateBinOutput super.releaser;
eventlog2html = enableSeparateBinOutput super.eventlog2html;
ghc-debug-brick = enableSeparateBinOutput super.ghc-debug-brick;
nixfmt = enableSeparateBinOutput super.nixfmt;
calligraphy = enableSeparateBinOutput super.calligraphy;
niv = enableSeparateBinOutput (self.generateOptparseApplicativeCompletions [ "niv" ] super.niv);
ghcid = enableSeparateBinOutput super.ghcid;
ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (enableSeparateBinOutput super.ormolu);

View File

@ -39575,7 +39575,7 @@ with pkgs;
alejandra = callPackage ../tools/nix/alejandra { };
nixfmt = haskell.lib.compose.justStaticExecutables haskellPackages.nixfmt;
nixfmt = haskellPackages.nixfmt.bin;
nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };