summary refs log tree commit diff
path: root/gnu/packages/pdf.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/pdf.scm')
-rw-r--r--gnu/packages/pdf.scm291
1 files changed, 140 insertions, 151 deletions
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index a5b5442f29..d4e97e1d82 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, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
@@ -21,6 +21,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,6 +56,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
@@ -63,7 +65,6 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages game-development)
-  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -79,6 +80,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages markup)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
@@ -97,6 +99,7 @@
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -130,7 +133,7 @@
        ("pkg-config" ,pkg-config)
        ("texlive" ,texlive-tiny)))
     (inputs
-     `(("poppler" ,poppler)))
+     (list poppler))
     (home-page "https://github.com/trueroad/extractpdfmark")
     (synopsis "Extract page mode and named destinations as PDFmark from PDF")
     (description
@@ -175,10 +178,7 @@ information.")
                    (,(string-append qtbase "/lib/qt5/plugins/platforms"))))
                #t))))))
     (inputs
-     `(("python-pypdf2" ,python-pypdf2)
-       ("python-pyqt" ,python-pyqt)
-       ("python-poppler-qt5" ,python-poppler-qt5)
-       ("qtbase" ,qtbase-5)))
+     (list python-pypdf2 python-pyqt python-poppler-qt5 qtbase-5))
     (home-page "http://crazy-compilers.com/flyer-composer")
     (synopsis "Rearrange PDF pages to print as flyers on one sheet")
     (description "@command{flyer-composer} can be used to prepare one- or
@@ -223,14 +223,14 @@ please install the @code{flyer-composer-gui} package.")))
 (define-public poppler
   (package
    (name "poppler")
-   (version "0.86.1")
+   (version "21.07.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://poppler.freedesktop.org/poppler-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0v3z4mk1rr8i0c4cfkab7pnxdbil30j4cm4w6cqlq6cfghkhlqxg"))))
+              "1m54hsi8z6c13jdbjwz55flkra1mahmkw2igavbf8p86d2gv4sp2"))))
    (build-system cmake-build-system)
    ;; FIXME:
    ;;  use libcurl:        no
@@ -250,20 +250,28 @@ please install the @code{flyer-composer-gui} package.")))
     ;; 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)))
