diff --git a/pkgs/by-name/re/retool/package.nix b/pkgs/by-name/re/retool/package.nix index 664862da8380..41fbdafbb80b 100644 --- a/pkgs/by-name/re/retool/package.nix +++ b/pkgs/by-name/re/retool/package.nix @@ -8,18 +8,34 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pname = "retool"; - version = "2.4.5"; + version = "2.4.8"; pyproject = true; src = fetchFromGitHub { owner = "unexpectedpanda"; repo = "retool"; tag = "v${finalAttrs.version}"; - hash = "sha256-q1v/VPcKIMGcAtnELKUpVgRGPyMmL8zJr5RdOClCwoc="; + hash = "sha256-SSSHYwQtDtCONvM5Ze3G5JJ4TW5aCziS3EbxhliXx+g="; }; pythonRelaxDeps = true; + postPatch = '' + # Upstream uses hatch-pyinstaller for a separate frozen-app target, but nixpkgs + # only builds the wheel. Keeping it in build-system.requires makes the wheel build + # fail unless the optional plugin is packaged too. + substituteInPlace pyproject.toml \ + --replace-fail '"hatch-pyinstaller",' "" + + # Retool derives its config/download directory from sys.argv[0], which points + # into the immutable Nix store. Redirect its mutable state to RETOOL_HOME or + # the current working directory instead. + substituteInPlace modules/config/config.py \ + --replace-fail \ + "self.retool_location: pathlib.Path = pathlib.Path(sys.argv[0]).resolve().parent" \ + "self.retool_location: pathlib.Path = pathlib.Path(os.environ.get('RETOOL_HOME', pathlib.Path.cwd())).expanduser()" + ''; + build-system = with python3.pkgs; [ hatchling ]; nativeBuildInputs = [ qt6.wrapQtAppsHook ];