mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 23:13:19 +00:00
83 lines
1.7 KiB
Nix
83 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
rustPlatform,
|
|
fetchFromGitHub,
|
|
pkg-config,
|
|
openssl,
|
|
darwin,
|
|
buildNpmPackage,
|
|
nodejs_20,
|
|
}:
|
|
let
|
|
pname = "rqbit";
|
|
|
|
version = "7.0.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ikatson";
|
|
repo = "rqbit";
|
|
rev = "v${version}";
|
|
hash = "sha256-Lt3HxK8fB1Xn2422wGkJ90muJjZ7r9ZHngGD/2tkaMM=";
|
|
};
|
|
|
|
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;
|
|
|
|
cargoHash = "sha256-esDUzzVm5J8fKftBfk5StJzN1YzLa1p0t7BsoxzrowI=";
|
|
|
|
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; {
|
|
description = "Bittorrent client in Rust";
|
|
homepage = "https://github.com/ikatson/rqbit";
|
|
changelog = "https://github.com/ikatson/rqbit/releases/tag/v${version}";
|
|
license = licenses.asl20;
|
|
maintainers = with maintainers; [
|
|
cafkafk
|
|
toasteruwu
|
|
];
|
|
mainProgram = "rqbit";
|
|
};
|
|
}
|