app-text/tesseract: Fix ScrollViewer
authorJames Le Cuirot <chewi@gentoo.org>
Sat, 30 Jan 2016 11:17:29 +0000 (11:17 +0000)
committerJames Le Cuirot <chewi@gentoo.org>
Mon, 1 Feb 2016 17:12:19 +0000 (17:12 +0000)
Use the system piccolo2d to build the ScrollViewer server. Stage it
manually instead of using install-jars so we don't have to sed through
the files and copy the bundled piccolo2d.

Many thanks to Olivier Diotte for the initial work on this. See
https://github.com/gentoo/gentoo/pull/719 for the details.

Package-Manager: portage-2.2.27

app-text/tesseract/files/tesseract-3.04.00-use-system-piccolo2d.patch [new file with mode: 0644]
app-text/tesseract/tesseract-3.04.00-r4.ebuild

diff --git a/app-text/tesseract/files/tesseract-3.04.00-use-system-piccolo2d.patch b/app-text/tesseract/files/tesseract-3.04.00-use-system-piccolo2d.patch
new file mode 100644 (file)
index 0000000..decee3a
--- /dev/null
@@ -0,0 +1,39 @@
+--- a/java/Makefile.am 2015-07-11 03:53:12.000000000 -0400
++++ b/java/Makefile.am 2016-01-20 22:20:37.505713349 -0500
+@@ -36,10 +36,9 @@
+       com/google/scrollview/ScrollView.class
+ 
+ SCROLLVIEW_LIBS = \
+-      $(srcdir)/piccolo2d-core-3.0.jar \
+-      $(srcdir)/piccolo2d-extras-3.0.jar
++      /usr/share/piccolo2d/lib/piccolo2d.jar
+ 
+-CLASSPATH = $(srcdir)/piccolo2d-core-3.0.jar:$(srcdir)/piccolo2d-extras-3.0.jar
++CLASSPATH = /usr/share/piccolo2d/lib/piccolo2d.jar
+ 
+ ScrollView.jar : $(SCROLLVIEW_CLASSES)
+       $(JAR) cf $@ com/google/scrollview/*.class \
+--- a/viewer/svutil.cpp        2015-07-11 03:53:12.000000000 -0400
++++ b/viewer/svutil.cpp        2016-01-21 01:46:30.203461826 -0500
+@@ -302,7 +302,7 @@
+ #else
+   const char* cmd_template = "-c \"trap 'kill %%1' 0 1 2 ; java "
+       "-Xms1024m -Xmx2048m -Djava.library.path=%s -cp %s/ScrollView.jar:"
+-      "%s/piccolo2d-core-3.0.jar:%s/piccolo2d-extras-3.0.jar"
++      "/usr/share/piccolo2d/lib/piccolo2d.jar"
+       " com.google.scrollview.ScrollView"
+       " & wait\"";
+ #endif
+--- a/viewer/Makefile.am       2015-07-11 03:53:12.000000000 -0400
++++ b/viewer/Makefile.am       2016-01-21 03:37:04.355789682 -0500
+@@ -5,6 +5,10 @@
+     -fvisibility=hidden -fvisibility-inlines-hidden
+ endif
+ 
++if !GRAPHICS_DISABLED
++AM_CPPFLAGS += -DSCROLLVIEW_PATH=/usr/share/tessdata/
++endif
++
+ noinst_HEADERS = \
+     scrollview.h svmnode.h svutil.h
+ 
index 42e7f1b72ec91b4463a400e9c465bda70c2705be..8fce6ae0baa56a2138f56a3f3982eb6eda8d4a91 100644 (file)
@@ -6,8 +6,9 @@ EAPI=5
 
 MY_PN="tesseract-ocr"
 URI_PREFIX="https://github.com/${MY_PN}/tessdata/raw/${PV}/"
+JAVA_PKG_OPT_USE="scrollview"
 
-inherit eutils autotools
+inherit eutils autotools java-pkg-opt-2
 
 DESCRIPTION="An OCR Engine, orginally developed at HP, now open source."
 HOMEPAGE="https://github.com/tesseract-ocr"
@@ -65,25 +66,34 @@ KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
 IUSE="doc examples jpeg math opencl osd png +scrollview static-libs tiff training -webp linguas_ar linguas_bg linguas_ca linguas_chr linguas_cs linguas_de linguas_da linguas_el linguas_es linguas_fi linguas_fr linguas_he linguas_hi linguas_hu linguas_id linguas_it linguas_jp linguas_ko linguas_lt linguas_lv linguas_nl linguas_no linguas_pl linguas_pt linguas_ro linguas_ru linguas_sk linguas_sl linguas_sr linguas_sv linguas_th linguas_tl linguas_tr linguas_uk linguas_vi linguas_zh_CN linguas_zh_TW"
 
 # With opencl USE=tiff is necessary in leptonica
-DEPEND=">=media-libs/leptonica-1.71:=[zlib,tiff?,jpeg?,png?,webp?]
+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:=
        )
 "
-RDEPEND="${DEPEND}"
+
+DEPEND="${CDEPEND}
+       scrollview? ( >=virtual/jdk-1.7 )"
+
+RDEPEND="${CDEPEND}
+       scrollview? ( >=virtual/jre-1.7 )"
 
 DOCS=(AUTHORS ChangeLog NEWS README ReleaseNotes )
 
 PATCHES=(
        "${FILESDIR}/tesseract-2.04-gcc47.patch"
        "${FILESDIR}/${P}-fix-scrollview-disabled.patch"
+       "${FILESDIR}/${P}-use-system-piccolo2d.patch"
 )
 
 src_unpack() {
@@ -96,6 +106,8 @@ src_unpack() {
 src_prepare() {
        epatch "${PATCHES[@]}"
        eautoreconf
+
+       java-pkg-opt-2_src_prepare
 }
 
 src_configure() {
@@ -111,6 +123,7 @@ src_configure() {
 
 src_compile() {
        default
+       use scrollview && emake ScrollView.jar JAVAC="javac $(java-pkg_javac-args)"
        use training && emake training
 }
 
@@ -131,7 +144,7 @@ src_install() {
                dohtml -r "${WORKDIR}/${MY_PN}"/doc/html/*
        fi
 
-       # install language files
        insinto /usr/share/tessdata
-       doins tessdata/*traineddata*
+       doins tessdata/*traineddata* # language files
+       use scrollview && doins java/ScrollView.jar # scrollview
 }