blob: bbcd2a03bc74f3dd4daf54e0a7af3ca9577a72f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
{
lib,
stdenvNoCC,
buildFHSEnv,
appimageTools,
fetchurl,
desktop-file-utils,
dpkg,
runScript ? "bitcometd",
writeShellScript,
nix-update,
}:
let
pname = "bitcomet";
version = "2.21.2";
meta = {
homepage = "https://www.bitcomet.com";
description = "BitTorrent download client";
mainProgram = "bitcometd";
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-qHPr4G921W1Pl7n0Wv98yLRbsAkJBrOcyg9kHHjtBGc=";
aarch64-linux = "sha256-VC/dvAGmhqlmZT5XB41x/fTGvMZjYCuz/tSp9MYFUHo=";
};
};
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 meta;
executableName = "bitcometd";
runScript = "bitcometd";
targetPkgs = pkgs: [ bitcomet ] ++ appimageTools.defaultFhsEnvArgs.targetPkgs pkgs;
multiPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
passthru = {
inherit bitcomet;
updateScript = writeShellScript "update-bitcomet" ''
latestVersion=$(curl --fail --silent https://www.cometbbs.com/t/linux%E5%86%85%E6%B5%8B%E7%89%88/88604 | grep -oP 'BitComet-\K[0-9]+\.[0-9]+\.[0-9]+(?=-x86_64\.deb)' | head -n1)
${lib.getExe nix-update} pkgsCross.gnu64.bitcomet.bitcomet --version $latestVersion
${lib.getExe nix-update} pkgsCross.aarch64-multiplatform.bitcomet.bitcomet --version skip
'';
};
}
|