summaryrefslogtreecommitdiff
path: root/libraries/jbig2dec
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/jbig2dec')
-rw-r--r--libraries/jbig2dec/jbig2dec.SlackBuild11
-rw-r--r--libraries/jbig2dec/jbig2dec.info8
-rw-r--r--libraries/jbig2dec/newlibpng.diff165
3 files changed, 179 insertions, 5 deletions
diff --git a/libraries/jbig2dec/jbig2dec.SlackBuild b/libraries/jbig2dec/jbig2dec.SlackBuild
index 93874c7ae9..bf0af26bb4 100644
--- a/libraries/jbig2dec/jbig2dec.SlackBuild
+++ b/libraries/jbig2dec/jbig2dec.SlackBuild
@@ -10,8 +10,11 @@
# - Use 'make install-strip'
# - Added 'how to edit' stuff to slack-desc
+# 20150915 bkw:
+# - update for v0.12
+
PRGNAM=jbig2dec
-VERSION=${VERSION:-0.11}
+VERSION=${VERSION:-0.12}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
@@ -57,6 +60,12 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# patch from here: http://git.ghostscript.com/?p=jbig2dec.git;a=patch;h=70c7f1967f43a94f9f0d6808d6ab5700a120d2fc
+# ...but modified to affect libpng-1.4 also.
+patch -p1 < $CWD/newlibpng.diff
+
+autoreconf -if
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/libraries/jbig2dec/jbig2dec.info b/libraries/jbig2dec/jbig2dec.info
index 323445ebfc..528a3ae29b 100644
--- a/libraries/jbig2dec/jbig2dec.info
+++ b/libraries/jbig2dec/jbig2dec.info
@@ -1,8 +1,8 @@
PRGNAM="jbig2dec"
-VERSION="0.11"
-HOMEPAGE="http://jbig2dec.sourceforge.net/"
-DOWNLOAD="http://distfiles.gentoo.org/distfiles/jbig2dec-0.11.tar.gz"
-MD5SUM="1f61e144852c86563fee6e5ddced63f1"
+VERSION="0.12"
+HOMEPAGE="http://git.ghostscript.com/?p=jbig2dec.git;a=summary"
+DOWNLOAD="http://downloads.ghostscript.com/public/jbig2dec/jbig2dec-0.12.tar.gz"
+MD5SUM="b73cfb55c61c6978e6539b889bdc2633"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/libraries/jbig2dec/newlibpng.diff b/libraries/jbig2dec/newlibpng.diff
new file mode 100644
index 0000000000..9c7513297f
--- /dev/null
+++ b/libraries/jbig2dec/newlibpng.diff
@@ -0,0 +1,165 @@
+*** Modified by SBo:
+*** Was: PNG_LIBPNG_VER_MINOR < 5
+*** Now: PNG_LIBPNG_VER_MINOR < 4
+From 70c7f1967f43a94f9f0d6808d6ab5700a120d2fc Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell@artifex.com>
+Date: Fri, 17 Apr 2015 12:19:26 +0100
+Subject: [PATCH] Bug 695890: Update jbig2dec for modern libpng
+
+libpng 1.5.x and newer hide the internals, and only allow values to be set and
+retrieved via define API calls.
+
+Also tidy up a couple of (benign) compiler warnings.
+
+No cluster diffs.
+---
+ jbig2_arith.c | 9 +++++++--
+ jbig2_image_pbm.c | 2 +-
+ jbig2_image_png.c | 23 ++++++++++++++++++-----
+ jbig2_refinement.c | 4 ++++
+ jbig2_text.c | 2 ++
+ 5 files changed, 32 insertions(+), 8 deletions(-)
+
+diff --git a/jbig2_arith.c b/jbig2_arith.c
+index 5e6cf4c..b65022e 100644
+--- a/jbig2_arith.c
++++ b/jbig2_arith.c
+@@ -422,9 +422,14 @@ main (int argc, char **argv)
+
+ for (i = 0; i < 256; i++)
+ {
+- bool D;
++#ifdef JBIG2_DEBUG_ARITH
++ bool D =
++#else
++ (void)
++#endif
++
++ jbig2_arith_decode (as, &cx);
+
+- D = jbig2_arith_decode (as, &cx);
+ #ifdef JBIG2_DEBUG_ARITH
+ fprintf(stderr, "%3d: D = %d, ", i, D);
+ jbig2_arith_trace (as, cx);
+diff --git a/jbig2_image_pbm.c b/jbig2_image_pbm.c
+index 0ad7e32..49bf756 100644
+--- a/jbig2_image_pbm.c
++++ b/jbig2_image_pbm.c
+@@ -145,7 +145,7 @@ Jbig2Image *jbig2_image_read_pbm(Jbig2Ctx *ctx, FILE *in)
+ }
+ /* the pbm data is byte-aligned, so we can
+ do a simple block read */
+- fread(image->data, 1, image->height*image->stride, in);
++ (void)fread(image->data, 1, image->height*image->stride, in);
+ if (feof(in)) {
+ fprintf(stderr, "unexpected end of pbm file.\n");
+ jbig2_image_release(ctx, image);
+diff --git a/jbig2_image_png.c b/jbig2_image_png.c
+index 6b2d9b9..1dd4e45 100644
+--- a/jbig2_image_png.c
++++ b/jbig2_image_png.c
+@@ -26,7 +26,11 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <png.h>
++
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR < 4
+ #include <pngstruct.h>
++#endif
++
+ #define CVT_PTR(ptr) (ptr)
+
+ #include "jbig2.h"
+@@ -39,8 +43,13 @@ static void
+ jbig2_png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
+ {
+ png_size_t check;
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR < 4
++ png_FILE_p f = (png_FILE_p)png_ptr->io_ptr;
++#else
++ png_FILE_p f = (png_FILE_p)png_get_io_ptr(png_ptr);
++#endif
+
+- check = fwrite(data, 1, length, (png_FILE_p)png_ptr->io_ptr);
++ check = fwrite(data, 1, length, f);
+ if (check != length) {
+ png_error(png_ptr, "Write Error");
+ }
+@@ -49,10 +58,14 @@ jbig2_png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
+ static void
+ jbig2_png_flush(png_structp png_ptr)
+ {
+- png_FILE_p io_ptr;
+- io_ptr = (png_FILE_p)CVT_PTR((png_ptr->io_ptr));
+- if (io_ptr != NULL)
+- fflush(io_ptr);
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR < 4
++ png_FILE_p f = (png_FILE_p)png_ptr->io_ptr;
++#else
++ png_FILE_p f = (png_FILE_p)png_get_io_ptr(png_ptr);
++#endif
++
++ if (f != NULL)
++ fflush(f);
+ }
+
+ int jbig2_image_write_png_file(Jbig2Image *image, char *filename)
+diff --git a/jbig2_refinement.c b/jbig2_refinement.c
+index 31b0bfe..b456173 100644
+--- a/jbig2_refinement.c
++++ b/jbig2_refinement.c
+@@ -38,6 +38,7 @@
+ #include "jbig2_generic.h"
+ #include "jbig2_image.h"
+
++#if 0 /* currently not used */
+ static int
+ jbig2_decode_refinement_template0(Jbig2Ctx *ctx,
+ Jbig2Segment *segment,
+@@ -49,6 +50,7 @@ jbig2_decode_refinement_template0(Jbig2Ctx *ctx,
+ return jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number,
+ "refinement region template 0 NYI");
+ }
++#endif
+
+ static int
+ jbig2_decode_refinement_template0_unopt(Jbig2Ctx *ctx,
+@@ -159,6 +161,7 @@ jbig2_decode_refinement_template1_unopt(Jbig2Ctx *ctx,
+ return 0;
+ }
+
++#if 0 /* currently not used */
+ static int
+ jbig2_decode_refinement_template1(Jbig2Ctx *ctx,
+ Jbig2Segment *segment,
+@@ -241,6 +244,7 @@ jbig2_decode_refinement_template1(Jbig2Ctx *ctx,
+ return 0;
+
+ }
++#endif
+
+
+ typedef uint32_t (*ContextBuilder)(const Jbig2RefinementRegionParams *,
+diff --git a/jbig2_text.c b/jbig2_text.c
+index 5c9df26..3fdd3a5 100644
+--- a/jbig2_text.c
++++ b/jbig2_text.c
+@@ -412,6 +412,7 @@ cleanup1:
+ case JBIG2_CORNER_TOPLEFT: x = S; y = T; break;
+ case JBIG2_CORNER_TOPRIGHT: x = S - IB->width + 1; y = T; break;
+ case JBIG2_CORNER_BOTTOMLEFT: x = S; y = T - IB->height + 1; break;
++ default:
+ case JBIG2_CORNER_BOTTOMRIGHT: x = S - IB->width + 1; y = T - IB->height + 1; break;
+ }
+ } else { /* TRANSPOSED */
+@@ -419,6 +420,7 @@ cleanup1:
+ case JBIG2_CORNER_TOPLEFT: x = T; y = S; break;
+ case JBIG2_CORNER_TOPRIGHT: x = T - IB->width + 1; y = S; break;
+ case JBIG2_CORNER_BOTTOMLEFT: x = T; y = S - IB->height + 1; break;
++ default:
+ case JBIG2_CORNER_BOTTOMRIGHT: x = T - IB->width + 1; y = S - IB->height + 1; break;
+ }
+ }
+--
+2.5.1
+