diff options
Diffstat (limited to 'pkgs/by-name/rq/rqbit/package.nix')
-rw-r--r-- | pkgs/by-name/rq/rqbit/package.nix | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/pkgs/by-name/rq/rqbit/package.nix b/pkgs/by-name/rq/rqbit/package.nix index d02fe269203b..9be8715f9cb1 100644 --- a/pkgs/by-name/rq/rqbit/package.nix +++ b/pkgs/by-name/rq/rqbit/package.nix @@ -1,28 +1,71 @@ -{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, darwin }: - -rustPlatform.buildRustPackage rec { +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + pkg-config, + openssl, + darwin, + buildNpmPackage, + nodejs_20, +}: +let pname = "rqbit"; - version = "6.0.0"; + + version = "7.0.1"; src = fetchFromGitHub { owner = "ikatson"; repo = "rqbit"; rev = "v${version}"; - hash = "sha256-YOjFCX1Ckk0M2QOGoYKoY80TFnHs00aVJJAWv2RIp4A="; + hash = "sha256-Lt3HxK8fB1Xn2422wGkJ90muJjZ7r9ZHngGD/2tkaMM="; }; - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "network-interface-1.1.1" = "sha256-9fWdR5nr73oFP9FzHhDsbA4ifQf3LkzBygspxI9/ufs="; - }; + rqbit-webui = buildNpmPackage { + pname = "rqbit-webui"; + + nodejs = nodejs_20; + + inherit version src; + + sourceRoot = "${src.name}/crates/librqbit/webui"; + + npmDepsHash = "sha256-VYPZXZx9rKLKZm5+d2wSVkoPLCQCffaeZVSi7mKRH/M="; + + installPhase = '' + runHook preInstall + + mkdir -p $out/dist + cp -r dist/** $out/dist + + runHook postInstall + ''; }; +in +rustPlatform.buildRustPackage { + inherit pname version src; - nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ]; + cargoHash = "sha256-esDUzzVm5J8fKftBfk5StJzN1YzLa1p0t7BsoxzrowI="; - buildInputs = lib.optionals stdenv.isLinux [ openssl ] + nativeBuildInputs = lib.optionals stdenv.isLinux [ + pkg-config + ]; + + buildInputs = + lib.optionals stdenv.isLinux [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ]; + preConfigure = '' + mkdir -p crates/librqbit/webui/dist + cp -R ${rqbit-webui}/dist/** crates/librqbit/webui/dist + ''; + + postPatch = '' + # This script fascilitates the build of the webui, + # we've already built that + rm crates/librqbit/build.rs + ''; + doCheck = false; meta = with lib; { @@ -30,7 +73,10 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/ikatson/rqbit"; changelog = "https://github.com/ikatson/rqbit/releases/tag/v${version}"; license = licenses.asl20; - maintainers = with maintainers; [ cafkafk toasteruwu ]; + maintainers = with maintainers; [ + cafkafk + toasteruwu + ]; mainProgram = "rqbit"; }; } |