diff --git a/flake.lock b/flake.lock index 549dcf9..204dac0 100644 --- a/flake.lock +++ b/flake.lock @@ -235,11 +235,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -253,11 +253,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -285,24 +285,6 @@ } }, "flake-utils_5": { - "inputs": { - "systems": "systems_4" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_6": { "inputs": { "systems": [ "stylix", @@ -520,28 +502,6 @@ "type": "github" } }, - "microvm": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs" - ], - "spectrum": "spectrum" - }, - "locked": { - "lastModified": 1733583112, - "narHash": "sha256-A270nuR+P3lEY0p10Bt70tq5DCB39+DnaeFkZBec4+s=", - "owner": "astro", - "repo": "microvm.nix", - "rev": "0308cc2d134d5e62cdef55ecb4c5e5c3824636f0", - "type": "github" - }, - "original": { - "owner": "astro", - "repo": "microvm.nix", - "type": "github" - } - }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -587,7 +547,7 @@ "nixos-wsl": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ] @@ -623,38 +583,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1728538411, - "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1732238832, - "narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "devshell": "devshell", @@ -686,7 +614,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_4", "ixx": "ixx", "nixpkgs": [ "nvim-nix", @@ -711,7 +639,7 @@ "nvfetcher": { "inputs": { "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] @@ -757,7 +685,6 @@ "flake-parts": "flake-parts", "hardware": "hardware", "home-manager": "home-manager", - "microvm": "microvm", "nix-index-database": "nix-index-database", "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs", @@ -771,7 +698,9 @@ }, "sobercookie": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1731438009, @@ -807,22 +736,6 @@ "type": "github" } }, - "spectrum": { - "flake": false, - "locked": { - "lastModified": 1733308308, - "narHash": "sha256-+RcbMAjSxV1wW5UpS9abIG1lFZC8bITPiFIKNnE7RLs=", - "ref": "refs/heads/main", - "rev": "80c9e9830d460c944c8f730065f18bb733bc7ee2", - "revCount": 792, - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" - }, - "original": { - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" - } - }, "stylix": { "inputs": { "base16": "base16", @@ -830,11 +743,13 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_6", + "flake-utils": "flake-utils_5", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_3", - "systems": "systems_5", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_4", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux" @@ -913,21 +828,6 @@ "type": "github" } }, - "systems_5": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index f65c8c4..bc7a4d3 100644 --- a/flake.nix +++ b/flake.nix @@ -4,13 +4,8 @@ inherit inputs; } { systems = ["x86_64-linux"]; - imports = [ - ./home/profiles - ./nix/machines - ]; - flake = { - }; + imports = [./nix/machines]; perSystem = {pkgs, ...}: { devShells.default = pkgs.mkShell { @@ -34,41 +29,52 @@ }; formatter = pkgs.alejandra; - # formatter = pkgs.nixfmt-rfc-style; }; }; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - flake-parts.url = "github:hercules-ci/flake-parts"; - + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; hardware.url = "github:nixos/nixos-hardware"; - home-manager.url = "github:nix-community/home-manager"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nvim-nix = { url = "github:xunuwu/nvim-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - stylix.url = "github:danth/stylix"; + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; - sops-nix.url = "github:Mic92/sops-nix"; - nix-index-database.url = "github:Mic92/nix-index-database"; - nixos-wsl.url = "github:nix-community/NixOS-WSL/main"; - nvfetcher.url = "github:berberman/nvfetcher"; - microvm.url = "github:astro/microvm.nix"; - vpn-confinement.url = "github:Maroka-chan/VPN-Confinement"; - sobercookie.url = "github:xunuwu/sobercookie"; - ## deduplication - flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - sops-nix.inputs = { - nixpkgs.follows = "nixpkgs"; + sops-nix = { + url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix-index-database = { + url = "github:Mic92/nix-index-database"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixos-wsl = { + url = "github:nix-community/NixOS-WSL/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nvfetcher = { + url = "github:berberman/nvfetcher"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + vpn-confinement.url = "github:Maroka-chan/VPN-Confinement"; + sobercookie = { + url = "github:xunuwu/sobercookie"; + inputs.nixpkgs.follows = "nixpkgs"; }; - nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - nixos-wsl.inputs.nixpkgs.follows = "nixpkgs"; - nvfetcher.inputs.nixpkgs.follows = "nixpkgs"; - microvm.inputs.nixpkgs.follows = "nixpkgs"; }; } diff --git a/home/profiles/default.nix b/home/profiles/default.nix deleted file mode 100644 index 0a72ff2..0000000 --- a/home/profiles/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - self, - inputs, - pkgs, - ... -}: let - # get these into the module system - extraSpecialArgs = {inherit inputs self;}; - homeImports = { - "xun@kidney" = [ - ../. - ./kidney - {home.stateVersion = "24.05";} - ]; - "xun@nixdesk" = [ - ../. - ./nixdesk - inputs.sops-nix.homeManagerModules.sops - {home.stateVersion = "23.11";} - ]; - }; - - inherit (inputs.home-manager.lib) homeManagerConfiguration; -in { - # we need to pass this to NixOS' HM module - _module.args = {inherit homeImports;}; - - flake = { - homeConfigurations = { - "xun@nixdesk" = homeManagerConfiguration { - modules = homeImports."xun@nixdesk"; - inherit pkgs extraSpecialArgs; - }; - }; - }; -} diff --git a/home/terminal/programs/default.nix b/home/terminal/programs/default.nix deleted file mode 100644 index 5c326d7..0000000 --- a/home/terminal/programs/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - imports = [ - ./git.nix - ./github.nix - ./direnv.nix - ./xdg.nix - ./comma.nix - ./tmux.nix - ]; -} diff --git a/nix/machines/default.nix b/nix/machines/default.nix index e71a4d7..7d9f34a 100644 --- a/nix/machines/default.nix +++ b/nix/machines/default.nix @@ -1,7 +1,6 @@ { self, inputs, - homeImports, ... }: let inherit (inputs.nixpkgs.lib) nixosSystem; @@ -13,24 +12,13 @@ in { kidney = nixosSystem { modules = [ ./kidney - - ../systemProfiles/core/tools.nix - ../systemProfiles/core/users.nix - ../systemProfiles/core/locale.nix - - ../systemProfiles/programs/tools.nix - ../systemProfiles/programs/zsh.nix - ../systemProfiles/programs/home-manager.nix - ../systemProfiles/hardware/graphics.nix - - ../systemProfiles/services/flatpak.nix - ../systemProfiles/services/xdg-portals.nix - - ../systemProfiles/nix/default.nix - ../systemProfiles/nix/gc.nix { home-manager = { - users.xun.imports = homeImports."xun@kidney"; + users.xun.imports = [ + ../../home + ../../home/profiles/kidney + {home.stateVersion = "24.05";} + ]; extraSpecialArgs = specialArgs; }; } @@ -41,71 +29,15 @@ in { nixdesk = nixosSystem { modules = [ ./nixdesk - - inputs.stylix.nixosModules.stylix - - ../systemProfiles/secrets/default.nix - ../systemProfiles/secrets/nixdesk/default.nix - - ../systemProfiles/core/security.nix - ../systemProfiles/core/users.nix - ../systemProfiles/core/ssh.nix - ../systemProfiles/core/locale.nix - ../systemProfiles/nix/default.nix - ../systemProfiles/programs/zsh.nix - ../systemProfiles/core/tools.nix - ../systemProfiles/core/compat.nix - ../systemProfiles/core/boot.nix - ../systemProfiles/core/docs.nix - ../systemProfiles/core/gvfs.nix - - ../systemProfiles/nix/gc.nix - - ../systemProfiles/hardware/graphics.nix - ../systemProfiles/hardware/steam-hardware.nix - ../systemProfiles/hardware/bluetooth.nix - ../systemProfiles/hardware/qmk.nix - - ../systemProfiles/network/networkd.nix - ../systemProfiles/network/avahi.nix - ../systemProfiles/network/localsend.nix - ../systemProfiles/network/tailscale.nix - ../systemProfiles/network/goldberg.nix - - ../systemProfiles/desktop/sway.nix - - ../systemProfiles/programs/dconf.nix - ../systemProfiles/programs/fonts.nix - ../systemProfiles/programs/home-manager.nix - # ../systemProfiles/programs/qt.nix - ../systemProfiles/programs/adb.nix - ../systemProfiles/programs/kanidm.nix - ../systemProfiles/programs/openrgb.nix - ../systemProfiles/programs/tools.nix - ../systemProfiles/programs/thunar.nix - ../systemProfiles/programs/corectrl.nix - - ../systemProfiles/services/default.nix - ../systemProfiles/services/pipewire.nix - ../systemProfiles/services/flatpak.nix - - ../systemProfiles/services/syncthing.nix - ../systemProfiles/services/virt/waydroid.nix - ../systemProfiles/services/virt/virt-manager.nix - ../systemProfiles/services/sunshine.nix - # ../systemProfiles/network/wifi.nix - - ../systemProfiles/themes/dark.nix - - ../systemProfiles/programs/gamemode.nix - ../systemProfiles/programs/gamescope.nix - ../systemProfiles/programs/steam.nix - ../systemProfiles/programs/RE/default.nix - { home-manager = { backupFileExtension = "hm-backup"; - users.xun.imports = homeImports."xun@nixdesk"; + users.xun.imports = [ + ../../home + ../../home/profiles/nixdesk + inputs.sops-nix.homeManagerModules.sops + {home.stateVersion = "23.11";} + ]; extraSpecialArgs = specialArgs; }; } @@ -114,24 +46,7 @@ in { inherit specialArgs; }; hopper = nixosSystem { - modules = [ - ./hopper - - ../systemProfiles/secrets/default.nix - ../systemProfiles/secrets/hopper/default.nix - - ../systemProfiles/core/security.nix - ../systemProfiles/core/locale.nix - ../systemProfiles/core/tools.nix - ../systemProfiles/core/ssh.nix - ../systemProfiles/core/deploy.nix - ../systemProfiles/nix/default.nix # TODO slim this down - - ../systemProfiles/network/tailscale.nix - ../systemProfiles/network/avahi.nix - ../systemProfiles/network/networkd.nix - # services.syncthing # TODO make syncthing not rely on having "xun" user - ]; + modules = [./hopper]; inherit specialArgs; }; diff --git a/nix/machines/hopper/default.nix b/nix/machines/hopper/default.nix index e739c2c..1b6a8d5 100644 --- a/nix/machines/hopper/default.nix +++ b/nix/machines/hopper/default.nix @@ -1,11 +1,27 @@ {inputs, ...}: { imports = [ inputs.hardware.nixosModules.common-cpu-intel - inputs.vpn-confinement.nixosModules.default ./hardware.nix ./newlab.nix + + ../../systemProfiles/secrets/default.nix + ../../systemProfiles/secrets/hopper/default.nix + + ../../systemProfiles/core/security.nix + ../../systemProfiles/core/locale.nix + ../../systemProfiles/core/tools.nix + ../../systemProfiles/core/ssh.nix + ../../systemProfiles/core/deploy.nix + + ../../systemProfiles/nix/default.nix # TODO slim this down + + ../../systemProfiles/network/tailscale.nix + ../../systemProfiles/network/avahi.nix + ../../systemProfiles/network/networkd.nix + + # ../../services/syncthing.nix # TODO make syncthing not rely on having "xun" user ]; networking.hostName = "hopper"; diff --git a/nix/machines/kidney/default.nix b/nix/machines/kidney/default.nix index 68ff4d4..dd4092d 100644 --- a/nix/machines/kidney/default.nix +++ b/nix/machines/kidney/default.nix @@ -3,6 +3,21 @@ ./wsl.nix ./hardware.nix ./fonts.nix + + ../../systemProfiles/core/tools.nix + ../../systemProfiles/core/users.nix + ../../systemProfiles/core/locale.nix + + ../../systemProfiles/programs/tools.nix + ../../systemProfiles/programs/zsh.nix + ../../systemProfiles/programs/home-manager.nix + ../../systemProfiles/hardware/graphics.nix + + ../../systemProfiles/services/flatpak.nix + ../../systemProfiles/services/xdg-portals.nix + + ../../systemProfiles/nix/default.nix + ../../systemProfiles/nix/gc.nix ]; networking.hostName = "kidney"; diff --git a/nix/machines/nixdesk/default.nix b/nix/machines/nixdesk/default.nix index 5ce9eed..9c57b51 100644 --- a/nix/machines/nixdesk/default.nix +++ b/nix/machines/nixdesk/default.nix @@ -1,23 +1,76 @@ -{lib, ...}: { +{ + lib, + inputs, + ... +}: { imports = [ ./hardware.nix ./hibernate-boot.nix ./samba-mount.nix + + inputs.stylix.nixosModules.stylix + + ../../systemProfiles/secrets/default.nix + ../../systemProfiles/secrets/nixdesk/default.nix + + ../../systemProfiles/core/security.nix + ../../systemProfiles/core/users.nix + ../../systemProfiles/core/ssh.nix + ../../systemProfiles/core/locale.nix + ../../systemProfiles/nix/default.nix + ../../systemProfiles/programs/zsh.nix + ../../systemProfiles/core/tools.nix + ../../systemProfiles/core/compat.nix + ../../systemProfiles/core/boot.nix + ../../systemProfiles/core/docs.nix + ../../systemProfiles/core/gvfs.nix + + ../../systemProfiles/nix/gc.nix + + ../../systemProfiles/hardware/graphics.nix + ../../systemProfiles/hardware/steam-hardware.nix + ../../systemProfiles/hardware/bluetooth.nix + ../../systemProfiles/hardware/qmk.nix + + ../../systemProfiles/network/networkd.nix + ../../systemProfiles/network/avahi.nix + ../../systemProfiles/network/localsend.nix + ../../systemProfiles/network/tailscale.nix + ../../systemProfiles/network/goldberg.nix + + ../../systemProfiles/desktop/sway.nix + + ../../systemProfiles/programs/dconf.nix + ../../systemProfiles/programs/fonts.nix + ../../systemProfiles/programs/home-manager.nix + # ../../systemProfiles/programs/qt.nix + ../../systemProfiles/programs/adb.nix + ../../systemProfiles/programs/kanidm.nix + ../../systemProfiles/programs/openrgb.nix + ../../systemProfiles/programs/tools.nix + ../../systemProfiles/programs/thunar.nix + ../../systemProfiles/programs/corectrl.nix + + ../../systemProfiles/services/default.nix + ../../systemProfiles/services/pipewire.nix + ../../systemProfiles/services/flatpak.nix + + ../../systemProfiles/services/syncthing.nix + ../../systemProfiles/services/virt/waydroid.nix + ../../systemProfiles/services/virt/virt-manager.nix + ../../systemProfiles/services/sunshine.nix + # ../../systemProfiles/network/wifi.nix + + ../../systemProfiles/themes/dark.nix + + ../../systemProfiles/programs/gamemode.nix + ../../systemProfiles/programs/gamescope.nix + ../../systemProfiles/programs/steam.nix + ../../systemProfiles/programs/RE/default.nix ]; networking.hostName = "nixdesk"; - #swapDevices = lib.singleton { - # device = "/dev/disk/by-uuid/1dcce4ab-71da-4928-83d5-62b20fd0fddf"; - #}; - - #boot.resumeDevice = "/dev/disk/by-uuid/1dcce4ab-71da-4928-83d5-62b20fd0fddf"; - - #boot.kernelParams = [ - # "resume=UUID=1dcce4ab-71da-4928-83d5-62b20fd0fddf" - # "resume_offset=3841492992" # fdisk -l - #]; - nixpkgs.config = { # rocmSupport = true; # TODO enable once nixpkgs fixes their shit and llvm libc doesnt fail to compile (https://github.com/NixOS/nixpkgs/issues/368672) allowUnfreePredicate = pkg: diff --git a/nix/machines/nixdesk/hardware.nix b/nix/machines/nixdesk/hardware.nix index 7115c70..687236a 100644 --- a/nix/machines/nixdesk/hardware.nix +++ b/nix/machines/nixdesk/hardware.nix @@ -81,14 +81,7 @@ hardware.enableRedistributableFirmware = true; - services.xserver.videoDrivers = [ - "amdgpu" - #"nvidia" - ]; - #hardware.nvidia = { - # modesetting.enable = true; - # package = config.boot.kernelPackages.nvidiaPackages.stable; - #}; + services.xserver.videoDrivers = ["amdgpu"]; nixpkgs.hostPlatform.system = "x86_64-linux"; hardware.cpu.amd.updateMicrocode = true; diff --git a/nix/systemProfiles/programs/RE/default.nix b/nix/systemProfiles/programs/RE/default.nix index f6f0aff..3544461 100644 --- a/nix/systemProfiles/programs/RE/default.nix +++ b/nix/systemProfiles/programs/RE/default.nix @@ -4,32 +4,21 @@ self, ... }: { - environment.systemPackages = let - il2cppdumper = pkgs.callPackage ./il2cppdumper {}; - ilspy = pkgs.callPackage ./ilspy {}; - in - with pkgs; [ - (ghidra.withExtensions (ps: - with ps; [ - gnudisassembler - machinelearning - ])) + environment.systemPackages = with pkgs; [ + (ghidra.withExtensions (ps: + with ps; [ + gnudisassembler + machinelearning + ])) - # (cutter.withPlugins (ps: - # with ps; [ - # rz-ghidra - # ])) - - self.packages.${pkgs.system}.binaryninja-personal - self.packages.${pkgs.system}.ida-pro - # il2cppdumper - # ilspy - gdb - ]; + self.packages.${pkgs.system}.binaryninja-personal + self.packages.${pkgs.system}.ida-pro + # (pkgs.callPackage ./il2cppdumper {}) + # (pkgs.callPackage ./ilspy {}) + gdb + ]; networking.hosts = { "0.0.0.0" = ["master.binary.ninja"]; # idk my binary ninja crack [AMPED] told me to }; } -## NOTE: you still need to run keygen.exe to generate a key - diff --git a/pkgs/default.nix b/pkgs/default.nix index 17994e6..9a68fbd 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,7 +3,6 @@ in { jdnbtexplorer = pkgs.qt6Packages.callPackage ./jdnbtexplorer {}; gamesand = pkgs.callPackage ./gamesand {}; - pince = pkgs.callPackage ./pince {}; binaryninja-personal = pkgs.qt6Packages.callPackage ./binaryninja-personal {}; krunker = pkgs.callPackage ./krunker {inherit nv_generated;}; ida-pro = pkgs.callPackage ./ida-pro {}; diff --git a/pkgs/pince/default.nix b/pkgs/pince/default.nix deleted file mode 100644 index bd239f5..0000000 --- a/pkgs/pince/default.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ - lib, - python3, - python3Packages, - wrapGAppsHook, - gobject-introspection, - gtk3, - cmake, - fetchgit, - qt6, - git, - gdb, - xorg, - xcb-util-cursor, -}: let - libptrscan = builtins.fetchTarball { - url = "https://github.com/kekeimiku/PointerSearcher-X/releases/download/v0.7.3-dylib/libptrscan_pince-x86_64-unknown-linux-gnu.tar.gz"; - sha256 = "sha256:1as9hjp1xf3mfsxyaw5lxibmxr73nhnbgsxabvg34df7g9ihfq3f"; - }; -in - python3Packages.buildPythonApplication rec { - pname = "PINCE"; - version = "0.1"; - format = "other"; - #src = fetchFromGitHub { - # owner = "korcankaraokcu"; - # repo = "PINCE"; - # rev = "823b213c531d9ffda1aa2b6504bc8a9eefc0c27f"; - # hash = "sha256-4MTdr4++1tVfXg/t58kcILi2zS83T4IwqgKKXh0Kx3Q="; - #}; - src = fetchgit { - url = "https://github.com/korcankaraokcu/PINCE"; - rev = "823b213c531d9ffda1aa2b6504bc8a9eefc0c27f"; - hash = "sha256-5jcxWMJHoqCIFLgMyygZ3uh5WfkD0pjiqWg1iKzdwZc="; - leaveDotGit = true; - }; - - dontUseCmakeConfigure = true; - dontWrapPythonPrograms = true; - dontWrapGApps = true; - - patchPhase = '' - # Remove ".venv/PINCE" exist check - sed -i '/^if \[ ! -d "\.venv\/PINCE" \]; /,/activate$/ s/^/# /' "./PINCE.sh" - sed -i '$s/.venv\/PINCE\/bin\/python3/${lib.escape ["/"] (toString python3)}\/bin\/python3/g' "./PINCE.sh" - sed -i 's/#!\/bin\/bash/#!\/bin\/sh/' "./PINCE.sh" - - sed -i 's/\/bin\/gdb/gdb/g' "libpince/typedefs.py" - - # Create a simple start script - cat > pince <<- SHELL - #!/usr/bin/env bash - - sh PINCE.sh "\$@" - - read -p "Press enter to exit..." - - SHELL - ''; - - buildPhase = '' - runHook preBuild - - sed -i 's/git submodule.*//g' install.sh - . <(sed -n '/^exit_on_error() /,/^}/p' install.sh) - . <(sed -n '/^set_install_vars() /,/^}/p' install.sh) - . <(sed -n '/^compile_translations() /,/^}/p' install.sh) - . <(sed -n '/^compile_libscanmem() /,/^}/p' install.sh) - . <(sed -n '/^install_libscanmem() /,/^}/p' install.sh) - - install_libscanmem || exit_on_error - - mkdir -p libpince/libptrscan - cp ${libptrscan}/ptrscan.py libpince/libptrscan/ - cp ${libptrscan}/libptrscan_pince.so libpince/libptrscan/libptrscan.so - - LRELEASE_CMD=${qt6.qttools}/bin/lrelease compile_translations || exit_on_error - - runHook postBuild - ''; - - fixupPhase = '' - runHook preFixup - - makeWrapper ${lib.getExe python3} $out/bin/PINCE \ - "''${gappsWrapperArgs[@]}" \ - --set PYTHONPATH "${python3Packages.makePythonPath (with python3Packages; [ - pexpect - pyqt6 - distorm3 - keystone-engine - pygdbmi - keyboard - pygobject3 - ])}" \ - --suffix PATH : "${lib.makeBinPath [ - gdb - qt6.full - ]}" \ - --add-flags "$out/share/pince/PINCE.py" - - runHook postFixup - ''; - - nativeBuildInputs = [ - wrapGAppsHook - git - cmake - gobject-introspection - ]; - buildInputs = [ - python3 - ]; - propagatedBuildInputs = with python3Packages; [ - qt6.full - xorg.libxcb - xcb-util-cursor - gtk3 - pyqt6 - pexpect - distorm3 - keystone-engine - pygdbmi - keyboard - pygobject3 - gdb - ]; - installPhase = '' - mkdir -p $out/share/pince - cp -r . $out/share/pince - ''; - }