summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-text/tesseract/Manifest1
-rw-r--r--app-text/tesseract/files/tesseract-3.05.00-libtiff.patch25
-rw-r--r--app-text/tesseract/files/tesseract-3.05.00-no_graphics.patch74
-rw-r--r--app-text/tesseract/tesseract-3.05.00.ebuild147
4 files changed, 247 insertions, 0 deletions
diff --git a/app-text/tesseract/Manifest b/app-text/tesseract/Manifest
index b57b7e44871..7b5f3022771 100644
--- a/app-text/tesseract/Manifest
+++ b/app-text/tesseract/Manifest
@@ -123,6 +123,7 @@ DIST tam.traineddata-4.00 17333471 SHA256 ba8dc53bd987e4bdfacc37f46e6b0c8f7aea9c
DIST tel.traineddata-4.00 54446537 SHA256 9db74228a36fcdbcde54e6e6118c0998b2fb73ed84c9e42b52062009c5becd66 SHA512 5e5c2ca84f095ec4dd3184d6cb75702482c699b5cd04f8750ab8958f578f7b24cf3253a83d19a4a1f3716466b95a81737d473339e3593538e46372c4588febb6 WHIRLPOOL 1eb738325fd5610ae3a71791a998aed4f901e03eac629547a5d627f7173dbf3b268732e08a7a64fd4147773bbfc56f560b5f02f32bd3adb16166e6cd8d85e794
DIST tesseract-3.04.00.tar.gz 2264427 SHA256 7e6e48b625e1fba9bc825a4ef8c39f12c60aae1084939133b3c6a00f8f8dc38c SHA512 60c31bad40b4c01395782fb98b3326407e75ebdbda962de4fb0e878824efb05140bdcb139dcf7d4f699ae5350e81a00320ebe7fbec083a0d374952488cc59e25 WHIRLPOOL 81b685e4d50d94056a4f99ce6beb4c73983e9449e1eed07a69d4649b0a8231b17fede430a8c181b37216a55e9f6102a578c85d84b2bbe6e9643ca98f16ae3260
DIST tesseract-3.04.01.tar.gz 2269105 SHA256 57f63e1b14ae04c3932a2683e4be4954a2849e17edd638ffe91bc5a2156adc6a SHA512 816f6c29f8efeaf157891ddb022bd0daf8eb27c0cb8b6df5542e745d209f0ce617245e4583c59a561ed3216044d3afb38f8620ee94cdea656364923dcb140b5b WHIRLPOOL 995502084484d172becdfdaa38888cd21f0fe2b8845fe4a64726f9fbcd35310d64153be6325016dd50ca37b95069112b63d4f0528bd989a58c3b88dc6c6a6813
+DIST tesseract-3.05.00.tar.gz 3581853 SHA256 3fe83e06d0f73b39f6e92ed9fc7ccba3ef734877b76aa5ddaaa778fac095d996 SHA512 54ba96bd1b0d19883e8a0f717ecfddd459945f9dda0fd340e29e2dab3af94d0eceb7f3d207f34685ee97d1ec763efac5d94dec7e0498a7ca85fec35da4ed76b1 WHIRLPOOL 33622256479395eb12c72e4d3187eecf23fe4557f4fcaecf9b5f1ba3aeab67e333b0d979812525f3a1504102764bc572a79f8e64c794be805004e5fec5cdef5b
DIST tesseract-4.00.00_alpha.tar.gz 3706567 SHA256 ada7db147970317eed8223bb72702359ac53ad570e135f7f6824f40c41ea6791 SHA512 282ec941233ceb80fe1008e585a6069fe8ecd6bf2dd1d0f56e2e79b772a0b83bca918d5da892a6cab194a7828607e41a7fd873acec33181b8b86c3c37e434103 WHIRLPOOL ae27cd45ce680c71785c36bd4d5414efc5b07baa483094fd33ee7bd886b55e21a4034ddaa5d55a265cf23983ba21dc98c5e2e2148178e4fabd2c69e1a9326c9e
DIST tesseract-ocr-3.02.02-doc-html.tar.gz 10635901 SHA256 e7ffd3082005345a682268740140bfdde73461528d6f2da019fef29539477a7b SHA512 4cca5974635ed9c1656a00735bf682ed1eca5cb9a3641a0d063f66ffbdf9dcbc0476628a5b5c48684bd23f5616412e71e9cec608ac979760010c1ee91764290f WHIRLPOOL e84ceb57cbc7065b37424a2d53ce7ecea39f45856efe76610840296f20869742674b8b248b205ba293b7c729f85ff7938defce930409efa907af2d4309ca0a6b
DIST tgk.traineddata-4.00 6555909 SHA256 70a4f0e2b81591fb37687e7a33ee94a8f8591b788c2903267fc43f90662e843a SHA512 abc5f2c4ac91b17a250f2f4847c9528a7673d51230415b7a069dc7243e2c210564400d34d5c38da6b727c8c24af26cbde3e7ef8a9674fa1605da001b4b1b60bb WHIRLPOOL 4d53fa690f81ff1115d0d2aaf3c906d21d4f30b5b2b37932f25e3f6e6c7a5a9920098d66019f5ad70b6bd11e9ed33ce9599de22bb7f7545cf5f5909f516847d9
diff --git a/app-text/tesseract/files/tesseract-3.05.00-libtiff.patch b/app-text/tesseract/files/tesseract-3.05.00-libtiff.patch
new file mode 100644
index 00000000000..5771739c344
--- /dev/null
+++ b/app-text/tesseract/files/tesseract-3.05.00-libtiff.patch
@@ -0,0 +1,25 @@
+From 9ec0c4fa9c9836d414c02662a6f94f48815d61b2 Mon Sep 17 00:00:00 2001
+From: Stefan Weil <sw@weilnetz.de>
+Date: Tue, 13 Dec 2016 13:28:29 +0100
+Subject: [PATCH] api: Add missing dependency on libtiff
+
+It is needed because of a direct call to TIFFSetWarningHandler.
+
+Signed-off-by: Stefan Weil <sw@weilnetz.de>
+---
+ api/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/api/Makefile.am b/api/Makefile.am
+index 76a8ed4..25e7f21 100644
+--- a/api/Makefile.am
++++ b/api/Makefile.am
+@@ -90,6 +90,8 @@ tesseract_LDFLAGS = $(OPENCL_LDFLAGS)
+
+ tesseract_LDADD += $(OPENMP_CXXFLAGS)
+
++tesseract_LDADD += -ltiff
++
+ if T_WIN
+ tesseract_LDADD += -lws2_32
+ libtesseract_la_LDFLAGS += -no-undefined -Wl,--as-needed -lws2_32
diff --git a/app-text/tesseract/files/tesseract-3.05.00-no_graphics.patch b/app-text/tesseract/files/tesseract-3.05.00-no_graphics.patch
new file mode 100644
index 00000000000..d6250d66c05
--- /dev/null
+++ b/app-text/tesseract/files/tesseract-3.05.00-no_graphics.patch
@@ -0,0 +1,74 @@
+From 4141de7f8ddb5ac3c39fd9c1fc77ed911c768c3d Mon Sep 17 00:00:00 2001
+From: Bernard Cafarelli <bernard.cafarelli@gmail.com>
+Date: Fri, 27 Jan 2017 12:02:54 +0100
+Subject: [PATCH] Provide SVSync::StartThread() with GRAPHICS_DISABLED
+
+---
+ viewer/svutil.cpp | 44 +++++++++++++++++++++-----------------------
+ 1 file changed, 21 insertions(+), 23 deletions(-)
+
+diff --git a/viewer/svutil.cpp b/viewer/svutil.cpp
+index 34a2286..84a4b94 100644
+--- a/viewer/svutil.cpp
++++ b/viewer/svutil.cpp
+@@ -83,6 +83,27 @@ void SVMutex::Unlock() {
+ #endif
+ }
+
++// Create new thread.
++void SVSync::StartThread(void *(*func)(void*), void* arg) {
++#ifdef _WIN32
++ LPTHREAD_START_ROUTINE f = (LPTHREAD_START_ROUTINE) func;
++ DWORD threadid;
++ HANDLE newthread = CreateThread(
++ NULL, // default security attributes
++ 0, // use default stack size
++ f, // thread function
++ arg, // argument to thread function
++ 0, // use default creation flags
++ &threadid); // returns the thread identifier
++#else
++ pthread_t helper;
++ pthread_attr_t attr;
++ pthread_attr_init(&attr);
++ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
++ pthread_create(&helper, &attr, func, arg);
++#endif
++}
++
+ #ifndef GRAPHICS_DISABLED
+
+ const int kMaxMsgSize = 4096;
+@@ -186,29 +207,6 @@ void SVSemaphore::Wait() {
+ #endif
+ }
+
+-
+-// Create new thread.
+-
+-void SVSync::StartThread(void *(*func)(void*), void* arg) {
+-#ifdef _WIN32
+- LPTHREAD_START_ROUTINE f = (LPTHREAD_START_ROUTINE) func;
+- DWORD threadid;
+- HANDLE newthread = CreateThread(
+- NULL, // default security attributes
+- 0, // use default stack size
+- f, // thread function
+- arg, // argument to thread function
+- 0, // use default creation flags
+- &threadid); // returns the thread identifier
+-#else
+- pthread_t helper;
+- pthread_attr_t attr;
+- pthread_attr_init(&attr);
+- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+- pthread_create(&helper, &attr, func, arg);
+-#endif
+-}
+-
+ // Place a message in the message buffer (and flush it).
+ void SVNetwork::Send(const char* msg) {
+ mutex_send_->Lock();
+--
+2.12.0
+
diff --git a/app-text/tesseract/tesseract-3.05.00.ebuild b/app-text/tesseract/tesseract-3.05.00.ebuild
new file mode 100644
index 00000000000..e3d7c887342
--- /dev/null
+++ b/app-text/tesseract/tesseract-3.05.00.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_PN="tesseract-ocr"
+LANGPACKV="3.04.00"
+URI_PREFIX="https://github.com/${MY_PN}/tessdata/raw/${LANGPACKV}/"
+JAVA_PKG_OPT_USE="scrollview"
+
+inherit autotools java-pkg-opt-2 toolchain-funcs
+
+DESCRIPTION="An OCR Engine, orginally developed at HP, now open source."
+HOMEPAGE="https://github.com/tesseract-ocr"
+SRC_URI="https://github.com/${MY_PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${URI_PREFIX}eng.traineddata -> eng.traineddata-${LANGPACKV}
+ math? ( ${URI_PREFIX}equ.traineddata -> equ.traineddata-${LANGPACKV} )
+ l10n_ar? ( ${URI_PREFIX}ara.traineddata -> ara.traineddata-${LANGPACKV} )
+ l10n_bg? ( ${URI_PREFIX}bul.traineddata -> bul.traineddata-${LANGPACKV} )
+ l10n_ca? ( ${URI_PREFIX}cat.traineddata -> cat.traineddata-${LANGPACKV} )
+ l10n_chr? ( ${URI_PREFIX}chr.traineddata -> chr.traineddata-${LANGPACKV} )
+ l10n_cs? ( ${URI_PREFIX}ces.traineddata -> ces.traineddata-${LANGPACKV} )
+ l10n_de? ( ${URI_PREFIX}deu.traineddata -> deu.traineddata-${LANGPACKV}
+ ${URI_PREFIX}deu_frak.traineddata -> deu_frak.traineddata-${LANGPACKV} )
+ l10n_da? ( ${URI_PREFIX}dan.traineddata -> dan.traineddata-${LANGPACKV}
+ ${URI_PREFIX}dan_frak.traineddata -> dan_frak.traineddata-${LANGPACKV} )
+ l10n_el? ( ${URI_PREFIX}ell.traineddata -> ell.traineddata-${LANGPACKV} )
+ l10n_es? ( ${URI_PREFIX}spa.traineddata -> spa.traineddata-${LANGPACKV} )
+ l10n_fi? ( ${URI_PREFIX}fin.traineddata -> fin.traineddata-${LANGPACKV} )
+ l10n_fr? ( ${URI_PREFIX}fra.traineddata -> fra.traineddata-${LANGPACKV} )
+ l10n_he? ( ${URI_PREFIX}heb.traineddata -> heb.traineddata-${LANGPACKV} )
+ l10n_hi? ( ${URI_PREFIX}hin.traineddata -> hin.traineddata-${LANGPACKV} )
+ l10n_hu? ( ${URI_PREFIX}hun.traineddata -> hun.traineddata-${LANGPACKV} )
+ l10n_id? ( ${URI_PREFIX}ind.traineddata -> ind.traineddata-${LANGPACKV} )
+ l10n_it? ( ${URI_PREFIX}ita.traineddata -> ita.traineddata-${LANGPACKV} )
+ l10n_ja? ( ${URI_PREFIX}jpn.traineddata -> jpn.traineddata-${LANGPACKV} )
+ l10n_ko? ( ${URI_PREFIX}kor.traineddata -> kor.traineddata-${LANGPACKV} )
+ l10n_lt? ( ${URI_PREFIX}lit.traineddata -> lit.traineddata-${LANGPACKV} )
+ l10n_lv? ( ${URI_PREFIX}lav.traineddata -> lav.traineddata-${LANGPACKV} )
+ l10n_nl? ( ${URI_PREFIX}nld.traineddata -> nld.traineddata-${LANGPACKV} )
+ l10n_no? ( ${URI_PREFIX}nor.traineddata -> nor.traineddata-${LANGPACKV} )
+ l10n_pl? ( ${URI_PREFIX}pol.traineddata -> pol.traineddata-${LANGPACKV} )
+ l10n_pt? ( ${URI_PREFIX}por.traineddata -> por.traineddata-${LANGPACKV} )
+ l10n_ro? ( ${URI_PREFIX}ron.traineddata -> ron.traineddata-${LANGPACKV} )
+ l10n_ru? ( ${URI_PREFIX}rus.traineddata -> rus.traineddata-${LANGPACKV} )
+ l10n_sk? ( ${URI_PREFIX}slk.traineddata -> slk.traineddata-${LANGPACKV}
+ ${URI_PREFIX}slk_frak.traineddata -> slk_frak.traineddata-${LANGPACKV} )
+ l10n_sl? ( ${URI_PREFIX}slv.traineddata -> slv.traineddata-${LANGPACKV} )
+ l10n_sr? ( ${URI_PREFIX}srp.traineddata -> srp.traineddata-${LANGPACKV} )
+ l10n_sv? ( ${URI_PREFIX}swe.traineddata -> swe.traineddata-${LANGPACKV} )
+ l10n_th? ( ${URI_PREFIX}tha.traineddata -> tha.traineddata-${LANGPACKV} )
+ l10n_tl? ( ${URI_PREFIX}tgl.traineddata -> tgl.traineddata-${LANGPACKV} )
+ l10n_tr? ( ${URI_PREFIX}tur.traineddata -> tur.traineddata-${LANGPACKV} )
+ l10n_uk? ( ${URI_PREFIX}ukr.traineddata -> ukr.traineddata-${LANGPACKV} )
+ l10n_vi? ( ${URI_PREFIX}vie.traineddata -> vie.traineddata-${LANGPACKV} )
+ l10n_zh-CN? ( ${URI_PREFIX}chi_sim.traineddata -> chi_sim.traineddata-${LANGPACKV} )
+ l10n_zh-TW? ( ${URI_PREFIX}chi_tra.traineddata -> chi_tra.traineddata-${LANGPACKV} )
+ osd? ( ${URI_PREFIX}osd.traineddata -> osd.traineddata-${LANGPACKV} )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86"
+
+IUSE="doc examples jpeg math opencl osd png scrollview static-libs tiff training webp l10n_ar l10n_bg l10n_ca l10n_chr l10n_cs l10n_de l10n_da l10n_el l10n_es l10n_fi l10n_fr l10n_he l10n_hi l10n_hu l10n_id l10n_it l10n_ja l10n_ko l10n_lt l10n_lv l10n_nl l10n_no l10n_pl l10n_pt l10n_ro l10n_ru l10n_sk l10n_sl l10n_sr l10n_sv l10n_th l10n_tl l10n_tr l10n_uk l10n_vi l10n_zh-CN l10n_zh-TW"
+
+# With opencl USE=tiff is necessary in leptonica
+CDEPEND=">=media-libs/leptonica-1.71:=[zlib,tiff?,jpeg?,png?,webp?]
+ opencl? (
+ virtual/opencl
+ media-libs/tiff:0=
+ media-libs/leptonica:=[tiff]
+ )
+ scrollview? (
+ >=dev-java/piccolo2d-3.0:0
+ )
+ training? (
+ dev-libs/icu:=
+ x11-libs/pango:=
+ x11-libs/cairo:=
+ )
+"
+
+DEPEND="${CDEPEND}
+ doc? ( app-doc/doxygen )
+ scrollview? ( >=virtual/jdk-1.7 )"
+
+RDEPEND="${CDEPEND}
+ scrollview? ( >=virtual/jre-1.7 )"
+
+DOCS=( AUTHORS ChangeLog NEWS README.md )
+
+PATCHES=(
+ "${FILESDIR}/${P}-libtiff.patch"
+ "${FILESDIR}/${P}-no_graphics.patch"
+ "${FILESDIR}/${PN}-4.00.00-use-system-piccolo2d.patch"
+)
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ find "${DISTDIR}/" -name "*traineddata-${LANGPACKV}" \
+ -execdir sh -c 'cp -- "$0" "${S}/tessdata/${0%-*}"' '{}' ';' || die
+}
+
+src_prepare() {
+ default
+ eautoreconf
+
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-shared
+ $(use_enable opencl)
+ $(use_enable scrollview graphics)
+ $(use_enable static-libs static)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ default
+ use doc && emake doc
+ use scrollview && emake ScrollView.jar JAVAC="javac $(java-pkg_javac-args)"
+ use training && emake training
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/html/. )
+ default
+ prune_libtool_files
+
+ if use training; then
+ emake DESTDIR="${D}" training-install
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins testing/eurotext.tif testing/phototest.tif
+ fi
+
+ insinto /usr/share/tessdata
+ doins tessdata/*traineddata* # language files
+ use scrollview && doins java/ScrollView.jar # scrollview
+}