86 lines
2.3 KiB
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; })
|
|
];
|
|
};
|
|
});
|
|
};
|
|
}
|