fahclient: wrap in FHS (#271994)

Folding@home downloads arbitrary binaries that it runs and that have the
wrong loader.

Fixes https://github.com/NixOS/nixpkgs/pull/246832#issuecomment-1837625014
This commit is contained in:
Jonas Chevalier
2023-12-05 10:04:09 +01:00
committed by GitHub
parent 5f84cea9b5
commit 80d540bd31
@@ -1,8 +1,11 @@
{ lib
, stdenv
, buildFHSEnv
, fetchFromGitHub
, scons
, ocl-icd
, openssl
, scons
, stdenv
, extraPkgs ? [ ]
}:
let
version = "8.1.18";
@@ -14,57 +17,64 @@ let
hash = "sha256-G0rknVmZiyC4sRTOowFjf7EQ5peGf+HLPPcLWXXFlX4=";
};
fah-web-client-bastetSrc = fetchFromGitHub {
owner = "foldingathome";
repo = "fah-web-client-bastet";
rev = "v${version}";
hash = lib.fakeHash;
fah-client = stdenv.mkDerivation {
pname = "fah-client";
inherit version;
src = fetchFromGitHub {
owner = "FoldingAtHome";
repo = "fah-client-bastet";
rev = "v${version}";
hash = "sha256-IgT/5NqCwN8N8OObjtASuT4IRb2EN4bdixxUdjiyddI=";
};
nativeBuildInputs = [ scons ];
buildInputs = [ openssl ];
postUnpack = ''
export CBANG_HOME=$NIX_BUILD_TOP/cbang
cp -r --no-preserve=mode ${cbangSrc} $CBANG_HOME
'';
preBuild = ''
scons -C $CBANG_HOME
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/applications,share/feh-client}
cp fah-client $out/bin/fah-client
cp install/lin/fah-client.desktop $out/share/applications/
cp -r images $out/share/feh-client/
sed -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" -i $out/share/applications/fah-client.desktop
runHook postInstall
'';
};
in
stdenv.mkDerivation {
pname = "fah-client";
inherit version;
buildFHSEnv {
name = fah-client.name;
src = fetchFromGitHub {
owner = "FoldingAtHome";
repo = "fah-client-bastet";
rev = "v${version}";
hash = "sha256-IgT/5NqCwN8N8OObjtASuT4IRb2EN4bdixxUdjiyddI=";
};
targetPkgs = _: [ fah-client ocl-icd ] ++ extraPkgs;
nativeBuildInputs = [ scons ];
runScript = "/bin/fah-client";
buildInputs = [ openssl ];
postUnpack = ''
export CBANG_HOME=$NIX_BUILD_TOP/cbang
cp -r --no-preserve=mode ${cbangSrc} $CBANG_HOME
'';
preBuild = ''
scons -C $CBANG_HOME
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/applications,share/feh-client}
cp fah-client $out/bin/fah-client
cp install/lin/fah-client.desktop $out/share/applications/
cp -r images $out/share/feh-client/
sed -e "s|Icon=.*|Icon=$out/share/feh-client/images/fahlogo.png|g" -i $out/share/applications/fah-client.desktop
runHook postInstall
extraInstallCommands = ''
mv $out/bin/$name $out/bin/fah-client
'';
meta = {
description = "Folding@home client";
homepage = "https://foldingathome.org/";
license = lib.licenses.gpl3;
mainProgram = "fah-client";
maintainers = [ lib.maintainers.zimbatm ];
platforms = [ "x86_64-linux" ];
};