Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 49c21c9

Browse files
committedFeb 11, 2024
nix: Minimize withTools dependencies
1 parent 386396c commit 49c21c9

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed
 

‎default.nix

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ let
4747
allOverlays.postgresql-future
4848
(allOverlays.haskell-packages { inherit compiler; })
4949
allOverlays.slocat
50+
(allOverlays.minimal { inherit compiler; })
5051
];
5152

5253
# Evaluated expression of the Nixpkgs repository.

‎nix/overlays/default.nix

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
checked-shell-script = import ./checked-shell-script;
44
gitignore = import ./gitignore.nix;
55
haskell-packages = import ./haskell-packages.nix;
6+
minimal = import ./minimal.nix;
67
postgresql-libpq = import ./postgresql-libpq.nix;
78
postgresql-legacy = import ./postgresql-legacy.nix;
89
postgresql-future = import ./postgresql-future.nix;

‎nix/overlays/minimal.nix

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# This overlay reduces the closure size of our nix tooling to as much as possible.
2+
# This makes rebuilding, downloading from cachix and thus CI faster.
3+
{ compiler }:
4+
self: super:
5+
let
6+
haskellLib = super.haskell.lib;
7+
8+
minimizePostgresql = drv: drv.overrideAttrs (finalAttrs: prevAttrs: {
9+
buildInputs = [
10+
self.readline
11+
self.zlib
12+
self.openssl
13+
self.libxml2
14+
];
15+
16+
configureFlags = [
17+
"--libdir=$(lib)/lib"
18+
"--sysconfdir=/etc"
19+
"--with-libxml"
20+
"--with-openssl"
21+
"--with-system-tzdata=${self.tzdata}/share/zoneinfo"
22+
"--without-icu"
23+
];
24+
});
25+
in
26+
{
27+
haskell = super.haskell // {
28+
packages = super.haskell.packages // {
29+
"${compiler}" = super.haskell.packages."${compiler}".override (prev: {
30+
ghc = prev.ghc.override {
31+
enableDocs = false;
32+
enableHaddockProgram = false;
33+
enableProfiledLibs = false;
34+
enableRelocatedStaticLibs = true;
35+
enableShared = false;
36+
libffi = null;
37+
};
38+
39+
overrides = self.lib.composeExtensions prev.overrides (self: super: {
40+
mkDerivation = args: super.mkDerivation (args // {
41+
doCheck = false;
42+
doHaddock = false;
43+
doHoogle = false;
44+
enableExecutableProfiling = false;
45+
enableLibraryProfiling = false;
46+
});
47+
48+
# TODO: Remove once https://github.com/NixOS/nixpkgs/pull/287794 is done.
49+
aeson = haskellLib.dontCheck super.aeson;
50+
});
51+
});
52+
};
53+
};
54+
55+
postgresql_16 = minimizePostgresql super.postgresql_16;
56+
postgresql_15 = minimizePostgresql super.postgresql_15;
57+
postgresql_14 = minimizePostgresql super.postgresql_14;
58+
postgresql_13 = minimizePostgresql super.postgresql_13;
59+
postgresql_12 = minimizePostgresql super.postgresql_12;
60+
postgresql_11 = minimizePostgresql super.postgresql_11;
61+
}

0 commit comments

Comments
 (0)
Please sign in to comment.