Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 95 lines 1.6 kB view raw
1{ 2 fetchFromGitHub, 3 lib, 4 stdenv, 5 autoconf, 6 automake, 7 pkg-config, 8 m4, 9 curl, 10 libGLU, 11 libGL, 12 libXmu, 13 libXi, 14 libglut, 15 libjpeg, 16 libtool, 17 wxGTK32, 18 xcbutil, 19 sqlite, 20 gtk3, 21 patchelf, 22 libXScrnSaver, 23 libnotify, 24 libX11, 25 libxcb, 26 headless ? false, 27}: 28 29stdenv.mkDerivation rec { 30 pname = "boinc"; 31 version = "8.2.4"; 32 33 src = fetchFromGitHub { 34 name = "${pname}-${version}-src"; 35 owner = "BOINC"; 36 repo = "boinc"; 37 rev = "client_release/${lib.versions.majorMinor version}/${version}"; 38 hash = "sha256-VRYkh7MM8Oq1/alSbZL1w76DtUc0731VAMLUZW32rA8="; 39 }; 40 41 nativeBuildInputs = [ 42 libtool 43 automake 44 autoconf 45 m4 46 pkg-config 47 ]; 48 49 buildInputs = [ 50 curl 51 sqlite 52 patchelf 53 ] 54 ++ lib.optionals (!headless) [ 55 libGLU 56 libGL 57 libXmu 58 libXi 59 libglut 60 libjpeg 61 wxGTK32 62 gtk3 63 libXScrnSaver 64 libnotify 65 libX11 66 libxcb 67 xcbutil 68 ]; 69 70 NIX_LDFLAGS = lib.optionalString (!headless) "-lX11"; 71 72 preConfigure = '' 73 ./_autosetup 74 ''; 75 76 enableParallelBuilding = true; 77 78 configureFlags = [ 79 "--disable-server" 80 "--sysconfdir=${placeholder "out"}/etc" 81 ] 82 ++ lib.optionals headless [ "--disable-manager" ]; 83 84 postInstall = '' 85 install --mode=444 -D 'client/scripts/boinc-client.service' "$out/etc/systemd/system/boinc.service" 86 ''; 87 88 meta = with lib; { 89 description = "Free software for distributed and grid computing"; 90 homepage = "https://boinc.berkeley.edu/"; 91 license = licenses.lgpl2Plus; 92 platforms = platforms.linux; 93 maintainers = with maintainers; [ Luflosi ]; 94 }; 95}