All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.