gnu: mupdf: Update to 1.20.3.

* Copy/paste is fixed.

The build now uses the patched version of freeglut that is included in the
thirdparty directory so that copy/paste works.

* gnu/packages/pdf.scm (mupdf)[source](snippet): Preserve freeglut.
[inputs]: Add LIBXRANDR and LIBXI.
[arguments]: Explicitly add configure flags for system libraries.

Signed-off-by: Marius Bakke <marius@gnu.org>
This commit is contained in:
Pierre-Henry Fröhring 2022-08-17 00:31:19 +02:00 committed by Marius Bakke
parent 608f9efc34
commit f26b9d5ced
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -731,20 +731,20 @@ (define-public python-pydyf
(define-public mupdf (define-public mupdf
(package (package
(name "mupdf") (name "mupdf")
(version "1.19.1") (version "1.20.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://mupdf.com/downloads/archive/" (uri (string-append "https://mupdf.com/downloads/archive/"
"mupdf-" version "-source.tar.xz")) "mupdf-" version "-source.tar.lz"))
(sha256 (sha256
(base32 "0gl0wf16m1cafs20h3v1f4ysf7zlbijjyd6s1r1krwvlzriwdsmm")) (base32
"0s0qclxxdjis04mczgz0fhfpv0j8llk48g82zlfrk0daz0zgcwvg"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
;; Remove bundled software. ;; Remove bundled software. Keep patched variants.
(let* ((keep (list "extract" (let* ((keep (list "extract" "freeglut" "lcms2"))
"lcms2")) ; different from our lcms2 package
(from "thirdparty") (from "thirdparty")
(kept (string-append from "~temp"))) (kept (string-append from "~temp")))
(mkdir-p kept) (mkdir-p kept)
@ -757,7 +757,9 @@ (define-public mupdf
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list curl (list curl
freeglut libxrandr
libxi
freeglut ;for GL/gl.h
freetype freetype
gumbo-parser gumbo-parser
harfbuzz harfbuzz
@ -773,24 +775,36 @@ (define-public mupdf
(list pkg-config)) (list pkg-config))
(arguments (arguments
(list (list
#:tests? #f ; no check target #:tests? #f ;no check target
#:make-flags #:make-flags
#~(list "verbose=yes" #~(list "verbose=yes"
(string-append "CC=" #$(cc-for-target)) (string-append "CC=" #$(cc-for-target))
"XCFLAGS=-fpic" "XCFLAGS=-fpic"
"USE_SYSTEM_LIBS=yes" "USE_SYSTEM_FREETYPE=yes"
"USE_SYSTEM_MUJS=yes" "USE_SYSTEM_GUMBO=yes"
"shared=yes" "USE_SYSTEM_HARFBUZZ=yes"
;; Even with the linkage patch we must fix RUNPATH. "USE_SYSTEM_JBIG2DEC=yes"
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") "USE_SYSTEM_JPEGXR=no # not available"
(string-append "prefix=" #$output)) "USE_SYSTEM_LCMS2=no # lcms2mt is strongly preferred"
#:phases "USE_SYSTEM_LIBJPEG=yes"
#~(modify-phases %standard-phases "USE_SYSTEM_MUJS=no # not available"
(delete 'configure)))) ; no configure script "USE_SYSTEM_OPENJPEG=yes"
"USE_SYSTEM_ZLIB=yes"
"USE_SYSTEM_GLUT=no"
"USE_SYSTEM_CURL=yes"
"USE_SYSTEM_LEPTONICA=yes"
"USE_SYSTEM_TESSERACT=yes"
"USE_SYSTEM_MUJS=yes"
"shared=yes"
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
(string-append "prefix=" #$output))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)))) ;no configure script
(home-page "https://mupdf.com") (home-page "https://mupdf.com")
(synopsis "Lightweight PDF viewer and toolkit") (synopsis "Lightweight PDF viewer and toolkit")
(description (description
"MuPDF is a C library that implements a PDF and XPS parsing and "MuPDF is a C library that implements a PDF and XPS parsing and
rendering engine. It is used primarily to render pages into bitmaps, rendering engine. It is used primarily to render pages into bitmaps,
but also provides support for other operations such as searching and but also provides support for other operations such as searching and
listing the table of contents and hyperlinks. listing the table of contents and hyperlinks.
@ -799,9 +813,9 @@ (define-public mupdf
line tools for batch rendering @command{pdfdraw}, rewriting files line tools for batch rendering @command{pdfdraw}, rewriting files
@command{pdfclean}, and examining the file structure @command{pdfshow}.") @command{pdfclean}, and examining the file structure @command{pdfshow}.")
(license (list license:agpl3+ (license (list license:agpl3+
license:bsd-3 ; resources/cmaps license:bsd-3 ;resources/cmaps
license:x11 ; thirdparty/lcms2 license:x11 ;thirdparty/lcms2
license:silofl1.1 ; resources/fonts/{han,noto,sil,urw} license:silofl1.1 ;resources/fonts/{han,noto,sil,urw}
license:asl2.0)))) ; resources/fonts/droid license:asl2.0)))) ; resources/fonts/droid
(define-public qpdf (define-public qpdf