{ 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; }) ]; }; }); }; }