Skip to content

Commit

Permalink
nix: Minimize withTools dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfgangwalther committed Feb 11, 2024
1 parent 386396c commit 49c21c9
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 0 deletions.
1 change: 1 addition & 0 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ let
allOverlays.postgresql-future
(allOverlays.haskell-packages { inherit compiler; })
allOverlays.slocat
(allOverlays.minimal { inherit compiler; })
];

# Evaluated expression of the Nixpkgs repository.
Expand Down
1 change: 1 addition & 0 deletions nix/overlays/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
checked-shell-script = import ./checked-shell-script;
gitignore = import ./gitignore.nix;
haskell-packages = import ./haskell-packages.nix;
minimal = import ./minimal.nix;
postgresql-libpq = import ./postgresql-libpq.nix;
postgresql-legacy = import ./postgresql-legacy.nix;
postgresql-future = import ./postgresql-future.nix;
Expand Down
61 changes: 61 additions & 0 deletions nix/overlays/minimal.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# This overlay reduces the closure size of our nix tooling to as much as possible.
# This makes rebuilding, downloading from cachix and thus CI faster.
{ compiler }:
self: super:
let
haskellLib = super.haskell.lib;

minimizePostgresql = drv: drv.overrideAttrs (finalAttrs: prevAttrs: {
buildInputs = [
self.readline
self.zlib
self.openssl
self.libxml2
];

configureFlags = [
"--libdir=$(lib)/lib"
"--sysconfdir=/etc"
"--with-libxml"
"--with-openssl"
"--with-system-tzdata=${self.tzdata}/share/zoneinfo"
"--without-icu"
];
});
in
{
haskell = super.haskell // {
packages = super.haskell.packages // {
"${compiler}" = super.haskell.packages."${compiler}".override (prev: {
ghc = prev.ghc.override {
enableDocs = false;
enableHaddockProgram = false;
enableProfiledLibs = false;
enableRelocatedStaticLibs = true;
enableShared = false;
libffi = null;
};

overrides = self.lib.composeExtensions prev.overrides (self: super: {
mkDerivation = args: super.mkDerivation (args // {
doCheck = false;
doHaddock = false;
doHoogle = false;
enableExecutableProfiling = false;
enableLibraryProfiling = false;
});

# TODO: Remove once https://github.com/NixOS/nixpkgs/pull/287794 is done.
aeson = haskellLib.dontCheck super.aeson;
});
});
};
};

postgresql_16 = minimizePostgresql super.postgresql_16;
postgresql_15 = minimizePostgresql super.postgresql_15;
postgresql_14 = minimizePostgresql super.postgresql_14;
postgresql_13 = minimizePostgresql super.postgresql_13;
postgresql_12 = minimizePostgresql super.postgresql_12;
postgresql_11 = minimizePostgresql super.postgresql_11;
}

0 comments on commit 49c21c9

Please sign in to comment.