diff options
| -rw-r--r-- | modules/pkgs/ida-pro-mcp.nix | 27 | ||||
| -rw-r--r-- | modules/pkgs/ida-pro.nix | 15 | ||||
| -rw-r--r-- | modules/programs/mcp.nix | 7 |
3 files changed, 28 insertions, 21 deletions
diff --git a/modules/pkgs/ida-pro-mcp.nix b/modules/pkgs/ida-pro-mcp.nix index 73a5a3e..37d604d 100644 --- a/modules/pkgs/ida-pro-mcp.nix +++ b/modules/pkgs/ida-pro-mcp.nix @@ -1,50 +1,51 @@ { ... }: { - flake.overlays.ida-pro-mcp = final: prev: { - idapro = final.python313.pkgs.buildPythonPackage rec { + perSystem = { pkgs, ... }: + let + idapro = pkgs.python313.pkgs.buildPythonPackage rec { pname = "idapro"; version = "0.0.9"; pyproject = true; - src = final.fetchPypi { + src = pkgs.fetchPypi { inherit pname version; hash = "sha256-igQ6ic5QdTPlAuj2WBpPtYut4l6PpgSVRbeexjZ5LjU="; }; build-system = [ - final.python313.pkgs.setuptools + pkgs.python313.pkgs.setuptools ]; doCheck = false; - meta = with final.lib; { + meta = with pkgs.lib; { description = "IDA Library Python module"; license = licenses.mit; platforms = platforms.all; }; }; - - ida-pro-mcp = final.python313.pkgs.buildPythonApplication rec { + in { + packages.ida-pro-mcp = pkgs.python313.pkgs.buildPythonApplication rec { pname = "ida-pro-mcp"; version = "2.0.0"; pyproject = true; - src = final.fetchFromGitHub { + src = pkgs.fetchFromGitHub { owner = "mrexodia"; repo = "ida-pro-mcp"; rev = "main"; - hash = "sha256-NkZVtKj4zvUSdEpQxH+/2k2LZrqK322G64jSVAroHaE="; + hash = "sha256-U/+l/HQBUk5Pfu5AnC+dsicQ+CnPAdJkm6mxNyL2Q0w="; }; build-system = [ - final.python313.pkgs.setuptools + pkgs.python313.pkgs.setuptools ]; dependencies = [ - final.idapro - final.python313.pkgs.tomli-w + idapro + pkgs.python313.pkgs.tomli-w ]; pythonImportsCheck = [ @@ -53,7 +54,7 @@ doCheck = false; - meta = with final.lib; { + meta = with pkgs.lib; { description = "IDA Pro MCP server"; homepage = "https://github.com/mrexodia/ida-pro-mcp"; license = licenses.mit; diff --git a/modules/pkgs/ida-pro.nix b/modules/pkgs/ida-pro.nix index 0a680d2..b33e7b2 100644 --- a/modules/pkgs/ida-pro.nix +++ b/modules/pkgs/ida-pro.nix @@ -1,7 +1,12 @@ -{ ... }: +{ inputs, ... }: { - flake.overlays.ida-pro = final: prev: { - ida-pro = final.callPackage ( + perSystem = { system, ... }: let + pkgs = import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in { + packages.ida-pro = pkgs.callPackage ( { autoPatchelfHook, cairo, @@ -187,12 +192,12 @@ flake.modules.nixos.ida-pro = { pkgs, ... }: { - environment.systemPackages = [ pkgs.ida-pro ]; + environment.systemPackages = [ inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.ida-pro ]; }; flake.modules.homeManager.ida-pro = { pkgs, ... }: { - home.packages = [ pkgs.ida-pro ]; + home.packages = [ inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.ida-pro ]; }; } diff --git a/modules/programs/mcp.nix b/modules/programs/mcp.nix index e6b5823..1d11c39 100644 --- a/modules/programs/mcp.nix +++ b/modules/programs/mcp.nix @@ -1,12 +1,13 @@ { flake.modules.homeManager.mcp = - { pkgs, ... }: + { pkgs, inputs, ... }: let - pluginRoot = "${pkgs.ida-pro-mcp}/${pkgs.python313.sitePackages}/ida_pro_mcp"; + ida-pro-mcp = inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.ida-pro-mcp; + pluginRoot = "${ida-pro-mcp}/${pkgs.python313.sitePackages}/ida_pro_mcp"; in { home = { - packages = [ pkgs.ida-pro-mcp ]; + packages = [ ida-pro-mcp ]; file = { ".idapro/plugins/ida_mcp.py".source = "${pluginRoot}/ida_mcp.py"; ".idapro/plugins/ida_mcp".source = "${pluginRoot}/ida_mcp"; |
