aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorLeander Scherer <leander@schererleander.de>2026-07-02 13:03:54 +0200
committerLeander Scherer <leander@schererleander.de>2026-07-02 13:23:11 +0200
commit67ab10c7ddaecf63cf8a82af17144d7024b4cb21 (patch)
tree48d08174a4c82ab48098e834c734b7230ef9bd52 /modules
parent6998fa888d9471a3b6f5323d0173801997fd9d08 (diff)
refactor(pkgs): migrate ida-pro to perSystem packages
Diffstat (limited to 'modules')
-rw-r--r--modules/pkgs/ida-pro-mcp.nix27
-rw-r--r--modules/pkgs/ida-pro.nix15
-rw-r--r--modules/programs/mcp.nix7
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";