aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/pdf.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/pdf.scm')
-rw-r--r--gnu/packages/pdf.scm149
1 files changed, 102 insertions, 47 deletions
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 2778f1d6a3..65d7b26df3 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
@@ -34,6 +34,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@@ -58,6 +59,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
@@ -80,20 +82,21 @@
(define-public poppler
(package
(name "poppler")
- (version "0.63.0")
+ (replacement poppler/fixed)
+ (version "0.68.0")
(source (origin
(method url-fetch)
(uri (string-append "https://poppler.freedesktop.org/poppler-"
version ".tar.xz"))
(sha256
(base32
- "04d1z1ygyb3llzc6s6c99wxafvljj2sc5b76djif34f7mzfqmk17"))))
+ "0n0f7mv24lzv9p3dlzakpdhqg7ygcvl6l40grcz95xldzgq083gr"))))
(build-system cmake-build-system)
;; FIXME:
;; use libcurl: no
(inputs `(("fontconfig" ,fontconfig)
("freetype" ,freetype)
- ("libjpeg" ,libjpeg)
+ ("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libtiff" ,libtiff)
("lcms" ,lcms)
@@ -104,8 +107,12 @@
;; GLib. But of course, that Cairo must not depend on Poppler.
("cairo" ,(package (inherit cairo)
(inputs (alist-delete "poppler"
- (package-inputs cairo)))))
- ("glib" ,glib)))
+ (package-inputs cairo)))))))
+ (propagated-inputs
+ ;; As per poppler-cairo and poppler-glib.pc.
+ ;; XXX: Ideally we'd propagate Cairo too, but that would require a
+ ;; different solution to the circular dependency mentioned above.
+ `(("glib" ,glib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; glib-mkenums, etc.
@@ -125,6 +132,14 @@
(license license:gpl2+)
(home-page "https://poppler.freedesktop.org/")))
+(define poppler/fixed
+ (package
+ (inherit poppler)
+ (source (origin
+ (inherit (package-source poppler))
+ (patches (append (origin-patches (package-source poppler))
+ (search-patches "poppler-CVE-2018-19149.patch")))))))
+
(define-public poppler-data
(package
(name "poppler-data")
@@ -156,14 +171,14 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
license:gpl2))))
(define-public poppler-qt4
- (package (inherit poppler)
+ (package/inherit poppler
(name "poppler-qt4")
(inputs `(("qt-4" ,qt-4)
,@(package-inputs poppler)))
(synopsis "Qt4 frontend for the Poppler PDF rendering library")))
(define-public poppler-qt5
- (package (inherit poppler)
+ (package/inherit poppler
(name "poppler-qt5")
(inputs `(("qtbase" ,qtbase)
,@(package-inputs poppler)))
@@ -221,26 +236,23 @@ Poppler PDF rendering library.")
(name "libharu")
(version "2.3.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/libharu/libharu/archive/"
- "RELEASE_"
- (string-join (string-split version #\.) "_")
- ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libharu/libharu.git")
+ (commit (string-append
+ "RELEASE_"
+ (string-join (string-split version #\.) "_")))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1lm4v539y9cb1lvbq387j57sy7yxda3yv8b1pk8m6zazbp66i7lg"))))
+ "15s9hswnl3qqi7yh29jyrg0hma2n99haxznvcywmsp8kjqlyg75q"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-zlib="
(assoc-ref %build-inputs "zlib"))
(string-append "--with-png="
- (assoc-ref %build-inputs "libpng")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autogen
- (lambda _ (invoke "autoreconf" "-vif"))))))
+ (assoc-ref %build-inputs "libpng")))))
(inputs
`(("zlib" ,zlib)
("libpng" ,libpng)))
@@ -413,17 +425,15 @@ using the DjVuLibre library.")
(define-public zathura-pdf-mupdf
(package
(name "zathura-pdf-mupdf")
- (version "0.3.3")
+ (version "0.3.4")
(source (origin
(method url-fetch)
(uri
(string-append "https://pwmt.org/projects/zathura-pdf-mupdf"
"/download/zathura-pdf-mupdf-" version ".tar.xz"))
- (patches
- (search-patches "zathura-pdf-mupdf-link-to-jpeg-libraries.patch"))
(sha256
(base32
- "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j"))))
+ "166d5nz47ixzwj4pixsd5fd9qvjf5v34cdqi3p72vr23pswk2hyn"))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("jbig2dec" ,jbig2dec)
@@ -435,17 +445,9 @@ using the DjVuLibre library.")
(build-system meson-build-system)
(arguments
`(#:tests? #f ; package does not contain tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-plugin-directory
- ;; Something of a regression in 0.3.3: the new Meson build system
- ;; now hard-codes an incorrect plugin directory. Fix it.
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "meson.build"
- (("(install_dir:).*" _ key)
- (string-append key
- "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
- #t)))))
+ #:configure-flags (list (string-append "-Dplugindir="
+ (assoc-ref %outputs "out")
+ "/lib/zathura"))))
(home-page "https://pwmt.org/projects/zathura-pdf-mupdf/")
(synopsis "PDF support for zathura (mupdf backend)")
(description "The zathura-pdf-mupdf plugin adds PDF support to zathura
@@ -511,7 +513,7 @@ by using the poppler rendering engine.")
;; For tests.
("check" ,check)
- ("xorg-server" ,xorg-server-1.19.3)))
+ ("xorg-server" ,xorg-server-for-tests)))
(inputs `(("sqlite" ,sqlite)))
;; Listed in 'Requires.private' of 'zathura.pc'.
(propagated-inputs `(("cairo" ,cairo)
@@ -555,7 +557,8 @@ interaction.")
"/podofo-" version ".tar.gz"))
(sha256
(base32
- "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))))
+ "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))
+ (patches (search-patches "podofo-cmake-3.12.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("cppunit" ,cppunit)
@@ -594,7 +597,7 @@ extracting content or merging files.")
(define-public mupdf
(package
(name "mupdf")
- (version "1.13.0")
+ (version "1.14.0")
(source
(origin
(method url-fetch)
@@ -602,9 +605,17 @@ extracting content or merging files.")
name "-" version "-source.tar.xz"))
(sha256
(base32
- "0129k92bav692l6lyw10ryldx7h2f9khjpgnp3f3n4fdsph9hrkl"))
+ "1psnz02w5p7wc1s1ma7vvjmkjfy641xvsh9ykaqzkk84dflnjgk0"))
(modules '((guix build utils)))
- (snippet '(begin (delete-file-recursively "thirdparty") #t))))
+ (snippet
+ ;; We keep lcms2 since it is different than our lcms.
+ '(begin
+ (for-each
+ (lambda (dir)
+ (delete-file-recursively (string-append "thirdparty/" dir)))
+ '("curl" "freeglut" "freetype" "harfbuzz" "jbig2dec"
+ "libjpeg" "mujs" "openjpeg" "zlib"))
+ #t))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
@@ -625,6 +636,8 @@ extracting content or merging files.")
'(#:tests? #f ; no check target
#:make-flags (list "CC=gcc"
"XCFLAGS=-fpic"
+ "USE_SYSTEM_LIBS=yes"
+ "USE_SYSTEM_MUJS=yes"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
(delete 'configure))))
@@ -639,7 +652,11 @@ listing the table of contents and hyperlinks.
The library ships with a rudimentary X11 viewer, and a set of command
line tools for batch rendering @command{pdfdraw}, rewriting files
@command{pdfclean}, and examining the file structure @command{pdfshow}.")
- (license license:agpl3+)))
+ (license (list license:agpl3+
+ license:bsd-3 ; resources/cmaps
+ license:x11 ; thirdparty/lcms2
+ license:silofl1.1 ; resources/fonts/{han,noto,sil,urw}
+ license:asl2.0)))) ; resources/fonts/droid
(define-public qpdf
(package
@@ -860,14 +877,14 @@ the framebuffer.")
(name "pdf2svg")
(version "0.2.3")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/dawbarton/pdf2svg/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dawbarton/pdf2svg.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "12pa1pajirnlrkz2il3h4l30lc2prryk1qr132jk6z9y1c3qdcag"))))
+ "14ffdm4y26imq99wjhkrhy9lp33165xci1l5ndwfia8hz53bl02k"))))
(build-system gnu-build-system)
(inputs
`(("cairo" ,cairo)
@@ -1008,3 +1025,41 @@ Support some GNU grep options as file name output, page number output,
optional case insensitivity, count occurrences, color highlights and search in
multiple files.")
(license license:gpl2+)))
+
+(define-public pdfpc
+ (package
+ (name "pdfpc")
+ (version "4.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pdfpc/pdfpc.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rmsrpf5vlqhnyyrhq8apndny88ld2qvfjx6258653pqbimv7mx5"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; no test target
+ (inputs
+ `(("cairo" ,cairo)
+ ("gtk+" ,gtk+)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("libgee" ,libgee)
+ ("poppler" ,poppler)
+ ("pango" ,pango)
+ ("vala" ,vala)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://pdfpc.github.io/")
+ (synopsis "Presenter console with multi-monitor support for PDF files")
+ (description
+ "pdfpc is a presentation viewer application which uses multi-monitor
+output to provide meta information to the speaker during the presentation. It
+is able to show a normal presentation window on one screen, while showing a
+more sophisticated overview on the other one providing information like a
+picture of the next slide, as well as the left over time till the end of the
+presentation. The input files processed by pdfpc are PDF documents.")
+ (license license:gpl2+)))