nixpkgs/pkgs/by-name/gi/gitit/package.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

43 lines
1.4 KiB
Nix
Raw Normal View History

2024-06-06 10:49:13 +00:00
{ lib, stdenv, haskellPackages, haskell
# “Plugins” are a fancy way of saying gitit will invoke
# GHC at *runtime*, which in turn makes it pull GHC
# into its runtime closure. Only enable if you really need
# that feature. But if you do youll want to use gitit
# as a library anyway.
, pluginSupport ? false
}:
let
inherit (haskell.lib.compose)
enableCabalFlag
disableCabalFlag
justStaticExecutables
2024-06-06 10:49:13 +00:00
overrideCabal
;
base = (if pluginSupport then enableCabalFlag else disableCabalFlag)
"plugins"
haskellPackages.gitit;
2024-06-06 10:49:13 +00:00
# Removes erroneous references from dead code that GHC can't eliminate
aarch64DarwinFix = overrideCabal (drv:
lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
postInstall = ''
${drv.postInstall or ""}
remove-references-to -t ${haskellPackages.HTTP} "$out/bin/gitit"
remove-references-to -t ${haskellPackages.HTTP} "$out/bin/expireGititCache"
remove-references-to -t ${haskellPackages.happstack-server} "$out/bin/gitit"
remove-references-to -t ${haskellPackages.hoauth2} "$out/bin/gitit"
remove-references-to -t ${haskellPackages.pandoc} "$out/bin/gitit"
remove-references-to -t ${haskellPackages.pandoc-types} "$out/bin/gitit"
'';
});
in
if pluginSupport
then base
2024-06-06 10:49:13 +00:00
else lib.pipe (base.override { ghc-paths = null; }) [
justStaticExecutables
aarch64DarwinFix
]