pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

mupdf: Import mupdf-1.13.0 as wip/mupdf



Module Name:	pkgsrc-wip
Committed By:	Leonardo Taccari <leot%NetBSD.org@localhost>
Pushed By:	leot
Date:		Sun Apr 22 18:22:30 2018 +0200
Changeset:	8be4346b331492c3c5d21ad7e76556d78e4cf663

Modified Files:
	Makefile
Added Files:
	mupdf/DESCR
	mupdf/Makefile
	mupdf/PLIST
	mupdf/buildlink3.mk
	mupdf/distinfo
	mupdf/files/mupdf.pc
	mupdf/options.mk
	mupdf/patches/patch-Makethird
	mupdf/patches/patch-ab
	mupdf/patches/patch-ac
	mupdf/patches/patch-ae
	mupdf/patches/patch-platform_gl_gl-app.h
	mupdf/patches/patch-source_fitz_load-jpx.c
	mupdf/patches/patch-thirdparty_mujs_Makefile

Log Message:
mupdf: Import mupdf-1.13.0 as wip/mupdf

MuPDF is a lightweight PDF, XPS, and E-book viewer.

The renderer in MuPDF is tailored for high quality anti-aliased
graphics. It renders text with metrics and spacing accurate to
within fractions of a pixel for the highest fidelity in reproducing
the look of a printed page on screen. MuPDF is also small, fast,
and yet complete.

MuPDF supports PDF 1.7 with transparency, encryption, hyperlinks,
annotations, searching and more. MuPDF also reads many other document
and e-book formats, such as XPS, OpenXPS, CBZ, EPUB and FictionBook
2.

MuPDF is written modularly, so features can be added and removed
by integrators if they so desire.

Since the 1.2 release of MuPDF, we have optional support for
interactive features such as form filling, javascript and transitions.

This package is intended to be used as update for print/mupdf.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=8be4346b331492c3c5d21ad7e76556d78e4cf663

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                     |   1 +
 mupdf/DESCR                                  |  18 ++
 mupdf/Makefile                               |  65 +++++
 mupdf/PLIST                                  | 126 ++++++++++
 mupdf/buildlink3.mk                          |  33 +++
 mupdf/distinfo                               |  13 +
 mupdf/files/mupdf.pc                         |  10 +
 mupdf/options.mk                             |  28 +++
 mupdf/patches/patch-Makethird                |  35 +++
 mupdf/patches/patch-ab                       |  92 +++++++
 mupdf/patches/patch-ac                       | 351 +++++++++++++++++++++++++++
 mupdf/patches/patch-ae                       |  82 +++++++
 mupdf/patches/patch-platform_gl_gl-app.h     |  20 ++
 mupdf/patches/patch-source_fitz_load-jpx.c   |  51 ++++
 mupdf/patches/patch-thirdparty_mujs_Makefile |  53 ++++
 15 files changed, 978 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 134a65f65a..e8430306f0 100644
--- a/Makefile
+++ b/Makefile
@@ -2133,6 +2133,7 @@ SUBDIR+=	munin-c-git
 SUBDIR+=	munin-common
 SUBDIR+=	munin-master
 SUBDIR+=	munin-node
+SUBDIR+=	mupdf
 SUBDIR+=	mupen64
 SUBDIR+=	mupen64-base
 SUBDIR+=	mupen64-plugin-input
