{ stdenv, lib, makeWrapper, fetchFromGitHub, ocaml, pkg-config, mupdf, libX11, jbig2dec, openjpeg, libjpeg, lcms2, harfbuzz, libGLU, libGL, gumbo, freetype, zlib, xclip, inotify-tools, procps, }: assert lib.versionAtLeast (lib.getVersion ocaml) "4.07"; stdenv.mkDerivation rec { pname = "llpp"; version = "42"; src = fetchFromGitHub { owner = "criticic"; repo = "llpp"; rev = "v${version}"; hash = "sha256-B/jKvBtBwMOErUVmGFGXXIT8FzMl1DFidfDCHIH41TU="; }; postPatch = '' sed -i "2d;s/ver=.*/ver=${version}/" build.bash ''; strictDeps = true; nativeBuildInputs = [ makeWrapper ocaml pkg-config ]; buildInputs = [ mupdf libX11 freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libGLU libGL ]; dontStrip = true; buildPhase = '' bash ./build.bash build ''; installPhase = '' install -d $out/bin install build/llpp $out/bin install misc/llpp.inotify $out/bin/llpp.inotify install -Dm444 misc/llpp.desktop -t $out/share/applications '' + lib.optionalString stdenv.hostPlatform.isLinux '' wrapProgram $out/bin/llpp \ --prefix PATH ":" "${xclip}/bin" wrapProgram $out/bin/llpp.inotify \ --prefix PATH ":" "$out/bin" \ --prefix PATH ":" "${inotify-tools}/bin" \ --prefix PATH ":" "${procps}/bin" ''; meta = with lib; { homepage = "https://github.com/criticic/llpp"; description = "MuPDF based PDF pager written in OCaml"; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ pSub ]; license = [ licenses.publicDomain licenses.bsd3 ]; }; }