65 lines
No EOL
2.3 KiB
Nix
65 lines
No EOL
2.3 KiB
Nix
{
|
|
perSystem = { filters, inputs', lib, pkgs, ... }:
|
|
|
|
let
|
|
tools = import ./lib/tools.nix;
|
|
packages = builtins.mapAttrs (_: v: v.packages) inputs';
|
|
in with tools;
|
|
|
|
{
|
|
packages = filters.doFilter filters.packages rec {
|
|
inherit (packages.deploy-rs) deploy-rs;
|
|
|
|
nix-super = packages.nix-super.nix;
|
|
|
|
agenix = packages.agenix.agenix.override { nix = nix-super; };
|
|
|
|
# hci-agent's build code does some funny shenanigans
|
|
hercules-ci-agent = let
|
|
original = packages.hercules-ci-agent.hercules-ci-agent;
|
|
patchedNix = (patch original.nix "patches/extra/hercules-ci-agent/nix").overrideAttrs (old: rec {
|
|
name = "nix-${version}";
|
|
version = "${original.nix.version}_hci2";
|
|
postUnpack = ''
|
|
${old.postUnpack or ""}
|
|
echo -n "${version}" > .version
|
|
'';
|
|
});
|
|
forcePatchNix = old: {
|
|
buildInputs = (lib.remove original.nix old.buildInputs) ++ [ patchedNix ];
|
|
passthru = old.passthru // {
|
|
nix = patchedNix;
|
|
};
|
|
};
|
|
patchDeps = lib.const rec {
|
|
hercules-ci-cnix-store = packages.hercules-ci-agent.internal-hercules-ci-cnix-store.override (lib.const {
|
|
nix = patchedNix;
|
|
});
|
|
hercules-ci-cnix-expr = packages.hercules-ci-agent.internal-hercules-ci-cnix-expr.override (lib.const {
|
|
nix = patchedNix;
|
|
inherit hercules-ci-cnix-store;
|
|
});
|
|
cachix = (pkgs.haskellPackages.cachix.override (lib.const {
|
|
nix = patchedNix;
|
|
inherit hercules-ci-cnix-store;
|
|
})).overrideAttrs (o: {
|
|
postPatch = ''
|
|
${o.postPatch or ""}
|
|
# jailbreak pkgconfig deps
|
|
cp cachix.cabal cachix.cabal.backup
|
|
sed -i cachix.cabal -e 's/\(nix-[a-z]*\) *(==[0-9.]* *|| *>[0-9.]*) *&& *<[0-9.]*/\1/g'
|
|
sed -i cachix.cabal -e 's/pkgconfig-depends:.*/pkgconfig-depends: nix-main, nix-store/'
|
|
echo
|
|
echo Applied:
|
|
diff -U5 cachix.cabal.backup cachix.cabal ||:
|
|
echo
|
|
rm cachix.cabal.backup
|
|
'';
|
|
});
|
|
};
|
|
in (original.override patchDeps).overrideAttrs forcePatchNix;
|
|
|
|
hci = packages.hercules-ci-agent.hercules-ci-cli;
|
|
};
|
|
};
|
|
} |