Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkgs/applications/misc/k2pdfopt/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 = ''
Expand Down
10 changes: 5 additions & 5 deletions pkgs/applications/misc/llpp/default.nix
Original file line number Diff line number Diff line change
@@ -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;
};

Expand All @@ -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;

Expand Down
28 changes: 15 additions & 13 deletions pkgs/applications/misc/llpp/fix-build-bash.patch
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
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"

-test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING

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)" || {
Expand All @@ -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
Expand All @@ -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"
}

Expand All @@ -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"
95 changes: 95 additions & 0 deletions pkgs/applications/misc/mupdf/1.17.nix
Original file line number Diff line number Diff line change
@@ -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" <<EOF
prefix=$out
libdir=$out/lib
includedir=$out/include

Name: mupdf
Description: Library for rendering PDF documents
Version: ${version}
Libs: -L$out/lib -lmupdf -lmupdf-third
Cflags: -I$dev/include
EOF

moveToOutput "bin" "$bin"
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
mkdir -p $bin/share/applications
cat > $bin/share/applications/mupdf.desktop <<EOF
[Desktop Entry]
Type=Application
Version=1.0
Name=mupdf
Comment=PDF viewer
Exec=$bin/bin/mupdf-x11 %f
Terminal=false
MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip
EOF
'';

enableParallelBuilding = true;

meta = with stdenv.lib; {
homepage = "https://mupdf.com";
repositories.git = "git://git.ghostscript.com/mupdf.git";
description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ vrthra fpletz ];
platforms = platforms.unix;
knownVulnerabilities = [
"CVE-2020-26519: denial of service when parsing JBIG2"
"CVE-2017-5991: NULL pointer dereference"
];
};
}
31 changes: 24 additions & 7 deletions pkgs/applications/misc/mupdf/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
, jbig2dec, libjpeg , darwin
, gumbo
, enableX11 ? true, libX11, libXext, libXi, libXrandr
, enableCurl ? true, curl, openssl
, enableGL ? true, freeglut, libGLU
Expand All @@ -13,27 +14,43 @@ let


in stdenv.mkDerivation rec {
version = "1.17.0";
version = "1.18.0";
pname = "mupdf";

src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48";
};

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
;
stdenv.lib.optional stdenv.isDarwin ./darwin.patch ++ [
(fetchpatch {
name = "pdfocr.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
})
(fetchpatch {
name = "pdf-layer.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
})
(fetchpatch {
name = "pixmap.patch";
url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
})
];

postPatch = ''
sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
'';

# Use shared libraries to decrease size
buildFlags = [ "shared" ];

makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ]
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
++ lib.optionals enableCurl [ curl openssl ]
++ lib.optionals enableGL (
Expand Down
4 changes: 2 additions & 2 deletions pkgs/development/python-modules/pymupdf/default.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{ stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
buildPythonPackage rec {
pname = "PyMuPDF";
version = "1.17.6";
version = "1.18.0";

src = fetchPypi {
inherit pname version;
sha256 = "5eef4ff61698016a296932858625a5a0039b923ba692043e2c98ca02966f1da2";
sha256 = "64ce58f92d9edd2631e447175fa13b4024ac3b6dce6e718e0b003c41de6f7952";
};

patchPhase = ''
Expand Down
4 changes: 2 additions & 2 deletions pkgs/os-specific/linux/jfbview/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub
, freetype, harfbuzz, jbig2dec, libjpeg, libX11, mupdf, ncurses, openjpeg
, freetype, harfbuzz, jbig2dec, libjpeg, libX11, mupdf_1_17, ncurses, openjpeg
, openssl

, imageSupport ? true, imlib2 ? null }:
Expand Down Expand Up @@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ];

buildInputs = [
freetype harfbuzz jbig2dec libjpeg libX11 mupdf ncurses openjpeg
freetype harfbuzz jbig2dec libjpeg libX11 mupdf_1_17 ncurses openjpeg
openssl
] ++ stdenv.lib.optionals imageSupport [
imlib2
Expand Down
1 change: 1 addition & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22488,6 +22488,7 @@ in
pdfsam-basic = callPackage ../applications/misc/pdfsam-basic { };

mupdf = callPackage ../applications/misc/mupdf { };
mupdf_1_17 = callPackage ../applications/misc/mupdf/1.17.nix { };

mystem = callPackage ../applications/misc/mystem { };

Expand Down