[NixOS] [taffybar] Hack around the patching of gi-gtk-hs cabal file
This commit is contained in:
@@ -1,15 +1,41 @@
|
||||
{
|
||||
inputs = {
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs.url = "github:colonelpanic8/nixpkgs/remove-gi-gtk-hs-patch";
|
||||
xmonad.url = "github:xmonad/xmonad/master";
|
||||
taffybar.url = "github:taffybar/taffybar";
|
||||
taffybar = {
|
||||
url = "git+file:./taffybar";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.xmonad.follows = "xmonad";
|
||||
};
|
||||
};
|
||||
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
||||
let
|
||||
hoverlay = final: prev: hself: hsuper: {
|
||||
taffybar = hsuper.taffybar.overrideAttrs (old: {
|
||||
hoverlay = final: prev: hself: hsuper:
|
||||
let
|
||||
fixGiVersionPackage = drv:
|
||||
let
|
||||
overridden = drv.override {
|
||||
gi-gtk = hself.gi-gtk3;
|
||||
gi-gdk = hself.gi-gdk3;
|
||||
};
|
||||
in prev.haskell.lib.overrideCabal overridden (oa: {
|
||||
postPatch = (oa.postPatch or "") + ''
|
||||
substituteInPlace ${oa.pname}.cabal \
|
||||
--replace-fail "gi-gtk " "gi-gtk3 " \
|
||||
--replace-fail "gi-gdk " "gi-gdk3 "
|
||||
'';
|
||||
});
|
||||
in {
|
||||
taffybar = hsuper.taffybar.overrideAttrs (_: {
|
||||
doHaddock = false;
|
||||
doCheck = false;
|
||||
});
|
||||
gi-gtk-hs =
|
||||
let drv = hsuper.gi-gtk-hs;
|
||||
in if final.lib.versionOlder drv.version "0.3.18"
|
||||
then fixGiVersionPackage drv
|
||||
else drv;
|
||||
imalison-taffybar = prev.haskell.lib.addPkgconfigDepends (
|
||||
hself.callCabal2nix "imalison-taffybar"
|
||||
(
|
||||
@@ -34,9 +60,9 @@
|
||||
};
|
||||
defComp = { compiler = "ghc94"; };
|
||||
overlay = xmonad.lib.fromHOL hoverlay defComp;
|
||||
overlays = [ taffybar.overlay overlay ];
|
||||
overlayList = [ taffybar.overlays.default overlay ];
|
||||
in flake-utils.lib.eachDefaultSystem (system:
|
||||
let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; };
|
||||
let pkgs = import nixpkgs { inherit system; overlays = overlayList; config.allowBroken = true; };
|
||||
hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs;
|
||||
in
|
||||
{
|
||||
@@ -48,5 +74,11 @@
|
||||
];
|
||||
};
|
||||
defaultPackage = hpkgs.imalison-taffybar;
|
||||
}) // { inherit overlay overlays; } ;
|
||||
}) // {
|
||||
inherit overlay;
|
||||
overlays = {
|
||||
default = overlay;
|
||||
taffybar = taffybar.overlays.default;
|
||||
};
|
||||
} ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user