nixcfg/overlays/default.nix
2024-12-02 13:07:38 +03:00

91 lines
3.9 KiB
Nix

{ inputs, ... }: {
# This one brings our custom packages from the 'pkgs' directory
additions = final: _prev: import ../pkgs { pkgs = final; };
# This one contains whatever you want to overlay
# You can change versions, add patches, set compilation flags, anything really.
# https://nixos.wiki/wiki/Overlays
modifications = final: prev:
{
# example = prev.example.overrideAttrs (oldAttrs: rec {
# ...
# });
rofimoji = prev.rofimoji.override { rofi = prev.rofi-wayland; };
electron = prev.electron.overrideAttrs (oldAttrs: {
postInstall = ''
wrapProgram $out/bin/electron \
--add-flags "--force-device-scale-factor=1.5"
'';
});
responder-patched = prev.responder.overrideAttrs (oldAttrs: rec {
buildInputs = oldAttrs.buildInputs or [ ] ++ [ prev.openssl prev.coreutils ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/Responder
cp -R . $out/share/Responder
makeWrapper ${prev.python3.interpreter} $out/bin/responder \
--set PYTHONPATH "$PYTHONPATH:$out/share/Responder" \
--add-flags "$out/share/Responder/Responder.py" \
--run "mkdir -p /var/lib/responder"
substituteInPlace $out/share/Responder/Responder.conf \
--replace-quiet "Responder-Session.log" "/var/lib/responder/Responder-Session.log" \
--replace-quiet "Poisoners-Session.log" "/var/lib/responder/Poisoners-Session.log" \
--replace-quiet "Analyzer-Session.log" "/var/lib/responder/Analyzer-Session.log" \
--replace-quiet "Config-Responder.log" "/var/lib/responder/Config-Responder.log" \
--replace-quiet "Responder.db" "/var/lib/responder/Responder.db"
runHook postInstall
runHook postPatch
'';
postInstall = ''
wrapProgram $out/bin/responder \
--run "mkdir -p /var/lib/responder/certs && ${prev.openssl}/bin/openssl genrsa -out /var/lib/responder/certs/responder.key 2048 && ${prev.openssl}/bin/openssl req -new -x509 -days 3650 -key /var/lib/responder/certs/responder.key -out /var/lib/responder/certs/responder.crt -subj '/'" \
--run "mkdir -p /etc/responder && if [ ! -f /etc/responder/Responder.conf ]; then cp $out/share/Responder/Responder.conf /etc/responder/Responder.conf && chmod +w /etc/responder/Responder.conf; fi"
'';
postPatch = ''
if [ -f $out/share/Responder/settings.py ]; then
substituteInPlace $out/share/Responder/settings.py \
--replace-quiet "self.LogDir = os.path.join(self.ResponderPATH, 'logs')" "self.LogDir = os.path.join('/var/lib/responder', 'logs')" \
--replace-quiet "os.path.join(self.ResponderPATH, 'Responder.conf')" "'/etc/responder/Responder.conf'"
fi
if [ -f $out/share/Responder/utils.py ]; then
substituteInPlace $out/share/Responder/utils.py \
--replace-quiet "logfile = os.path.join(settings.Config.ResponderPATH, 'logs', fname)" "logfile = os.path.join('/var/lib/responder', 'logs', fname)"
fi
if [ -f $out/share/Responder/Responder.py ]; then
substituteInPlace $out/share/Responder/Responder.py \
--replace-quiet "certs/responder.crt" "/var/lib/responder/certs/responder.crt" \
--replace-quiet "certs/responder.key" "/var/lib/responder/certs/responder.key"
fi
if [ -f $out/share/Responder/Responder.conf ]; then
substituteInPlace $out/share/Responder/Responder.conf \
--replace-quiet "certs/responder.crt" "/var/lib/responder/certs/responder.crt" \
--replace-quiet "certs/responder.key" "/var/lib/responder/certs/responder.key"
fi
'';
});
};
stable-packages = final: _prev: {
stable = import inputs.nixpkgs-stable {
system = final.system;
config.allowUnfree = true;
};
};
}