Openembedded Devel Discussions
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Recipe for MuPDF
@ 2010-06-23 17:00 Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 1/3] openjpeg-1.3: new recipe Dmitry Artamonow
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Dmitry Artamonow @ 2010-06-23 17:00 UTC (permalink / raw)
  To: openembedded-devel

As there's no more comments on original patch series[1], guess it's time
to send v2. Do whatever you like with these patches :-)

[1] http://patchwork.openembedded.org/bundle/mad_soft/mupdf-0.6-v1/

Changelog v1 => v2:

* removed autotools_stage_all from openjpeg and jbig2dec recipes,
  as suggested by Khem Raj
* used upstream patch fixing endianness issues on 16-bit displays
  instead of custom hack (upstream has been very kind to fix this
  bug so quickly)
* more verbose comment about why we need -O2

Dmitry Artamonow (3):
  openjpeg-1.3: new recipe
  jbig2dec-0.11: new recipe
  mupdf-0.6: new recipe

 recipes/jpeg/jbig2dec_0.11.bb                      |   15 +++
 recipes/jpeg/openjpeg-1.3/fix_installdir.patch     |   19 ++++
 recipes/jpeg/openjpeg_1.3.bb                       |   20 +++++
 recipes/mupdf/mupdf-0.6/Makerules                  |    8 ++
 recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch |   90 ++++++++++++++++++++
 recipes/mupdf/mupdf_0.6.bb                         |   60 +++++++++++++
 6 files changed, 212 insertions(+), 0 deletions(-)
 create mode 100644 recipes/jpeg/jbig2dec_0.11.bb
 create mode 100644 recipes/jpeg/openjpeg-1.3/fix_installdir.patch
 create mode 100644 recipes/jpeg/openjpeg_1.3.bb
 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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] openjpeg-1.3: new recipe
  2010-06-23 17:00 [PATCH v2 0/3] Recipe for MuPDF Dmitry Artamonow
@ 2010-06-23 17:00 ` Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 2/3] jbig2dec-0.11: " Dmitry Artamonow
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Artamonow @ 2010-06-23 17:00 UTC (permalink / raw)
  To: openembedded-devel

The OpenJPEG library is an open-source JPEG 2000 codec written
in C language.

Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
---
 recipes/jpeg/openjpeg-1.3/fix_installdir.patch |   19 +++++++++++++++++++
 recipes/jpeg/openjpeg_1.3.bb                   |   20 ++++++++++++++++++++
 2 files changed, 39 insertions(+), 0 deletions(-)
 create mode 100644 recipes/jpeg/openjpeg-1.3/fix_installdir.patch
 create mode 100644 recipes/jpeg/openjpeg_1.3.bb

diff --git a/recipes/jpeg/openjpeg-1.3/fix_installdir.patch b/recipes/jpeg/openjpeg-1.3/fix_installdir.patch
new file mode 100644
index 0000000..f04a81e
--- /dev/null
+++ b/recipes/jpeg/openjpeg-1.3/fix_installdir.patch
@@ -0,0 +1,19 @@
+* status: pending
+* origin:
+  http://groups.google.com/group/openjpeg/browse_thread/thread/4cd7b53fbaab2822
+* comment: slightly modified patch by Patrick Reynolds, borrowed from
+  the thread above. Seems that it's not in upstream yet.
+  Had to modify header location from /usr/include/openjpeg/openjpeg.h to
+  /usr/include/openjpeg.h , as it's the only one header file anyway and
+  most of its users expect #include <openjpeg.h> to work.
+
+Index: libopenjpeg/CMakeLists.txt
+===================================================================
+--- a/libopenjpeg/CMakeLists.txt	(revision 541)
++++ b/libopenjpeg/CMakeLists.txt	(working copy)
+@@ -41,4 +41,4 @@
+ 
+ # Install includes files
+ INSTALL(FILES openjpeg.h
+-	DESTINATION ${INCLUDE_INSTALL_DIR}/openjpeg)
++	DESTINATION include)
diff --git a/recipes/jpeg/openjpeg_1.3.bb b/recipes/jpeg/openjpeg_1.3.bb
new file mode 100644
index 0000000..1ceb95e
--- /dev/null
+++ b/recipes/jpeg/openjpeg_1.3.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Open-source JPEG 2000 codec written in C language"
+HOMEPAGE = "http://www.openjpeg.org"
+SECTION = "libs"
+LICENSE = "BSD"
+PR = "r0"
+
+SRC_URI = "http://openjpeg.googlecode.com/files/openjpeg_v1_3.tar.gz \
+           file://fix_installdir.patch"
+
+S = "${WORKDIR}/OpenJPEG_v1_3"
+
+inherit cmake
+
+EXTRA_OECMAKE="-DBUILD_SHARED_LIBS:BOOL=ON"
+
+PACKAGES =+ "openjpeg-tools "
+FILES_openjpeg-tools = "${bindir}/*"
+
+SRC_URI[md5sum] = "f9a3ccfa91ac34b589e9bf7577ce8ff9"
+SRC_URI[sha256sum] = "3bca2e1e040f9dcbbcb1e0627f17a76eeb95e153bf663d082070c044a21202bd"
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] jbig2dec-0.11: new recipe
  2010-06-23 17:00 [PATCH v2 0/3] Recipe for MuPDF Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 1/3] openjpeg-1.3: new recipe Dmitry Artamonow
@ 2010-06-23 17:00 ` Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 3/3] mupdf-0.6: " Dmitry Artamonow
  2010-06-23 17:12 ` [PATCH v2 0/3] Recipe for MuPDF Tom Rini
  3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Artamonow @ 2010-06-23 17:00 UTC (permalink / raw)
  To: openembedded-devel

jbig2dec is a decoder implementation of the JBIG2 image compression
format. JBIG2 is designed for lossy or lossless encoding of monochrome
images at moderately high resolution, in particular scanned paper documents.

Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
---
 recipes/jpeg/jbig2dec_0.11.bb |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
 create mode 100644 recipes/jpeg/jbig2dec_0.11.bb

diff --git a/recipes/jpeg/jbig2dec_0.11.bb b/recipes/jpeg/jbig2dec_0.11.bb
new file mode 100644
index 0000000..ccdeedd
--- /dev/null
+++ b/recipes/jpeg/jbig2dec_0.11.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Decoder implementation of the JBIG2 image compression format"
+HOMEPAGE = "http://jbig2dec.sourceforge.net/"
+SECTION = "libs"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/jbig2dec/${PN}-${PV}.tar.gz"
+
+inherit autotools
+
+PACKAGES =+ "jbig2dec-tools "
+FILES_jbig2dec-tools = "${bindir}/*"
+
+SRC_URI[md5sum] = "1f61e144852c86563fee6e5ddced63f1"
+SRC_URI[sha256sum] = "7e2d8330b36f2765da22043d174827bee0f30db8d78c330904f363275c7dd0b9"
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] mupdf-0.6: new recipe
  2010-06-23 17:00 [PATCH v2 0/3] Recipe for MuPDF Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 1/3] openjpeg-1.3: new recipe Dmitry Artamonow
  2010-06-23 17:00 ` [PATCH 2/3] jbig2dec-0.11: " Dmitry Artamonow