+    (list glib))
    (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib" ,glib "bin")                      ; glib-mkenums, etc.
-        ("gobject-introspection" ,gobject-introspection)))
+      (list pkg-config
+            `(,glib "bin") ; glib-mkenums, etc.
+            gobject-introspection))
    (arguments
-    `(#:tests? #f ; no test data provided with the tarball
+    `(#:tests? #f                      ;no test data provided with the tarball
       #:configure-flags
       (let* ((out (assoc-ref %outputs "out"))
              (lib (string-append out "/lib")))
         (list "-DENABLE_UNSTABLE_API_ABI_HEADERS=ON" ;to install header files
               "-DENABLE_ZLIB=ON"
+              "-DENABLE_BOOST=OFF"      ;disable Boost to save size
               (string-append "-DCMAKE_INSTALL_LIBDIR=" lib)
-              (string-append "-DCMAKE_INSTALL_RPATH=" lib)))))
+              (string-append "-DCMAKE_INSTALL_RPATH=" lib)))
+      ,@(if (%current-target-system)
+            `(#:phases
+              (modify-phases %standard-phases
+                (add-after 'unpack 'set-PKG_CONFIG
+                  (lambda _
+                    (setenv "PKG_CONFIG" ,(pkg-config-for-target))))))
+            '())))
    (synopsis "PDF rendering library")
    (description
     "Poppler is a PDF rendering library based on the xpdf-3.0 code base.")
@@ -273,14 +281,14 @@ please install the @code{flyer-composer-gui} package.")))
 (define-public poppler-data
   (package
     (name "poppler-data")
-    (version "0.4.10")
+    (version "0.4.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://poppler.freedesktop.org/poppler-data"
                                   "-" version ".tar.gz"))
               (sha256
                (base32
-                "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf"))))
+                "137h4m48gc4v0srnr0gkwaqna6kfdqpy5886if5gjfmh3g6hbv1c"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no test suite
@@ -317,7 +325,8 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
         (uri (pypi-uri "python-poppler-qt5" version))
         (sha256
          (base32
-          "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))))
+          "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"))
+       (patches (search-patches "python-poppler-qt5-fix-build.patch"))))
     (build-system python-build-system)
     (arguments
      `(;; There are no tests.  The check phase just causes a rebuild.
@@ -338,12 +347,9 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
                                                (assoc-ref inputs "python-pyqt")
                                                "/share/sip")) #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("python-sip" ,python-sip-4)
-       ("python-pyqt" ,python-pyqt)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)))
+     (list python-sip-4 python-pyqt poppler-qt5 qtbase-5))
     (home-page "https://pypi.org/project/python-poppler-qt5/")
     (synopsis "Python bindings for Poppler-Qt5")
     (description
@@ -374,12 +380,9 @@ Poppler PDF rendering library.")
             (string-append "--with-png="
                            (assoc-ref %build-inputs "libpng")))))
    (inputs
-    `(("zlib" ,zlib)
-      ("libpng" ,libpng)))
+    (list zlib libpng))
    (native-inputs
-    `(("autoconf" ,autoconf)
-      ("automake" ,automake)
-      ("libtool" ,libtool)))
+    (list autoconf automake libtool))
    (home-page "http://libharu.org/")
    (synopsis "Library for generating PDF files")
    (description
@@ -398,11 +401,7 @@ reading and editing of existing PDF files.")
       (sha256
        (base32 "0ip81c9vy0igjnasl9iv2lz214fb01vvvdzbvjmgwc63fi1jgr0g"))))
    (build-system cmake-build-system)
-   (inputs `(("cups" ,cups)
-             ("freetype" ,freetype)
-             ("libpng" ,libpng)
-             ("qtbase" ,qtbase-5)
-             ("zlib" ,zlib)))
+   (inputs (list cups freetype libpng qtbase-5 zlib))
    (arguments
     `(#:tests? #f))                   ; there is no check target
    (synopsis "Viewer for PDF files based on the Motif toolkit")
@@ -423,9 +422,8 @@ reading and editing of existing PDF files.")
               (sha256
                (base32
                 "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libarchive" ,libarchive)
-              ("zathura" ,zathura)))
+    (native-inputs (list pkg-config))
+    (inputs (list libarchive zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -458,9 +456,8 @@ using libarchive.")
               (sha256
                (base32
                 "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (inputs `(("libspectre" ,libspectre)
-              ("zathura" ,zathura)))
+    (native-inputs (list pkg-config))
+    (inputs (list libspectre zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -493,10 +490,9 @@ using libspectre.")
               (sha256
                (base32
                 "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("zathura" ,zathura)))
+     (list djvulibre zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not contain tests
@@ -529,7 +525,7 @@ using the DjVuLibre library.")
               (sha256
                (base32
                 "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
      `(("jbig2dec" ,jbig2dec)
        ("libjpeg" ,libjpeg-turbo)
@@ -579,10 +575,9 @@ by using the @code{mupdf} rendering library.")
               (sha256
                (base32
                 "1vfl4vkyy3rf39r1sqaa7y8113bgkh2bkfq3nn2inis9mrykmk6m"))))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("poppler" ,poppler)
-       ("zathura" ,zathura)))
+     (list poppler zathura))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f                      ; package does not include tests
@@ -628,10 +623,9 @@ by using the poppler rendering engine.")
                      ;; For tests.
                      ("check" ,check)
                      ("xorg-server" ,xorg-server-for-tests)))
-    (inputs `(("sqlite" ,sqlite)))
+    (inputs (list sqlite))
     ;; Listed in 'Requires.private' of 'zathura.pc'.
-    (propagated-inputs `(("cairo" ,cairo)
-                         ("girara" ,girara)))
+    (propagated-inputs (list cairo girara))
     (native-search-paths
      (list (search-path-specification
             (variable "ZATHURA_PLUGINS_PATH")
@@ -674,8 +668,7 @@ interaction.")
                 "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("cppunit" ,cppunit)
-       ("pkg-config" ,pkg-config)))
+     (list cppunit pkg-config))
     (inputs
      `(("libjpeg" ,libjpeg-turbo)
        ("libtiff" ,libtiff)
@@ -710,21 +703,20 @@ extracting content or merging files.")
 (define-public mupdf
   (package
     (name "mupdf")
-    (version "1.18.0")
+    (version "1.19.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://mupdf.com/downloads/archive/"
                            "mupdf-" version "-source.tar.xz"))
        (sha256
-        (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar"))
-       (patches (search-patches "mupdf-fix-linkage.patch"
-                                "mupdf-CVE-2021-3407.patch"))
+        (base32 "1i98xqgnzp168hnnhradl8658qsif06wlbvcglz0mmh8wi1rkwrq"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove bundled software.
-           (let* ((keep (list "lcms2")) ; different from our lcms2 package
+           (let* ((keep (list "extract"
+                              "lcms2")) ; different from our lcms2 package
                   (from "thirdparty")
                   (kept (string-append from "~temp")))
              (mkdir-p kept)
@@ -750,7 +742,7 @@ extracting content or merging files.")
         ("openssl" ,openssl)
         ("zlib" ,zlib)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (arguments
       `(#:tests? #f                     ; no check target
         #:make-flags (list "verbose=yes"
@@ -809,12 +801,10 @@ line tools for batch rendering @command{pdfdraw}, rewriting files
               (("/usr/bin/env") (which "env")))
             #t)))))
    (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("perl" ,perl)))
+    (list pkg-config perl))
    (propagated-inputs
     ;; In Requires.private of libqpdf.pc.
-    `(("libjpeg-turbo" ,libjpeg-turbo)
-      ("zlib" ,zlib)))
+    (list libjpeg-turbo zlib))
    (synopsis "Command-line tools and library for transforming PDF files")
    (description
     "QPDF is a command-line program that does structural, content-preserving
@@ -842,22 +832,22 @@ program capable of converting PDF into other formats.")
        (patches (search-patches "qpdfview-qt515-compat.patch"))))
     (build-system qt-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("cups" ,cups)
-       ("djvulibre" ,djvulibre)
-       ("libspectre" ,libspectre)
-       ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)))
+     (list cups
+           djvulibre
+           libspectre
+           poppler-qt5
+           qtbase-5
+           qtsvg))
     (arguments
      `(#:tests? #f ; no tests
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda _
+           (lambda* (#:key outputs #:allow-other-keys)
              (substitute* "qpdfview.pri"
-               (("/usr") (assoc-ref %outputs "out")))
+               (("/usr") (assoc-ref outputs "out")))
              (invoke "qmake" "qpdfview.pro"))))))
     (home-page "https://launchpad.net/qpdfview")
     (synopsis "Tabbed document viewer")
@@ -881,13 +871,9 @@ SyncTeX support, and rudimentary support for annotations and forms.")
          "09i88v3wacmx7f96dmq0l3afpyv95lh6jrx16xzm0jd1szdrhn5j"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gtk" ,gtk+-2)
-       ("pango" ,pango)
-       ("poppler" ,poppler)
-       ("glib" ,glib)
-       ("libgnomecanvas" ,libgnomecanvas)))
+     (list gtk+-2 pango poppler glib libgnomecanvas))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://xournal.sourceforge.net/")
     (synopsis "Notetaking using a stylus")
     (description
@@ -934,21 +920,20 @@ using a stylus.")
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
      `(("cppunit" ,cppunit)
-       ("gcc" ,gcc-8)
        ("gettext" ,gettext-minimal)
        ("help2man" ,help2man)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("gtk+" ,gtk+)
-       ("librsvg" ,librsvg)
-       ("libsndfile" ,libsndfile)
-       ("libxml2" ,libxml2)
-       ("libzip" ,libzip)
-       ("lua" ,lua)
-       ("poppler" ,poppler)
-       ("portaudio" ,portaudio)
-       ("texlive-bin" ,texlive-bin)))
+     (list alsa-lib
+           gtk+
+           librsvg
+           libsndfile
+           libxml2
+           libzip
+           lua
+           poppler
+           portaudio
+           texlive-bin))
     (home-page "https://github.com/xournalpp/xournalpp")
     (synopsis "Handwriting notetaking software with PDF annotation support")
     (description "Xournal++ is a hand note taking software written in
@@ -1027,7 +1012,7 @@ optimize toolbar for portrait / landscape
             (base32
              "1v0gy4mbx02ys96ssx89420y0njknlrxs2bx64bv4rp8a0al66w5"))))))
     (propagated-inputs
-     `(("python-pillow" ,python-pillow)))
+     (list python-pillow))
     (home-page "https://www.reportlab.com")
     (synopsis "Python library for generating PDFs and graphics")
     (description "This is the ReportLab PDF Toolkit.  It allows rapid creation
@@ -1053,10 +1038,7 @@ vector formats.")
     (build-system python-build-system)
 
     ;; TODO: Add dependency on pdftk.
-    (inputs `(("python2-pygame" ,python2-pygame)
-              ("python2-pillow" ,python2-pillow)
-              ("sdl" ,sdl)
-              ("xpdf" ,xpdf)))
+    (inputs (list python2-pygame python2-pillow sdl xpdf))
 
     (arguments
      `(#:python ,python-2
@@ -1094,18 +1076,17 @@ the PDF pages.")
 (define-public img2pdf
   (package
     (name "img2pdf")
-    (version "0.4.1")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "img2pdf" version))
        (sha256
-        (base32 "0ljmxp7myxccfdy4kxpn4jzq35qs4pbmmmnih9vis8abm2f2589q"))))
+        (base32 "17z0bn8kihiyqjd1m5jr80m7ry06l1qn0l8v918xg5gs7q2calcf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-pikepdf" ,python-pikepdf)
-       ("python-pillow" ,python-pillow)
-       ("python-tkinter" ,python "tk")))
+     (list python-pikepdf python-pillow
+           `(,python "tk")))
     (home-page "https://gitlab.mister-muffin.de/josch/img2pdf")
     (synopsis "Convert images to PDF via direct JPEG inclusion")
     (description
@@ -1135,10 +1116,14 @@ information for every pixel as the input.")
              (substitute* "mk/Autoconf.mk"
                (("/bin/echo") "echo")
                (("/sbin/ldconfig -p") "echo lib")) #t))
+         (add-before 'build 'set-fcommon
+           (lambda _
+             (setenv "CFLAGS" "-fcommon")))
          (delete 'configure))
         #:tests? #f
-        #:make-flags (list ,(string-append "CC=" (cc-for-target))
-                           (string-append "prefix=" (assoc-ref %outputs "out")))))
+        #:make-flags
+        (list (string-append "CC=" ,(cc-for-target))
+              (string-append "prefix=" (assoc-ref %outputs "out")))))
     (inputs `(("libjpeg" ,libjpeg-turbo)
               ("curl" ,curl)
               ("libtiff" ,libtiff)
@@ -1155,12 +1140,11 @@ information for every pixel as the input.")
               ("libepoxy" ,libepoxy)
               ("libpng" ,libpng)
               ("poppler" ,poppler)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (synopsis "Framebuffer and drm-based image viewer")
     (description
       "fbida contains a few applications for viewing and editing images on
 the framebuffer.")
-
     (license license:gpl2+)))
 
 (define-public pdf2svg
@@ -1178,10 +1162,9 @@ the framebuffer.")
                 "14ffdm4y26imq99wjhkrhy9lp33165xci1l5ndwfia8hz53bl02k"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cairo" ,cairo)
-       ("poppler" ,poppler)))
+     (list cairo poppler))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "http://www.cityinthesky.co.uk/opensource/pdf2svg/")
     (synopsis "PDF to SVG converter")
     (description "@command{pdf2svg} is a simple command-line PDF to SVG
@@ -1262,7 +1245,7 @@ python-pypdf2 instead.")
 (define-public pdfarranger
   (package
     (name "pdfarranger")
-    (version "1.7.1")
+    (version "1.8.2")
     (source
      (origin
        (method git-fetch)
@@ -1271,31 +1254,29 @@ python-pypdf2 instead.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1c2mafnz8pv32wzkc2wx4q8y2x7xffpn6ag12dj7ga5n772fb6s3"))))
+        (base32 "18bpnnwjx72d5ps06dr89mkixiwzc9hf5gr75k8qcnrkshl038v2"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f                      ;no tests
-       #:phases (modify-phases %standard-phases
-                  (add-after 'install 'wrap-for-typelib
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let* ((out     (assoc-ref outputs "out"))
-                             (program (string-append out "/bin/pdfarranger")))
-                        (wrap-program program
-                          `("GI_TYPELIB_PATH" ":" prefix
-                            (,(getenv "GI_TYPELIB_PATH"))))
-                        #t))))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-for-typelib
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (program (string-append out "/bin/pdfarranger")))
+               (wrap-program program
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,(getenv "GI_TYPELIB_PATH"))))))))))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("python-distutils-extra" ,python-distutils-extra)))
+     (list intltool python-distutils-extra))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("poppler" ,poppler)))
+     (list gtk+ poppler))
     (propagated-inputs
-     `(("img2pdf" ,img2pdf)
-       ("python-dateutil" ,python-dateutil)
-       ("python-pikepdf" ,python-pikepdf)
-       ("python-pycairo" ,python-pycairo)
-       ("python-pygobject" ,python-pygobject)))
+     (list img2pdf
+           python-dateutil
+           python-pikepdf
+           python-pycairo
+           python-pygobject))
     (home-page "https://github.com/jeromerobert/pdfarranger")
     (synopsis "Merge, split and re-arrange pages from PDF documents")
     (description
@@ -1320,7 +1301,7 @@ PDF Arranger was formerly known as PDF-Shuffler.")
     (arguments
      `(#:tests? #f))  ; test-suite not included in source archive
     (inputs
-     `(("python-pypdf2" ,python-pypdf2)))
+     (list python-pypdf2))
     (home-page "https://pythonhosted.org/pdftools.pdfposter/")
     (synopsis "Scale and tile PDF images/pages to print on multiple pages")
     (description "@command{pdfposter} can be used to create a large poster by
@@ -1348,11 +1329,9 @@ PDF.  Indeed @command{pdfposter} was inspired by @command{poster}.")
          "1fia10djcxxl7n9jw2prargw4yzbykk6izig2443ycj9syhxrwqf"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libgcrypt" ,libgcrypt)
-       ("pcre" ,pcre)
-       ("poppler" ,poppler)))
+     (list libgcrypt pcre poppler))
     (home-page "https://pdfgrep.org")
     (synopsis "Command-line utility to search text in PDF files")
     (description
@@ -1365,7 +1344,7 @@ multiple files.")
 (define-public pdfpc
   (package
     (name "pdfpc")
-    (version "4.4.1")
+    (version "4.5.0")
     (source
      (origin
        (method git-fetch)
@@ -1374,20 +1353,33 @@ multiple files.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna"))))
+        (base32 "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck"))))
     (build-system cmake-build-system)
-    (arguments '(#:tests? #f))          ; no test target
+    (arguments
+     '(#:tests? #f          ; no test target
+       #:phases
+       (modify-phases %standard-phases
+         ;; This is really a bug in Vala.
+         ;; https://github.com/pdfpc/pdfpc/issues/594
+         (add-after 'unpack 'fix-vala-API-conflict
+           (lambda _
+             (substitute* "src/classes/action/movie.vala"
+               (("info.from_caps\\(caps\\)")
+                "Gst.Video.info_from_caps(out info, caps)")))))))
     (inputs
      `(("cairo" ,cairo)
+       ("discount" ,discount) ; libmarkdown
        ("gtk+" ,gtk+)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
+       ("json-glib" ,json-glib)
        ("libgee" ,libgee)
        ("poppler" ,poppler)
        ("pango" ,pango)
-       ("vala" ,vala)))
+       ("vala" ,vala)
+       ("webkitgtk" ,webkitgtk-with-libsoup2)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://pdfpc.github.io/")
     (synopsis "Presenter console with multi-monitor support for PDF files")
     (description
@@ -1397,7 +1389,7 @@ 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+)))
+    (license license:gpl3+)))
 
 (define-public paps
   (package
@@ -1412,10 +1404,9 @@ presentation.  The input files processed by pdfpc are PDF documents.")
         (base32 "1z1w1fg2bvb8p92n1jlpqp3n9mq42szb2mqhh4xqmmnmfcdkpi9s"))))
     (build-system gnu-build-system)
     (inputs
-     `(("pango" ,pango)))
+     (list pango))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list intltool pkg-config))
     (home-page "https://github.com/dov/paps")
     (synopsis "Pango to PostScript converter")
     (description
@@ -1446,8 +1437,7 @@ rendering of the file through the Pango Cairo back end.")
                (("more-itertools>=2\\.2,<6\\.0\\.0") "more-itertools>=2.2"))
              #t)))))
     (propagated-inputs
-     `(("python-more-itertools" ,python-more-itertools)
-       ("python-pypdf2" ,python-pypdf2)))
+     (list python-more-itertools python-pypdf2))
     (home-page "https://github.com/hellerbarde/stapler")
     (synopsis "PDF manipulation tool")
     (description "Stapler is a pure Python alternative to PDFtk, a tool for
@@ -1525,18 +1515,17 @@ manipulating PDF documents from the command line.  It supports
        ("glib" ,glib)
        ("pango" ,pango)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("python-cairocffi" ,python-cairocffi)
-       ("python-cairosvg" ,python-cairosvg)
-       ("python-cffi" ,python-cffi)
-       ("python-cssselect2" ,python-cssselect2)
-       ("python-html5lib" ,python-html5lib)
-       ("python-pyphen" ,python-pyphen)
-       ("python-tinycss2" ,python-tinycss2)))
+     (list gdk-pixbuf
+           python-cairocffi
+           python-cairosvg
+           python-cffi
+           python-cssselect2
+           python-html5lib
+           python-pyphen
+           python-tinycss2))
     (native-inputs
-     `(("font-dejavu" ,font-dejavu)     ;tests depend on it
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-runner" ,python-pytest-runner)))
+     (list font-dejavu ;tests depend on it
+           python-pytest-cov python-pytest-runner))
     (home-page "https://weasyprint.org/")
     (synopsis "Document factory for creating PDF files from HTML")
     (description "WeasyPrint helps web developers to create PDF documents.  It