Files
nixpkgs/pkgs/by-name/bi/bitcomet/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

97 lines
2.0 KiB
Nix

{
lib,
stdenvNoCC,
buildFHSEnv,
appimageTools,
fetchurl,
desktop-file-utils,
dpkg,
webkitgtk_4_0,
runScript ? "BitComet",
}:
let
pname = "bitcomet";
version = "2.15.0";
meta = {
homepage = "https://www.bitcomet.com";
description = "BitTorrent download client";
mainProgram = "BitComet";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [
"aarch64-linux"
"x86_64-linux"
];
maintainers = [ ];
};
bitcomet = stdenvNoCC.mkDerivation {
inherit pname version meta;
src =
let
selectSystem =
attrs:
attrs.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
arch = selectSystem {
x86_64-linux = "x86_64";
aarch64-linux = "arm64";
};
in
fetchurl {
url = "https://download.bitcomet.com/linux/${arch}/BitComet-${version}-${arch}.deb";
hash = selectSystem {
x86_64-linux = "sha256-YmcHcrqw4Ue8uyQqYcLWTYS5WYQro3kk7VLY8pfIsRQ=";
aarch64-linux = "sha256-Bfg20aKU90Ap8scn4eHtf451uxPfWcnQCrh5gWRQmsU=";
};
};
nativeBuildInputs = [
dpkg
desktop-file-utils
];
installPhase = ''
runHook preInstall
desktop-file-edit usr/share/applications/bitcomet.desktop \
--remove-key="Version" \
--remove-key="Comment" \
--set-key="Exec" --set-value="BitComet" \
--set-icon="bitcomet"
cp -r usr $out
runHook postInstall
'';
};
in
buildFHSEnv {
inherit
pname
version
runScript
meta
;
executableName = "BitComet";
targetPkgs =
pkgs:
[
bitcomet
webkitgtk_4_0
]
++ appimageTools.defaultFhsEnvArgs.targetPkgs pkgs;
multiPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
extraInstallCommands = ''
mkdir -p $out/share
ln -s ${bitcomet}/share/applications $out/share/applications
ln -s ${bitcomet}/share/icons $out/share/icons
'';
}