diff --git a/mupdf/DESCR b/mupdf/DESCR
new file mode 100644
index 0000000000..4cf060a654
--- /dev/null
+++ b/mupdf/DESCR
@@ -0,0 +1,18 @@
+MuPDF is a lightweight PDF, XPS, and E-book viewer.
+
+The renderer in MuPDF is tailored for high quality anti-aliased
+graphics. It renders text with metrics and spacing accurate to
+within fractions of a pixel for the highest fidelity in reproducing
+the look of a printed page on screen. MuPDF is also small, fast,
+and yet complete.
+
+MuPDF supports PDF 1.7 with transparency, encryption, hyperlinks,
+annotations, searching and more. MuPDF also reads many other document
+and e-book formats, such as XPS, OpenXPS, CBZ, EPUB and FictionBook
+2.
+
+MuPDF is written modularly, so features can be added and removed
+by integrators if they so desire.
+
+Since the 1.2 release of MuPDF, we have optional support for
+interactive features such as form filling, javascript and transitions.
diff --git a/mupdf/Makefile b/mupdf/Makefile
new file mode 100644
index 0000000000..6e0992685d
--- /dev/null
+++ b/mupdf/Makefile
@@ -0,0 +1,65 @@
+# $NetBSD: Makefile,v 1.58 2018/02/09 16:03:04 hauke Exp $
+
+DISTNAME=	mupdf-1.13.0-source
+PKGNAME=	${DISTNAME:S/-source//}
+CATEGORIES=	print
+MASTER_SITES=	https://mupdf.com/downloads/archive/
+
+MAINTAINER=	leot%NetBSD.org@localhost
+HOMEPAGE=	https://mupdf.com/
+COMMENT=	Lightweight PDF, XPS and E-book viewer and toolkit
+LICENSE=	gnu-agpl-v3
+
+USE_LANGUAGES=	c99
+USE_LIBTOOL=	yes
+USE_TOOLS+=	pkg-config gmake
+
+INSTALLATION_DIRS+=	bin include lib/pkgconfig
+INSTALL_MAKE_FLAGS+=	prefix=${PREFIX}
+INSTALL_MAKE_FLAGS+=	mandir=${PREFIX}/${PKGMANDIR}
+LDFLAGS+=		${COMPILER_RPATH_FLAG}${X11BASE}/lib
+MAKE_FLAGS+=		LDFLAGS=${LDFLAGS:Q}
+MAKE_FLAGS+=		XCFLAGS=${CFLAGS:Q}
+MAKE_FLAGS+=		build=release
+
+CFLAGS+=	-DJBIG_NO_MEMENTO
+CFLAGS.SunOS+=	-D_XOPEN_SOURCE=600
+
+.include "options.mk"
+
+# Remove thirdparty directory in order to use the libraries provided by pkgsrc
+# mujs directory is an exception and should not be removed (MuJS is the
+# default Javascript interpreter for mupdf).
+post-extract:
+	${RM} -fr \
+	    ${WRKSRC}/thirdparty/curl \
+	    ${WRKSRC}/thirdparty/freeglut \
+	    ${WRKSRC}/thirdparty/freetype \
+	    ${WRKSRC}/thirdparty/harfbuzz \
+	    ${WRKSRC}/thirdparty/jbig2dec \
+	    ${WRKSRC}/thirdparty/lcms2 \
+	    ${WRKSRC}/thirdparty/libjpeg \
+	    ${WRKSRC}/thirdparty/openjpeg \
+	    ${WRKSRC}/thirdparty/zlib
+
+post-build:
+	sed -e "s,@PREFIX@,${PREFIX}," -e "s,@VERSION@,${PKGVERSION_NOREV}," \
+	     ${FILESDIR}/mupdf.pc > ${WRKSRC}/mupdf.pc
+
+post-install:
+	${INSTALL_DATA} ${WRKSRC}/mupdf.pc ${DESTDIR}${PREFIX}/lib/pkgconfig
+
+BUILDLINK_API_DEPENDS.zlib+=	zlib>=1.2.7
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/harfbuzz/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../graphics/jbig2dec/buildlink3.mk"
+.include "../../mk/jpeg.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+# XXX: Needs lcms2-2.9 that ATM is not in pkgsrc.
+#BUILDLINK_API_DEPENDS.lcms2+= lcms2>=2.9
+#.include "../../graphics/lcms2/buildlink3.mk"
+.include "../../graphics/openjpeg/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/mupdf/PLIST b/mupdf/PLIST
new file mode 100644
index 0000000000..8fe7670b8b
--- /dev/null
+++ b/mupdf/PLIST
@@ -0,0 +1,126 @@
+@comment $NetBSD: PLIST,v 1.15 2017/12/18 15:06:33 leot Exp $
+bin/mjsgen
+bin/mujstest
+bin/mupdf
+${PLIST.opengl}bin/mupdf-gl
+bin/muraster
+bin/mutool
+include/mupdf/fitz.h
+include/mupdf/fitz/annotation.h
+include/mupdf/fitz/archive.h
+include/mupdf/fitz/band-writer.h
+include/mupdf/fitz/bidi.h
+include/mupdf/fitz/bitmap.h
+include/mupdf/fitz/buffer.h
+include/mupdf/fitz/color-management.h
+include/mupdf/fitz/colorspace.h
+include/mupdf/fitz/compress.h
+include/mupdf/fitz/compressed-buffer.h
+include/mupdf/fitz/config.h
+include/mupdf/fitz/context.h
+include/mupdf/fitz/crypt.h
+include/mupdf/fitz/device.h
+include/mupdf/fitz/display-list.h
+include/mupdf/fitz/document.h
+include/mupdf/fitz/filter.h
+include/mupdf/fitz/font.h
+include/mupdf/fitz/geometry.h
+include/mupdf/fitz/getopt.h
+include/mupdf/fitz/glyph-cache.h
+include/mupdf/fitz/glyph.h
+include/mupdf/fitz/hash.h
+include/mupdf/fitz/image.h
+include/mupdf/fitz/link.h
+include/mupdf/fitz/outline.h
+include/mupdf/fitz/output-pcl.h
+include/mupdf/fitz/output-pclm.h
+include/mupdf/fitz/output-png.h
+include/mupdf/fitz/output-pnm.h
+include/mupdf/fitz/output-ps.h
+include/mupdf/fitz/output-psd.h
+include/mupdf/fitz/output-pwg.h
+include/mupdf/fitz/output-svg.h
+include/mupdf/fitz/output-tga.h
+include/mupdf/fitz/output.h
+include/mupdf/fitz/path.h
+include/mupdf/fitz/pixmap.h
+include/mupdf/fitz/pool.h
+include/mupdf/fitz/separation.h
+include/mupdf/fitz/shade.h
+include/mupdf/fitz/store.h
+include/mupdf/fitz/stream.h
+include/mupdf/fitz/string-util.h
+include/mupdf/fitz/structured-text.h
+include/mupdf/fitz/system.h
+include/mupdf/fitz/text.h
+include/mupdf/fitz/track-usage.h
+include/mupdf/fitz/transition.h
+include/mupdf/fitz/tree.h
+include/mupdf/fitz/util.h
+include/mupdf/fitz/version.h
+include/mupdf/fitz/writer.h
+include/mupdf/fitz/xml.h
+include/mupdf/memento.h
+include/mupdf/pdf-tools.h
+include/mupdf/pdf.h
+include/mupdf/pdf/annot.h
+include/mupdf/pdf/appearance.h
+include/mupdf/pdf/clean.h
+include/mupdf/pdf/cmap.h
+include/mupdf/pdf/crypt.h
+include/mupdf/pdf/document.h
+include/mupdf/pdf/event.h
+include/mupdf/pdf/field.h
+include/mupdf/pdf/font.h
+include/mupdf/pdf/interpret.h
+include/mupdf/pdf/javascript.h
+include/mupdf/pdf/name-table.h
+include/mupdf/pdf/object.h
+include/mupdf/pdf/output-pdf.h
+include/mupdf/pdf/page.h
+include/mupdf/pdf/parse.h
+include/mupdf/pdf/resource.h
+include/mupdf/pdf/widget.h
+include/mupdf/pdf/xref.h
+include/mupdf/ucdn.h
+lib/libmupdf.la
+lib/libmupdfthird.la
+lib/libmupkcs7.la
+lib/libmuthreads.la
+lib/pkgconfig/mupdf.pc
+man/man1/mupdf.1
+man/man1/mutool.1
+share/doc/mupdf/CHANGES
+share/doc/mupdf/COPYING
+share/doc/mupdf/README
+share/doc/mupdf/android-sdk.html
+share/doc/mupdf/artifex-logo.png
+share/doc/mupdf/building.html
+share/doc/mupdf/coding-overview.html
+share/doc/mupdf/coding-progressive.html
+share/doc/mupdf/coding-style.html
+share/doc/mupdf/examples/create-thumbnail.js
+share/doc/mupdf/examples/draw-device.js
+share/doc/mupdf/examples/draw-document.js
+share/doc/mupdf/examples/example.c
+share/doc/mupdf/examples/jpx-to-pdf.js
+share/doc/mupdf/examples/multi-threaded.c
+share/doc/mupdf/examples/pdf-create-lowlevel.js
+share/doc/mupdf/examples/pdf-create.js
+share/doc/mupdf/examples/pdf-merge.js
+share/doc/mupdf/examples/trace-device.js
+share/doc/mupdf/index.html
+share/doc/mupdf/manual-mupdf-gl.html
+share/doc/mupdf/manual-mutool-clean.html
+share/doc/mupdf/manual-mutool-convert.html
+share/doc/mupdf/manual-mutool-create.html
+share/doc/mupdf/manual-mutool-draw.html
+share/doc/mupdf/manual-mutool-extract.html
+share/doc/mupdf/manual-mutool-merge.html
+share/doc/mupdf/manual-mutool-portfolio.html
+share/doc/mupdf/manual-mutool-run.html
+share/doc/mupdf/manual-mutool-show.html
+share/doc/mupdf/manual-mutool-trace.html
+share/doc/mupdf/style.css
+share/doc/mupdf/template.html
+share/doc/mupdf/thirdparty.html
diff --git a/mupdf/buildlink3.mk b/mupdf/buildlink3.mk
new file mode 100644
index 0000000000..dbda183425
--- /dev/null
+++ b/mupdf/buildlink3.mk
@@ -0,0 +1,33 @@
+# $NetBSD: buildlink3.mk,v 1.22 2018/01/01 21:18:10 adam Exp $
+
+BUILDLINK_TREE+=	mupdf
+
+.if !defined(MUPDF_BUILDLINK3_MK)
+MUPDF_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.mupdf+=	mupdf>=1.13.0
+BUILDLINK_PKGSRCDIR.mupdf?=	../../print/mupdf
+
+pkgbase := mupdf
+.include "../../mk/pkg-build-options.mk"
+
+.if !empty(PKG_BUILD_OPTIONS.mupdf:Mcurl)
+.include "../../www/curl/buildlink3.mk"
+.endif
+
+.if !empty(PKG_BUILD_OPTIONS.mupdf:Mopengl)
+.include "../../graphics/MesaLib/buildlink3.mk"
+.include "../../graphics/glut/buildlink3.mk"
+.endif
+
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../fonts/harfbuzz/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../graphics/jbig2dec/buildlink3.mk"
+.include "../../graphics/openjpeg/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+.include "../../mk/jpeg.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.endif	# MUPDF_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-mupdf
diff --git a/mupdf/distinfo b/mupdf/distinfo
new file mode 100644
index 0000000000..4dccf7c828
--- /dev/null
+++ b/mupdf/distinfo
@@ -0,0 +1,13 @@
+$NetBSD: distinfo,v 1.39 2017/12/18 15:06:33 leot Exp $
+
+SHA1 (mupdf-1.13.0-source.tar.gz) = d4fe867dbdef2e1a465e66cbbd1efb4b1285ef48
+RMD160 (mupdf-1.13.0-source.tar.gz) = 078e972c2f41a34308a52af24ac5ddbf41471342
+SHA512 (mupdf-1.13.0-source.tar.gz) = d7fca7292e612959893a728d35964cf7b4e607385bdd72e81b8ca1de6ab642f999b734afbbf32d75400cd29b7e178ec360e65c91d7b1e1a53c2a04ff0adbd707
+Size (mupdf-1.13.0-source.tar.gz) = 51425034 bytes
+SHA1 (patch-Makethird) = 77820f7344e00140a9792b5a6a3ddb1afa01b7bb
+SHA1 (patch-ab) = 5ca9de36a7f38cdcf0578cded98cdd54bed78ab5
+SHA1 (patch-ac) = 0c140ee7f0a86bc300c91845da0bd3bf5f0b7c14
+SHA1 (patch-ae) = c6b113818b32cb4470e8549c00a16e0b2f364ede
+SHA1 (patch-platform_gl_gl-app.h) = 6e5e547df27ecb2b82cadd71489d2eb9138c1ce2
+SHA1 (patch-source_fitz_load-jpx.c) = b507c1ebab027167af363c9f0f64d8690ea75ff3
+SHA1 (patch-thirdparty_mujs_Makefile) = d3e163bcc4e3d2509401b87e5da8eddb35394dc9
diff --git a/mupdf/files/mupdf.pc b/mupdf/files/mupdf.pc
new file mode 100644
index 0000000000..b0ddb84ebe
--- /dev/null
+++ b/mupdf/files/mupdf.pc
@@ -0,0 +1,10 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: mupdf
+Description: library for PDF files
+Version: @VERSION@
+Libs: -Wl,-R${libdir} -L${libdir} -lmupdf -lmupdfthird -lmuthreads -lmupkcs7
+Cflags: -I${includedir}
diff --git a/mupdf/options.mk b/mupdf/options.mk
new file mode 100644
index 0000000000..aee17a80a9
--- /dev/null
+++ b/mupdf/options.mk
@@ -0,0 +1,28 @@
+# $NetBSD: options.mk,v 1.6 2017/12/18 15:06:33 leot Exp $
+
+PKG_OPTIONS_VAR=	PKG_OPTIONS.mupdf
+PKG_SUPPORTED_OPTIONS=	curl opengl
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+=		opengl
+
+#
+# curl support
+#
+.if !empty(PKG_OPTIONS:Mcurl)
+.include "../../www/curl/buildlink3.mk"
+.else
+MAKE_ENV+=	HAVE_CURL=no
+.endif
+
+#
+# glut support
+#
+.if !empty(PKG_OPTIONS:Mopengl)
+PLIST.opengl=	yes
+.include "../../graphics/MesaLib/buildlink3.mk"
+.include "../../graphics/glut/buildlink3.mk"
+.else
+MAKE_ENV+=	HAVE_GLUT=no
+.endif
diff --git a/mupdf/patches/patch-Makethird b/mupdf/patches/patch-Makethird
new file mode 100644
index 0000000000..a4a6503a6b
--- /dev/null
+++ b/mupdf/patches/patch-Makethird
@@ -0,0 +1,35 @@
+$NetBSD: patch-Makethird,v 1.8 2017/12/18 15:06:34 leot Exp $
+
+- mujs building support with libtool
+- Avoid the internal lcms2 version provided and honors SYS_LCMS2_{CFLAGS,LIBS}.
+  These are handled in patches/patch-ab.
+
+--- Makethird.orig	2017-11-23 11:42:45.000000000 +0000
++++ Makethird
+@@ -27,13 +27,13 @@ ifneq "$(wildcard $(MUJS_DIR)/README)" "
+ MUJS_OUT := $(OUT)/thirdparty/mujs
+ MUJS_SRC := one.c
+ 
+-MUJS_OBJ := $(addprefix $(MUJS_OUT)/, $(MUJS_SRC:%.c=%.o))
++MUJS_OBJ := $(addprefix $(MUJS_OUT)/, $(MUJS_SRC:%.c=%.lo))
+ 
+-$(MUJS_OUT)/one.o: $(wildcard $(MUJS_DIR)/js*.c $(MUJS_DIR)/utf*.c $(MUJS_DIR)/regex.c $(MUJS_DIR)/*.h)
++$(MUJS_OUT)/one.lo: $(wildcard $(MUJS_DIR)/js*.c $(MUJS_DIR)/utf*.c $(MUJS_DIR)/regex.c $(MUJS_DIR)/*.h)
+ 
+ $(MUJS_OUT):
+ 	$(MKDIR_CMD)
+-$(MUJS_OUT)/%.o: $(MUJS_DIR)/%.c | $(MUJS_OUT)
++$(MUJS_OUT)/%.lo: $(MUJS_DIR)/%.c | $(MUJS_OUT)
+ 	$(CC_CMD)
+ 
+ MUJS_CFLAGS := -I$(MUJS_DIR)
+@@ -575,7 +575,8 @@ $(LCMS2_OUT)/%.o: $(LCMS2_DIR)/src/%.c |
+ 
+ LCMS2_CFLAGS := -I$(LCMS2_DIR)/include
+ else
+-LCMS2_CFLAGS := -DNO_ICC
++LCMS2_CFLAGS := $(SYS_LCMS2_CFLAGS)
++LCMS2_LIBS := $(SYS_LCMS2_LIBS)
+ endif
+ 
+ # --- cURL ---
diff --git a/mupdf/patches/patch-ab b/mupdf/patches/patch-ab
new file mode 100644
index 0000000000..4a05de8d0e
--- /dev/null
+++ b/mupdf/patches/patch-ab
@@ -0,0 +1,92 @@
+$NetBSD: patch-ab,v 1.16 2017/12/18 15:06:34 leot Exp $
+
+- Handle the various operating systems in the same way avoiding hardcoding
+- Avoid internal version of freeglut and try to pick it up via pkg-config and
+  set SYS_GLUT_{CFLAGS,LIBS} accordingly.
+- Avoid internal version of lcms2 and try to pick it up via pkg-config and
+  set SYS_LCMS2_{CFLAGS,LIBS} accordingly.
+  If no lcms2 is available just pass `-DNO_ICC' to disable it via
+  SYS_LCMS2_CFLAGS.
+
+--- Makerules.orig	2018-04-12 13:14:06.000000000 +0000
++++ Makerules
+@@ -65,38 +65,10 @@ else
+ $(error unknown build setting: '$(build)')
+ endif
+ 
+-# Windows (MINGW) build doesn't use system libraries.
+-ifeq "$(OS)" "MINGW"
+-
+-WINDRES := windres
+-HAVE_X11 ?= no
+-HAVE_WIN32 := yes
+-
+-# Mac OS X doesn't have pkg-config so we hard code paths.
+-else ifeq "$(OS)" "MACOS"
+-
+-HAVE_X11 ?= no
+-
+-HAVE_GLUT ?= yes
+-SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
+-SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
+-
+-CC = xcrun cc
+-AR = xcrun ar
+-LD = xcrun ld
+-RANLIB_CMD = xcrun ranlib $@
+-
+-# Linux uses pkg-config for system libraries.
+-else ifeq "$(OS)" "Linux"
+-
+ HAVE_PTHREAD := yes
+ SYS_PTHREAD_CFLAGS :=
+ SYS_PTHREAD_LIBS := -lpthread
+ 
+-HAVE_GLUT := yes
+-SYS_GLUT_CFLAGS :=
+-SYS_GLUT_LIBS := -lglut -lGL
+-
+ ifeq "$(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)" "yes"
+ HAVE_LIBCRYPTO := yes
+ SYS_LIBCRYPTO_CFLAGS := -DHAVE_LIBCRYPTO $(shell pkg-config --cflags libcrypto)
+@@ -113,7 +85,6 @@ SYS_CURL_CFLAGS += $(shell pkg-config --
+ SYS_CURL_DEPS += $(shell pkg-config --libs openssl)
+ endif
+ endif
+-SYS_CURL_DEPS += -lpthread -lrt
+ 
+ ifeq "$(shell pkg-config --exists x11 xext && echo yes)" "yes"
+ HAVE_X11 := yes
+@@ -121,6 +92,12 @@ SYS_X11_CFLAGS := $(shell pkg-config --c
+ SYS_X11_LIBS := $(shell pkg-config --libs x11 xext)
+ endif
+ 
++ifeq "$(shell pkg-config --exists glut && pkg-config --exists gl && echo yes)" "yes"
++HAVE_GLUT ?= yes
++SYS_GLUT_CFLAGS := $(shell pkg-config --cflags glut)
++SYS_GLUT_LIBS := $(shell pkg-config --libs glut)
++endif
++
+ ifeq "$(shell pkg-config --exists harfbuzz && echo yes)" "yes"
+ SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz)
+ SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz)
+@@ -136,12 +113,17 @@ SYS_OPENJPEG_CFLAGS := $(shell pkg-confi
+ SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2)
+ endif
+ 
++ifeq "$(shell pkg-config --exists lcms2 && echo yes)" "yes"
++SYS_LCMS2_CFLAGS := $(shell pkg-config --cflags lcms2)
++SYS_LCMS2_LIBS := $(shell pkg-config --libs lcms2)
++else
++SYS_LCMS2_CFLAGS := -DNO_ICC
++endif
++
+ SYS_JBIG2DEC_LIBS := -ljbig2dec
+ SYS_LIBJPEG_LIBS := -ljpeg
+ SYS_ZLIB_LIBS := -lz
+ 
+-endif
+-
+ # The following section is an example of how to simply do cross-compilation
+ # using these Makefiles. It builds for a beagleboard running ARM linux,
+ # compiling on windows with the CodeSourcery G++ compilers.
diff --git a/mupdf/patches/patch-ac b/mupdf/patches/patch-ac
new file mode 100644
index 0000000000..d3898e2af6
--- /dev/null
+++ b/mupdf/patches/patch-ac
@@ -0,0 +1,351 @@
+$NetBSD: patch-ac,v 1.18 2017/12/18 15:06:34 leot Exp $
+
+- libtool support 
+- Install target cleanup
+- Also install muthreads and mupkcs7 libraries (needed by various tools)
+- Do not force `-O0' flag when building
+- Get rid of unused VERSION variable and `version:' target (otherwise `git' can
+  be invoked during the building phase)
+- Install only one `mupdf' binary, prefer the featureful one and always
+  install it as `mupdf'.
+- Install all EXTRA_APPS (muraster, mujstest, mjsgen)
+
+--- Makefile.orig	2018-04-12 13:14:06.000000000 +0000
++++ Makefile
+@@ -72,10 +72,10 @@ QUIET_TAGS = @ echo ' ' ' ' TAGS $@ ;
+ QUIET_WINDRES = @ echo ' ' ' ' WINDRES $@ ;
+ endif
+ 
+-CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $<
+-CXX_CMD = $(QUIET_CXX) $(CXX) $(filter-out -Wdeclaration-after-statement,$(CFLAGS)) -o $@ -c $<
+-AR_CMD = $(QUIET_AR) $(AR) cr $@ $^
+-LINK_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
++CC_CMD = $(QUIET_CC) ${LIBTOOL} --mode=compile $(CC) $(CFLAGS) -o $@ -c $<
++CXX_CMD = $(QUIET_CXX) ${LIBTOOL} --mode=compile $(CXX) $(CFLAGS) -o $@ -c $<
++AR_CMD = $(QUIET_AR) ${LIBTOOL} --mode=link $(CC) $(LDFLAGS) -o $@ -version-info 0:0:0 -rpath ${PREFIX}/lib $^
++LINK_CMD = $(QUIET_LINK) ${LIBTOOL} --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(LIBS)
+ MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@
+ RM_CMD = $(QUIET_RM) rm -f $@
+ TAGS_CMD = $(QUIET_TAGS) ctags $^
+@@ -86,45 +86,45 @@ WINDRES_CMD = $(QUIET_WINDRES) $(WINDRES
+ $(ALL_DIR) $(OUT) generated :
+ 	$(MKDIR_CMD)
+ 
+-$(OUT)/%.a :
++$(OUT)/%.la :
+ 	$(RM_CMD)
+ 	$(AR_CMD)
+ 	$(RANLIB_CMD)
+ 
+-$(OUT)/%.exe: $(OUT)/%.o | $(ALL_DIR)
++$(OUT)/%.exe: $(OUT)/%.lo | $(ALL_DIR)
+ 	$(LINK_CMD)
+ 
+-$(OUT)/source/helpers/mu-threads/%.o : source/helpers/mu-threads/%.c | $(ALL_DIR)
++$(OUT)/source/helpers/mu-threads/%.lo : source/helpers/mu-threads/%.c | $(ALL_DIR)
+ 	$(CC_CMD) $(THREADING_CFLAGS)
+ 
+-$(OUT)/source/helpers/pkcs7/%.o : source/helpers/pkcs7/%.c | $(ALL_DIR)
++$(OUT)/source/helpers/pkcs7/%.lo : source/helpers/pkcs7/%.c | $(ALL_DIR)
+ 	$(CC_CMD)
+ 
+-$(OUT)/source/tools/%.o : source/tools/%.c | $(ALL_DIR)
++$(OUT)/source/tools/%.lo : source/tools/%.c | $(ALL_DIR)
+ 	$(CC_CMD) $(THREADING_CFLAGS)
+ 
+-$(OUT)/generated/%.o : generated/%.c | $(ALL_DIR)
+-	$(CC_CMD) -O0
++$(OUT)/generated/%.lo : generated/%.c | $(ALL_DIR)
++	$(CC_CMD)
+ 
+-$(OUT)/platform/x11/%.o : platform/x11/%.c | $(ALL_DIR)
++$(OUT)/platform/x11/%.lo : platform/x11/%.c | $(ALL_DIR)
+ 	$(CC_CMD) $(X11_CFLAGS)
+ 
+-$(OUT)/platform/x11/%.o: platform/x11/%.rc | $(ALL_DIR)
++$(OUT)/platform/x11/%.lo: platform/x11/%.rc | $(ALL_DIR)
+ 	$(WINDRES_CMD)
+ 
+-$(OUT)/platform/x11/curl/%.o : platform/x11/%.c | $(ALL_DIR)
++$(OUT)/platform/x11/curl/%.lo : platform/x11/%.c | $(ALL_DIR)
+ 	$(CC_CMD) $(X11_CFLAGS) $(CURL_CFLAGS) -DHAVE_CURL
+ 
+-$(OUT)/platform/gl/%.o : platform/gl/%.c | $(ALL_DIR)
++$(OUT)/platform/gl/%.lo : platform/gl/%.c | $(ALL_DIR)
+ 	$(CC_CMD) $(GLUT_CFLAGS)
+ 
+-$(OUT)/%.o : %.c | $(ALL_DIR)
++$(OUT)/%.lo : %.c | $(ALL_DIR)
+ 	$(CC_CMD)
+ 
+-$(OUT)/%.o : %.cpp | $(ALL_DIR)
++$(OUT)/%.lo : %.cpp | $(ALL_DIR)
+ 	$(CXX_CMD)
+ 
+-.PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules
++.PRECIOUS : $(OUT)/%.lo # Keep intermediates from chained rules
+ 
+ # --- File lists ---
+ 
+@@ -153,16 +153,16 @@ SVG_SRC_HDR := $(wildcard source/svg/*.h
+ HTML_SRC_HDR := $(wildcard source/html/*.h)
+ GPRF_SRC_HDR := $(wildcard source/gprf/*.h)
+ 
+-FITZ_OBJ := $(FITZ_SRC:%.c=$(OUT)/%.o)
+-PDF_OBJ := $(PDF_SRC:%.c=$(OUT)/%.o)
+-XPS_OBJ := $(XPS_SRC:%.c=$(OUT)/%.o)
+-SVG_OBJ := $(SVG_SRC:%.c=$(OUT)/%.o)
+-CBZ_OBJ := $(CBZ_SRC:%.c=$(OUT)/%.o)
+-HTML_OBJ := $(HTML_SRC:%.c=$(OUT)/%.o)
+-GPRF_OBJ := $(GPRF_SRC:%.c=$(OUT)/%.o)
+-THREAD_OBJ := $(THREAD_SRC:%.c=$(OUT)/%.o)
+-PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.o)
+-SIGNATURE_OBJ := $(OUT)/platform/x11/pdfapp.o $(OUT)/source/tools/pdfsign.o
++FITZ_OBJ := $(FITZ_SRC:%.c=$(OUT)/%.lo)
++PDF_OBJ := $(PDF_SRC:%.c=$(OUT)/%.lo)
++XPS_OBJ := $(XPS_SRC:%.c=$(OUT)/%.lo)
++SVG_OBJ := $(SVG_SRC:%.c=$(OUT)/%.lo)
++CBZ_OBJ := $(CBZ_SRC:%.c=$(OUT)/%.lo)
++HTML_OBJ := $(HTML_SRC:%.c=$(OUT)/%.lo)
++GPRF_OBJ := $(GPRF_SRC:%.c=$(OUT)/%.lo)
++THREAD_OBJ := $(THREAD_SRC:%.c=$(OUT)/%.lo)
++PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.lo)
++SIGNATURE_OBJ := $(OUT)/platform/x11/pdfapp.lo $(OUT)/source/tools/pdfsign.lo
+ 
+ $(FITZ_OBJ) : $(FITZ_HDR) $(FITZ_SRC_HDR)
+ $(PDF_OBJ) : $(FITZ_HDR) $(PDF_HDR) $(PDF_SRC_HDR)
+@@ -190,7 +190,7 @@ ifneq "$(CROSSCOMPILE)" "yes"
+ $(NAME_GEN) : $(NAMEDUMP_EXE)
+ endif
+ 
+-$(OUT)/source/pdf/pdf-object.o : source/pdf/pdf-name-table.h
++$(OUT)/source/pdf/pdf-object.lo : source/pdf/pdf-name-table.h
+ 
+ generate: $(NAME_GEN)
+ 
+@@ -212,7 +212,7 @@ FONT_GEN_SIL := $(subst resources/fonts/
+ 
+ FONT_BIN := $(FONT_BIN_DROID) $(FONT_BIN_NOTO) $(FONT_BIN_HAN) $(FONT_BIN_URW) $(FONT_BIN_SIL)
+ FONT_GEN := $(FONT_GEN_DROID) $(FONT_GEN_NOTO) $(FONT_GEN_HAN) $(FONT_GEN_URW) $(FONT_GEN_SIL)
+-FONT_OBJ := $(FONT_GEN:%.c=$(OUT)/%.o)
++FONT_OBJ := $(FONT_GEN:%.c=$(OUT)/%.lo)
+ 
+ generated/%.c : resources/fonts/droid/%.ttf $(HEXDUMP_EXE) | generated
+ 	$(QUIET_GEN) $(HEXDUMP_EXE) -s $@ $<
+@@ -242,7 +242,7 @@ generate: $(FONT_GEN)
+ 
+ ICC_BIN := resources/icc/gray.icc resources/icc/rgb.icc resources/icc/cmyk.icc resources/icc/lab.icc
+ ICC_GEN := generated/icc-profiles.c
+-ICC_OBJ := $(ICC_GEN:%.c=$(OUT)/%.o)
++ICC_OBJ := $(ICC_GEN:%.c=$(OUT)/%.lo)
+ 
+ $(ICC_OBJ) : $(ICC_GEN)
+ $(ICC_GEN) : $(ICC_BIN) | generated
+@@ -268,7 +268,7 @@ CMAP_GEN := \
+ 	generated/pdf-cmap-extra.c \
+ 	generated/pdf-cmap-utf8.c \
+ 	generated/pdf-cmap-utf32.c
+-CMAP_OBJ := $(CMAP_GEN:%.c=$(OUT)/%.o)
++CMAP_OBJ := $(CMAP_GEN:%.c=$(OUT)/%.lo)
+ 
+ generated/pdf-cmap-cjk.c : $(CMAP_CJK_SRC) | generated
+ 	$(QUIET_GEN) $(CMAPDUMP_EXE) $@ $(CMAP_CJK_SRC)
+@@ -287,7 +287,7 @@ endif
+ 
+ generate: $(CMAP_GEN)
+ 
+-$(OUT)/scripts/cmapdump.o : \
++$(OUT)/scripts/cmapdump.lo : \
+ 	$(NAME_GEN) \
+ 	include/mupdf/pdf/cmap.h \
+ 	source/fitz/context.c \
+@@ -310,7 +310,7 @@ $(OUT)/scripts/cmapdump.o : \
+ 
+ JAVASCRIPT_SRC := source/pdf/pdf-js-util.js
+ JAVASCRIPT_GEN := generated/pdf-js-util.c
+-JAVASCRIPT_OBJ := $(JAVASCRIPT_GEN:%.c=$(OUT)/%.o)
++JAVASCRIPT_OBJ := $(JAVASCRIPT_GEN:%.c=$(OUT)/%.lo)
+ 
+ $(JAVASCRIPT_GEN) : $(JAVASCRIPT_SRC) | generated
+ 	$(QUIET_GEN) $(HEXDUMP_EXE) -0 $@ $(JAVASCRIPT_SRC)
+@@ -325,10 +325,10 @@ generate: $(JAVASCRIPT_GEN)
+ 
+ # --- Library ---
+ 
+-MUPDF_LIB = $(OUT)/libmupdf.a
+-THIRD_LIB = $(OUT)/libmupdfthird.a
+-THREAD_LIB = $(OUT)/libmuthreads.a
+-PKCS7_LIB = $(OUT)/libmupkcs7.a
++MUPDF_LIB = $(OUT)/libmupdf.la
++THIRD_LIB = $(OUT)/libmupdfthird.la
++THREAD_LIB = $(OUT)/libmuthreads.la
++PKCS7_LIB = $(OUT)/libmupkcs7.la
+ 
+ MUPDF_OBJ := \
+ 	$(FITZ_OBJ) \
+@@ -360,46 +360,46 @@ $(THIRD_LIB) : $(THIRD_OBJ)
+ $(THREAD_LIB) : $(THREAD_OBJ)
+ $(PKCS7_LIB) : $(PKCS7_OBJ)
+ 
+-INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB)
++INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
+ 
+ # --- Tools and Apps ---
+ 
+ MUTOOL_EXE := $(OUT)/mutool
+ MUTOOL_SRC := source/tools/mutool.c source/tools/muconvert.c source/tools/mudraw.c source/tools/murun.c source/tools/mutrace.c
+ MUTOOL_SRC += $(sort $(wildcard source/tools/pdf*.c))
+-MUTOOL_OBJ := $(MUTOOL_SRC:%.c=$(OUT)/%.o)
++MUTOOL_OBJ := $(MUTOOL_SRC:%.c=$(OUT)/%.lo)
+ $(MUTOOL_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MUTOOL_EXE) : $(MUTOOL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
+ 	$(LINK_CMD) $(THREADING_LIBS)
+ 
+ MURASTER_EXE := $(OUT)/muraster
+-MURASTER_OBJ := $(OUT)/source/tools/muraster.o
++MURASTER_OBJ := $(OUT)/source/tools/muraster.lo
+ $(MURASTER_OBJ) : $(FITZ_HDR)
+ $(MURASTER_EXE) : $(MURASTER_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB)
+ 	$(LINK_CMD) $(THREADING_LIBS)
+ 
+ MJSGEN_EXE := $(OUT)/mjsgen
+-MJSGEN_OBJ := $(OUT)/source/tools/mjsgen.o
++MJSGEN_OBJ := $(OUT)/source/tools/mjsgen.lo
+ $(MJSGEN_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MJSGEN_EXE) : $(MJSGEN_OBJ) $(MUPDF_LIB) $(THIRD_LIB)
+ 	$(LINK_CMD)
+ 
+ MUJSTEST_EXE := $(OUT)/mujstest
+-MUJSTEST_OBJ := $(addprefix $(OUT)/platform/x11/, jstest_main.o pdfapp.o)
++MUJSTEST_OBJ := $(addprefix $(OUT)/platform/x11/, jstest_main.lo pdfapp.lo)
+ $(MUJSTEST_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MUJSTEST_EXE) : $(MUJSTEST_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB)
+ 	$(LINK_CMD)
+ 
+ ifeq "$(HAVE_X11)" "yes"
+-MUVIEW_X11_EXE := $(OUT)/mupdf-x11
+-MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.o x11_image.o pdfapp.o)
++MUVIEW_X11_EXE := $(OUT)/platform/x11/mupdf
++MUVIEW_X11_OBJ := $(addprefix $(OUT)/platform/x11/, x11_main.lo x11_image.lo pdfapp.lo)
+ $(MUVIEW_X11_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MUVIEW_X11_EXE) : $(MUVIEW_X11_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB)
+ 	$(LINK_CMD) $(X11_LIBS)
+ 
+ ifeq "$(HAVE_CURL)" "yes"
+-MUVIEW_X11_CURL_EXE := $(OUT)/mupdf-x11-curl
+-MUVIEW_X11_CURL_OBJ := $(addprefix $(OUT)/platform/x11/curl/, x11_main.o x11_image.o pdfapp.o curl_stream.o)
++MUVIEW_X11_CURL_EXE := $(OUT)/platform/x11/curl/mupdf
++MUVIEW_X11_CURL_OBJ := $(addprefix $(OUT)/platform/x11/curl/, x11_main.lo x11_image.lo pdfapp.lo curl_stream.lo)
+ $(MUVIEW_X11_CURL_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MUVIEW_X11_CURL_EXE) : $(MUVIEW_X11_CURL_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(CURL_LIB) $(PKCS7_LIB)
+ 	$(LINK_CMD) $(X11_LIBS) $(CURL_LIBS) $(SYS_CURL_DEPS)
+@@ -407,8 +407,8 @@ endif
+ endif
+ 
+ ifeq "$(HAVE_GLUT)" "yes"
+-MUVIEW_GLUT_EXE := $(OUT)/mupdf-gl
+-MUVIEW_GLUT_OBJ := $(addprefix $(OUT)/platform/gl/, gl-font.o gl-input.o gl-main.o)
++MUVIEW_GLUT_EXE := $(OUT)/platform/gl/mupdf-gl
++MUVIEW_GLUT_OBJ := $(addprefix $(OUT)/platform/gl/, gl-font.lo gl-input.lo gl-main.lo)
+ $(MUVIEW_GLUT_OBJ) : $(FITZ_HDR) $(PDF_HDR) platform/gl/gl-app.h
+ $(MUVIEW_GLUT_EXE) : $(MUVIEW_GLUT_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(GLUT_LIB)
+ 	$(LINK_CMD) $(GLUT_LIB) $(GLUT_LIBS)
+@@ -416,7 +416,7 @@ endif
+ 
+ ifeq "$(HAVE_WIN32)" "yes"
+ MUVIEW_WIN32_EXE := $(OUT)/mupdf
+-MUVIEW_WIN32_OBJ := $(addprefix $(OUT)/platform/x11/, win_main.o pdfapp.o win_res.o)
++MUVIEW_WIN32_OBJ := $(addprefix $(OUT)/platform/x11/, win_main.lo pdfapp.lo win_res.lo)
+ $(MUVIEW_WIN32_OBJ) : $(FITZ_HDR) $(PDF_HDR)
+ $(MUVIEW_WIN32_EXE) : $(MUVIEW_WIN32_OBJ) $(MUPDF_LIB) $(THIRD_LIB) $(PKCS7_LIB)
+ 	$(LINK_CMD) $(WIN32_LIBS)
+@@ -425,11 +425,21 @@ endif
+ MUVIEW_EXE := $(MUVIEW_X11_EXE) $(MUVIEW_WIN32_EXE) $(MUVIEW_GLUT_EXE)
+ MUVIEW_CURL_EXE := $(MUVIEW_X11_CURL_EXE) $(MUVIEW_WIN32_CURL_EXE)
+ 
+-INSTALL_APPS := $(MUTOOL_EXE) $(MUVIEW_EXE)
++INSTALL_APPS := $(MUTOOL_EXE)
+ EXTRA_APPS += $(MURASTER_EXE)
+-EXTRA_APPS += $(MUVIEW_CURL_EXE)
+ EXTRA_APPS += $(MUJSTEST_EXE)
+ EXTRA_APPS += $(MJSGEN_EXE)
++INSTALL_APPS += $(EXTRA_APPS)
++ 
++ifeq "$(HAVE_CURL)" "yes"
++INSTALL_APPS += $(MUVIEW_CURL_EXE)
++else ifeq "$(HAVE_X11)" "yes"
++INSTALL_APPS += $(MUVIEW_EXE)
++endif
++
++ifeq "$(HAVE_GLUT)" "yes"
++INSTALL_APPS += $(MUVIEW_GLUT_EXE)
++endif
+ 
+ # --- Examples ---
+ 
+@@ -442,10 +452,10 @@ $(OUT)/multi-threaded: docs/examples/mul
+ 
+ # --- Update version string header ---
+ 
+-VERSION = $(shell git describe --tags)
+-
+-version:
+-	sed -i~ -e '/FZ_VERSION /s/".*"/"'$(VERSION)'"/' include/mupdf/fitz/version.h
++#VERSION = $(shell git describe --tags)
++#
++#version:
++#	sed -i~ -e '/FZ_VERSION /s/".*"/"'$(VERSION)'"/' include/mupdf/fitz/version.h
+ 
+ # --- Format man pages ---
+ 
+@@ -474,27 +484,29 @@ extra-apps: $(EXTRA_APPS)
+ extra: extra-libs extra-apps
+ 
+ install: libs apps
+-	install -d $(DESTDIR)$(incdir)/mupdf
+-	install -d $(DESTDIR)$(incdir)/mupdf/fitz
+-	install -d $(DESTDIR)$(incdir)/mupdf/pdf
+-	install include/mupdf/*.h $(DESTDIR)$(incdir)/mupdf
+-	install include/mupdf/fitz/*.h $(DESTDIR)$(incdir)/mupdf/fitz
+-	install include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf
+-
+-	install -d $(DESTDIR)$(libdir)
+-	install $(INSTALL_LIBS) $(DESTDIR)$(libdir)
+-
+-	install -d $(DESTDIR)$(bindir)
+-	install $(INSTALL_APPS) $(DESTDIR)$(bindir)
+-
+-	install -d $(DESTDIR)$(mandir)/man1
+-	install docs/man/*.1 $(DESTDIR)$(mandir)/man1
+-
+-	install -d $(DESTDIR)$(docdir)
+-	install -d $(DESTDIR)$(docdir)/examples
+-	install README COPYING CHANGES $(DESTDIR)$(docdir)
+-	install docs/*.html docs/*.css docs/*.png $(DESTDIR)$(docdir)
+-	install docs/examples/* $(DESTDIR)$(docdir)/examples
++	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(incdir) $(DESTDIR)$(incdir)/mupdf $(DESTDIR)$(incdir)/mupdf/fitz $(DESTDIR)$(incdir)/mupdf/pdf
++	${BSD_INSTALL_DATA} include/mupdf/*.h $(DESTDIR)$(incdir)/mupdf
++	${BSD_INSTALL_DATA} include/mupdf/fitz/*.h $(DESTDIR)$(incdir)/mupdf/fitz
++	${BSD_INSTALL_DATA} include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf
++
++	${BSD_INSTALL_LIB_DIR} $(DESTDIR)$(libdir)
++	for f in $(INSTALL_LIBS); do \
++		${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} $$f $(DESTDIR)$(libdir); \
++	done
++
++	${BSD_INSTALL_PROGRAM_DIR} $(DESTDIR)$(bindir)
++	for f in $(INSTALL_APPS); do \
++		${LIBTOOL} --mode=install ${BSD_INSTALL_PROGRAM} $$f $(DESTDIR)$(bindir); \
++	done
++
++	${BSD_INSTALL_MAN_DIR} $(DESTDIR)$(mandir)/man1
++	${BSD_INSTALL_MAN} docs/man/*.1 $(DESTDIR)$(mandir)/man1
++
++	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(docdir)
++	${BSD_INSTALL_DATA_DIR} $(DESTDIR)$(docdir)/examples
++	${BSD_INSTALL_DATA} README COPYING CHANGES $(DESTDIR)$(docdir)
++	${BSD_INSTALL_DATA} docs/*.html docs/*.css docs/*.png $(DESTDIR)$(docdir)
++	${BSD_INSTALL_DATA} docs/examples/* $(DESTDIR)$(docdir)/examples
+ 
+ tarball:
+ 	bash scripts/archive.sh
diff --git a/mupdf/patches/patch-ae b/mupdf/patches/patch-ae
new file mode 100644
index 0000000000..41a0419c49
--- /dev/null
+++ b/mupdf/patches/patch-ae
@@ -0,0 +1,82 @@
+$NetBSD: patch-ae,v 1.5 2016/02/04 11:50:24 leot Exp $
+
+Avoid namespace conflicts with bswap(3).
+
+--- source/fitz/crypt-sha2.c.orig	2015-11-10 16:19:51.000000000 +0000
++++ source/fitz/crypt-sha2.c
+@@ -17,7 +17,7 @@ static inline int isbigendian(void)
+ 	return *(char*)&one == 0;
+ }
+ 
+-static inline unsigned int bswap32(unsigned int num)
++static inline unsigned int mup_bswap32(unsigned int num)
+ {
+ 	return	( (((num) << 24))
+ 		| (((num) << 8) & 0x00FF0000)
+@@ -25,7 +25,7 @@ static inline unsigned int bswap32(unsig
+ 		| (((num) >> 24)) );
+ }
+ 
+-static inline uint64_t bswap64(uint64_t num)
++static inline uint64_t mup_bswap64(uint64_t num)
+ {
+ 	return ( (((num) << 56))
+ 		| (((num) << 40) & 0x00FF000000000000ULL)
+@@ -99,7 +99,7 @@ transform256(unsigned int state[8], unsi
+ 	/* ensure big-endian integers */
+ 	if (!isbigendian())
+ 		for (j = 0; j < 16; j++)
+-			data[j] = bswap32(data[j]);
++			data[j] = mup_bswap32(data[j]);
+ 
+ 	/* Copy state[] to working vars. */
+ 	memcpy(T, state, sizeof(T));
+@@ -192,8 +192,8 @@ void fz_sha256_final(fz_sha256 *context,
+ 
+ 	if (!isbigendian())
+ 	{
+-		context->buffer.u32[14] = bswap32(context->count[1]);
+-		context->buffer.u32[15] = bswap32(context->count[0]);
++		context->buffer.u32[14] = mup_bswap32(context->count[1]);
++		context->buffer.u32[15] = mup_bswap32(context->count[0]);
+ 	}
+ 	else
+ 	{
+@@ -204,7 +204,7 @@ void fz_sha256_final(fz_sha256 *context,
+ 
+ 	if (!isbigendian())
+ 		for (j = 0; j < 8; j++)
+-			context->state[j] = bswap32(context->state[j]);
++			context->state[j] = mup_bswap32(context->state[j]);
+ 
+ 	memcpy(digest, &context->state[0], 32);
+ 	memset(context, 0, sizeof(fz_sha256));
+@@ -271,7 +271,7 @@ transform512(uint64_t state[8], uint64_t
+ 	/* ensure big-endian integers */
+ 	if (!isbigendian())
+ 		for (j = 0; j < 16; j++)
+-			data[j] = bswap64(data[j]);
++			data[j] = mup_bswap64(data[j]);
+ 
+ 	/* Copy state[] to working vars. */
+ 	memcpy(T, state, sizeof(T));
+@@ -364,8 +364,8 @@ void fz_sha512_final(fz_sha512 *context,
+ 
+ 	if (!isbigendian())
+ 	{
+-		context->buffer.u64[14] = bswap64(context->count[1]);
+-		context->buffer.u64[15] = bswap64(context->count[0]);
++		context->buffer.u64[14] = mup_bswap64(context->count[1]);
++		context->buffer.u64[15] = mup_bswap64(context->count[0]);
+ 	}
+ 	else
+ 	{
+@@ -376,7 +376,7 @@ void fz_sha512_final(fz_sha512 *context,
+ 
+ 	if (!isbigendian())
+ 		for (j = 0; j < 8; j++)
+-			context->state[j] = bswap64(context->state[j]);
++			context->state[j] = mup_bswap64(context->state[j]);
+ 
+ 	memcpy(digest, &context->state[0], 64);
+ 	memset(context, 0, sizeof(fz_sha512));
diff --git a/mupdf/patches/patch-platform_gl_gl-app.h b/mupdf/patches/patch-platform_gl_gl-app.h
new file mode 100644
index 0000000000..de3c37f4e9
--- /dev/null
+++ b/mupdf/patches/patch-platform_gl_gl-app.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-platform_gl_gl-app.h,v 1.1 2017/12/18 15:06:34 leot Exp $
+
+- Do not force freeglut GLUT implementation to every non-APPLE platforms.
+- Adjust the glut.h include.
+
+--- platform/gl/gl-app.h.orig	2017-11-23 11:42:45.000000000 +0000
++++ platform/gl/gl-app.h
+@@ -7,11 +7,7 @@ int win_open_file(char *buf, int len);
+ #include "mupdf/fitz.h"
+ #include "mupdf/ucdn.h"
+ 
+-#ifndef __APPLE__
+-#include <GL/freeglut.h>
+-#else
+-#include <GLUT/glut.h>
+-#endif
++#include <GL/glut.h>
+ 
+ extern fz_context *ctx;
+ 
diff --git a/mupdf/patches/patch-source_fitz_load-jpx.c b/mupdf/patches/patch-source_fitz_load-jpx.c
new file mode 100644
index 0000000000..70639ad22d
--- /dev/null
+++ b/mupdf/patches/patch-source_fitz_load-jpx.c
@@ -0,0 +1,51 @@
+$NetBSD: patch-source_fitz_load-jpx.c,v 1.7 2017/12/18 15:06:34 leot Exp $
+
+- MuPDF does some locking around its allocation calls; it overrides openjpeg's
+  allocators to do this locking too. However mupdf tries to manually align things
+  in a way that doesn't match what openjpeg does, which we noticed when frees
+  were segfaulting because the addresses didn't match up.
+
+  In the case of the openjpeg port it's relying on malloc(3)'s guarantee
+  "The allocated space is suitably aligned (after possible pointer coercion)
+  for storage of any type of object" so patch mupdf to do the same.
+
+  Fixes crash noticed by jca@ in https://www.broadband-forum.org/technical/download/TR-177.pdf
+
+  From OpenBSD ports textproc/mupdf/patch-source_fitz_load-jpx_c,v 1.5.
+
+--- source/fitz/load-jpx.c.orig	2018-04-12 13:14:06.000000000 +0000
++++ source/fitz/load-jpx.c
+@@ -548,30 +548,14 @@ void opj_free(void *ptr)
+ 
+ void * opj_aligned_malloc(size_t size)
+ {
+-	uint8_t *ptr;
+-	int off;
+ 
+-	if (size == 0)
+-		return NULL;
+-
+-	size += 16 + sizeof(uint8_t);
+-	ptr = opj_malloc(size);
+-	if (ptr == NULL)
+-		return NULL;
+-	off = 16-(((int)(intptr_t)ptr) & 15);
+-	ptr[off-1] = off;
+-	return ptr + off;
++	return opj_malloc(size);
+ }
+ 
+ void opj_aligned_free(void* ptr_)
+ {
+-	uint8_t *ptr = (uint8_t *)ptr_;
+-	uint8_t off;
+-	if (ptr == NULL)
+-		return;
+-
+-	off = ptr[-1];
+-	opj_free((void *)(((unsigned char *)ptr) - off));
++	
++	opj_free(ptr_);
+ }
+ 
+ #if 0
diff --git a/mupdf/patches/patch-thirdparty_mujs_Makefile b/mupdf/patches/patch-thirdparty_mujs_Makefile
new file mode 100644
index 0000000000..32a4a0dbaa
--- /dev/null
+++ b/mupdf/patches/patch-thirdparty_mujs_Makefile
@@ -0,0 +1,53 @@
+$NetBSD: patch-thirdparty_mujs_Makefile,v 1.3 2017/12/18 15:06:34 leot Exp $
+
+- Add libtool support to mujs.
+- Avoid to set (unused) VERSION variable.
+
+--- thirdparty/mujs/Makefile.orig	2018-01-24 15:55:49.000000000 +0000
++++ thirdparty/mujs/Makefile
+@@ -7,12 +7,6 @@ bindir ?= $(prefix)/bin
+ incdir ?= $(prefix)/include
+ libdir ?= $(prefix)/lib
+ 
+-ifeq "$(wildcard .git)" ".git"
+-VERSION := $(shell git describe --tags --always)
+-else
+-VERSION := $(shell basename $$PWD | sed -e s,^mujs-,,)
+-endif
+-
+ # Compiler flags for various configurations:
+ 
+ CFLAGS := -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter
+@@ -63,19 +57,19 @@ jsdump.c: astnames.h opnames.h
+ $(OUT):
+ 	mkdir -p $(OUT)
+ 
+-$(OUT)/main.o: main.c $(HDRS)
++$(OUT)/main.lo: main.c $(HDRS)
+ 	$(CC) $(CFLAGS) -o $@ -c $<
+ 
+-$(OUT)/libmujs.o: one.c $(HDRS)
++$(OUT)/libmujs.lo: one.c $(HDRS)
+ 	$(CC) $(CFLAGS) -o $@ -c $<
+ 
+-$(OUT)/libmujs.a: $(OUT)/libmujs.o
++$(OUT)/libmujs.la: $(OUT)/libmujs.lo
+ 	$(AR) cru $@ $^
+ 
+ $(OUT)/libmujs.so: one.c $(HDRS)
+ 	$(CC) $(CFLAGS) -fPIC -shared -o $@ $< -lm
+ 
+-$(OUT)/mujs: $(OUT)/libmujs.o $(OUT)/main.o
++$(OUT)/mujs: $(OUT)/libmujs.lo $(OUT)/main.lo
+ 	$(CC) $(LDFLAGS) -o $@ $^ -lm
+ 
+ $(OUT)/mujs.pc:
+@@ -100,7 +94,7 @@ install-common: release
+ 	install -m 755 build/release/mujs $(DESTDIR)$(bindir)
+ 
+ install-static: install-common
+-	install -m 644 build/release/libmujs.a $(DESTDIR)$(libdir)
++	install -m 644 build/release/libmujs.la $(DESTDIR)$(libdir)
+ 
+ install-shared: install-common
+ 	install -m 755 build/release/libmujs.so $(DESTDIR)$(libdir)



Home | Main Index | Thread Index | Old Index