Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 98 lines 1.8 kB view raw
1{ 2 stdenv, 3 lib, 4 makeWrapper, 5 fetchFromGitHub, 6 ocaml, 7 pkg-config, 8 mupdf, 9 libX11, 10 jbig2dec, 11 openjpeg, 12 libjpeg, 13 lcms2, 14 harfbuzz, 15 libGLU, 16 libGL, 17 gumbo, 18 freetype, 19 zlib, 20 xclip, 21 inotify-tools, 22 procps, 23}: 24 25assert lib.versionAtLeast (lib.getVersion ocaml) "4.07"; 26 27stdenv.mkDerivation rec { 28 pname = "llpp"; 29 version = "42"; 30 31 src = fetchFromGitHub { 32 owner = "criticic"; 33 repo = "llpp"; 34 rev = "v${version}"; 35 hash = "sha256-B/jKvBtBwMOErUVmGFGXXIT8FzMl1DFidfDCHIH41TU="; 36 }; 37 38 postPatch = '' 39 sed -i "2d;s/ver=.*/ver=${version}/" build.bash 40 ''; 41 42 strictDeps = true; 43 44 nativeBuildInputs = [ 45 makeWrapper 46 ocaml 47 pkg-config 48 ]; 49 buildInputs = [ 50 mupdf 51 libX11 52 freetype 53 zlib 54 gumbo 55 jbig2dec 56 openjpeg 57 libjpeg 58 lcms2 59 harfbuzz 60 ] 61 ++ lib.optionals stdenv.hostPlatform.isLinux [ 62 libGLU 63 libGL 64 ]; 65 66 dontStrip = true; 67 68 buildPhase = '' 69 bash ./build.bash build 70 ''; 71 72 installPhase = '' 73 install -d $out/bin 74 install build/llpp $out/bin 75 install misc/llpp.inotify $out/bin/llpp.inotify 76 install -Dm444 misc/llpp.desktop -t $out/share/applications 77 '' 78 + lib.optionalString stdenv.hostPlatform.isLinux '' 79 wrapProgram $out/bin/llpp \ 80 --prefix PATH ":" "${xclip}/bin" 81 82 wrapProgram $out/bin/llpp.inotify \ 83 --prefix PATH ":" "$out/bin" \ 84 --prefix PATH ":" "${inotify-tools}/bin" \ 85 --prefix PATH ":" "${procps}/bin" 86 ''; 87 88 meta = with lib; { 89 homepage = "https://github.com/criticic/llpp"; 90 description = "MuPDF based PDF pager written in OCaml"; 91 platforms = platforms.linux ++ platforms.darwin; 92 maintainers = with maintainers; [ pSub ]; 93 license = [ 94 licenses.publicDomain 95 licenses.bsd3 96 ]; 97 }; 98}