diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix index 75e467d4cdf8a..be61a76190a27 100644 --- a/pkgs/applications/misc/k2pdfopt/default.nix +++ b/pkgs/applications/misc/k2pdfopt/default.nix @@ -2,7 +2,7 @@ , cmake, pkgconfig, zlib, libpng, makeWrapper , enableGSL ? true, gsl , enableGhostScript ? true, ghostscript -, enableMuPDF ? true, mupdf +, enableMuPDF ? true, mupdf_1_17 , enableDJVU ? true, djvulibre , enableGOCR ? false, gocr # Disabled by default due to crashes , enableTesseract ? true, leptonica, tesseract4 @@ -89,7 +89,7 @@ in stdenv.mkDerivation rec { cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/ ''; }; - mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: { + mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: { patches = patches ++ [ mupdf_patch ]; # This function is missing in font.c, see font-win32.c postPatch = '' diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix index d7752258df98e..c16322ad84fac 100644 --- a/pkgs/applications/misc/llpp/default.nix +++ b/pkgs/applications/misc/llpp/default.nix @@ -1,16 +1,16 @@ -{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, -libGLU, libGL, freetype, xclip, inotify-tools, procps }: +{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, 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 = "32"; + version = "33"; src = fetchgit { url = "git://repo.or.cz/llpp.git"; rev = "v${version}"; - sha256 = "1h1zysm5cz8laq8li49djl6929cnrjlflag9hw0c1dcr4zaxk32y"; + sha256 = "0shqzhaflm2yhkx6c0csq9lxp1s1r7lh5kgpx9q5k06xya2a7yvs"; fetchSubmodules = false; }; @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { }); nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype ]; + buildInputs = [ ocaml mupdf libX11 libGLU libGL freetype zlib gumbo jbig2dec openjpeg libjpeg lcms2 harfbuzz ]; dontStrip = true; diff --git a/pkgs/applications/misc/llpp/fix-build-bash.patch b/pkgs/applications/misc/llpp/fix-build-bash.patch index fbc341c8af783..c12828f2d94d7 100644 --- a/pkgs/applications/misc/llpp/fix-build-bash.patch +++ b/pkgs/applications/misc/llpp/fix-build-bash.patch @@ -1,8 +1,9 @@ diff --git a/build.bash b/build.bash index 7c278b6..41494c5 100755 +with manual adjustments --- a/build.bash +++ b/build.bash -@@ -29,7 +29,6 @@ srcd="$(dirname $0)" +@@ -30,7 +30,6 @@ srcd="$(dirname $0)" mudir=$outd/mupdf muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include" @@ -10,25 +11,25 @@ index 7c278b6..41494c5 100755 mkdir -p $outd/{$wsid,lablGL} :>$outd/ordered -@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; } - mbt=${mbt:-native} - mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a +@@ -41,12 +40,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; } + mulibst="$mudir/build/$mbt/libs" + mulibs="$mudir/build/$mbt/libmupdf.a $mudir/build/$mbt/libmupdf-third.a" -keycmd="(cd $mudir && make -q build=$mbt libs && echo); digest $mulibs" --isfresh "$mulibs" "$(eval $keycmd)" || ( +-isfresh "$mulibst" "$(eval $keycmd)" || ( - make -C "$mudir" build=$mbt -j $mjobs libs -- eval $keycmd >$mudir/build/$mbt/libmupdf.a.past +- eval $keycmd >${mulibst}.past -) && vecho "fresh mupdf" - oincs() { local i= local incs1= -@@ -89,34 +82,6 @@ mflags() { +@@ -100,35 +93,6 @@ mflags() { } overs="$(ocamlc -vnum 2>/dev/null)" || overs="" --test "$overs" = "4.10.0" || { -- url=https://caml.inria.fr/pub/distrib/ocaml-4.10/ocaml-4.10.0.tar.xz +-test "$overs" = "4.11.1" || { +- url=https://caml.inria.fr/pub/distrib/ocaml-4.11/ocaml-4.11.1.tar.xz - txz=$outd/$(basename $url) - keycmd="printf $url; digest $txz;" - isfresh $txz "$(eval $keycmd)" || { @@ -48,7 +49,8 @@ index 7c278b6..41494c5 100755 - tar xf $txz -C $outd - bn=$(basename $url) - cd $outd/${bn%.tar.xz} -- ./configure --disable-ocamldoc --enable-debugger=no --prefix=$absprefix +- ./configure --disable-ocamldoc --disable-ocamltest \ +- --enable-debugger=no --prefix=$absprefix - make -j $mjobs world - make install - eval $keycmd >$absprefix/bin/ocamlc.past @@ -58,7 +60,7 @@ index 7c278b6..41494c5 100755 ccomp=${LLPP_CC-$(ocamlc -config | grep "^c_compiler: " | \ { read _ c; echo $c; })} -@@ -230,7 +195,7 @@ bobjc() { +@@ -243,7 +208,7 @@ bobjc() { } && vecho "fresh $o" } @@ -67,12 +69,12 @@ index 7c278b6..41494c5 100755 cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)" keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml" -@@ -284,7 +249,7 @@ for m in ml_gl ml_glarray ml_raw; do +@@ -291,7 +256,7 @@ for m in ml_gl ml_glarray ml_raw; do done libs="str.cma unix.cma" -clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread" -+clibs="-lmupdf -lfreetype -lpthread" ++clibs="-lmupdf -lmupdf-third -lfreetype -lgumbo -ljpeg -lopenjp2 -ljbig2dec -llcms2 -lharfbuzz -lpthread -lz" if $darwin; then mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; }) clibs="$clibs -framework Cocoa -framework OpenGL" diff --git a/pkgs/applications/misc/mupdf/1.17.nix b/pkgs/applications/misc/mupdf/1.17.nix new file mode 100644 index 0000000000000..c6243e5f1d6ba --- /dev/null +++ b/pkgs/applications/misc/mupdf/1.17.nix @@ -0,0 +1,95 @@ +{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg +, jbig2dec, libjpeg , darwin +, enableX11 ? true, libX11, libXext, libXi, libXrandr +, enableCurl ? true, curl, openssl +, enableGL ? true, freeglut, libGLU +}: + +let + + # OpenJPEG version is hardcoded in package source + openJpegVersion = with stdenv; + lib.versions.majorMinor (lib.getVersion openjpeg); + + +in stdenv.mkDerivation rec { + version = "1.17.0"; + pname = "mupdf"; + + src = fetchurl { + url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz"; + sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0"; + }; + + patches = + # Use shared libraries to decrease size + stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch + ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch + ; + + postPatch = '' + sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c + ''; + + makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ] + ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ] + ++ lib.optionals enableCurl [ curl openssl ] + ++ lib.optionals enableGL ( + if stdenv.isDarwin then + with darwin.apple_sdk.frameworks; [ GLUT OpenGL ] + else + [ freeglut libGLU ]) + ; + outputs = [ "bin" "dev" "out" "man" "doc" ]; + + preConfigure = '' + # Don't remove mujs because upstream version is incompatible + rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib} + ''; + + postInstall = '' + mkdir -p "$out/lib/pkgconfig" + cat >"$out/lib/pkgconfig/mupdf.pc" < $bin/share/applications/mupdf.desktop <