[NixOS] Get taffybar compiling on ghc94, which avoids mmap issue

This commit is contained in:
2023-05-17 14:09:41 -06:00
parent 8f97ea3934
commit 99bdb41cc5
10 changed files with 1296 additions and 203 deletions

View File

@@ -2,21 +2,48 @@
inputs = {
taffybar.url = path:./taffybar;
flake-utils.url = github:numtide/flake-utils;
xmonad.url = github:xmonad/xmonad/master;
};
outputs = { self, flake-utils, taffybar, nixpkgs }:
let
overlay = import ./overlay.nix;
overlays = taffybar.overlays ++ [ overlay ];
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
let
hoverlay = final: prev: hself: hsuper: {
imalison-taffybar = prev.haskell.lib.addPkgconfigDepends (
hself.callCabal2nix "imalison-taffybar"
(
final.lib.sourceByRegex ./.
["taffybar.hs" "imalison-taffybar.cabal"]
)
{ }) [
final.util-linux.dev
final.pcre2
final.pcre
final.libselinux.dev
final.libsepol.dev
final.fribidi.out
final.fribidi.dev
final.libthai.dev
final.libdatrie.dev
final.xorg.libXdmcp.dev
final.libxkbcommon.dev
final.libepoxy.dev
final.xorg.libXtst.out
];
};
defComp = { compiler = "ghc94"; };
overlay = xmonad.lib.fromHOL hoverlay defComp;
overlays = [ taffybar.overlay overlay ];
in flake-utils.lib.eachDefaultSystem (system:
let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; };
hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs;
in
rec {
devShell = pkgs.haskellPackages.shellFor {
devShell = hpkgs.shellFor {
packages = p: [ p.imalison-taffybar p.taffybar ];
nativeBuildInputs = with pkgs.haskellPackages; [
cabal-install hlint ghcid ormolu implicit-hie haskell-language-server
nativeBuildInputs = with hpkgs; [
cabal-install
# ghcid ormolu implicit-hie haskell-language-server hlint
];
};
defaultPackage = pkgs.haskellPackages.imalison-taffybar;
defaultPackage = hpkgs.imalison-taffybar;
}) // { inherit overlay overlays; } ;
}

View File

@@ -1,13 +0,0 @@
final: prev: {
haskellPackages = prev.haskellPackages.override (old: {
overrides = prev.lib.composeExtensions (old.overrides or (_: _: {}))
(hself: hsuper: {
imalison-taffybar = hself.callCabal2nix "imalison-taffybar"
(
final.lib.sourceByRegex ./.
["taffybar.hs" "imalison-taffybar.cabal"]
)
{ };
});
});
}