@ 2010-06-23 17:00 ` Dmitry Artamonow
  2010-06-23 17:12 ` [PATCH v2 0/3] Recipe for MuPDF Tom Rini
  3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Artamonow @ 2010-06-23 17:00 UTC (permalink / raw)
  To: openembedded-devel

MuPDF is a slim and fast PDF viewer/toolkit.

Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
---
 recipes/mupdf/mupdf-0.6/Makerules                  |    8 ++
 recipes/mupdf/mupdf-0.6/mupdf_fix_endianness.patch |   90 ++++++++++++++++++++
 recipes/mupdf/mupdf_0.6.bb                         |   60 +++++++++++++
 3 files changed, 158 insertions(+), 0 deletions(-)
 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 0000000..5f3d4e2
--- /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 0000000..056e145
--- /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 <fitz.h>
++#include "fitz.h"
+ 
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+@@ -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 0000000..bcd8534
--- /dev/null
+++ b/recipes/mupdf/mupdf_0.6.bb
@@ -0,0 +1,60 @@
+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 jbig2dec jpeg zlib virtual/libx11 libxext freetype"
+
+SRC_URI = "http://mupdf.com/download/source/${PN}-${PV}-source.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
+    oe_runmake build/debug
+    oe_runmake build/debug/cmapdump LD=${BUILD_CC} CC=${BUILD_CC}
+    oe_runmake build/debug/fontdump LD=${BUILD_CC} CC=${BUILD_CC}
+
+    # ...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"
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/3] Recipe for MuPDF
  2010-06-23 17:00 [PATCH v2 0/3] Recipe for MuPDF Dmitry Artamonow
                   ` (2 preceding siblings ...)
  2010-06-23 17:00 ` [PATCH 3/3] mupdf-0.6: " Dmitry Artamonow
@ 2010-06-23 17:12 ` Tom Rini
  3 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2010-06-23 17:12 UTC (permalink / raw)
  To: openembedded-devel

Dmitry Artamonow wrote:
> As there's no more comments on original patch series[1], guess it's time
> to send v2. Do whatever you like with these patches :-)
> 
> [1] http://patchwork.openembedded.org/bundle/mad_soft/mupdf-0.6-v1/
> 
> Changelog v1 => v2:
> 
> * removed autotools_stage_all from openjpeg and jbig2dec recipes,
>   as suggested by Khem Raj
> * used upstream patch fixing endianness issues on 16-bit displays
>   instead of custom hack (upstream has been very kind to fix this
>   bug so quickly)
> * more verbose comment about why we need -O2

Was this answered before?  Why is everything in a '-tools' package?  It 
looks like we have empty main packages and populated '-tools'.

-- 
Tom Rini
Mentor Graphics Corporation



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-06-23 17:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-23 17:00 [PATCH v2 0/3] Recipe for MuPDF Dmitry Artamonow
2010-06-23 17:00 ` [PATCH 1/3] openjpeg-1.3: new recipe Dmitry Artamonow
2010-06-23 17:00 ` [PATCH 2/3] jbig2dec-0.11: " Dmitry Artamonow
2010-06-23 17:00 ` [PATCH 3/3] mupdf-0.6: " Dmitry Artamonow
2010-06-23 17:12 ` [PATCH v2 0/3] Recipe for MuPDF Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox