delivered

This commit is contained in:
Audrey 2025-07-07 14:24:15 -07:00
commit e78e4f2344
3 changed files with 167 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/result*
binxos

27
flake.lock Normal file
View File

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1751913784,
"narHash": "sha256-ZR1+TM7ixZZbcZUbEcBIHNYhUhF1jelyc8SkOFr7ouA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "38dcda3e40b62f2822ba6bb0c5201ef0c269ab8b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

138
flake.nix Normal file
View File

@ -0,0 +1,138 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/release-25.05";
};
outputs = {nixpkgs, self}: {
packages.x86_64-linux = let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
pkgset-raw = {
inherit (pkgs)
amtterm
#archdiff
babeltrace
#bbe # will not build at -O0?
#bin_replace_string
bsdiff
#btyacc
bustle
byacc
complexity
#conf2struct
cppi
cproto
#csup
desktop-file-utils
dialog
#diffball
#difffilter
diffstat
#dissembler
dropwatch
dwdiff
#edi
elfkickers
#ftnchek
#fuzz
global
gpp
#gtk-update-icon-cache
#hxd
hxtools
icmake
#intel-graphics-system-controller
libtree
#lsuio
#mingw64-toolchain
numdiff
ostree
pahole
patchutils
#ply
#pretrace
#pscan
radare2
rizin
rt-tests
#sel
shc
smem
statifier
#stubgen
#systemtap
#tinlink
valgrind
vmtouch
vtable-dumper
wiggle
#xfce4-dev-tools
xmlindent
#yacc
bison
diffutils
bintools-unwrapped
gtk3
wget
curl
file
strace
;
inherit (pkgs.xfce) xfce4-dev-tools;
coreutils = (pkgs.coreutils.override { singleBinary = false; });
};
lib = pkgs.lib;
self' = self.packages.x86_64-linux;
pkgsetsDefs = {
"O0" = "-O0 -g";
"O2" = "-O2 -g";
};
forceFlags = drv: flags: let
overridesFlags = {
env = (drv.env or {}) // { NIX_CFLAGS_COMPILE = "${(drv.env.NIX_CFLAGS_COMPILE or "")} ${flags}"; };
};
overridesHardening = {
# fortify requires at least -O1
# pic leads to some linker errors
hardeningDisable = (drv.hardeningDisable or []) ++ [ "fortify" "pic" ];
};
overridesStrip = {
dontStrip = true;
};
overrides = overridesStrip // overridesFlags // overridesHardening;
in drv.overrideAttrs overrides;
in {
default = pkgs.runCommand "binxos.tar.gz" { } ''
declare -A SETS
declare -A TOOBIG
${lib.concatMapAttrsStringSep "\n" (name: pkgset: ''
SETS[${name}]="${lib.concatMapAttrsStringSep " " (_: drv: lib.getBin drv) pkgset}"
'') self'.pkgsets}
for set in "''${!SETS[@]}"; do
mkdir -p $TMP/binxos/$set
for pkg in ''${SETS[$set]}; do
for f in $pkg/bin/*; do
if [[ $(head -c4 $f) != $'\x7fELF' ]]; then
continue
fi
if [[ $(stat --format %s $f) > $((800 * 1024 * 1024)) ]]; then
TOOBIG[$(basename $f)]=1
continue
fi
cp $f $TMP/binxos/$set
done
done
done
for bin in "''${!TOOBIG[@]}"; do
rm -f $TMP/binxos/*/$bin
done
cd $TMP
tar -czf $out binxos
'';
pkgsets = lib.mapAttrs (_: flags: lib.mapAttrs (_: pkg: forceFlags pkg flags) pkgset-raw) pkgsetsDefs;
};
};
}