diff --git a/configurations/nos/modules/comics/kapowarr/module.nix b/configurations/nos/modules/comics/kapowarr/module.nix index 9fc2a952..40eb5b20 100644 --- a/configurations/nos/modules/comics/kapowarr/module.nix +++ b/configurations/nos/modules/comics/kapowarr/module.nix @@ -11,7 +11,7 @@ mkIf mkOption mkPackageOption - optionalString + # optionalString types ; @@ -51,13 +51,6 @@ in { description = "The directory where Kapowarr stores its data files."; }; - downloadDir = mkOption { - type = types.path; - default = "${cfg.dataDir}/temp_downloads"; - defaultText = "/var/lib/kapowarr/temp_downloads"; - description = "The directory where Kapowarr stores its downloaded files."; - }; - logDir = mkOption { type = types.path; default = cfg.dataDir; @@ -74,10 +67,6 @@ in { after = ["network.target"]; wantedBy = ["multi-user.target"]; - environment = { - KAPOWARR_LOG_DIR = cfg.logDir; - }; - serviceConfig = { Type = "simple"; User = cfg.user; @@ -86,10 +75,9 @@ in { ExecStart = toString [ (getExe cfg.package) "-d ${cfg.dataDir}" - "-D ${cfg.downloadDir}" "-l ${cfg.logDir}" - "-p ${toString cfg.port}" - (optionalString (cfg.urlBase != null) "-u ${cfg.urlBase}") + # "-p ${toString cfg.port}" + # (optionalString (cfg.urlBase != null) "-u ${cfg.urlBase}") ]; # Hardening from komga service diff --git a/flake.lock b/flake.lock index 8cad4342..60d461e6 100644 --- a/flake.lock +++ b/flake.lock @@ -3,16 +3,16 @@ "Kapowarr-src": { "flake": false, "locked": { - "lastModified": 1744033989, - "narHash": "sha256-g+ORfY2UhPOk1bBwSTzAZ7zwbY+bgggOas6+9P1gWC4=", + "lastModified": 1744746361, + "narHash": "sha256-vu0nVGjwQSW5K1WtYeL8ixWQABJG0KgT6erenRK44Zs=", "owner": "matt1432", "repo": "Kapowarr", - "rev": "d797b9d7f3fee4c7ba7e7e9cd33ed78926c981e9", + "rev": "d5a170f80b39b8d3477574211bd775291268a129", "type": "github" }, "original": { "owner": "matt1432", - "ref": "build-system-bak", + "ref": "build-system", "repo": "Kapowarr", "type": "github" } diff --git a/flake.nix b/flake.nix index 24a47d7f..645538b5 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ Kapowarr-src = { flake = false; owner = "matt1432"; - ref = "build-system-bak"; + ref = "build-system"; repo = "Kapowarr"; type = "github"; }; diff --git a/inputs/default.nix b/inputs/default.nix index 757b5b0e..9db4735d 100644 --- a/inputs/default.nix +++ b/inputs/default.nix @@ -327,7 +327,7 @@ let name = "Kapowarr-src"; owner = "matt1432"; repo = "Kapowarr"; - ref = "build-system-bak"; + ref = "build-system"; # type = "path"; # path = "/home/matt/git/Kapowarr"; } diff --git a/packages/kapowarr/kapowarr/default.nix b/packages/kapowarr/kapowarr/default.nix index 158eee84..97bc4f08 100644 --- a/packages/kapowarr/kapowarr/default.nix +++ b/packages/kapowarr/kapowarr/default.nix @@ -1,7 +1,9 @@ { # nix build inputs lib, - buildPythonApplication, + stdenv, + python, + makeWrapper, Kapowarr-src, # deps rar, @@ -13,7 +15,6 @@ flask, flask-socketio, requests, - setuptools, typing-extensions, # from overrides waitress, websocket-client, @@ -24,37 +25,56 @@ pyproject = fromTOML (readFile "${Kapowarr-src}/pyproject.toml"); + dependencies = [ + typing-extensions + requests + beautifulsoup4 + flask + waitress + cryptography + bencoding + aiohttp + flask-socketio + websocket-client + ]; + + pythonExe = getExe (python.withPackages (ps: dependencies)); + pname = "kapowarr"; version = "${pyproject.project.version}+${Kapowarr-src.shortRev or "dirty"}"; in - buildPythonApplication { + stdenv.mkDerivation { inherit pname version; - format = "pyproject"; src = Kapowarr-src; + nativeBuildInputs = [makeWrapper]; + postPatch = '' + # Remove shebang + sed -i 1d ./Kapowarr.py + + # Disable PWA for now + substituteInPlace ./backend/internals/settings.py \ + --replace-fail "with open(filename, 'w') as f:" "" \ + --replace-fail "dump(manifest, f, indent=4)" "" + # TODO: makes sure this works - substituteInPlace ./src/backend/implementations/converters.py \ + substituteInPlace ./backend/implementations/converters.py \ --replace-fail \ "exe = folder_path('backend', 'lib', Constants.RAR_EXECUTABLES[platform])" \ "exe = '${getExe rar}'" ''; - build-system = [setuptools]; + buildPhase = '' + mkdir -p $out/${python.sitePackages} + cp -r ./. $out/${python.sitePackages} + ''; - dependencies = [ - typing-extensions - requests - beautifulsoup4 - flask - waitress - cryptography - bencoding - aiohttp - flask-socketio - websocket-client - ]; + installPhase = '' + makeWrapper ${pythonExe} $out/bin/kapowarr \ + --add-flags "$out/${python.sitePackages}/Kapowarr.py" + ''; meta = { inherit (rar.meta) platforms;