binxos/flake.nix

86 lines
2.3 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/release-25.05";
};
outputs = {nixpkgs, self}: {
lib.mkPkgProcessor = {
cflags ? "",
hardeningDisable ? [],
hardeningEnable ? [],
attrs ? {},
}: pkg: let
inherit (nixpkgs) lib;
overridesFlags = {
env = (pkg.env or {}) // { NIX_CFLAGS_COMPILE = "${(pkg.NIX_CFLAGS_COMPILE or "")} ${cflags}"; };
};
overridesHardening = {
hardeningDisable = (pkg.hardeningDisable or []) ++ hardeningDisable;
hardeningEnable = (pkg.hardeningEnable or []) ++ hardeningEnable;
};
overrides = overridesFlags // overridesHardening // attrs;
overridden = pkg.overrideAttrs overrides;
in lib.warnIf (!(builtins.elem "fortify" hardeningDisable) && (lib.strings.hasInfix "-O0" cflags)) "fortify requires at least -O1" overridden;
packages = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (platform: let pkgs = nixpkgs.legacyPackages.${platform}; in rec {
mkDataset = pkgs.callPackage ./package.nix {};
sampleDataset = mkDataset {
name = "sample";
pkgProcessor = self.lib.mkPkgProcessor {
cflags = "-O0 -g";
# pic maybe leads to some linker errors?
hardeningDisable = [ "fortify" "pic" ];
attrs = {
dontStrip = true;
};
};
pkgList = with nixpkgs.legacyPackages.x86_64-linux; [
amtterm
babeltrace
bsdiff
bustle
byacc
complexity
cppi
cproto
desktop-file-utils
dialog
diffstat
dropwatch
dwdiff
elfkickers
global
gpp
hxtools
icmake
libtree
numdiff
ostree
pahole
patchutils
radare2
rizin
rt-tests
shc
smem
statifier
valgrind
vmtouch
vtable-dumper
wiggle
xmlindent
bison
diffutils
bintools-unwrapped
gtk3
wget
curl
file
strace
xfce.xfce4-dev-tools
(pkgs.coreutils.override { singleBinary = false; })
];
};
});
};
}