summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
-rw-r--r--pkg/gen.rc1
-rw-r--r--pkg/mupdf/.gitignore1
-rw-r--r--pkg/mupdf/fonts.txt119
-rw-r--r--pkg/mupdf/gen.rc56
-rw-r--r--pkg/mupdf/patch/0001-Change-generated-files-to-be-C-instead-of-headers.patch869
-rw-r--r--pkg/mupdf/patch/0002-scripts-hexdump-Support-stripping-prefix-for-symbol-.patch106
-rw-r--r--pkg/mupdf/patch/0003-Remove-hb.h-include-from-font.c.patch25
-rw-r--r--pkg/mupdf/rev1
-rw-r--r--pkg/mupdf/sources.txt175
m---------pkg/mupdf/src0
11 files changed, 1357 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 22c481ad..53f19e1a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -127,6 +127,10 @@
[submodule "pkg/mtdev/src"]
path = pkg/mtdev/src
url = https://github.com/rydberg/mtdev
+[submodule "pkg/mupdf/src"]
+ path = pkg/mupdf/src
+ url = git://git.ghostscript.com/mupdf.git
+ ignore = all
[submodule "pkg/netsurf/src"]
path = pkg/netsurf/src
url = https://github.com/michaelforney/netsurf
diff --git a/pkg/gen.rc b/pkg/gen.rc
index d964064c..4f8d1d71 100644
--- a/pkg/gen.rc
+++ b/pkg/gen.rc
@@ -50,6 +50,7 @@ subgen mdocml
subgen mpv
subgen msmtp
subgen mtdev
+subgen mupdf
subgen nasm
subgen ncurses
subgen netsurf
diff --git a/pkg/mupdf/.gitignore b/pkg/mupdf/.gitignore
new file mode 100644
index 00000000..012dc66e
--- /dev/null
+++ b/pkg/mupdf/.gitignore
@@ -0,0 +1 @@
+/tools.ninja
diff --git a/pkg/mupdf/fonts.txt b/pkg/mupdf/fonts.txt
new file mode 100644
index 00000000..621059b6
--- /dev/null
+++ b/pkg/mupdf/fonts.txt
@@ -0,0 +1,119 @@
+# 2,<cd src/resources/fonts && ls noto/*.ttf urw/*.cff
+noto/NotoEmoji-Regular.ttf
+noto/NotoKufiArabic-Regular.ttf
+noto/NotoNaskhArabic-Regular.ttf
+noto/NotoNastaliqUrdu-Regular.ttf
+noto/NotoSans-Regular.ttf
+noto/NotoSansArmenian-Regular.ttf
+noto/NotoSansAvestan-Regular.ttf
+noto/NotoSansBalinese-Regular.ttf
+noto/NotoSansBamum-Regular.ttf
+noto/NotoSansBatak-Regular.ttf
+noto/NotoSansBengali-Regular.ttf
+noto/NotoSansBrahmi-Regular.ttf
+noto/NotoSansBuginese-Regular.ttf
+noto/NotoSansBuhid-Regular.ttf
+noto/NotoSansCanadianAboriginal-Regular.ttf
+noto/NotoSansCarian-Regular.ttf
+noto/NotoSansCham-Regular.ttf
+noto/NotoSansCherokee-Regular.ttf
+noto/NotoSansCoptic-Regular.ttf
+noto/NotoSansCuneiform-Regular.ttf
+noto/NotoSansCypriot-Regular.ttf
+noto/NotoSansDeseret-Regular.ttf
+noto/NotoSansDevanagari-Regular.ttf
+noto/NotoSansEgyptianHieroglyphs-Regular.ttf
+noto/NotoSansEthiopic-Regular.ttf
+noto/NotoSansGeorgian-Regular.ttf
+noto/NotoSansGlagolitic-Regular.ttf
+noto/NotoSansGothic-Regular.ttf
+noto/NotoSansGujarati-Regular.ttf
+noto/NotoSansGurmukhi-Regular.ttf
+noto/NotoSansHanunoo-Regular.ttf
+noto/NotoSansHebrew-Regular.ttf
+noto/NotoSansImperialAramaic-Regular.ttf
+noto/NotoSansInscriptionalPahlavi-Regular.ttf
+noto/NotoSansInscriptionalParthian-Regular.ttf
+noto/NotoSansJavanese-Regular.ttf
+noto/NotoSansKaithi-Regular.ttf
+noto/NotoSansKannada-Regular.ttf
+noto/NotoSansKayahLi-Regular.ttf
+noto/NotoSansKharoshthi-Regular.ttf
+noto/NotoSansKhmer-Regular.ttf
+noto/NotoSansLao-Regular.ttf
+noto/NotoSansLepcha-Regular.ttf
+noto/NotoSansLimbu-Regular.ttf
+noto/NotoSansLinearB-Regular.ttf
+noto/NotoSansLisu-Regular.ttf
+noto/NotoSansLycian-Regular.ttf
+noto/NotoSansLydian-Regular.ttf
+noto/NotoSansMalayalam-Regular.ttf
+noto/NotoSansMandaic-Regular.ttf
+noto/NotoSansMeeteiMayek-Regular.ttf
+noto/NotoSansMongolian-Regular.ttf
+noto/NotoSansMyanmar-Regular.ttf
+noto/NotoSansNKo-Regular.ttf
+noto/NotoSansNewTaiLue-Regular.ttf
+noto/NotoSansOgham-Regular.ttf
+noto/NotoSansOlChiki-Regular.ttf
+noto/NotoSansOldItalic-Regular.ttf
+noto/NotoSansOldPersian-Regular.ttf
+noto/NotoSansOldSouthArabian-Regular.ttf
+noto/NotoSansOldTurkic-Regular.ttf
+noto/NotoSansOriya-Regular.ttf
+noto/NotoSansOsmanya-Regular.ttf
+noto/NotoSansPhagsPa-Regular.ttf
+noto/NotoSansPhoenician-Regular.ttf
+noto/NotoSansRejang-Regular.ttf
+noto/NotoSansRunic-Regular.ttf
+noto/NotoSansSamaritan-Regular.ttf
+noto/NotoSansSaurashtra-Regular.ttf
+noto/NotoSansShavian-Regular.ttf
+noto/NotoSansSinhala-Regular.ttf
+noto/NotoSansSundanese-Regular.ttf
+noto/NotoSansSylotiNagri-Regular.ttf
+noto/NotoSansSymbols-Regular.ttf
+noto/NotoSansSyriacEastern-Regular.ttf
+noto/NotoSansSyriacEstrangela-Regular.ttf
+noto/NotoSansSyriacWestern-Regular.ttf
+noto/NotoSansTagalog-Regular.ttf
+noto/NotoSansTagbanwa-Regular.ttf
+noto/NotoSansTaiLe-Regular.ttf
+noto/NotoSansTaiTham-Regular.ttf
+noto/NotoSansTaiViet-Regular.ttf
+noto/NotoSansTamil-Regular.ttf
+noto/NotoSansTelugu-Regular.ttf
+noto/NotoSansThaana-Regular.ttf
+noto/NotoSansThai-Regular.ttf
+noto/NotoSansTibetan-Regular.ttf
+noto/NotoSansTifinagh-Regular.ttf
+noto/NotoSansUgaritic-Regular.ttf
+noto/NotoSansVai-Regular.ttf
+noto/NotoSansYi-Regular.ttf
+noto/NotoSerif-Regular.ttf
+noto/NotoSerifArmenian-Regular.ttf
+noto/NotoSerifBengali-Regular.ttf
+noto/NotoSerifDevanagari-Regular.ttf
+noto/NotoSerifGeorgian-Regular.ttf
+noto/NotoSerifGujarati-Regular.ttf
+noto/NotoSerifKannada-Regular.ttf
+noto/NotoSerifKhmer-Regular.ttf
+noto/NotoSerifLao-Regular.ttf
+noto/NotoSerifMalayalam-Regular.ttf
+noto/NotoSerifTamil-Regular.ttf
+noto/NotoSerifTelugu-Regular.ttf
+noto/NotoSerifThai-Regular.ttf
+urw/Dingbats.cff
+urw/NimbusMonoPS-Bold.cff
+urw/NimbusMonoPS-BoldItalic.cff
+urw/NimbusMonoPS-Italic.cff
+urw/NimbusMonoPS-Regular.cff
+urw/NimbusRoman-Bold.cff
+urw/NimbusRoman-BoldItalic.cff
+urw/NimbusRoman-Italic.cff
+urw/NimbusRoman-Regular.cff
+urw/NimbusSans-Bold.cff
+urw/NimbusSans-BoldOblique.cff
+urw/NimbusSans-Oblique.cff
+urw/NimbusSans-Regular.cff
+urw/StandardSymbolsPS.cff
diff --git a/pkg/mupdf/gen.rc b/pkg/mupdf/gen.rc
new file mode 100644
index 00000000..6c2b182c
--- /dev/null
+++ b/pkg/mupdf/gen.rc
@@ -0,0 +1,56 @@
+# HTML/EPUB require harfbuzz, JPX requires openjpeg
+cflags\
+ -D 'FZ_ENABLE_JS=0' \
+ -D 'FZ_ENABLE_HTML=0' \
+ -D 'FZ_ENABLE_EPUB=0' \
+ -D 'FZ_ENABLE_JPX=0' \
+ -D NOTO_SMALL\
+ -D NOCJK\
+ -D SHARE_JPEG\
+ -isystem pkg/freetype/src/include\
+ -isystem pkg/jbig2dec/src\
+ -isystem '$builddir'/pkg/libjpeg-turbo/include\
+ -I '$srcdir'/include\
+ -I '$outdir'
+
+{
+ toolchain host
+ cflags -Wall
+
+ exe namedump scripts/namedump.c
+ exe hexdump scripts/hexdump.c
+} >tools.ninja && subninja tools.ninja
+
+rule namedump '$outdir/namedump $in $out'
+outs='$outdir'/^(mupdf/pdf/name-table.h pdf-name-table.h)
+build $"outs namedump '$srcdir'/resources/pdf/names.txt '|' '$outdir'/namedump
+
+rule hexdump '$outdir/hexdump -p $srcdir/ $out.tmp $in && mv $out.tmp $out'
+fonts=`{grep -v '^#' fonts.txt} ; checkstatus
+for(font in $fonts)
+ build '$outdir'/$font.c hexdump '$srcdir'/resources/fonts/$font '|' '$outdir'/hexdump
+
+phony deps\
+ pkg/libjpeg-turbo/headers\
+ '$builddir'/pkg/^(freetype jbig2dec)^/fetch.stamp\
+ '$outdir'/mupdf/pdf/name-table.h
+
+srcs=`{grep -v -e '^#' -e harfbuzz.c sources.txt} ; checkstatus
+lib libmupdf.a -d '$dir'/deps source/$srcs '$outdir'/$fonts.c\
+ '$builddir'/pkg/^(\
+ freetype/libfreetype.a.d\
+ jbig2dec/libjbig2dec.a\
+ libjpeg-turbo/libjpeg-turbo.a\
+ )
+
+exe bin/mutool -d '$dir'/deps source/tools/^(\
+ mutool.c muconvert.c mudraw.c murun.c\
+ pdfclean.c pdfcreate.c pdfextract.c pdfinfo.c pdfmerge.c pdfpages.c\
+ pdfportfolio.c pdfposter.c pdfshow.c\
+) libmupdf.a.d
+file bin/mutool '$outdir'/bin/mutool 755
+
+man -d docs/man 1 mutool.1
+
+fetch git
+gen_inputs='$dir'/^(sources.txt fonts.txt)
diff --git a/pkg/mupdf/patch/0001-Change-generated-files-to-be-C-instead-of-headers.patch b/pkg/mupdf/patch/0001-Change-generated-files-to-be-C-instead-of-headers.patch
new file mode 100644
index 00000000..65ff0c7b
--- /dev/null
+++ b/pkg/mupdf/patch/0001-Change-generated-files-to-be-C-instead-of-headers.patch
@@ -0,0 +1,869 @@
+From ec907b6018760285e89bbdde8bf7a46ca47207a2 Mon Sep 17 00:00:00 2001
+From: Tor Andersson <tor.andersson@artifex.com>
+Date: Wed, 12 Apr 2017 16:24:34 +0200
+Subject: [PATCH] Change generated files to be C instead of headers.
+
+Remove AdobeCA.p7c from autogenerated files. Just include the
+array in the source.
+
+Simplifies makefile dependencies and makes the sizes of each
+bit of data easier to look at.
+
+It also paves the way for eventually using objcopy to create binary
+objects for the fonts instead of needing to use hexdump.
+---
+ Makefile | 46 ++--
+ platform/win32/generate.bat | 11 +-
+ platform/win32/libmupdf.vcproj | 24 ++
+ scripts/cmapdump.c | 5 +-
+ source/pdf/pdf-cmap-table.c | 535 +++++++++++++++++++++++++++--------------
+ source/pdf/pdf-js.c | 2 +-
+ source/pdf/pdf-pkcs7.c | 65 ++++-
+ 7 files changed, 469 insertions(+), 219 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c31317f4..843de2c1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -229,21 +229,30 @@ CMAP_EXTRA_SRC := $(wildcard resources/cmaps/extra/*)
+ CMAP_UTF8_SRC := $(wildcard resources/cmaps/utf8/*)
+ CMAP_UTF32_SRC := $(wildcard resources/cmaps/utf32/*)
+
+-generated/gen_cmap_cjk.h : $(CMAP_CJK_SRC) | generated
++CMAP_GEN := \
++ generated/pdf-cmap-cjk.c \
++ generated/pdf-cmap-extra.c \
++ generated/pdf-cmap-utf8.c \
++ generated/pdf-cmap-utf32.c
++CMAP_OBJ := $(CMAP_GEN:%.c=$(OUT)/%.o)
++
++generated/pdf-cmap-cjk.c : $(CMAP_CJK_SRC) | generated
+ $(QUIET_GEN) $(CMAPDUMP_EXE) $@ $(CMAP_CJK_SRC)
+-generated/gen_cmap_extra.h : $(CMAP_EXTRA_SRC) | generated
++generated/pdf-cmap-extra.c : $(CMAP_EXTRA_SRC) | generated
+ $(QUIET_GEN) $(CMAPDUMP_EXE) $@ $(CMAP_EXTRA_SRC)
+-generated/gen_cmap_utf8.h : $(CMAP_UTF8_SRC) | generated
++generated/pdf-cmap-utf8.c : $(CMAP_UTF8_SRC) | generated
+ $(QUIET_GEN) $(CMAPDUMP_EXE) $@ $(CMAP_UTF8_SRC)
+-generated/gen_cmap_utf32.h : $(CMAP_UTF32_SRC) | generated
++generated/pdf-cmap-utf32.c : $(CMAP_UTF32_SRC) | generated
+ $(QUIET_GEN) $(CMAPDUMP_EXE) $@ $(CMAP_UTF32_SRC)
+
+-CMAP_GEN := $(addprefix generated/, gen_cmap_cjk.h gen_cmap_extra.h gen_cmap_utf8.h gen_cmap_utf32.h)
++$(CMAP_OBJ) : $(CMAP_GEN)
+
+ ifneq "$(CROSSCOMPILE)" "yes"
+ $(CMAP_GEN) : $(CMAPDUMP_EXE)
+ endif
+
++generate: $(CMAP_GEN)
++
+ $(OUT)/scripts/cmapdump.o : \
+ $(NAME_GEN) \
+ include/mupdf/pdf/cmap.h \
+@@ -264,29 +273,12 @@ $(OUT)/scripts/cmapdump.o : \
+ source/pdf/pdf-cmap.c \
+ source/pdf/pdf-cmap-parse.c \
+
+-$(OUT)/source/pdf/pdf-cmap-table.o : $(CMAP_GEN)
+-
+-generate: $(CMAP_GEN)
+-
+-# --- Generated embedded certificate files ---
+-
+-ADOBECA_SRC := resources/certs/AdobeCA.p7c
+-ADOBECA_GEN := generated/gen_adobe_ca.h
+-$(ADOBECA_GEN) : $(ADOBECA_SRC) | generated
+- $(QUIET_GEN) $(HEXDUMP_EXE) $@ $(ADOBECA_SRC)
+-
+-ifneq "$(CROSSCOMPILE)" "yes"
+-$(ADOBECA_GEN) : $(HEXDUMP_EXE)
+-endif
+-
+-$(OUT)/source/pdf/pdf-pkcs7.o : $(ADOBECA_GEN)
+-
+-generate: $(ADOBECA_GEN)
+-
+ # --- Generated embedded javascript files ---
+
+ JAVASCRIPT_SRC := source/pdf/pdf-js-util.js
+-JAVASCRIPT_GEN := generated/gen_js_util.h
++JAVASCRIPT_GEN := generated/pdf-js-util.c
++JAVASCRIPT_OBJ := $(JAVASCRIPT_GEN:%.c=$(OUT)/%.o)
++
+ $(JAVASCRIPT_GEN) : $(JAVASCRIPT_SRC) | generated
+ $(QUIET_GEN) $(HEXDUMP_EXE) $@ $(JAVASCRIPT_SRC)
+
+@@ -294,7 +286,7 @@ ifneq "$(CROSSCOMPILE)" "yes"
+ $(JAVASCRIPT_GEN) : $(HEXDUMP_EXE)
+ endif
+
+-$(OUT)/source/pdf/pdf-js.o : $(JAVASCRIPT_GEN)
++$(JAVASCRIPT_OBJ) : $(JAVASCRIPT_GEN)
+
+ generate: $(JAVASCRIPT_GEN)
+
+@@ -304,7 +296,7 @@ MUPDF_LIB = $(OUT)/libmupdf.a
+ THIRD_LIB = $(OUT)/libmupdfthird.a
+ THREAD_LIB = $(OUT)/libmuthreads.a
+
+-MUPDF_OBJ := $(FITZ_OBJ) $(FONT_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(SVG_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ)
++MUPDF_OBJ := $(FITZ_OBJ) $(PDF_OBJ) $(CMAP_OBJ) $(FONT_OBJ) $(JAVASCRIPT_OBJ) $(XPS_OBJ) $(SVG_OBJ) $(CBZ_OBJ) $(HTML_OBJ) $(GPRF_OBJ)
+ THIRD_OBJ := $(FREETYPE_OBJ) $(HARFBUZZ_OBJ) $(JBIG2DEC_OBJ) $(LIBJPEG_OBJ) $(JPEGXR_OBJ) $(LURATECH_OBJ) $(MUJS_OBJ) $(OPENJPEG_OBJ) $(ZLIB_OBJ)
+ THREAD_OBJ := $(THREAD_OBJ)
+
+diff --git a/platform/win32/generate.bat b/platform/win32/generate.bat
+index 8658906f..22407fc8 100644
+--- a/platform/win32/generate.bat
++++ b/platform/win32/generate.bat
+@@ -17,13 +17,12 @@ cl /nologo -Iinclude scripts/cmapdump.c setargv.obj
+ if not exist hexdump.exe goto usage
+ if not exist cmapdump.exe goto usage
+
+-if not exist generated/gen_cmap_cjk.h cmapdump.exe generated/gen_cmap_cjk.h resources\cmaps\cjk\*
+-if not exist generated/gen_cmap_extra.h cmapdump.exe generated/gen_cmap_extra.h resources\cmaps\extra\*
+-if not exist generated/gen_cmap_utf8.h cmapdump.exe generated/gen_cmap_utf8.h resources\cmaps\utf8\*
+-if not exist generated/gen_cmap_utf32.h cmapdump.exe generated/gen_cmap_utf32.h resources\cmaps\utf32\*
++if not exist generated/pdf-cmap-cjk.c cmapdump.exe generated/pdf-cmap-cjk.c resources\cmaps\cjk\*
++if not exist generated/pdf-cmap-extra.c cmapdump.exe generated/pdf-cmap-extra.c resources\cmaps\extra\*
++if not exist generated/pdf-cmap-utf8.c cmapdump.exe generated/pdf-cmap-utf8.c resources\cmaps\utf8\*
++if not exist generated/pdf-cmap-utf32.c cmapdump.exe generated/pdf-cmap-utf32.c resources\cmaps\utf32\*
+
+-if not exist generated/gen_adobe_ca.h hexdump.exe generated/gen_adobe_ca.h resources/certs/AdobeCA.p7c
+-if not exist generated/gen_js_util.h hexdump.exe generated/gen_js_util.h source/pdf/pdf-js-util.js
++if not exist generated/pdf-js-util.c hexdump.exe generated/pdf-js-util.c source/pdf/pdf-js-util.js
+
+ if not exist generated/DroidSansFallback.c hexdump.exe generated/DroidSansFallback.c resources/fonts/droid/DroidSansFallback.ttf
+ if not exist generated/DroidSansFallbackFull.c hexdump.exe generated/DroidSansFallbackFull.c resources/fonts/droid/DroidSansFallbackFull.ttf
+diff --git a/platform/win32/libmupdf.vcproj b/platform/win32/libmupdf.vcproj
+index 09899f61..122c561f 100644
+--- a/platform/win32/libmupdf.vcproj
++++ b/platform/win32/libmupdf.vcproj
+@@ -2521,6 +2521,30 @@
+ >
+ </File>
+ </Filter>
++ <Filter
++ Name="generated"
++ >
++ <File
++ RelativePath="..\..\generated\pdf-cmap-cjk.c"
++ >
++ </File>
++ <File
++ RelativePath="..\..\generated\pdf-cmap-extra.c"
++ >
++ </File>
++ <File
++ RelativePath="..\..\generated\pdf-cmap-utf32.c"
++ >
++ </File>
++ <File
++ RelativePath="..\..\generated\pdf-cmap-utf8.c"
++ >
++ </File>
++ <File
++ RelativePath="..\..\generated\pdf-js-util.c"
++ >
++ </File>
++ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+diff --git a/scripts/cmapdump.c b/scripts/cmapdump.c
+index 4da2e329..eb84cb4c 100644
+--- a/scripts/cmapdump.c
++++ b/scripts/cmapdump.c
+@@ -75,7 +75,8 @@ main(int argc, char **argv)
+ return 1;
+ }
+
+- fprintf(fo, "/* This is an automatically generated file. Do not edit. */\n");
++ fprintf(fo, "/* This is an automatically generated file. Do not edit. */\n\n");
++ fprintf(fo, "#include \"mupdf/pdf.h\"\n");
+
+ for (i = 2; i < argc; i++)
+ {
+@@ -148,7 +149,7 @@ main(int argc, char **argv)
+ fprintf(fo, "\n};\n\n");
+ }
+
+- fprintf(fo, "static pdf_cmap cmap_%s = {\n", name);
++ fprintf(fo, "pdf_cmap pdf_cmap_%s = {\n", name);
+ fprintf(fo, "\t{-1, pdf_drop_cmap_imp}, ");
+ fprintf(fo, "\"%s\", ", cmap->cmap_name);
+ fprintf(fo, "\"%s\", 0, ", cmap->usecmap_name);
+diff --git a/source/pdf/pdf-cmap-table.c b/source/pdf/pdf-cmap-table.c
+index eb94ee6e..8b2a62c4 100644
+--- a/source/pdf/pdf-cmap-table.c
++++ b/source/pdf/pdf-cmap-table.c
+@@ -20,207 +20,384 @@
+
+ #if CJK_CMAPS
+
+-#include "gen_cmap_cjk.h"
++extern pdf_cmap pdf_cmap_83pv_RKSJ_H;
++extern pdf_cmap pdf_cmap_90ms_RKSJ_H;
++extern pdf_cmap pdf_cmap_90ms_RKSJ_V;
++extern pdf_cmap pdf_cmap_90msp_RKSJ_H;
++extern pdf_cmap pdf_cmap_90msp_RKSJ_V;
++extern pdf_cmap pdf_cmap_90pv_RKSJ_H;
++extern pdf_cmap pdf_cmap_Add_RKSJ_H;
++extern pdf_cmap pdf_cmap_Add_RKSJ_V;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_UCS2;
++extern pdf_cmap pdf_cmap_Adobe_GB1_UCS2;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_UCS2;
++extern pdf_cmap pdf_cmap_Adobe_Korea1_UCS2;
++extern pdf_cmap pdf_cmap_B5pc_H;
++extern pdf_cmap pdf_cmap_B5pc_V;
++extern pdf_cmap pdf_cmap_CNS_EUC_H;
++extern pdf_cmap pdf_cmap_CNS_EUC_V;
++extern pdf_cmap pdf_cmap_ETen_B5_H;
++extern pdf_cmap pdf_cmap_ETen_B5_V;
++extern pdf_cmap pdf_cmap_ETenms_B5_H;
++extern pdf_cmap pdf_cmap_ETenms_B5_V;
++extern pdf_cmap pdf_cmap_EUC_H;
++extern pdf_cmap pdf_cmap_EUC_V;
++extern pdf_cmap pdf_cmap_Ext_RKSJ_H;
++extern pdf_cmap pdf_cmap_Ext_RKSJ_V;
++extern pdf_cmap pdf_cmap_GBK2K_H;
++extern pdf_cmap pdf_cmap_GBK2K_V;
++extern pdf_cmap pdf_cmap_GBK_EUC_H;
++extern pdf_cmap pdf_cmap_GBK_EUC_V;
++extern pdf_cmap pdf_cmap_GBKp_EUC_H;
++extern pdf_cmap pdf_cmap_GBKp_EUC_V;
++extern pdf_cmap pdf_cmap_GB_EUC_H;
++extern pdf_cmap pdf_cmap_GB_EUC_V;
++extern pdf_cmap pdf_cmap_GBpc_EUC_H;
++extern pdf_cmap pdf_cmap_GBpc_EUC_V;
++extern pdf_cmap pdf_cmap_H;
++extern pdf_cmap pdf_cmap_HKscs_B5_H;
++extern pdf_cmap pdf_cmap_HKscs_B5_V;
++extern pdf_cmap pdf_cmap_KSC_EUC_H;
++extern pdf_cmap pdf_cmap_KSC_EUC_V;
++extern pdf_cmap pdf_cmap_KSCms_UHC_H;
++extern pdf_cmap pdf_cmap_KSCms_UHC_HW_H;
++extern pdf_cmap pdf_cmap_KSCms_UHC_HW_V;
++extern pdf_cmap pdf_cmap_KSCms_UHC_V;
++extern pdf_cmap pdf_cmap_KSCpc_EUC_H;
++extern pdf_cmap pdf_cmap_UniCNS_UCS2_H;
++extern pdf_cmap pdf_cmap_UniCNS_UCS2_V;
++extern pdf_cmap pdf_cmap_UniCNS_UTF16_H;
++extern pdf_cmap pdf_cmap_UniCNS_UTF16_V;
++extern pdf_cmap pdf_cmap_UniCNS_X;
++extern pdf_cmap pdf_cmap_UniGB_UCS2_H;
++extern pdf_cmap pdf_cmap_UniGB_UCS2_V;
++extern pdf_cmap pdf_cmap_UniGB_UTF16_H;
++extern pdf_cmap pdf_cmap_UniGB_UTF16_V;
++extern pdf_cmap pdf_cmap_UniGB_X;
++extern pdf_cmap pdf_cmap_UniJIS_UCS2_H;
++extern pdf_cmap pdf_cmap_UniJIS_UCS2_HW_H;
++extern pdf_cmap pdf_cmap_UniJIS_UCS2_HW_V;
++extern pdf_cmap pdf_cmap_UniJIS_UCS2_V;
++extern pdf_cmap pdf_cmap_UniJIS_UTF16_H;
++extern pdf_cmap pdf_cmap_UniJIS_UTF16_V;
++extern pdf_cmap pdf_cmap_UniJIS_X16;
++extern pdf_cmap pdf_cmap_UniJIS_X;
++extern pdf_cmap pdf_cmap_UniKS_UCS2_H;
++extern pdf_cmap pdf_cmap_UniKS_UCS2_V;
++extern pdf_cmap pdf_cmap_UniKS_UTF16_H;
++extern pdf_cmap pdf_cmap_UniKS_UTF16_V;
++extern pdf_cmap pdf_cmap_UniKS_X;
++extern pdf_cmap pdf_cmap_V;
+
+ struct table { const char *name; pdf_cmap *cmap; };
+
+ static const struct table table_cjk[] =
+ {
+- {"83pv-RKSJ-H",&cmap_83pv_RKSJ_H},
+- {"90ms-RKSJ-H",&cmap_90ms_RKSJ_H},
+- {"90ms-RKSJ-V",&cmap_90ms_RKSJ_V},
+- {"90msp-RKSJ-H",&cmap_90msp_RKSJ_H},
+- {"90msp-RKSJ-V",&cmap_90msp_RKSJ_V},
+- {"90pv-RKSJ-H",&cmap_90pv_RKSJ_H},
+- {"Add-RKSJ-H",&cmap_Add_RKSJ_H},
+- {"Add-RKSJ-V",&cmap_Add_RKSJ_V},
+- {"Adobe-CNS1-UCS2",&cmap_Adobe_CNS1_UCS2},
+- {"Adobe-GB1-UCS2",&cmap_Adobe_GB1_UCS2},
+- {"Adobe-Japan1-UCS2",&cmap_Adobe_Japan1_UCS2},
+- {"Adobe-Korea1-UCS2",&cmap_Adobe_Korea1_UCS2},
+- {"B5pc-H",&cmap_B5pc_H},
+- {"B5pc-V",&cmap_B5pc_V},
+- {"CNS-EUC-H",&cmap_CNS_EUC_H},
+- {"CNS-EUC-V",&cmap_CNS_EUC_V},
+- {"ETen-B5-H",&cmap_ETen_B5_H},
+- {"ETen-B5-V",&cmap_ETen_B5_V},
+- {"ETenms-B5-H",&cmap_ETenms_B5_H},
+- {"ETenms-B5-V",&cmap_ETenms_B5_V},
+- {"EUC-H",&cmap_EUC_H},
+- {"EUC-V",&cmap_EUC_V},
+- {"Ext-RKSJ-H",&cmap_Ext_RKSJ_H},
+- {"Ext-RKSJ-V",&cmap_Ext_RKSJ_V},
+- {"GB-EUC-H",&cmap_GB_EUC_H},
+- {"GB-EUC-V",&cmap_GB_EUC_V},
+- {"GBK-EUC-H",&cmap_GBK_EUC_H},
+- {"GBK-EUC-V",&cmap_GBK_EUC_V},
+- {"GBK2K-H",&cmap_GBK2K_H},
+- {"GBK2K-V",&cmap_GBK2K_V},
+- {"GBKp-EUC-H",&cmap_GBKp_EUC_H},
+- {"GBKp-EUC-V",&cmap_GBKp_EUC_V},
+- {"GBpc-EUC-H",&cmap_GBpc_EUC_H},
+- {"GBpc-EUC-V",&cmap_GBpc_EUC_V},
+- {"H",&cmap_H},
+- {"HKscs-B5-H",&cmap_HKscs_B5_H},
+- {"HKscs-B5-V",&cmap_HKscs_B5_V},
+- {"KSC-EUC-H",&cmap_KSC_EUC_H},
+- {"KSC-EUC-V",&cmap_KSC_EUC_V},
+- {"KSCms-UHC-H",&cmap_KSCms_UHC_H},
+- {"KSCms-UHC-HW-H",&cmap_KSCms_UHC_HW_H},
+- {"KSCms-UHC-HW-V",&cmap_KSCms_UHC_HW_V},
+- {"KSCms-UHC-V",&cmap_KSCms_UHC_V},
+- {"KSCpc-EUC-H",&cmap_KSCpc_EUC_H},
+- {"UniCNS-UCS2-H",&cmap_UniCNS_UCS2_H},
+- {"UniCNS-UCS2-V",&cmap_UniCNS_UCS2_V},
+- {"UniCNS-UTF16-H",&cmap_UniCNS_UTF16_H},
+- {"UniCNS-UTF16-V",&cmap_UniCNS_UTF16_V},
+- {"UniCNS-X",&cmap_UniCNS_X},
+- {"UniGB-UCS2-H",&cmap_UniGB_UCS2_H},
+- {"UniGB-UCS2-V",&cmap_UniGB_UCS2_V},
+- {"UniGB-UTF16-H",&cmap_UniGB_UTF16_H},
+- {"UniGB-UTF16-V",&cmap_UniGB_UTF16_V},
+- {"UniGB-X",&cmap_UniGB_X},
+- {"UniJIS-UCS2-H",&cmap_UniJIS_UCS2_H},
+- {"UniJIS-UCS2-HW-H",&cmap_UniJIS_UCS2_HW_H},
+- {"UniJIS-UCS2-HW-V",&cmap_UniJIS_UCS2_HW_V},
+- {"UniJIS-UCS2-V",&cmap_UniJIS_UCS2_V},
+- {"UniJIS-UTF16-H",&cmap_UniJIS_UTF16_H},
+- {"UniJIS-UTF16-V",&cmap_UniJIS_UTF16_V},
+- {"UniJIS-X",&cmap_UniJIS_X},
+- {"UniJIS-X16",&cmap_UniJIS_X16},
+- {"UniKS-UCS2-H",&cmap_UniKS_UCS2_H},
+- {"UniKS-UCS2-V",&cmap_UniKS_UCS2_V},
+- {"UniKS-UTF16-H",&cmap_UniKS_UTF16_H},
+- {"UniKS-UTF16-V",&cmap_UniKS_UTF16_V},
+- {"UniKS-X",&cmap_UniKS_X},
+- {"V",&cmap_V},
++ {"83pv-RKSJ-H",&pdf_cmap_83pv_RKSJ_H},
++ {"90ms-RKSJ-H",&pdf_cmap_90ms_RKSJ_H},
++ {"90ms-RKSJ-V",&pdf_cmap_90ms_RKSJ_V},
++ {"90msp-RKSJ-H",&pdf_cmap_90msp_RKSJ_H},
++ {"90msp-RKSJ-V",&pdf_cmap_90msp_RKSJ_V},
++ {"90pv-RKSJ-H",&pdf_cmap_90pv_RKSJ_H},
++ {"Add-RKSJ-H",&pdf_cmap_Add_RKSJ_H},
++ {"Add-RKSJ-V",&pdf_cmap_Add_RKSJ_V},
++ {"Adobe-CNS1-UCS2",&pdf_cmap_Adobe_CNS1_UCS2},
++ {"Adobe-GB1-UCS2",&pdf_cmap_Adobe_GB1_UCS2},
++ {"Adobe-Japan1-UCS2",&pdf_cmap_Adobe_Japan1_UCS2},
++ {"Adobe-Korea1-UCS2",&pdf_cmap_Adobe_Korea1_UCS2},
++ {"B5pc-H",&pdf_cmap_B5pc_H},
++ {"B5pc-V",&pdf_cmap_B5pc_V},
++ {"CNS-EUC-H",&pdf_cmap_CNS_EUC_H},
++ {"CNS-EUC-V",&pdf_cmap_CNS_EUC_V},
++ {"ETen-B5-H",&pdf_cmap_ETen_B5_H},
++ {"ETen-B5-V",&pdf_cmap_ETen_B5_V},
++ {"ETenms-B5-H",&pdf_cmap_ETenms_B5_H},
++ {"ETenms-B5-V",&pdf_cmap_ETenms_B5_V},
++ {"EUC-H",&pdf_cmap_EUC_H},
++ {"EUC-V",&pdf_cmap_EUC_V},
++ {"Ext-RKSJ-H",&pdf_cmap_Ext_RKSJ_H},
++ {"Ext-RKSJ-V",&pdf_cmap_Ext_RKSJ_V},
++ {"GB-EUC-H",&pdf_cmap_GB_EUC_H},
++ {"GB-EUC-V",&pdf_cmap_GB_EUC_V},
++ {"GBK-EUC-H",&pdf_cmap_GBK_EUC_H},
++ {"GBK-EUC-V",&pdf_cmap_GBK_EUC_V},
++ {"GBK2K-H",&pdf_cmap_GBK2K_H},
++ {"GBK2K-V",&pdf_cmap_GBK2K_V},
++ {"GBKp-EUC-H",&pdf_cmap_GBKp_EUC_H},
++ {"GBKp-EUC-V",&pdf_cmap_GBKp_EUC_V},
++ {"GBpc-EUC-H",&pdf_cmap_GBpc_EUC_H},
++ {"GBpc-EUC-V",&pdf_cmap_GBpc_EUC_V},
++ {"H",&pdf_cmap_H},
++ {"HKscs-B5-H",&pdf_cmap_HKscs_B5_H},
++ {"HKscs-B5-V",&pdf_cmap_HKscs_B5_V},
++ {"KSC-EUC-H",&pdf_cmap_KSC_EUC_H},
++ {"KSC-EUC-V",&pdf_cmap_KSC_EUC_V},
++ {"KSCms-UHC-H",&pdf_cmap_KSCms_UHC_H},
++ {"KSCms-UHC-HW-H",&pdf_cmap_KSCms_UHC_HW_H},
++ {"KSCms-UHC-HW-V",&pdf_cmap_KSCms_UHC_HW_V},
++ {"KSCms-UHC-V",&pdf_cmap_KSCms_UHC_V},
++ {"KSCpc-EUC-H",&pdf_cmap_KSCpc_EUC_H},
++ {"UniCNS-UCS2-H",&pdf_cmap_UniCNS_UCS2_H},
++ {"UniCNS-UCS2-V",&pdf_cmap_UniCNS_UCS2_V},
++ {"UniCNS-UTF16-H",&pdf_cmap_UniCNS_UTF16_H},
++ {"UniCNS-UTF16-V",&pdf_cmap_UniCNS_UTF16_V},
++ {"UniCNS-X",&pdf_cmap_UniCNS_X},
++ {"UniGB-UCS2-H",&pdf_cmap_UniGB_UCS2_H},
++ {"UniGB-UCS2-V",&pdf_cmap_UniGB_UCS2_V},
++ {"UniGB-UTF16-H",&pdf_cmap_UniGB_UTF16_H},
++ {"UniGB-UTF16-V",&pdf_cmap_UniGB_UTF16_V},
++ {"UniGB-X",&pdf_cmap_UniGB_X},
++ {"UniJIS-UCS2-H",&pdf_cmap_UniJIS_UCS2_H},
++ {"UniJIS-UCS2-HW-H",&pdf_cmap_UniJIS_UCS2_HW_H},
++ {"UniJIS-UCS2-HW-V",&pdf_cmap_UniJIS_UCS2_HW_V},
++ {"UniJIS-UCS2-V",&pdf_cmap_UniJIS_UCS2_V},
++ {"UniJIS-UTF16-H",&pdf_cmap_UniJIS_UTF16_H},
++ {"UniJIS-UTF16-V",&pdf_cmap_UniJIS_UTF16_V},
++ {"UniJIS-X",&pdf_cmap_UniJIS_X},
++ {"UniJIS-X16",&pdf_cmap_UniJIS_X16},
++ {"UniKS-UCS2-H",&pdf_cmap_UniKS_UCS2_H},
++ {"UniKS-UCS2-V",&pdf_cmap_UniKS_UCS2_V},
++ {"UniKS-UTF16-H",&pdf_cmap_UniKS_UTF16_H},
++ {"UniKS-UTF16-V",&pdf_cmap_UniKS_UTF16_V},
++ {"UniKS-X",&pdf_cmap_UniKS_X},
++ {"V",&pdf_cmap_V},
+ };
+
+ #if EXTRA_CMAPS
+-#include "gen_cmap_extra.h"
++
++extern pdf_cmap pdf_cmap_78_EUC_H;
++extern pdf_cmap pdf_cmap_78_EUC_V;
++extern pdf_cmap pdf_cmap_78_H;
++extern pdf_cmap pdf_cmap_78_RKSJ_H;
++extern pdf_cmap pdf_cmap_78_RKSJ_V;
++extern pdf_cmap pdf_cmap_78_V;
++extern pdf_cmap pdf_cmap_78ms_RKSJ_H;
++extern pdf_cmap pdf_cmap_78ms_RKSJ_V;
++extern pdf_cmap pdf_cmap_90pv_RKSJ_V;
++extern pdf_cmap pdf_cmap_Add_H;
++extern pdf_cmap pdf_cmap_Add_V;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_0;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_1;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_2;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_3;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_4;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_5;
++extern pdf_cmap pdf_cmap_Adobe_CNS1_6;
++extern pdf_cmap pdf_cmap_Adobe_GB1_0;
++extern pdf_cmap pdf_cmap_Adobe_GB1_1;
++extern pdf_cmap pdf_cmap_Adobe_GB1_2;
++extern pdf_cmap pdf_cmap_Adobe_GB1_3;
++extern pdf_cmap pdf_cmap_Adobe_GB1_4;
++extern pdf_cmap pdf_cmap_Adobe_GB1_5;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_0;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_1;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_2;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_3;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_4;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_5;
++extern pdf_cmap pdf_cmap_Adobe_Japan1_6;
++extern pdf_cmap pdf_cmap_Adobe_Korea1_0;
++extern pdf_cmap pdf_cmap_Adobe_Korea1_1;
++extern pdf_cmap pdf_cmap_Adobe_Korea1_2;
++extern pdf_cmap pdf_cmap_B5_H;
++extern pdf_cmap pdf_cmap_B5_V;
++extern pdf_cmap pdf_cmap_CNS1_H;
++extern pdf_cmap pdf_cmap_CNS1_V;
++extern pdf_cmap pdf_cmap_CNS2_H;
++extern pdf_cmap pdf_cmap_CNS2_V;
++extern pdf_cmap pdf_cmap_ETHK_B5_H;
++extern pdf_cmap pdf_cmap_ETHK_B5_V;
++extern pdf_cmap pdf_cmap_Ext_H;
++extern pdf_cmap pdf_cmap_Ext_V;
++extern pdf_cmap pdf_cmap_GBT_EUC_H;
++extern pdf_cmap pdf_cmap_GBT_EUC_V;
++extern pdf_cmap pdf_cmap_GBT_H;
++extern pdf_cmap pdf_cmap_GBT_V;
++extern pdf_cmap pdf_cmap_GBTpc_EUC_H;
++extern pdf_cmap pdf_cmap_GBTpc_EUC_V;
++extern pdf_cmap pdf_cmap_GB_H;
++extern pdf_cmap pdf_cmap_GB_V;
++extern pdf_cmap pdf_cmap_HKdla_B5_H;
++extern pdf_cmap pdf_cmap_HKdla_B5_V;
++extern pdf_cmap pdf_cmap_HKdlb_B5_H;
++extern pdf_cmap pdf_cmap_HKdlb_B5_V;
++extern pdf_cmap pdf_cmap_HKgccs_B5_H;
++extern pdf_cmap pdf_cmap_HKgccs_B5_V;
++extern pdf_cmap pdf_cmap_HKm314_B5_H;
++extern pdf_cmap pdf_cmap_HKm314_B5_V;
++extern pdf_cmap pdf_cmap_HKm471_B5_H;
++extern pdf_cmap pdf_cmap_HKm471_B5_V;
++extern pdf_cmap pdf_cmap_Hankaku;
++extern pdf_cmap pdf_cmap_Hiragana;
++extern pdf_cmap pdf_cmap_KSC_H;
++extern pdf_cmap pdf_cmap_KSC_Johab_H;
++extern pdf_cmap pdf_cmap_KSC_Johab_V;
++extern pdf_cmap pdf_cmap_KSC_V;
++extern pdf_cmap pdf_cmap_KSCpc_EUC_V;
++extern pdf_cmap pdf_cmap_Katakana;
++extern pdf_cmap pdf_cmap_NWP_H;
++extern pdf_cmap pdf_cmap_NWP_V;
++extern pdf_cmap pdf_cmap_RKSJ_H;
++extern pdf_cmap pdf_cmap_RKSJ_V;
++extern pdf_cmap pdf_cmap_Roman;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF16_H;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF16_V;
++extern pdf_cmap pdf_cmap_UniJISPro_UCS2_HW_V;
++extern pdf_cmap pdf_cmap_UniJISPro_UCS2_V;
++extern pdf_cmap pdf_cmap_WP_Symbol;
++
+ static const struct table table_extra[] =
+ {
+- {"78-EUC-H",&cmap_78_EUC_H},
+- {"78-EUC-V",&cmap_78_EUC_V},
+- {"78-H",&cmap_78_H},
+- {"78-RKSJ-H",&cmap_78_RKSJ_H},
+- {"78-RKSJ-V",&cmap_78_RKSJ_V},
+- {"78-V",&cmap_78_V},
+- {"78ms-RKSJ-H",&cmap_78ms_RKSJ_H},
+- {"78ms-RKSJ-V",&cmap_78ms_RKSJ_V},
+- {"90pv-RKSJ-V",&cmap_90pv_RKSJ_V},
+- {"Add-H",&cmap_Add_H},
+- {"Add-V",&cmap_Add_V},
+- {"Adobe-CNS1-0",&cmap_Adobe_CNS1_0},
+- {"Adobe-CNS1-1",&cmap_Adobe_CNS1_1},
+- {"Adobe-CNS1-2",&cmap_Adobe_CNS1_2},
+- {"Adobe-CNS1-3",&cmap_Adobe_CNS1_3},
+- {"Adobe-CNS1-4",&cmap_Adobe_CNS1_4},
+- {"Adobe-CNS1-5",&cmap_Adobe_CNS1_5},
+- {"Adobe-CNS1-6",&cmap_Adobe_CNS1_6},
+- {"Adobe-GB1-0",&cmap_Adobe_GB1_0},
+- {"Adobe-GB1-1",&cmap_Adobe_GB1_1},
+- {"Adobe-GB1-2",&cmap_Adobe_GB1_2},
+- {"Adobe-GB1-3",&cmap_Adobe_GB1_3},
+- {"Adobe-GB1-4",&cmap_Adobe_GB1_4},
+- {"Adobe-GB1-5",&cmap_Adobe_GB1_5},
+- {"Adobe-Japan1-0",&cmap_Adobe_Japan1_0},
+- {"Adobe-Japan1-1",&cmap_Adobe_Japan1_1},
+- {"Adobe-Japan1-2",&cmap_Adobe_Japan1_2},
+- {"Adobe-Japan1-3",&cmap_Adobe_Japan1_3},
+- {"Adobe-Japan1-4",&cmap_Adobe_Japan1_4},
+- {"Adobe-Japan1-5",&cmap_Adobe_Japan1_5},
+- {"Adobe-Japan1-6",&cmap_Adobe_Japan1_6},
+- {"Adobe-Korea1-0",&cmap_Adobe_Korea1_0},
+- {"Adobe-Korea1-1",&cmap_Adobe_Korea1_1},
+- {"Adobe-Korea1-2",&cmap_Adobe_Korea1_2},
+- {"B5-H",&cmap_B5_H},
+- {"B5-V",&cmap_B5_V},
+- {"CNS1-H",&cmap_CNS1_H},
+- {"CNS1-V",&cmap_CNS1_V},
+- {"CNS2-H",&cmap_CNS2_H},
+- {"CNS2-V",&cmap_CNS2_V},
+- {"ETHK-B5-H",&cmap_ETHK_B5_H},
+- {"ETHK-B5-V",&cmap_ETHK_B5_V},
+- {"Ext-H",&cmap_Ext_H},
+- {"Ext-V",&cmap_Ext_V},
+- {"GB-H",&cmap_GB_H},
+- {"GB-V",&cmap_GB_V},
+- {"GBT-EUC-H",&cmap_GBT_EUC_H},
+- {"GBT-EUC-V",&cmap_GBT_EUC_V},
+- {"GBT-H",&cmap_GBT_H},
+- {"GBT-V",&cmap_GBT_V},
+- {"GBTpc-EUC-H",&cmap_GBTpc_EUC_H},
+- {"GBTpc-EUC-V",&cmap_GBTpc_EUC_V},
+- {"HKdla-B5-H",&cmap_HKdla_B5_H},
+- {"HKdla-B5-V",&cmap_HKdla_B5_V},
+- {"HKdlb-B5-H",&cmap_HKdlb_B5_H},
+- {"HKdlb-B5-V",&cmap_HKdlb_B5_V},
+- {"HKgccs-B5-H",&cmap_HKgccs_B5_H},
+- {"HKgccs-B5-V",&cmap_HKgccs_B5_V},
+- {"HKm314-B5-H",&cmap_HKm314_B5_H},
+- {"HKm314-B5-V",&cmap_HKm314_B5_V},
+- {"HKm471-B5-H",&cmap_HKm471_B5_H},
+- {"HKm471-B5-V",&cmap_HKm471_B5_V},
+- {"Hankaku",&cmap_Hankaku},
+- {"Hiragana",&cmap_Hiragana},
+- {"KSC-H",&cmap_KSC_H},
+- {"KSC-Johab-H",&cmap_KSC_Johab_H},
+- {"KSC-Johab-V",&cmap_KSC_Johab_V},
+- {"KSC-V",&cmap_KSC_V},
+- {"KSCpc-EUC-V",&cmap_KSCpc_EUC_V},
+- {"Katakana",&cmap_Katakana},
+- {"NWP-H",&cmap_NWP_H},
+- {"NWP-V",&cmap_NWP_V},
+- {"RKSJ-H",&cmap_RKSJ_H},
+- {"RKSJ-V",&cmap_RKSJ_V},
+- {"Roman",&cmap_Roman},
+- {"UniJIS2004-UTF16-H",&cmap_UniJIS2004_UTF16_H},
+- {"UniJIS2004-UTF16-V",&cmap_UniJIS2004_UTF16_V},
+- {"UniJISPro-UCS2-HW-V",&cmap_UniJISPro_UCS2_HW_V},
+- {"UniJISPro-UCS2-V",&cmap_UniJISPro_UCS2_V},
+- {"WP-Symbol",&cmap_WP_Symbol},
++ {"78-EUC-H",&pdf_cmap_78_EUC_H},
++ {"78-EUC-V",&pdf_cmap_78_EUC_V},
++ {"78-H",&pdf_cmap_78_H},
++ {"78-RKSJ-H",&pdf_cmap_78_RKSJ_H},
++ {"78-RKSJ-V",&pdf_cmap_78_RKSJ_V},
++ {"78-V",&pdf_cmap_78_V},
++ {"78ms-RKSJ-H",&pdf_cmap_78ms_RKSJ_H},
++ {"78ms-RKSJ-V",&pdf_cmap_78ms_RKSJ_V},
++ {"90pv-RKSJ-V",&pdf_cmap_90pv_RKSJ_V},
++ {"Add-H",&pdf_cmap_Add_H},
++ {"Add-V",&pdf_cmap_Add_V},
++ {"Adobe-CNS1-0",&pdf_cmap_Adobe_CNS1_0},
++ {"Adobe-CNS1-1",&pdf_cmap_Adobe_CNS1_1},
++ {"Adobe-CNS1-2",&pdf_cmap_Adobe_CNS1_2},
++ {"Adobe-CNS1-3",&pdf_cmap_Adobe_CNS1_3},
++ {"Adobe-CNS1-4",&pdf_cmap_Adobe_CNS1_4},
++ {"Adobe-CNS1-5",&pdf_cmap_Adobe_CNS1_5},
++ {"Adobe-CNS1-6",&pdf_cmap_Adobe_CNS1_6},
++ {"Adobe-GB1-0",&pdf_cmap_Adobe_GB1_0},
++ {"Adobe-GB1-1",&pdf_cmap_Adobe_GB1_1},
++ {"Adobe-GB1-2",&pdf_cmap_Adobe_GB1_2},
++ {"Adobe-GB1-3",&pdf_cmap_Adobe_GB1_3},
++ {"Adobe-GB1-4",&pdf_cmap_Adobe_GB1_4},
++ {"Adobe-GB1-5",&pdf_cmap_Adobe_GB1_5},
++ {"Adobe-Japan1-0",&pdf_cmap_Adobe_Japan1_0},
++ {"Adobe-Japan1-1",&pdf_cmap_Adobe_Japan1_1},
++ {"Adobe-Japan1-2",&pdf_cmap_Adobe_Japan1_2},
++ {"Adobe-Japan1-3",&pdf_cmap_Adobe_Japan1_3},
++ {"Adobe-Japan1-4",&pdf_cmap_Adobe_Japan1_4},
++ {"Adobe-Japan1-5",&pdf_cmap_Adobe_Japan1_5},
++ {"Adobe-Japan1-6",&pdf_cmap_Adobe_Japan1_6},
++ {"Adobe-Korea1-0",&pdf_cmap_Adobe_Korea1_0},
++ {"Adobe-Korea1-1",&pdf_cmap_Adobe_Korea1_1},
++ {"Adobe-Korea1-2",&pdf_cmap_Adobe_Korea1_2},
++ {"B5-H",&pdf_cmap_B5_H},
++ {"B5-V",&pdf_cmap_B5_V},
++ {"CNS1-H",&pdf_cmap_CNS1_H},
++ {"CNS1-V",&pdf_cmap_CNS1_V},
++ {"CNS2-H",&pdf_cmap_CNS2_H},
++ {"CNS2-V",&pdf_cmap_CNS2_V},
++ {"ETHK-B5-H",&pdf_cmap_ETHK_B5_H},
++ {"ETHK-B5-V",&pdf_cmap_ETHK_B5_V},
++ {"Ext-H",&pdf_cmap_Ext_H},
++ {"Ext-V",&pdf_cmap_Ext_V},
++ {"GB-H",&pdf_cmap_GB_H},
++ {"GB-V",&pdf_cmap_GB_V},
++ {"GBT-EUC-H",&pdf_cmap_GBT_EUC_H},
++ {"GBT-EUC-V",&pdf_cmap_GBT_EUC_V},
++ {"GBT-H",&pdf_cmap_GBT_H},
++ {"GBT-V",&pdf_cmap_GBT_V},
++ {"GBTpc-EUC-H",&pdf_cmap_GBTpc_EUC_H},
++ {"GBTpc-EUC-V",&pdf_cmap_GBTpc_EUC_V},
++ {"HKdla-B5-H",&pdf_cmap_HKdla_B5_H},
++ {"HKdla-B5-V",&pdf_cmap_HKdla_B5_V},
++ {"HKdlb-B5-H",&pdf_cmap_HKdlb_B5_H},
++ {"HKdlb-B5-V",&pdf_cmap_HKdlb_B5_V},
++ {"HKgccs-B5-H",&pdf_cmap_HKgccs_B5_H},
++ {"HKgccs-B5-V",&pdf_cmap_HKgccs_B5_V},
++ {"HKm314-B5-H",&pdf_cmap_HKm314_B5_H},
++ {"HKm314-B5-V",&pdf_cmap_HKm314_B5_V},
++ {"HKm471-B5-H",&pdf_cmap_HKm471_B5_H},
++ {"HKm471-B5-V",&pdf_cmap_HKm471_B5_V},
++ {"Hankaku",&pdf_cmap_Hankaku},
++ {"Hiragana",&pdf_cmap_Hiragana},
++ {"KSC-H",&pdf_cmap_KSC_H},
++ {"KSC-Johab-H",&pdf_cmap_KSC_Johab_H},
++ {"KSC-Johab-V",&pdf_cmap_KSC_Johab_V},
++ {"KSC-V",&pdf_cmap_KSC_V},
++ {"KSCpc-EUC-V",&pdf_cmap_KSCpc_EUC_V},
++ {"Katakana",&pdf_cmap_Katakana},
++ {"NWP-H",&pdf_cmap_NWP_H},
++ {"NWP-V",&pdf_cmap_NWP_V},
++ {"RKSJ-H",&pdf_cmap_RKSJ_H},
++ {"RKSJ-V",&pdf_cmap_RKSJ_V},
++ {"Roman",&pdf_cmap_Roman},
++ {"UniJIS2004-UTF16-H",&pdf_cmap_UniJIS2004_UTF16_H},
++ {"UniJIS2004-UTF16-V",&pdf_cmap_UniJIS2004_UTF16_V},
++ {"UniJISPro-UCS2-HW-V",&pdf_cmap_UniJISPro_UCS2_HW_V},
++ {"UniJISPro-UCS2-V",&pdf_cmap_UniJISPro_UCS2_V},
++ {"WP-Symbol",&pdf_cmap_WP_Symbol},
+ };
+ #endif
+
+ #if UTF8_CMAPS
+-#include "gen_cmap_utf8.h"
++
++extern pdf_cmap pdf_cmap_UniCNS_UTF8_H;
++extern pdf_cmap pdf_cmap_UniCNS_UTF8_V;
++extern pdf_cmap pdf_cmap_UniGB_UTF8_H;
++extern pdf_cmap pdf_cmap_UniGB_UTF8_V;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF8_H;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF8_V;
++extern pdf_cmap pdf_cmap_UniJISPro_UTF8_V;
++extern pdf_cmap pdf_cmap_UniJIS_UTF8_H;
++extern pdf_cmap pdf_cmap_UniJIS_UTF8_V;
++extern pdf_cmap pdf_cmap_UniJIS_X8;
++extern pdf_cmap pdf_cmap_UniKS_UTF8_H;
++extern pdf_cmap pdf_cmap_UniKS_UTF8_V;
++
+ static const struct table table_utf8[] =
+ {
+- {"UniCNS-UTF8-H",&cmap_UniCNS_UTF8_H},
+- {"UniCNS-UTF8-V",&cmap_UniCNS_UTF8_V},
+- {"UniGB-UTF8-H",&cmap_UniGB_UTF8_H},
+- {"UniGB-UTF8-V",&cmap_UniGB_UTF8_V},
+- {"UniJIS-UTF8-H",&cmap_UniJIS_UTF8_H},
+- {"UniJIS-UTF8-V",&cmap_UniJIS_UTF8_V},
+- {"UniJIS-X8",&cmap_UniJIS_X8},
+- {"UniJIS2004-UTF8-H",&cmap_UniJIS2004_UTF8_H},
+- {"UniJIS2004-UTF8-V",&cmap_UniJIS2004_UTF8_V},
+- {"UniJISPro-UTF8-V",&cmap_UniJISPro_UTF8_V},
+- {"UniKS-UTF8-H",&cmap_UniKS_UTF8_H},
+- {"UniKS-UTF8-V",&cmap_UniKS_UTF8_V},
++ {"UniCNS-UTF8-H",&pdf_cmap_UniCNS_UTF8_H},
++ {"UniCNS-UTF8-V",&pdf_cmap_UniCNS_UTF8_V},
++ {"UniGB-UTF8-H",&pdf_cmap_UniGB_UTF8_H},
++ {"UniGB-UTF8-V",&pdf_cmap_UniGB_UTF8_V},
++ {"UniJIS-UTF8-H",&pdf_cmap_UniJIS_UTF8_H},
++ {"UniJIS-UTF8-V",&pdf_cmap_UniJIS_UTF8_V},
++ {"UniJIS-X8",&pdf_cmap_UniJIS_X8},
++ {"UniJIS2004-UTF8-H",&pdf_cmap_UniJIS2004_UTF8_H},
++ {"UniJIS2004-UTF8-V",&pdf_cmap_UniJIS2004_UTF8_V},
++ {"UniJISPro-UTF8-V",&pdf_cmap_UniJISPro_UTF8_V},
++ {"UniKS-UTF8-H",&pdf_cmap_UniKS_UTF8_H},
++ {"UniKS-UTF8-V",&pdf_cmap_UniKS_UTF8_V},
+ };
+ #endif
+
+ #if UTF32_CMAPS
+-#include "gen_cmap_utf32.h"
++
++extern pdf_cmap pdf_cmap_UniCNS_UTF32_H;
++extern pdf_cmap pdf_cmap_UniCNS_UTF32_V;
++extern pdf_cmap pdf_cmap_UniGB_UTF32_H;
++extern pdf_cmap pdf_cmap_UniGB_UTF32_V;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF32_H;
++extern pdf_cmap pdf_cmap_UniJIS2004_UTF32_V;
++extern pdf_cmap pdf_cmap_UniJISX02132004_UTF32_H;
++extern pdf_cmap pdf_cmap_UniJISX02132004_UTF32_V;
++extern pdf_cmap pdf_cmap_UniJISX0213_UTF32_H;
++extern pdf_cmap pdf_cmap_UniJISX0213_UTF32_V;
++extern pdf_cmap pdf_cmap_UniJIS_UTF32_H;
++extern pdf_cmap pdf_cmap_UniJIS_UTF32_V;
++extern pdf_cmap pdf_cmap_UniJIS_X32;
++extern pdf_cmap pdf_cmap_UniKS_UTF32_H;
++extern pdf_cmap pdf_cmap_UniKS_UTF32_V;
++
+ static const struct table table_utf32[] =
+ {
+- {"UniCNS-UTF32-H",&cmap_UniCNS_UTF32_H},
+- {"UniCNS-UTF32-V",&cmap_UniCNS_UTF32_V},
+- {"UniGB-UTF32-H",&cmap_UniGB_UTF32_H},
+- {"UniGB-UTF32-V",&cmap_UniGB_UTF32_V},
+- {"UniJIS-UTF32-H",&cmap_UniJIS_UTF32_H},
+- {"UniJIS-UTF32-V",&cmap_UniJIS_UTF32_V},
+- {"UniJIS-X32",&cmap_UniJIS_X32},
+- {"UniJIS2004-UTF32-H",&cmap_UniJIS2004_UTF32_H},
+- {"UniJIS2004-UTF32-V",&cmap_UniJIS2004_UTF32_V},
+- {"UniJISX0213-UTF32-H",&cmap_UniJISX0213_UTF32_H},
+- {"UniJISX0213-UTF32-V",&cmap_UniJISX0213_UTF32_V},
+- {"UniJISX02132004-UTF32-H",&cmap_UniJISX02132004_UTF32_H},
+- {"UniJISX02132004-UTF32-V",&cmap_UniJISX02132004_UTF32_V},
+- {"UniKS-UTF32-H",&cmap_UniKS_UTF32_H},
+- {"UniKS-UTF32-V",&cmap_UniKS_UTF32_V},
++ {"UniCNS-UTF32-H",&pdf_cmap_UniCNS_UTF32_H},
++ {"UniCNS-UTF32-V",&pdf_cmap_UniCNS_UTF32_V},
++ {"UniGB-UTF32-H",&pdf_cmap_UniGB_UTF32_H},
++ {"UniGB-UTF32-V",&pdf_cmap_UniGB_UTF32_V},
++ {"UniJIS-UTF32-H",&pdf_cmap_UniJIS_UTF32_H},
++ {"UniJIS-UTF32-V",&pdf_cmap_UniJIS_UTF32_V},
++ {"UniJIS-X32",&pdf_cmap_UniJIS_X32},
++ {"UniJIS2004-UTF32-H",&pdf_cmap_UniJIS2004_UTF32_H},
++ {"UniJIS2004-UTF32-V",&pdf_cmap_UniJIS2004_UTF32_V},
++ {"UniJISX0213-UTF32-H",&pdf_cmap_UniJISX0213_UTF32_H},
++ {"UniJISX0213-UTF32-V",&pdf_cmap_UniJISX0213_UTF32_V},
++ {"UniJISX02132004-UTF32-H",&pdf_cmap_UniJISX02132004_UTF32_H},
++ {"UniJISX02132004-UTF32-V",&pdf_cmap_UniJISX02132004_UTF32_V},
++ {"UniKS-UTF32-H",&pdf_cmap_UniKS_UTF32_H},
++ {"UniKS-UTF32-V",&pdf_cmap_UniKS_UTF32_V},
+ };
+ #endif
+
+diff --git a/source/pdf/pdf-js.c b/source/pdf/pdf-js.c
+index bca92780..63892d98 100644
+--- a/source/pdf/pdf-js.c
++++ b/source/pdf/pdf-js.c
+@@ -549,7 +549,7 @@ static void declare_dom(pdf_js *js)
+ js_setglobal(J, "MuPDF_Doc"); /* for pdf-util.js use */
+ }
+
+-#include "gen_js_util.h"
++extern const char fz_source_pdf_pdf_js_util_js[];
+
+ static void preload_helpers(pdf_js *js)
+ {
+diff --git a/source/pdf/pdf-pkcs7.c b/source/pdf/pdf-pkcs7.c
+index dd106034..3fac2c72 100644
+--- a/source/pdf/pdf-pkcs7.c
++++ b/source/pdf/pdf-pkcs7.c
+@@ -1,7 +1,66 @@
+-#include "mupdf/pdf.h" // TODO: move this file to pdf module
++#include "mupdf/pdf.h"
+
+ #ifdef HAVE_LIBCRYPTO
+
++/* Generated from resources/certs/AdobeCA.p7c */
++static const char AdobeCA_p7c[] = {
++48,130,4,208,6,9,42,134,72,134,247,13,1,7,2,160,130,4,193,48,130,4,189,2,
++1,1,49,0,48,11,6,9,42,134,72,134,247,13,1,7,1,160,130,4,165,48,130,4,161,
++48,130,3,137,160,3,2,1,2,2,4,62,28,189,40,48,13,6,9,42,134,72,134,247,13,
++1,1,5,5,0,48,105,49,11,48,9,6,3,85,4,6,19,2,85,83,49,35,48,33,6,3,85,4,10,
++19,26,65,100,111,98,101,32,83,121,115,116,101,109,115,32,73,110,99,111,114,
++112,111,114,97,116,101,100,49,29,48,27,6,3,85,4,11,19,20,65,100,111,98,101,
++32,84,114,117,115,116,32,83,101,114,118,105,99,101,115,49,22,48,20,6,3,85,
++4,3,19,13,65,100,111,98,101,32,82,111,111,116,32,67,65,48,30,23,13,48,51,
++48,49,48,56,50,51,51,55,50,51,90,23,13,50,51,48,49,48,57,48,48,48,55,50,51,
++90,48,105,49,11,48,9,6,3,85,4,6,19,2,85,83,49,35,48,33,6,3,85,4,10,19,26,
++65,100,111,98,101,32,83,121,115,116,101,109,115,32,73,110,99,111,114,112,
++111,114,97,116,101,100,49,29,48,27,6,3,85,4,11,19,20,65,100,111,98,101,32,
++84,114,117,115,116,32,83,101,114,118,105,99,101,115,49,22,48,20,6,3,85,4,
++3,19,13,65,100,111,98,101,32,82,111,111,116,32,67,65,48,130,1,34,48,13,6,
++9,42,134,72,134,247,13,1,1,1,5,0,3,130,1,15,0,48,130,1,10,2,130,1,1,0,204,
++79,84,132,247,167,162,231,51,83,127,63,156,18,136,107,44,153,71,103,126,15,
++30,185,173,20,136,249,195,16,216,29,240,240,213,159,105,10,47,89,53,176,204,
++108,169,76,156,21,160,159,206,32,191,160,207,84,226,224,32,102,69,63,57,134,
++56,126,156,196,142,7,34,198,36,246,1,18,176,53,223,85,234,105,144,176,219,
++133,55,30,226,78,7,178,66,161,106,19,105,160,102,234,128,145,17,89,42,155,
++8,121,90,32,68,45,201,189,115,56,139,60,47,224,67,27,93,179,11,240,175,53,
++26,41,254,239,166,146,221,129,76,157,61,89,142,173,49,60,64,126,155,145,54,
++6,252,226,92,141,209,141,38,213,92,69,207,175,101,63,177,170,210,98,150,244,
++168,56,234,186,96,66,244,244,28,74,53,21,206,248,78,34,86,15,149,24,197,248,
++150,159,159,251,176,183,120,37,233,128,107,189,214,10,240,198,116,148,157,
++243,15,80,219,154,119,206,75,112,131,35,141,160,202,120,32,68,92,60,84,100,
++241,234,162,48,25,159,234,76,6,77,6,120,75,94,146,223,34,210,201,103,179,
++122,210,1,2,3,1,0,1,163,130,1,79,48,130,1,75,48,17,6,9,96,134,72,1,134,248,
++66,1,1,4,4,3,2,0,7,48,129,142,6,3,85,29,31,4,129,134,48,129,131,48,129,128,
++160,126,160,124,164,122,48,120,49,11,48,9,6,3,85,4,6,19,2,85,83,49,35,48,
++33,6,3,85,4,10,19,26,65,100,111,98,101,32,83,121,115,116,101,109,115,32,73,
++110,99,111,114,112,111,114,97,116,101,100,49,29,48,27,6,3,85,4,11,19,20,65,
++100,111,98,101,32,84,114,117,115,116,32,83,101,114,118,105,99,101,115,49,
++22,48,20,6,3,85,4,3,19,13,65,100,111,98,101,32,82,111,111,116,32,67,65,49,
++13,48,11,6,3,85,4,3,19,4,67,82,76,49,48,43,6,3,85,29,16,4,36,48,34,128,15,
++50,48,48,51,48,49,48,56,50,51,51,55,50,51,90,129,15,50,48,50,51,48,49,48,
++57,48,48,48,55,50,51,90,48,11,6,3,85,29,15,4,4,3,2,1,6,48,31,6,3,85,29,35,
++4,24,48,22,128,20,130,183,56,74,147,170,155,16,239,128,187,217,84,226,241,
++15,251,128,156,222,48,29,6,3,85,29,14,4,22,4,20,130,183,56,74,147,170,155,
++16,239,128,187,217,84,226,241,15,251,128,156,222,48,12,6,3,85,29,19,4,5,48,
++3,1,1,255,48,29,6,9,42,134,72,134,246,125,7,65,0,4,16,48,14,27,8,86,54,46,
++48,58,52,46,48,3,2,4,144,48,13,6,9,42,134,72,134,247,13,1,1,5,5,0,3,130,1,
++1,0,50,218,159,67,117,193,250,111,201,111,219,171,29,54,55,62,188,97,25,54,
++183,2,60,29,35,89,152,108,158,238,77,133,231,84,200,32,31,167,212,187,226,
++191,0,119,125,36,107,112,47,92,193,58,118,73,181,211,224,35,132,42,113,106,
++34,243,193,39,41,152,21,246,53,144,228,4,76,195,141,188,159,97,28,231,253,
++36,140,209,68,67,140,22,186,155,77,165,212,53,47,188,17,206,189,247,81,55,
++141,159,144,228,20,241,24,63,190,233,89,18,53,249,51,146,243,158,224,213,
++107,154,113,155,153,75,200,113,195,225,177,97,9,196,229,250,145,240,66,58,
++55,125,52,249,114,232,205,170,98,28,33,233,213,244,130,16,227,123,5,182,45,
++104,86,11,126,126,146,44,111,77,114,130,12,237,86,116,178,157,185,171,45,
++43,29,16,95,219,39,117,112,143,253,29,215,226,2,160,121,229,28,229,255,175,
++100,64,81,45,158,155,71,219,66,165,124,31,194,166,72,176,215,190,146,105,
++77,164,246,41,87,197,120,17,24,220,135,81,202,19,178,98,157,79,43,50,189,
++49,165,193,250,82,171,5,136,200,49,0
++};
++
+ #include "openssl/err.h"
+ #include "openssl/bio.h"
+ #include "openssl/asn1.h"
+@@ -256,8 +315,6 @@ exit:
+ return res;
+ }
+
+-#include "gen_adobe_ca.h"
+-
+ static int verify_sig(char *sig, int sig_len, char *file, int (*byte_range)[2], int byte_range_len, char *ebuf, int ebufsize)
+ {
+ PKCS7 *pk7sig = NULL;
+@@ -289,7 +346,7 @@ static int verify_sig(char *sig, int sig_len, char *file, int (*byte_range)[2],
+ BIO_set_segments(bsegs, byte_range, byte_range_len);
+
+ /* Find the certificates in the pk7 file */
+- bcert = BIO_new_mem_buf((void*)fz_resources_certs_AdobeCA_p7c, fz_resources_certs_AdobeCA_p7c_size);
++ bcert = BIO_new_mem_buf((void*)AdobeCA_p7c, sizeof AdobeCA_p7c);
+ pk7cert = d2i_PKCS7_bio(bcert, NULL);
+ if (pk7cert == NULL)
+ goto exit;
+--
+2.13.1
+
diff --git a/pkg/mupdf/patch/0002-scripts-hexdump-Support-stripping-prefix-for-symbol-.patch b/pkg/mupdf/patch/0002-scripts-hexdump-Support-stripping-prefix-for-symbol-.patch
new file mode 100644
index 00000000..858d9c55
--- /dev/null
+++ b/pkg/mupdf/patch/0002-scripts-hexdump-Support-stripping-prefix-for-symbol-.patch
@@ -0,0 +1,106 @@
+From 77f0dff21086c9df1a70c4c301dfa37dcc2fcfee Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Tue, 6 Jun 2017 23:30:38 -0700
+Subject: [PATCH] scripts/hexdump: Support stripping prefix for symbol name
+
+This allows us to run hexdump from a different directory, yet still have
+the correct symbol names.
+---
+ scripts/hexdump.c | 39 +++++++++++++++++++++++++++++++--------
+ 1 file changed, 31 insertions(+), 8 deletions(-)
+
+diff --git a/scripts/hexdump.c b/scripts/hexdump.c
+index 728afc33..3e0ea49f 100644
+--- a/scripts/hexdump.c
++++ b/scripts/hexdump.c
+@@ -3,6 +3,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+
+ static int
+ hexdump(FILE *fo, FILE *fi)
+@@ -24,26 +25,43 @@ hexdump(FILE *fo, FILE *fi)
+ return n;
+ }
+
++static int
++usage(void)
++{
++ fprintf(stderr, "usage: hexdump [-p prefix] output.c input.dat\n");
++ exit(1);
++}
++
+ int
+ main(int argc, char **argv)
+ {
+ FILE *fo;
+ FILE *fi;
+- char filename[256];
++ char filenamebuf[256], *filename = filenamebuf;
+ char *basename;
+ char *p;
+- int i, size;
++ char *prefix = "";
++ int c, i, size;
+
+ if (argc < 3)
++ usage();
++
++ while ((c = getopt(argc, argv, "0p:")) != -1)
+ {
+- fprintf(stderr, "usage: hexdump output.c input.dat\n");
+- return 1;
++ switch (c)
++ {
++ case 'p':
++ prefix = optarg;
++ break;
++ case '?':
++ usage();
++ }
+ }
+
+- fo = fopen(argv[1], "wb");
++ fo = fopen(argv[optind], "wb");
+ if (!fo)
+ {
+- fprintf(stderr, "hexdump: could not open output file '%s'\n", argv[1]);
++ fprintf(stderr, "hexdump: could not open output file '%s'\n", argv[optind]);
+ return 1;
+ }
+
+@@ -55,7 +73,7 @@ main(int argc, char **argv)
+ fprintf(fo, "#endif\n");
+ fprintf(fo, "#endif\n");
+
+- for (i = 2; i < argc; i++)
++ for (i = optind + 1; i < argc; i++)
+ {
+ fi = fopen(argv[i], "rb");
+ if (!fi)
+@@ -73,7 +91,7 @@ main(int argc, char **argv)
+ else
+ basename = argv[i];
+
+- if (strlen(basename) >= sizeof(filename))
++ if (strlen(basename) >= sizeof(filenamebuf))
+ {
+ fclose(fi);
+ fclose(fo);
+@@ -82,6 +100,11 @@ main(int argc, char **argv)
+ }
+
+ strcpy(filename, argv[i]);
++ while (*prefix && *prefix == *filename)
++ {
++ ++prefix;
++ ++filename;
++ }
+ for (p = filename; *p; ++p)
+ {
+ if (*p == '/' || *p == '.' || *p == '\\' || *p == '-')
+--
+2.13.1
+
diff --git a/pkg/mupdf/patch/0003-Remove-hb.h-include-from-font.c.patch b/pkg/mupdf/patch/0003-Remove-hb.h-include-from-font.c.patch
new file mode 100644
index 00000000..f5f45094
--- /dev/null
+++ b/pkg/mupdf/patch/0003-Remove-hb.h-include-from-font.c.patch
@@ -0,0 +1,25 @@
+From beb3fdfeb1556f7a2f4d5a4e59abd5847fead84d Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Tue, 6 Jun 2017 23:32:04 -0700
+Subject: [PATCH] Remove hb.h include from font.c
+
+---
+ source/fitz/font.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/source/fitz/font.c b/source/fitz/font.c
+index b9c05b8d..6e83ba18 100644
+--- a/source/fitz/font.c
++++ b/source/fitz/font.c
+@@ -3,8 +3,6 @@
+ #include "font-imp.h"
+
+ #include <ft2build.h>
+-#include "hb.h"
+-#include "hb-ft.h"
+
+ #include FT_FREETYPE_H
+ #include FT_ADVANCES_H
+--
+2.13.1
+
diff --git a/pkg/mupdf/rev b/pkg/mupdf/rev
new file mode 100644
index 00000000..d00491fd
--- /dev/null
+++ b/pkg/mupdf/rev
@@ -0,0 +1 @@
+1
diff --git a/pkg/mupdf/sources.txt b/pkg/mupdf/sources.txt
new file mode 100644
index 00000000..55ea4ef6
--- /dev/null
+++ b/pkg/mupdf/sources.txt
@@ -0,0 +1,175 @@
+# 2,<cd src/source && ls fitz/*.c pdf/*.c xps/*.c svg/*.c cbz/*.c gprf/*.c helpers/mu-threads/*.c
+cbz/mucbz.c
+cbz/muimg.c
+cbz/mutiff.c
+fitz/archive.c
+fitz/bbox-device.c
+fitz/bidi-std.c
+fitz/bidi.c
+fitz/bitmap.c
+fitz/buffer.c
+fitz/colorspace.c
+fitz/compressed-buffer.c
+fitz/context.c
+fitz/crypt-aes.c
+fitz/crypt-arc4.c
+fitz/crypt-md5.c
+fitz/crypt-sha2.c
+fitz/device.c
+fitz/directory.c
+fitz/document-all.c
+fitz/document.c
+fitz/draw-affine.c
+fitz/draw-blend.c
+fitz/draw-device.c
+fitz/draw-edge.c
+fitz/draw-glyph.c
+fitz/draw-mesh.c
+fitz/draw-paint.c
+fitz/draw-path.c
+fitz/draw-scale-simple.c
+fitz/draw-unpack.c
+fitz/error.c
+fitz/filter-basic.c
+fitz/filter-dct.c
+fitz/filter-fax.c
+fitz/filter-flate.c
+fitz/filter-jbig2.c
+fitz/filter-leech.c
+fitz/filter-lzw.c
+fitz/filter-predict.c
+fitz/filter-sgi.c
+fitz/filter-thunder.c
+fitz/font.c
+fitz/ftoa.c
+fitz/function.c
+fitz/geometry.c
+fitz/getopt.c
+fitz/glyph.c
+fitz/halftone.c
+fitz/harfbuzz.c
+fitz/hash.c
+fitz/image.c
+fitz/jmemcust.c
+fitz/link.c
+fitz/list-device.c
+fitz/load-bmp.c
+fitz/load-gif.c
+fitz/load-jpeg.c
+fitz/load-jpx.c
+fitz/load-jxr.c
+fitz/load-png.c
+fitz/load-pnm.c
+fitz/load-tiff.c
+fitz/memento.c
+fitz/memory.c
+fitz/noto.c
+fitz/outline.c
+fitz/output-cbz.c
+fitz/output-pcl.c
+fitz/output-png.c
+fitz/output-pnm.c
+fitz/output-ps.c
+fitz/output-pwg.c
+fitz/output-svg.c
+fitz/output-tga.c
+fitz/output.c
+fitz/path.c
+fitz/pixmap.c
+fitz/pool.c
+fitz/printf.c
+fitz/separation.c
+fitz/shade.c
+fitz/stext-device.c
+fitz/stext-output.c
+fitz/stext-paragraph.c
+fitz/stext-search.c
+fitz/store.c
+fitz/stream-open.c
+fitz/stream-prog.c
+fitz/stream-read.c
+fitz/string.c
+fitz/strtod.c
+fitz/strtof.c
+fitz/svg-device.c
+fitz/tempfile.c
+fitz/test-device.c
+fitz/text.c
+fitz/time.c
+fitz/trace-device.c
+fitz/track-usage.c
+fitz/transition.c
+fitz/tree.c
+fitz/ucdn.c
+fitz/untar.c
+fitz/unzip.c
+fitz/util.c
+fitz/writer.c
+fitz/xml.c
+fitz/zip.c
+gprf/gprf-doc.c
+gprf/gprf-skeleton.c
+helpers/mu-threads/mu-threads.c
+pdf/pdf-annot-edit.c
+pdf/pdf-annot.c
+pdf/pdf-appearance.c
+pdf/pdf-clean-file.c
+pdf/pdf-clean.c
+pdf/pdf-cmap-load.c
+pdf/pdf-cmap-parse.c
+pdf/pdf-cmap-table.c
+pdf/pdf-cmap.c
+pdf/pdf-colorspace.c
+pdf/pdf-crypt.c
+pdf/pdf-device.c
+pdf/pdf-encoding.c
+pdf/pdf-event.c
+pdf/pdf-field.c
+pdf/pdf-font.c
+pdf/pdf-form.c
+pdf/pdf-function.c
+pdf/pdf-graft.c
+pdf/pdf-image.c
+pdf/pdf-interpret.c
+pdf/pdf-js.c
+pdf/pdf-layer.c
+pdf/pdf-lex.c
+pdf/pdf-metrics.c
+pdf/pdf-nametree.c
+pdf/pdf-object.c
+pdf/pdf-op-buffer.c
+pdf/pdf-op-filter.c
+pdf/pdf-op-run.c
+pdf/pdf-outline.c
+pdf/pdf-page.c
+pdf/pdf-parse.c
+pdf/pdf-pattern.c
+pdf/pdf-pkcs7.c
+pdf/pdf-portfolio.c
+pdf/pdf-repair.c
+pdf/pdf-resources.c
+pdf/pdf-run.c
+pdf/pdf-shade.c
+pdf/pdf-store.c
+pdf/pdf-stream.c
+pdf/pdf-type3.c
+pdf/pdf-unicode.c
+pdf/pdf-write.c
+pdf/pdf-xobject.c
+pdf/pdf-xref.c
+svg/svg-color.c
+svg/svg-doc.c
+svg/svg-parse.c
+svg/svg-run.c
+xps/xps-common.c
+xps/xps-doc.c
+xps/xps-glyphs.c
+xps/xps-gradient.c
+xps/xps-image.c
+xps/xps-link.c
+xps/xps-outline.c
+xps/xps-path.c
+xps/xps-resource.c
+xps/xps-tile.c
+xps/xps-util.c
+xps/xps-zip.c
diff --git a/pkg/mupdf/src b/pkg/mupdf/src
new file mode 160000
+Subproject 34e18d127a02146e3415b33c4b67389ce1ddb61