dotfiles/packages/flexbv.nix
2024-11-07 16:25:41 -07:00

55 lines
977 B
Nix

#
# flexbv board viewer
#
{
stdenv,
libGL,
SDL2,
makeWrapper,
buildFHSEnv,
libz,
fontconfig
}:
let
#
# The FlexBV provided binaries are static and self-unpacking, with a hardcoded next-stage
# dynamic loader path; and the format is an atypical variant of UPX.
#
# We'll create an inner package, and wrap it in an FHSEnv so we don't have to deal
# with patching the interpreter.
#
flexbv = stdenv.mkDerivation {
pname = "flexbv-unwrapped";
version = "5.0345";
src = ../proprietary/flexbv5/FlexBV-5.0345-linux-3N5871753H701314U.tgz;
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [
makeWrapper
];
buildInputs = [
libGL
SDL2
libz
fontconfig
];
# Set up the env with our binaries.
installPhase = ''
mkdir -p $out/bin
cp * $out/bin
'';
};
in buildFHSEnv {
name = "flexbv";
targetPkgs = (pkgs: flexbv.buildInputs ++ [ flexbv ]);
runScript = ''
flexbv "$@"
'';
}