From f1b5be68502b508c68977970f8774c0991cf4d5a Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Fri, 8 Oct 2010 15:08:27 +0200 Subject: Revert "mupdf_0.6.bb: remove recipe." * mupdf_git doesn't build here * only grg have successfull build on http://tinderbox.openembedded.org/packages/mupdf/ This reverts commit 71d25fe210fc31a342114e5a229f89be304632be. Signed-off-by: Martin Jansa --- recipes/mupdf/mupdf-0.6/Makerules | 8 ++ recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch | 90 ++++++++++++++++++++++ recipes/mupdf/mupdf_0.6.bb | 62 +++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 recipes/mupdf/mupdf-0.6/Makerules create mode 100644 recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch create mode 100644 recipes/mupdf/mupdf_0.6.bb diff --git a/recipes/mupdf/mupdf-0.6/Makerules b/recipes/mupdf/mupdf-0.6/Makerules new file mode 100644 index 0000000000..5f3d4e2aea --- /dev/null +++ b/recipes/mupdf/mupdf-0.6/Makerules @@ -0,0 +1,8 @@ +# Configuration for the Makefile +LIBS := -ljbig2dec -lopenjpeg -ljpeg -lz -lm +CFLAGS := -Wall --std=gnu99 -Ifitz -Imupdf $(THIRD_INCS) + +CFLAGS += `pkg-config --cflags freetype2` +LDFLAGS += `pkg-config --libs freetype2` +X11LIBS = -lX11 -lXext +PDFVIEW_EXE = $(X11VIEW_EXE) diff --git a/recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch b/recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch new file mode 100644 index 0000000000..056e1451b1 --- /dev/null +++ b/recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch @@ -0,0 +1,90 @@ +Patch from upstream darcs repository, see this bugzilla entry for details: +http://bugs.ghostscript.com/show_bug.cgi?id=690932 + +Wed Jun 16 10:29:54 UTC 2010 tor@ghostscript.com + * Do runtime endianness test instead of relying on unreliable preprocessor macros. +diff -rN -u old-mupdf/apps/x11_image.c new-mupdf-1/apps/x11_image.c +--- old-mupdf/apps/x11_image.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/apps/x11_image.c 2010-06-16 12:33:35.000000000 +0000 +@@ -10,7 +10,7 @@ + # define _XOPEN_SOURCE 1 + #endif + +-#include ++#include "fitz.h" + + #include + #include +@@ -205,11 +205,10 @@ + unsigned long rs, gs, bs; + + byteorder = ImageByteOrder(info.display); +-#if BYTE_ORDER == BIG_ENDIAN +- byterev = byteorder != MSBFirst; +-#else +- byterev = byteorder != LSBFirst; +-#endif ++ if (fz_isbigendian()) ++ byterev = byteorder != MSBFirst; ++ else ++ byterev = byteorder != LSBFirst; + + rm = info.visual.red_mask; + gm = info.visual.green_mask; +diff -rN -u old-mupdf/draw/imageunpack.c new-mupdf-1/draw/imageunpack.c +--- old-mupdf/draw/imageunpack.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/draw/imageunpack.c 2010-06-16 12:33:36.000000000 +0000 +@@ -31,6 +31,12 @@ + justinvert &= min[i] == 255 && max[i] == 0 && sub[i] == -255; + } + ++ unsigned mask; ++ if (fz_isbigendian()) ++ mask = 0x00ff00ff; ++ else ++ mask = 0xff00ff00; ++ + if (!needed) + return; + +@@ -51,11 +57,7 @@ + wh = wh - 2 * hwh; + while(hwh--) { + unsigned in = *wp; +-#if BYTE_ORDER == LITTLE_ENDIAN +- unsigned out = in ^ 0xff00ff00; +-#else +- unsigned out = in ^ 0x00ff00ff; +-#endif ++ unsigned out = in ^ mask; + *wp++ = out; + } + p = (byte *)wp; +diff -rN -u old-mupdf/fitz/base_cpudep.c new-mupdf-1/fitz/base_cpudep.c +--- old-mupdf/fitz/base_cpudep.c 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/fitz/base_cpudep.c 2010-06-16 12:33:36.000000000 +0000 +@@ -10,6 +10,12 @@ + /* global run-time constant */ + unsigned fz_cpuflags = 0; + ++int fz_isbigendian(void) ++{ ++ static const int one = 1; ++ return *(char*)&one == 0; ++} ++ + #ifndef HAVE_CPUDEP + + void fz_cpudetect(void) +diff -rN -u old-mupdf/fitz/fitz_base.h new-mupdf-1/fitz/fitz_base.h +--- old-mupdf/fitz/fitz_base.h 2010-06-16 12:33:35.000000000 +0000 ++++ new-mupdf-1/fitz/fitz_base.h 2010-06-16 12:33:36.000000000 +0000 +@@ -86,6 +86,8 @@ + /* treat as constant! */ + extern unsigned fz_cpuflags; + ++int fz_isbigendian(void); ++ + /* + * Base Fitz runtime. + */ diff --git a/recipes/mupdf/mupdf_0.6.bb b/recipes/mupdf/mupdf_0.6.bb new file mode 100644 index 0000000000..16d49d8ff1 --- /dev/null +++ b/recipes/mupdf/mupdf_0.6.bb @@ -0,0 +1,62 @@ +DESCRIPTION = "A lightweight PDF viewer and toolkit written in portable C." +HOMEPAGE = "http://www.mupdf.com" +SECTION = "x11/applications" +LICENSE = "GPLv3" +PR = "r0" + +DEPENDS = "openjpeg-native jbig2dec-native jpeg-native freetype-native libpng-native openjpeg jbig2dec jpeg zlib virtual/libx11 libxext freetype" + +SRC_URI = "http://mupdf.com/download/source/${PN}-${PV}.tar.gz \ + file://mupdf_fix_endianness.patch \ + file://Makerules" + +S = "${WORKDIR}/mupdf" + +PACKAGES =+ "${PN}-tools ${PN}-tools-doc " +FILES_${PN}-tools = "${bindir}/pdfclean ${bindir}/pdfdraw ${bindir}/pdfshow \ + ${bindir}/pdfextract ${bindir}/pdfinfo" +FILES_${PN}-tools-doc = "${mandir}/man1/pdfclean.1 ${mandir}/man1/pdfdraw.1 \ + ${mandir}/man1/pdfshow.1" + +# mupdf crashes (at least on arm) when built with high level of optimization +# so we need to provide some safe settings +FULL_OPTIMIZATION = "-O2" + +do_configure() { + cp ${WORKDIR}/Makerules ${S}/Makerules + + # we don't include CJK fonts to make binary more slim + # comment out following two lines if you need support for CJK + sed -i 's:^\t\$.GENDIR./font_cjk.c::g' ${S}/Makefile + echo "CFLAGS += -DNOCJK" >> ${S}/Makerules +} + +do_compile() { + # mupdf uses couple of tools for code generation during build process + # so we need to compile them first with host compiler + unset CFLAGS LDFLAGS + export PKG_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/pkgconfig + oe_runmake build/debug + oe_runmake build/debug/cmapdump LD="${BUILD_CC} -L${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE}" CC=${BUILD_CC} + oe_runmake build/debug/fontdump LD="${BUILD_CC} -L${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE}" CC=${BUILD_CC} + + export PKG_CONFIG_PATH=${STAGING_LIBDIR}/pkgconfig + # ...and then we fire 'make', feeding proper + # cross-compilation flags through Makerules file + echo "CFLAGS += ${CFLAGS}" >> ${S}/Makerules + echo "LDFLAGS += ${LDFLAGS}" >> ${S}/Makerules + oe_runmake LD="${CC}" +} + +do_install() { + oe_runmake install prefix="${D}/usr" + install -d ${D}/${datadir}/applications + install -d ${D}/${datadir}/pixmaps + install -d ${D}/${mandir}/man1 + install -m 0644 ${S}/debian/mupdf.xpm ${D}/${datadir}/pixmaps/ + install -m 0644 ${S}/debian/mupdf.desktop ${D}/${datadir}/applications/ + install -m 0644 ${S}/debian/*.1 ${D}/${mandir}/man1/ +} + +SRC_URI[md5sum] = "d1e1a1df8fb3e4d1c601506797b75036" +SRC_URI[sha256sum] = "6f87c4f113ee9e0f4bdfd3a316ef44052edc4febc8f7b531c4a3f44ffe149605" -- cgit 1.2.3-korg