diff --git a/pkgs/by-name/re/readest/package.nix b/pkgs/by-name/re/readest/package.nix index f53582d7fbf7..896207b66451 100644 --- a/pkgs/by-name/re/readest/package.nix +++ b/pkgs/by-name/re/readest/package.nix @@ -1,4 +1,5 @@ { + stdenv, rustPlatform, pnpm_10, fetchPnpmDeps, @@ -21,13 +22,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "readest"; - version = "0.9.100"; + version = "0.10.6"; src = fetchFromGitHub { owner = "readest"; repo = "readest"; tag = "v${finalAttrs.version}"; - hash = "sha256-GsIOMfNqjcdtVRZ0XwCkxpQoIonivLJVT4GmZyB86M0="; + hash = "sha256-48POUgO6torvLJLXpVzDQLF5sZ2Ws+vhiI1x84+exAw="; fetchSubmodules = true; }; @@ -44,11 +45,11 @@ rustPlatform.buildRustPackage (finalAttrs: { inherit (finalAttrs) pname version src; pnpm = pnpm_10; fetcherVersion = 3; - hash = "sha256-/bzjOdpvuPLBMvX/q1WaO3lFg5/jLz5Ypr5OojssXUI="; + hash = "sha256-4CO0ouas6TAZDaL2J8zr9wR28QB/DVN4y1Cqe8m1FEg="; }; cargoRoot = "../.."; - cargoHash = "sha256-qYBHYjwfGkKmGXN8caamZ6/XGtnxe+lmy6dIpdMwS/I="; + cargoHash = "sha256-7wmqDGhtBHU9iOvLrsqGifCEuVdymdljlETkW7dThHA="; buildAndTestSubdir = "src-tauri"; @@ -60,6 +61,12 @@ rustPlatform.buildRustPackage (finalAttrs: { substituteInPlace src/services/constants.ts \ --replace-fail "autoCheckUpdates: true" "autoCheckUpdates: false" \ --replace-fail "telemetryEnabled: true" "telemetryEnabled: false" + + mkdir -p src-tauri/plugins/tauri-plugin-turso/dist-js + cp -r ${finalAttrs.passthru.tursoPlugin} src-tauri/plugins/tauri-plugin-turso/dist-js + jq '.scripts.build = "true"' \ + src-tauri/plugins/tauri-plugin-turso/package.json | \ + sponge src-tauri/plugins/tauri-plugin-turso/package.json ''; nativeBuildInputs = [ @@ -89,10 +96,50 @@ rustPlatform.buildRustPackage (finalAttrs: { preBuild = '' # set up pdfjs and simplecc pnpm setup-vendors + + # `tauri-plugin-turso` expects frontend files to exist before the build, else it fails with: + # + # > > tauri-plugin-turso-api@0.1.0 build /build/source/apps/readest-app/src-tauri/plugins/tauri-plugin-turso + # > > true + # > + # > Error Unable to find your web assets, did you forget to build your web app? + # Your frontendDist is set to "../out" (which is `/build/source/apps/readest-app/out`). + pnpm --filter @readest/readest-app build ''; passthru.updateScript = nix-update-script { }; + passthru.tursoPluginDeps = fetchPnpmDeps { + pname = "tauri-plugin-turso"; + version = finalAttrs.version; + src = "${finalAttrs.src}/apps/readest-app/src-tauri/plugins/tauri-plugin-turso"; + pnpm = pnpm_10; + fetcherVersion = 3; + hash = "sha256-Jf/UaEaLUg/v9ZRInBCEfkDY4d6nwyAIegCMKZe0iAQ="; + }; + + passthru.tursoPlugin = stdenv.mkDerivation { + pname = "tauri-plugin-turso"; + version = finalAttrs.version; + src = "${finalAttrs.src}/apps/readest-app/src-tauri/plugins/tauri-plugin-turso"; + + nativeBuildInputs = [ + pnpm_10 + pnpmConfigHook + nodejs + ]; + + pnpmDeps = finalAttrs.passthru.tursoPluginDeps; + + buildPhase = '' + pnpm build + ''; + + installPhase = '' + cp -r dist-js $out + ''; + }; + meta = { description = "Modern, feature-rich ebook reader"; homepage = "https://github.com/readest/readest";