{ description = "Cassowary - use windows applications on linux as if they were native"; inputs = { nixpkgs.url = "nixpkgs/nixos-24.11"; }; outputs = {nixpkgs, ...}: let system = "x86_64-linux"; pkgs = import nixpkgs {inherit system;}; version = "0.6"; pname = "cassowary"; src = pkgs.fetchFromGitHub { owner = "casualsnek"; repo = pname; tag = version; hash = "sha256-qsawsi3erjIXIT0JXKx54P2gV8c+RHThef0iw1AEHyo="; }; in { packages.${system}.default = pkgs.python312Packages.buildPythonPackage { inherit version pname src; propagatedBuildInputs = [ pkgs.python312Packages.libvirt pkgs.python312Packages.pyqt5 pkgs.libsForQt5.qtbase pkgs.freerdp ]; buildInputs = [ pkgs.libsForQt5.qttools pkgs.python312Packages.setuptools ]; nativeBuildInputs = [ pkgs.libsForQt5.wrapQtAppsHook ]; sourceRoot = "${src.name}/app-linux"; # Arguments to be passed to `makeWrapper`, only used by buildPython* preFixup = '' qtWrapperArgs+=("''${gappsWrapperArgs[@]}") # You can manually patch scripts using: wrapQtApp "$out/bin/myapp". TODO: check when it's required. wrapQtApp $out/bin/cassowary ''; format = "pyproject"; patches = [ ./main_ui.patch ./desktopitemdialog.patch ]; }; }; }