mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 13:49:23 -05:00
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
3 changed files with 137 additions and 0 deletions
|
@ -372,6 +372,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/mit-krb5-init-fix.patch \
|
gnu/packages/patches/mit-krb5-init-fix.patch \
|
||||||
gnu/packages/patches/mpc123-initialize-ao.patch \
|
gnu/packages/patches/mpc123-initialize-ao.patch \
|
||||||
gnu/packages/patches/module-init-tools-moduledir.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/nvi-assume-preserve-path.patch \
|
||||||
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
|
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
|
||||||
gnu/packages/patches/ots-no-include-missing-file.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 @@ (define-module (gnu packages pdf)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
(define-public poppler
|
(define-public poppler
|
||||||
|
@ -159,3 +160,69 @@ (define-public podofo
|
||||||
for applications that wish to do lower level manipulation of PDF, such as
|
for applications that wish to do lower level manipulation of PDF, such as
|
||||||
extracting content or merging files.")
|
extracting content or merging files.")
|
||||||
(license license:lgpl2.0+)))
|
(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 a new issue