From c4398d806ff00d119fdc91faa7601dc9904145a5 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 9 Apr 2017 23:23:17 +0000
Subject: applying patch mupdf-1.8.patch


diff --git a/Makefile b/Makefile
index f6558cb..307b3b0 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ include Makethird
 # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that
 # set a variable that was set on the command line.
 CFLAGS += $(XCFLAGS) -Iinclude -I$(GEN)
-LIBS += $(XLIBS) -lm
+LIBS += $(XLIBS)
 
 THIRD_LIBS += $(FREETYPE_LIB)
 THIRD_LIBS += $(JBIG2DEC_LIB)
@@ -342,7 +342,17 @@ extra: $(CURL_LIB) $(GLFW_LIB)
 libs: $(INSTALL_LIBS)
 apps: $(INSTALL_APPS)
 
-install: libs apps
+install: install-libs apps
+	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 README COPYING CHANGES docs/*.txt $(DESTDIR)$(docdir)
+
+install-libs: libs
 	install -d $(DESTDIR)$(incdir)/mupdf
 	install -d $(DESTDIR)$(incdir)/mupdf/fitz
 	install -d $(DESTDIR)$(incdir)/mupdf/pdf
@@ -353,14 +363,6 @@ install: libs apps
 	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 README COPYING CHANGES docs/*.txt $(DESTDIR)$(docdir)
 
 tarball:
 	bash scripts/archive.sh
diff --git a/Makerules b/Makerules
index bb066dc..9082949 100644
--- a/Makerules
+++ b/Makerules
@@ -66,6 +66,27 @@ AR = xcrun ar
 LD = xcrun ld
 RANLIB_CMD = xcrun ranlib $@
 
+else ifeq "$(OS)" "Haiku"
+
+ifeq "$(shell pkg-config --exists libcrypto && echo yes)" "yes"
+SYS_OPENSSL_CFLAGS = -DHAVE_OPENSSL $(shell pkg-config --cflags libcrypto)
+SYS_OPENSSL_LIBS = $(shell pkg-config --libs libcrypto)
+endif
+
+ifeq "$(shell pkg-config --exists libcurl && echo yes)" "yes"
+HAVE_CURL = yes
+SYS_CURL_CFLAGS = $(shell pkg-config --cflags libcurl)
+SYS_CURL_LIBS = $(shell pkg-config --libs libcurl)
+endif
+
+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_JBIG2DEC_LIBS = -ljbig2dec
+SYS_JPEG_LIBS = -ljpeg
+SYS_ZLIB_LIBS = -lz
+
 # Linux uses pkg-config for system libraries.
 else ifeq "$(OS)" "Linux"
 
diff --git a/include/mupdf/fitz/system.h b/include/mupdf/fitz/system.h
index ca7c8dc..477d915 100644
--- a/include/mupdf/fitz/system.h
+++ b/include/mupdf/fitz/system.h
@@ -70,6 +70,12 @@
 #define fz_jmp_buf jmp_buf
 #endif
 
+#ifdef __HAIKU__
+#if __GNUC__ < 3
+#define va_copy __va_copy
+#endif
+#endif
+
 #ifdef _MSC_VER /* Microsoft Visual C */
 
 /* MSVC up to VS2012 */
diff --git a/scripts/cmapdump.c b/scripts/cmapdump.c
index ed4a411..317762c 100644
--- a/scripts/cmapdump.c
+++ b/scripts/cmapdump.c
@@ -22,6 +22,24 @@
 #include "../source/fitz/ftoa.c"
 #include "../source/fitz/printf.c"
 
+#ifdef __HAIKU__
+#if __GNUC__ < 3
+#include "../source/fitz/output.c"
+
+unsigned int
+fz_pixmap_size(fz_context *ctx, fz_pixmap * pix)
+{
+    if (pix == NULL)
+        return 0;
+    return sizeof(*pix) + pix->n * pix->w * pix->h;
+}
+int pdf_objcmp_resolve(fz_context *ctx, pdf_obj *a, pdf_obj *b)
+{
+       return 0;
+}
+#endif
+#endif
+
 #include "../source/pdf/pdf-lex.c"
 #include "../source/pdf/pdf-cmap.c"
 #include "../source/pdf/pdf-cmap-parse.c"
-- 
2.7.0


From 110fc6940815dcef2a77376d1960a2be4ecf65f2 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 9 Apr 2017 23:23:17 +0000
Subject: applying patch mupdf-1.6-openjpeg21-1.patch


diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c
index 6b92e5c..72dea50 100644
--- a/source/fitz/load-jpx.c
+++ b/source/fitz/load-jpx.c
@@ -1,13 +1,5 @@
 #include "mupdf/fitz.h"
 
-/* Without the definition of OPJ_STATIC, compilation fails on windows
- * due to the use of __stdcall. We believe it is required on some
- * linux toolchains too. */
-#define OPJ_STATIC
-#ifndef _MSC_VER
-#define OPJ_HAVE_STDINT_H
-#endif
-
 #include <openjpeg.h>
 
 static void fz_opj_error_callback(const char *msg, void *client_data)
@@ -117,7 +109,7 @@ fz_load_jpx(fz_context *ctx, unsigned char *data, int size, fz_colorspace *defcs
 	opj_stream_set_read_function(stream, fz_opj_stream_read);
 	opj_stream_set_skip_function(stream, fz_opj_stream_skip);
 	opj_stream_set_seek_function(stream, fz_opj_stream_seek);
-	opj_stream_set_user_data(stream, &sb);
+	opj_stream_set_user_data(stream, &sb, NULL);
 	/* Set the length to avoid an assert */
 	opj_stream_set_user_data_length(stream, size);
 
-- 
2.7.0


From e7f428a65f21943a497a74fcba01d45bcf26fb23 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 10 Apr 2017 03:07:51 +0000
Subject: Fix gcc2 detection


diff --git a/include/mupdf/fitz/system.h b/include/mupdf/fitz/system.h
index 477d915..05781a4 100644
--- a/include/mupdf/fitz/system.h
+++ b/include/mupdf/fitz/system.h
@@ -207,7 +207,7 @@ typedef int fz_off_t;
 #endif
 
 /* Flag unused parameters, for use with 'static inline' functions in headers. */
-#if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+#if __GNUC__ > 2
 #define FZ_UNUSED __attribute__((__unused__))
 #else
 #define FZ_UNUSED
@@ -215,7 +215,7 @@ typedef int fz_off_t;
 
 /* GCC can do type checking of printf strings */
 #ifndef __printflike
-#if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+#if __GNUC__ > 2
 #define __printflike(fmtarg, firstvararg) \
 	__attribute__((__format__ (__printf__, fmtarg, firstvararg)))
 #else
-- 
2.7.0

