From a663f7796c6be599cd476911123921d8ee958f93 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Mon, 11 Apr 2016 07:12:24 -0400 Subject: [PATCH] leptonica: Avoid fmemopen and use tmpfile The header is now patched so the tmpfile() callback now works. This fixes the build on aarch64. --- packages/leptonica/build.sh | 17 --- packages/leptonica/silence-tmpfile-warnings.patch | 130 ++++++++++++++++++++++ packages/tesseract/build.sh | 1 - 3 files changed, 130 insertions(+), 18 deletions(-) create mode 100644 packages/leptonica/silence-tmpfile-warnings.patch diff --git a/packages/leptonica/build.sh b/packages/leptonica/build.sh index e6eaeddf..f3e2e3e7 100644 --- a/packages/leptonica/build.sh +++ b/packages/leptonica/build.sh @@ -1,23 +1,6 @@ TERMUX_PKG_HOMEPAGE=http://www.leptonica.com/ TERMUX_PKG_DESCRIPTION="Leptonica is a pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications" TERMUX_PKG_VERSION=1.73 -TERMUX_PKG_BUILD_REVISION=1 TERMUX_PKG_DEPENDS="libjpeg-turbo, libpng, libtiff" TERMUX_PKG_SRCURL=http://www.leptonica.com/source/leptonica-${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-giflib --without-libwebp" - -termux_step_pre_configure() { - export ac_cv_func_fmemopen=yes -} - -termux_step_post_configure() { - # add fmemopen support from https://github.com/j-jorge/android-stdioext - cd $TERMUX_PKG_SRCDIR/src - - wget --quiet https://raw.githubusercontent.com/j-jorge/android-stdioext/master/include/stdioext.h - wget --quiet https://github.com/j-jorge/android-stdioext/raw/master/src/fmemopen.c - wget --quiet https://github.com/j-jorge/android-stdioext/raw/master/src/fopencookie.c - wget --quiet https://raw.githubusercontent.com/j-jorge/android-stdioext/master/src/open_memstream.c - - echo '#include "stdioext.h"' >> alltypes.h -} diff --git a/packages/leptonica/silence-tmpfile-warnings.patch b/packages/leptonica/silence-tmpfile-warnings.patch new file mode 100644 index 00000000..e522d76a --- /dev/null +++ b/packages/leptonica/silence-tmpfile-warnings.patch @@ -0,0 +1,130 @@ +diff -u -r ../leptonica-1.73/src/bmpio.c ./src/bmpio.c +--- ../leptonica-1.73/src/bmpio.c 2016-01-15 21:41:41.000000000 -0500 ++++ ./src/bmpio.c 2016-04-11 06:59:55.564738401 -0400 +@@ -600,7 +600,6 @@ + if ((fp = fmemopen((l_uint8 *)cdata, size, "rb")) == NULL) + return (PIX *)ERROR_PTR("stream not opened", procName, NULL); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return (PIX *)ERROR_PTR("tmpfile stream not opened", procName, NULL); + fwrite(cdata, 1, size, fp); +@@ -647,7 +646,6 @@ + return ERROR_INT("stream not opened", procName, 1); + ret = pixWriteStreamBmp(fp, pix); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + ret = pixWriteStreamBmp(fp, pix); +diff -u -r ../leptonica-1.73/src/gifio.c ./src/gifio.c +--- ../leptonica-1.73/src/gifio.c 2016-01-21 13:06:52.000000000 -0500 ++++ ./src/gifio.c 2016-04-11 07:00:33.292149664 -0400 +@@ -519,7 +519,6 @@ + + if (!cdata) + return (PIX *)ERROR_PTR("cdata not defined", procName, NULL); +- L_WARNING("writing to a temp file, not directly to memory\n", procName); + + /* Write to a temp file */ + fname = genTempFilename("/tmp/", "mem.gif", 1, 1); +@@ -562,7 +561,6 @@ + *psize = 0; + if (!pix) + return ERROR_INT("&pix not defined", procName, 1 ); +- L_WARNING("writing to a temp file, not directly to memory\n", procName); + + /* Write to a temp file */ + fname = genTempFilename("/tmp/", "mem.gif", 1, 1); +diff -u -r ../leptonica-1.73/src/jp2kio.c ./src/jp2kio.c +--- ../leptonica-1.73/src/jp2kio.c 2016-01-15 21:41:29.000000000 -0500 ++++ ./src/jp2kio.c 2016-04-11 07:00:45.691956165 -0400 +@@ -786,7 +786,6 @@ + if ((fp = fmemopen((void *)data, size, "rb")) == NULL) + return (PIX *)ERROR_PTR("stream not opened", procName, NULL); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return (PIX *)ERROR_PTR("tmpfile stream not opened", procName, NULL); + fwrite(data, 1, size, fp); +@@ -843,7 +842,6 @@ + return ERROR_INT("stream not opened", procName, 1); + ret = pixWriteStreamJp2k(fp, pix, quality, nlevels, hint, debug); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + ret = pixWriteStreamJp2k(fp, pix, quality, nlevels, hint, debug); +diff -u -r ../leptonica-1.73/src/jpegio.c ./src/jpegio.c +--- ../leptonica-1.73/src/jpegio.c 2016-01-15 21:41:17.000000000 -0500 ++++ ./src/jpegio.c 2016-04-11 06:59:13.425396015 -0400 +@@ -987,7 +987,6 @@ + if ((fp = fmemopen((l_uint8 *)data, size, "rb")) == NULL) + return (PIX *)ERROR_PTR("stream not opened", procName, NULL); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return (PIX *)ERROR_PTR("tmpfile stream not opened", procName, NULL); + fwrite(data, 1, size, fp); +@@ -1047,7 +1046,6 @@ + if ((fp = fmemopen((l_uint8 *)data, size, "rb")) == NULL) + return ERROR_INT("stream not opened", procName, 1); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + fwrite(data, 1, size, fp); +@@ -1099,7 +1097,6 @@ + return ERROR_INT("stream not opened", procName, 1); + ret = pixWriteStreamJpeg(fp, pix, quality, progressive); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + ret = pixWriteStreamJpeg(fp, pix, quality, progressive); +diff -u -r ../leptonica-1.73/src/pngio.c ./src/pngio.c +--- ../leptonica-1.73/src/pngio.c 2016-01-15 21:40:28.000000000 -0500 ++++ ./src/pngio.c 2016-04-11 06:59:45.780891088 -0400 +@@ -1285,7 +1285,6 @@ + if ((fp = fmemopen((void *)cdata, size, "rb")) == NULL) + return (PIX *)ERROR_PTR("stream not opened", procName, NULL); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return (PIX *)ERROR_PTR("tmpfile stream not opened", procName, NULL); + fwrite(cdata, 1, size, fp); +@@ -1336,7 +1335,6 @@ + return ERROR_INT("stream not opened", procName, 1); + ret = pixWriteStreamPng(fp, pix, gamma); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + ret = pixWriteStreamPng(fp, pix, gamma); +diff -u -r ../leptonica-1.73/src/pnmio.c ./src/pnmio.c +--- ../leptonica-1.73/src/pnmio.c 2016-01-15 21:40:19.000000000 -0500 ++++ ./src/pnmio.c 2016-04-11 06:59:35.017059063 -0400 +@@ -629,7 +629,6 @@ + if ((fp = fmemopen((l_uint8 *)cdata, size, "rb")) == NULL) + return (PIX *)ERROR_PTR("stream not opened", procName, NULL); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return (PIX *)ERROR_PTR("tmpfile stream not opened", procName, NULL); + fwrite(cdata, 1, size, fp); +@@ -677,7 +676,6 @@ + if ((fp = fmemopen((l_uint8 *)cdata, size, "rb")) == NULL) + return ERROR_INT("stream not opened", procName, 1); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + fwrite(cdata, 1, size, fp); +@@ -727,7 +725,6 @@ + return ERROR_INT("stream not opened", procName, 1); + ret = pixWriteStreamPnm(fp, pix); + #else +- L_WARNING("work-around: writing to a temp file\n", procName); + if ((fp = tmpfile()) == NULL) + return ERROR_INT("tmpfile stream not opened", procName, 1); + ret = pixWriteStreamPnm(fp, pix); diff --git a/packages/tesseract/build.sh b/packages/tesseract/build.sh index 54ffb71f..3f79ad76 100644 --- a/packages/tesseract/build.sh +++ b/packages/tesseract/build.sh @@ -1,7 +1,6 @@ TERMUX_PKG_HOMEPAGE=https://github.com/tesseract-ocr/tesseract TERMUX_PKG_DESCRIPTION="Tesseract is probably the most accurate open source OCR engine available" TERMUX_PKG_VERSION=3.04.01 -TERMUX_PKG_BUILD_REVISION=1 TERMUX_PKG_DEPENDS="libtool, libuuid, leptonica" TERMUX_PKG_SRCURL=https://github.com/tesseract-ocr/tesseract/archive/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_FOLDERNAME=tesseract-${TERMUX_PKG_VERSION} -- 2.11.0