From dc1f81ad51c14f1f08a9e20b17c9debdad76d358 Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Thu, 2 Jul 2026 14:54:54 +0200 Subject: chore: formatting --- modules/overlays/rpcs3.nix | 16 +- modules/pkgs/ida-pro-mcp.nix | 98 +++++------ modules/pkgs/ida-pro.nix | 379 +++++++++++++++++++++-------------------- modules/services/git.nix | 5 +- modules/services/nextcloud.nix | 11 +- modules/services/openssh.nix | 96 +++++------ modules/system/wine.nix | 2 +- 7 files changed, 311 insertions(+), 296 deletions(-) (limited to 'modules') diff --git a/modules/overlays/rpcs3.nix b/modules/overlays/rpcs3.nix index 9076317..fbfab94 100644 --- a/modules/overlays/rpcs3.nix +++ b/modules/overlays/rpcs3.nix @@ -1,12 +1,14 @@ { ... }: { flake.overlays.rpcs3 = final: prev: { - rpcs3 = (prev.rpcs3.override { - glew = prev.glew.override { enableEGL = false; }; - }).overrideAttrs (old: { - cmakeFlags = old.cmakeFlags or [] ++ [ - (prev.lib.cmakeBool "BUILD_SHARED_LIBS" false) - ]; - }); + rpcs3 = + (prev.rpcs3.override { + glew = prev.glew.override { enableEGL = false; }; + }).overrideAttrs + (old: { + cmakeFlags = old.cmakeFlags or [ ] ++ [ + (prev.lib.cmakeBool "BUILD_SHARED_LIBS" false) + ]; + }); }; } diff --git a/modules/pkgs/ida-pro-mcp.nix b/modules/pkgs/ida-pro-mcp.nix index 37d604d..b178497 100644 --- a/modules/pkgs/ida-pro-mcp.nix +++ b/modules/pkgs/ida-pro-mcp.nix @@ -1,66 +1,68 @@ { ... }: { - perSystem = { pkgs, ... }: - let - idapro = pkgs.python313.pkgs.buildPythonPackage rec { - pname = "idapro"; - version = "0.0.9"; + perSystem = + { pkgs, ... }: + let + idapro = pkgs.python313.pkgs.buildPythonPackage rec { + pname = "idapro"; + version = "0.0.9"; - pyproject = true; + pyproject = true; - src = pkgs.fetchPypi { - inherit pname version; - hash = "sha256-igQ6ic5QdTPlAuj2WBpPtYut4l6PpgSVRbeexjZ5LjU="; - }; + src = pkgs.fetchPypi { + inherit pname version; + hash = "sha256-igQ6ic5QdTPlAuj2WBpPtYut4l6PpgSVRbeexjZ5LjU="; + }; - build-system = [ - pkgs.python313.pkgs.setuptools - ]; + build-system = [ + pkgs.python313.pkgs.setuptools + ]; - doCheck = false; + doCheck = false; - meta = with pkgs.lib; { - description = "IDA Library Python module"; - license = licenses.mit; - platforms = platforms.all; + meta = with pkgs.lib; { + description = "IDA Library Python module"; + license = licenses.mit; + platforms = platforms.all; + }; }; - }; - in { - packages.ida-pro-mcp = pkgs.python313.pkgs.buildPythonApplication rec { - pname = "ida-pro-mcp"; - version = "2.0.0"; + in + { + packages.ida-pro-mcp = pkgs.python313.pkgs.buildPythonApplication rec { + pname = "ida-pro-mcp"; + version = "2.0.0"; - pyproject = true; + pyproject = true; - src = pkgs.fetchFromGitHub { - owner = "mrexodia"; - repo = "ida-pro-mcp"; - rev = "main"; - hash = "sha256-U/+l/HQBUk5Pfu5AnC+dsicQ+CnPAdJkm6mxNyL2Q0w="; - }; + src = pkgs.fetchFromGitHub { + owner = "mrexodia"; + repo = "ida-pro-mcp"; + rev = "main"; + hash = "sha256-U/+l/HQBUk5Pfu5AnC+dsicQ+CnPAdJkm6mxNyL2Q0w="; + }; - build-system = [ - pkgs.python313.pkgs.setuptools - ]; + build-system = [ + pkgs.python313.pkgs.setuptools + ]; - dependencies = [ - idapro - pkgs.python313.pkgs.tomli-w - ]; + dependencies = [ + idapro + pkgs.python313.pkgs.tomli-w + ]; - pythonImportsCheck = [ - "ida_pro_mcp" - ]; + pythonImportsCheck = [ + "ida_pro_mcp" + ]; - doCheck = false; + doCheck = false; - meta = with pkgs.lib; { - description = "IDA Pro MCP server"; - homepage = "https://github.com/mrexodia/ida-pro-mcp"; - license = licenses.mit; - mainProgram = "ida-pro-mcp"; - platforms = platforms.all; + meta = with pkgs.lib; { + description = "IDA Pro MCP server"; + homepage = "https://github.com/mrexodia/ida-pro-mcp"; + license = licenses.mit; + mainProgram = "ida-pro-mcp"; + platforms = platforms.all; + }; }; }; - }; } diff --git a/modules/pkgs/ida-pro.nix b/modules/pkgs/ida-pro.nix index 69bdfe5..c70d1d3 100644 --- a/modules/pkgs/ida-pro.nix +++ b/modules/pkgs/ida-pro.nix @@ -1,194 +1,197 @@ { inputs, ... }: { - perSystem = { system, ... }: let - pkgs = import inputs.nixpkgs { - inherit system; - config.allowUnfree = true; + perSystem = + { system, ... }: + let + pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in + { + packages.ida-pro = pkgs.callPackage ( + { + autoPatchelfHook, + cairo, + copyDesktopItems, + curl, + dbus, + fontconfig, + freetype, + glib, + gtk3, + lib, + libGL, + libdrm, + libice, + libkrb5, + libsecret, + libsm, + libunwind, + libx11, + libxau, + libxcb, + libxcrypt-legacy, + libxext, + libxi, + libxkbcommon, + libxrender, + libxcb-image, + libxcb-keysyms, + libxcb-render-util, + libxcb-wm, + makeDesktopItem, + makeWrapper, + openssl, + patchelf, + perl, + python313, + qt6, + requireFile, + stdenv, + zlib, + }: + let + pythonForIDA = python313.withPackages (ps: with ps; [ rpyc ]); + + src = requireFile { + name = "ida-pro_93_x64linux.run"; + url = "https://my.hex-rays.com/"; + sha256 = "a64e6589feeca0f4e1bfb962d1a283761fb38c5158f5f82c8f1e7ddf32f69850"; + }; + + libida = requireFile { + name = "libida.so"; + url = "https://my.hex-rays.com/"; + sha256 = "86cff5a0dbf26eb56076313181e9ca8e7db48212d60d00588217cfac36060531"; + }; + + libida32 = requireFile { + name = "libida32.so"; + url = "https://my.hex-rays.com/"; + sha256 = "55afb0edcec85139b99cb36c80d460ab7679c87e50bf4d5b111f7910935e69c2"; + }; + + runtimeDependencies = [ + cairo + dbus + fontconfig + freetype + glib + gtk3 + libdrm + libGL + libkrb5 + libsecret + qt6.qtbase + qt6.qtwayland + libunwind + libxkbcommon + openssl.out + stdenv.cc.cc + libice + libsm + libx11 + libxau + libxcb + libxcrypt-legacy + libxext + libxi + libxrender + libxcb-image + libxcb-keysyms + libxcb-render-util + libxcb-wm + zlib + curl.out + pythonForIDA + ]; + in + stdenv.mkDerivation rec { + pname = "ida-pro"; + version = "9.3"; + + inherit src; + + desktopItem = makeDesktopItem { + name = "ida-pro"; + exec = "ida"; + icon = "ida-pro"; + comment = meta.description; + desktopName = "IDA Pro"; + genericName = "Interactive Disassembler"; + categories = [ "Development" ]; + startupWMClass = "IDA"; + }; + + desktopItems = [ desktopItem ]; + + nativeBuildInputs = [ + makeWrapper + copyDesktopItems + autoPatchelfHook + qt6.wrapQtAppsHook + perl + patchelf + ]; + + buildInputs = runtimeDependencies; + + dontUnpack = true; + dontWrapQtApps = true; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" "$out/lib" "$out/opt" "$out/share/pixmaps" + + IDADIR="$out/opt" + HOME="$out/opt" + + $(cat "$NIX_CC/nix-support/dynamic-linker") "$src" \ + --mode unattended --debuglevel 4 --prefix "$IDADIR" || true + + install -m 0644 "${libida}" "$IDADIR/libida.so" + install -m 0644 "${libida32}" "$IDADIR/libida32.so" + + for libFile in "$IDADIR"/*.so "$IDADIR"/*.so.6; do + ln -s "$libFile" "$out/lib/$(basename "$libFile")" + done + + patchelf --add-needed libpython3.13.so "$out/lib/libida.so" + patchelf --add-needed libcrypto.so "$out/lib/libida.so" + patchelf --add-needed libsecret-1.so.0 "$out/lib/libida.so" + + addAutoPatchelfSearchPath "$IDADIR" + + if [ -f "$IDADIR/appico.png" ]; then + ln -s "$IDADIR/appico.png" "$out/share/pixmaps/ida-pro.png" + fi + + wrapProgram "$IDADIR/ida" \ + --prefix IDADIR : "$IDADIR" \ + --prefix QT_PLUGIN_PATH : "$IDADIR/plugins/platforms" \ + --prefix PYTHONPATH : "$out/bin/idalib/python" \ + --prefix PATH : "${pythonForIDA}/bin:$IDADIR" \ + --prefix LD_LIBRARY_PATH : "$out/lib" \ + --set QT_QPA_PLATFORM xcb + + ln -s "$IDADIR/ida" "$out/bin/ida" + + runHook postInstall + ''; + + meta = with lib; { + description = "IDA Pro"; + homepage = "https://hex-rays.com/ida-pro/"; + license = licenses.unfree; + mainProgram = "ida"; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; + } + ) { }; }; - in { - packages.ida-pro = pkgs.callPackage ( - { - autoPatchelfHook, - cairo, - copyDesktopItems, - curl, - dbus, - fontconfig, - freetype, - glib, - gtk3, - lib, - libGL, - libdrm, - libice, - libkrb5, - libsecret, - libsm, - libunwind, - libx11, - libxau, - libxcb, - libxcrypt-legacy, - libxext, - libxi, - libxkbcommon, - libxrender, - libxcb-image, - libxcb-keysyms, - libxcb-render-util, - libxcb-wm, - makeDesktopItem, - makeWrapper, - openssl, - patchelf, - perl, - python313, - qt6, - requireFile, - stdenv, - zlib, - }: - let - pythonForIDA = python313.withPackages (ps: with ps; [ rpyc ]); - - src = requireFile { - name = "ida-pro_93_x64linux.run"; - url = "https://my.hex-rays.com/"; - sha256 = "a64e6589feeca0f4e1bfb962d1a283761fb38c5158f5f82c8f1e7ddf32f69850"; - }; - - libida = requireFile { - name = "libida.so"; - url = "https://my.hex-rays.com/"; - sha256 = "86cff5a0dbf26eb56076313181e9ca8e7db48212d60d00588217cfac36060531"; - }; - - libida32 = requireFile { - name = "libida32.so"; - url = "https://my.hex-rays.com/"; - sha256 = "55afb0edcec85139b99cb36c80d460ab7679c87e50bf4d5b111f7910935e69c2"; - }; - - runtimeDependencies = [ - cairo - dbus - fontconfig - freetype - glib - gtk3 - libdrm - libGL - libkrb5 - libsecret - qt6.qtbase - qt6.qtwayland - libunwind - libxkbcommon - openssl.out - stdenv.cc.cc - libice - libsm - libx11 - libxau - libxcb - libxcrypt-legacy - libxext - libxi - libxrender - libxcb-image - libxcb-keysyms - libxcb-render-util - libxcb-wm - zlib - curl.out - pythonForIDA - ]; - in - stdenv.mkDerivation rec { - pname = "ida-pro"; - version = "9.3"; - - inherit src; - - desktopItem = makeDesktopItem { - name = "ida-pro"; - exec = "ida"; - icon = "ida-pro"; - comment = meta.description; - desktopName = "IDA Pro"; - genericName = "Interactive Disassembler"; - categories = [ "Development" ]; - startupWMClass = "IDA"; - }; - - desktopItems = [ desktopItem ]; - - nativeBuildInputs = [ - makeWrapper - copyDesktopItems - autoPatchelfHook - qt6.wrapQtAppsHook - perl - patchelf - ]; - - buildInputs = runtimeDependencies; - - dontUnpack = true; - dontWrapQtApps = true; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/bin" "$out/lib" "$out/opt" "$out/share/pixmaps" - - IDADIR="$out/opt" - HOME="$out/opt" - - $(cat "$NIX_CC/nix-support/dynamic-linker") "$src" \ - --mode unattended --debuglevel 4 --prefix "$IDADIR" || true - - install -m 0644 "${libida}" "$IDADIR/libida.so" - install -m 0644 "${libida32}" "$IDADIR/libida32.so" - - for libFile in "$IDADIR"/*.so "$IDADIR"/*.so.6; do - ln -s "$libFile" "$out/lib/$(basename "$libFile")" - done - - patchelf --add-needed libpython3.13.so "$out/lib/libida.so" - patchelf --add-needed libcrypto.so "$out/lib/libida.so" - patchelf --add-needed libsecret-1.so.0 "$out/lib/libida.so" - - addAutoPatchelfSearchPath "$IDADIR" - - if [ -f "$IDADIR/appico.png" ]; then - ln -s "$IDADIR/appico.png" "$out/share/pixmaps/ida-pro.png" - fi - - wrapProgram "$IDADIR/ida" \ - --prefix IDADIR : "$IDADIR" \ - --prefix QT_PLUGIN_PATH : "$IDADIR/plugins/platforms" \ - --prefix PYTHONPATH : "$out/bin/idalib/python" \ - --prefix PATH : "${pythonForIDA}/bin:$IDADIR" \ - --prefix LD_LIBRARY_PATH : "$out/lib" \ - --set QT_QPA_PLATFORM xcb - - ln -s "$IDADIR/ida" "$out/bin/ida" - - runHook postInstall - ''; - - meta = with lib; { - description = "IDA Pro"; - homepage = "https://hex-rays.com/ida-pro/"; - license = licenses.unfree; - mainProgram = "ida"; - platforms = [ "x86_64-linux" ]; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - }; - } - ) { }; - }; flake.modules.nixos.ida-pro = { pkgs, ... }: diff --git a/modules/services/git.nix b/modules/services/git.nix index 12ef804..a9f8213 100644 --- a/modules/services/git.nix +++ b/modules/services/git.nix @@ -82,7 +82,10 @@ config.sops.secrets."borgbase_ssh_key".path } -o StrictHostKeyChecking=accept-new"; }; - extraCreateArgs = [ "--info" "--stats" ]; + extraCreateArgs = [ + "--info" + "--stats" + ]; compression = "auto,lzma"; startAt = "daily"; preHook = '' diff --git a/modules/services/nextcloud.nix b/modules/services/nextcloud.nix index 38b6145..43f801a 100644 --- a/modules/services/nextcloud.nix +++ b/modules/services/nextcloud.nix @@ -85,7 +85,10 @@ } -o StrictHostKeyChecking=accept-new"; TMPDIR = "/var/tmp"; }; - extraCreateArgs = [ "--info" "--stats" ]; + extraCreateArgs = [ + "--info" + "--stats" + ]; compression = "auto,lzma"; startAt = "daily"; readWritePaths = [ @@ -95,7 +98,7 @@ preHook = '' set -euo pipefail export BORG_REPO="$(cat ${config.sops.secrets."borg_nextcloud_repo".path})" - + INSTALL="${pkgs.coreutils}/bin/install" FIND="${pkgs.findutils}/bin/find" MYSQLDUMP="${pkgs.mariadb.client}/bin/mariadb-dump" @@ -122,7 +125,9 @@ ''; }; - systemd.services."borgbackup-job-nextcloud".unitConfig.OnFailure = [ "notify-backup-failure@%n.service" ]; + systemd.services."borgbackup-job-nextcloud".unitConfig.OnFailure = [ + "notify-backup-failure@%n.service" + ]; services.fail2ban = { enable = true; diff --git a/modules/services/openssh.nix b/modules/services/openssh.nix index 98241df..5775ca8 100644 --- a/modules/services/openssh.nix +++ b/modules/services/openssh.nix @@ -38,55 +38,55 @@ security.pam.services.sshd.text = lib.mkDefault ( lib.mkAfter '' session optional pam_exec.so ${pkgs.writeShellScript "ssh-login-notify" '' - if [ "$PAM_TYPE" = "open_session" ]; then - TIMESTAMP=$(${pkgs.coreutils}/bin/date "+%Y-%m-%d %H:%M:%S %Z") - HOSTNAME=$(${pkgs.coreutils}/bin/cat /etc/hostname) - - ( - ${pkgs.coreutils}/bin/echo "To: leander@schererleander.de" - ${pkgs.coreutils}/bin/echo "From: root@sachiel.schererleander.de" - ${pkgs.coreutils}/bin/echo "Subject: SSH Login Alert: $PAM_USER" - ${pkgs.coreutils}/bin/echo "Content-Type: text/html; charset=UTF-8" - ${pkgs.coreutils}/bin/echo "" - ${pkgs.coreutils}/bin/cat < - - - - - - -

SSH Login Alert

- -

A successful SSH login was just detected.

+ if [ "$PAM_TYPE" = "open_session" ]; then + TIMESTAMP=$(${pkgs.coreutils}/bin/date "+%Y-%m-%d %H:%M:%S %Z") + HOSTNAME=$(${pkgs.coreutils}/bin/cat /etc/hostname) + + ( + ${pkgs.coreutils}/bin/echo "To: leander@schererleander.de" + ${pkgs.coreutils}/bin/echo "From: root@sachiel.schererleander.de" + ${pkgs.coreutils}/bin/echo "Subject: SSH Login Alert: $PAM_USER" + ${pkgs.coreutils}/bin/echo "Content-Type: text/html; charset=UTF-8" + ${pkgs.coreutils}/bin/echo "" + ${pkgs.coreutils}/bin/cat < + + + + + + +

SSH Login Alert

+ +

A successful SSH login was just detected.

- - - - - - - -
User$PAM_USER
Host$HOSTNAME
Time$TIMESTAMP
IP Address$PAM_RHOST
Service$PAM_SERVICE
TTY$PAM_TTY
- - -EOF - ) | /run/wrappers/bin/sendmail -f root@sachiel.schererleander.de leander@schererleander.de - fi + + + + + + + +
User$PAM_USER
Host$HOSTNAME
Time$TIMESTAMP
IP Address$PAM_RHOST
Service$PAM_SERVICE
TTY$PAM_TTY
+ + + EOF + ) | /run/wrappers/bin/sendmail -f root@sachiel.schererleander.de leander@schererleander.de + fi ''} '' ); diff --git a/modules/system/wine.nix b/modules/system/wine.nix index ac5074b..0de6315 100644 --- a/modules/system/wine.nix +++ b/modules/system/wine.nix @@ -4,7 +4,7 @@ let wine = pkgs.wineWow64Packages.waylandFull; - wineForWinetricks = pkgs.runCommand "wine-for-winetricks" {} '' + wineForWinetricks = pkgs.runCommand "wine-for-winetricks" { } '' mkdir -p $out/bin ln -s ${wine}/bin/wine $out/bin/wine -- cgit v1.3.1