1{
2 lib,
3 buildFHSEnv,
4 fetchFromGitHub,
5 ocl-icd,
6 openssl,
7 re2,
8 libevent,
9 git,
10 zlib,
11 expat,
12 scons,
13 stdenv,
14 extraPkgs ? [ ],
15}:
16let
17 pname = "fah-client";
18 version = "8.4.9";
19
20 cbangSrc = fetchFromGitHub {
21 owner = "cauldrondevelopmentllc";
22 repo = "cbang";
23 rev = "bastet-v${version}";
24 sha256 = "sha256-xApE5m8YyIFRJLQYeboWelWukuuIjHNZxPDyq0RzSL4=";
25 };
26
27 fah-client = stdenv.mkDerivation {
28 inherit pname version;
29
30 src = fetchFromGitHub {
31 owner = "FoldingAtHome";
32 repo = "fah-client-bastet";
33 rev = "v${version}";
34 sha256 = "sha256-PewXhmkTru2yJhMkenbn7pcmVsa7eomjrMvs1PUGph8=";
35 };
36
37 nativeBuildInputs = [
38 scons
39 re2
40 libevent
41 git
42 ];
43
44 buildInputs = [ openssl ];
45
46 postUnpack = ''
47 export CBANG_HOME=$NIX_BUILD_TOP/cbang
48
49 cp -r --no-preserve=mode ${cbangSrc} $CBANG_HOME
50 '';
51
52 preBuild = ''
53 scons -C $CBANG_HOME
54 '';
55
56 installPhase = ''
57 runHook preInstall
58
59 mkdir -p $out/{bin,share/applications}
60
61 cp fah-client $out/bin/fah-client
62
63 cp install/lin/fah-client.desktop.in $out/share/applications/fah-client.desktop
64 sed \
65 -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" \
66 -e "s|%(PACKAGE_URL)s|https://github.com/FoldingAtHome/fah-client-bastet|g" \
67 -i $out/share/applications/fah-client.desktop
68
69 runHook postInstall
70 '';
71
72 };
73in
74buildFHSEnv {
75 inherit pname version;
76
77 targetPkgs =
78 _:
79 [
80 fah-client
81 ocl-icd
82 zlib
83 expat
84 ]
85 ++ extraPkgs;
86
87 runScript = "/bin/fah-client";
88
89 meta = {
90 description = "Folding@home client";
91 homepage = "https://foldingathome.org/";
92 license = lib.licenses.gpl3;
93 mainProgram = "fah-client";
94 maintainers = [ lib.maintainers.zimbatm ];
95 platforms = [ "x86_64-linux" ];
96 };
97}