gnu: Add mupdf.
* gnu/packages/pdf.scm (mupdf): New variable. * gnu/packages/patches/mupdf-buildsystem-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Added the above patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
38c55e5c8e
commit
c0b390ed72
@ -372,6 +372,7 @@ dist_patch_DATA = \
|
||||
gnu/packages/patches/mit-krb5-init-fix.patch \
|
||||
gnu/packages/patches/mpc123-initialize-ao.patch \
|
||||
gnu/packages/patches/module-init-tools-moduledir.patch \
|
||||
gnu/packages/patches/mupdf-buildsystem-fix.patch \
|
||||
gnu/packages/patches/nvi-assume-preserve-path.patch \
|
||||
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
|
||||
gnu/packages/patches/ots-no-include-missing-file.patch \
|
||||
|
69
gnu/packages/patches/mupdf-buildsystem-fix.patch
Normal file
69
gnu/packages/patches/mupdf-buildsystem-fix.patch
Normal file
@ -0,0 +1,69 @@
|
||||
Since openjpeg doesn't seem to ship with a .pc file, provide an alternative.
|
||||
|
||||
--- a/ojp2_cppflags.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/ojp2_cppflags.sh 2014-09-13 22:56:38.842418777 +0200
|
||||
@@ -0,0 +1,7 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+# Return the preprocessor flags to link against openjpeg.
|
||||
+
|
||||
+cpppath=$(echo ${NIX_STORE}/*-openjpeg-*/include/openjpeg-*)
|
||||
+
|
||||
+echo -I$cpppath
|
||||
|
||||
--- a/ojp2_ldflags.sh 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/ojp2_ldflags.sh 2014-09-13 22:56:38.842418777 +0200
|
||||
@@ -0,0 +1,7 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+# Return the linker flags to link against openjpeg.
|
||||
+
|
||||
+ldpath=$(echo ${NIX_STORE}/*-openjpeg-*/lib)
|
||||
+
|
||||
+echo -L$ldpath -lopenjp2
|
||||
|
||||
Make use of the above alternatives, compile with gcc.
|
||||
|
||||
--- a/Makerules 2014-09-14 09:13:40.729149860 +0200
|
||||
+++ b/Makerules 2014-09-14 09:17:06.425156595 +0200
|
||||
@@ -75,12 +75,14 @@
|
||||
|
||||
SYS_FREETYPE_CFLAGS = $(shell pkg-config --cflags freetype2)
|
||||
SYS_FREETYPE_LIBS = $(shell pkg-config --libs freetype2)
|
||||
-SYS_OPENJPEG_CFLAGS = $(shell pkg-config --cflags libopenjp2)
|
||||
-SYS_OPENJPEG_LIBS = $(shell pkg-config --libs libopenjp2)
|
||||
+SYS_OPENJPEG_CFLAGS = $(shell ./ojp2_cppflags.sh)
|
||||
+SYS_OPENJPEG_LIBS = $(shell ./ojp2_ldflags.sh)
|
||||
SYS_JBIG2DEC_LIBS = -ljbig2dec
|
||||
SYS_JPEG_LIBS = -ljpeg
|
||||
SYS_ZLIB_LIBS = -lz
|
||||
|
||||
+CC = gcc
|
||||
+
|
||||
endif
|
||||
|
||||
# The following section is an example of how to simply do cross-compilation
|
||||
|
||||
Remove the -x11 from the built binaries, since X11 is implied on GNU. (This
|
||||
might change when Wayland gets more popular)
|
||||
|
||||
--- a/Makefile 2014-06-10 17:09:28.000000000 +0200
|
||||
+++ b/Makefile 2014-09-14 09:57:10.381235299 +0200
|
||||
@@ -255,7 +255,7 @@
|
||||
$(LINK_CMD)
|
||||
|
||||
ifeq "$(HAVE_X11)" "yes"
|
||||
-MUVIEW_X11 := $(OUT)/mupdf-x11
|
||||
+MUVIEW_X11 := $(OUT)/mupdf
|
||||
MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o)
|
||||
$(MUVIEW_X11_OBJ) : $(FITZ_HDR) $(PDF_HDR)
|
||||
$(MUVIEW_X11) : $(MUPDF_LIB) $(THIRD_LIBS)
|
||||
@@ -263,7 +263,7 @@
|
||||
$(LINK_CMD) $(X11_LIBS)
|
||||
|
||||
ifeq "$(HAVE_CURL)" "yes"
|
||||
-MUVIEW_X11_CURL := $(OUT)/mupdf-x11-curl
|
||||
+MUVIEW_X11_CURL := $(OUT)/mupdf-curl
|
||||
MUVIEW_X11_CURL_OBJ := $(addprefix $(OUT)/platform/x11/curl/, x11_main.o x11_image.o pdfapp.o curl_stream.o)
|
||||
$(MUVIEW_X11_CURL_OBJ) : $(FITZ_HDR) $(PDF_HDR)
|
||||
$(MUVIEW_X11_CURL) : $(MUPDF_LIB) $(THIRD_LIBS) $(CURL_LIB)
|
@ -35,6 +35,7 @@
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public poppler
|
||||
@ -159,3 +160,69 @@ it easy to modify them and write the changes to disk. It is primarily useful
|
||||
for applications that wish to do lower level manipulation of PDF, such as
|
||||
extracting content or merging files.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public mupdf
|
||||
(package
|
||||
(name "mupdf")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://mupdf.com/downloads/" name "-" version
|
||||
"-source.tar.gz"))
|
||||
(sha256
|
||||
(base32 "0sl47zqf4c9fhs4h5zg046vixjmwgy4vhljhr5g4md733nash7z4"))
|
||||
(patches
|
||||
(list (search-patch "mupdf-buildsystem-fix.patch")))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Don't build the bundled-in third party libraries.
|
||||
(delete-file-recursively "thirdparty")
|
||||
|
||||
;; Make the scripts for finding openjpeg build details executable.
|
||||
(chmod "ojp2_cppflags.sh" #o0755)
|
||||
(chmod "ojp2_ldflags.sh" #o0755)))))
|
||||
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("freetype" ,freetype)
|
||||
("jbig2dec" ,jbig2dec)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("openjpeg" ,openjpeg)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
;; Trying to run `$ make check' results in a no rule fault.
|
||||
'(#:tests? #f
|
||||
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:phases (alist-replace
|
||||
'build
|
||||
(lambda _ (zero? (system* "make" "XCFLAGS=-fpic")))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (system* "make" (string-append "prefix=" out)
|
||||
"install"))))
|
||||
(alist-delete 'configure %standard-phases)))))
|
||||
(home-page "http://mupdf.com")
|
||||
(synopsis "A lightweight PDF viewer and toolkit")
|
||||
(description
|
||||
"MuPDF is a C library that implements a PDF and XPS parsing and
|
||||
rendering engine. It is used primarily to render pages into bitmaps,
|
||||
but also provides support for other operations such as searching and
|
||||
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 (pdfdraw), examining the file structure
|
||||
(pdfshow), and rewriting files (pdfclean).")
|
||||
(license license:agpl3+)))
|
||||
|
Loading…
Reference in New Issue
Block a user