Update tesseract + deps (#8259)

* Update giflib, leptonica

* update tesseract
This commit is contained in:
Satadru Pramanik, DO, MPH, MEng
2023-05-14 08:13:20 -07:00
committed by GitHub
parent 54ea10b278
commit 52a77dd660
3 changed files with 154 additions and 96 deletions

View File

@@ -3,31 +3,30 @@ require 'package'
class Giflib < Package
description 'giflib is a library for reading and writing gif images.'
homepage 'http://giflib.sourceforge.net/'
version '5.1.4'
version '5.2.1'
license 'MIT'
compatibility 'all'
source_url 'https://prdownloads.sourceforge.net/project/giflib/giflib-5.1.4.tar.bz2'
source_sha256 'df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5'
source_url 'https://downloads.sourceforge.net/project/giflib/giflib-5.2.1.tar.gz'
source_sha256 '31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd'
binary_url({
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.1.4_armv7l/giflib-5.1.4-chromeos-armv7l.tar.xz',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.1.4_armv7l/giflib-5.1.4-chromeos-armv7l.tar.xz',
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.1.4_i686/giflib-5.1.4-chromeos-i686.tar.xz',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.1.4_x86_64/giflib-5.1.4-chromeos-x86_64.tar.xz'
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.2.1_armv7l/giflib-5.2.1-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.2.1_armv7l/giflib-5.2.1-chromeos-armv7l.tar.zst',
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.2.1_i686/giflib-5.2.1-chromeos-i686.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/giflib/5.2.1_x86_64/giflib-5.2.1-chromeos-x86_64.tar.zst'
})
binary_sha256({
aarch64: '546af3350ca70ffc33ba0c12e6de65efe2fc9bce95ef3c48ab81da2d6cc1cae0',
armv7l: '546af3350ca70ffc33ba0c12e6de65efe2fc9bce95ef3c48ab81da2d6cc1cae0',
i686: 'ad9b824becceb46ad8b22515085ea105497117e10e7550f7ba965398c4d56d36',
x86_64: '2efb3d4ac43bd4400e5af45cf8281e1852b86a2050af1efb0437eb9e92cd3312'
aarch64: '727b6d1cdbcbc59a90d2b759faeaddf29a957bc4670e088683f5f867caf04593',
armv7l: '727b6d1cdbcbc59a90d2b759faeaddf29a957bc4670e088683f5f867caf04593',
i686: 'cc0a7353ec3c691b37e33512f25bd7b5d0d20a57dcc5d516162c3a66b6905c4e',
x86_64: '06bb0ff65e3562c7779671eaa4a0fbd45ae51e01e46e4b4ced6e89df05b6abbf'
})
depends_on 'glibc' # R
def self.build
system './configure',
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
'--disable-dependency-tracking'
system 'make'
# No configure script in the source.
system 'make', "PREFIX=#{CREW_PREFIX}", "LIBDIR=#{CREW_LIB_PREFIX}"
end
def self.check
@@ -35,6 +34,60 @@ class Giflib < Package
end
def self.install
system 'make', "DESTDIR=#{CREW_DEST_DIR}", 'install'
system 'make', "DESTDIR=#{CREW_DEST_DIR}", "PREFIX=#{CREW_PREFIX}", "LIBDIR=#{CREW_LIB_PREFIX}", 'install'
@libname = name.to_s.start_with?('lib') ? name.downcase : "lib#{name.gsub('lib', '').downcase}"
@libnames = Dir["#{CREW_DEST_LIB_PREFIX}/#{@libname}.so*"]
@libnames = Dir["#{CREW_DEST_LIB_PREFIX}/#{@libname}-*.so*"] if @libnames.empty?
@libnames.each do |s|
s.gsub!("#{CREW_DEST_LIB_PREFIX}/", '')
end
@dlname = @libnames.grep(/.so./).first
@libname = @dlname.gsub(/.so.\d+/, '')
@longest_libname = @libnames.max_by(&:length)
@libvars = @longest_libname.rpartition('.so.')[2].split('.')
@libtool_file = <<~LIBTOOLEOF
# #{@libname}.la - a libtool library file
# Generated by libtool (GNU libtool) (Created by Chromebrew)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='#{@dlname}'
# Names of this library.
library_names='#{@libnames.reverse.join(' ')}'
# The name of the static archive.
old_library='#{@libname}.a'
# Linker flags that cannot go in dependency_libs.
inherited_linker_flags=''
# Libraries that this one depends upon.
dependency_libs=''
# Names of additional weak libraries provided by this library
weak_library_names=''
# Version information for #{name}.
current=#{@libvars[1]}
age=#{@libvars[1]}
revision=#{@libvars[2]}
# Is this an already installed library?
installed=yes
# Should we warn about portability when linking against -modules?
shouldnotlink=no
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='#{CREW_LIB_PREFIX}'
LIBTOOLEOF
File.write("#{CREW_DEST_LIB_PREFIX}/#{@libname}.la", @libtool_file)
end
end

View File

@@ -3,46 +3,55 @@ require 'package'
class Leptonica < Package
description 'Software that is broadly useful for image processing and image analysis applications'
homepage 'http://www.leptonica.com/'
@_ver = '1.82.0'
version "#{@_ver}-1"
@_ver = '1.83.1'
version @_ver
license 'Apache-2.0'
compatibility 'all'
compatibility 'x86_64 aarch64 armv7l'
source_url 'https://github.com/DanBloomberg/leptonica.git'
git_hashtag @_ver
binary_url({
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.82.0-1_armv7l/leptonica-1.82.0-1-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.82.0-1_armv7l/leptonica-1.82.0-1-chromeos-armv7l.tar.zst',
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.82.0-1_i686/leptonica-1.82.0-1-chromeos-i686.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.82.0-1_x86_64/leptonica-1.82.0-1-chromeos-x86_64.tar.zst'
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.83.1_armv7l/leptonica-1.83.1-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.83.1_armv7l/leptonica-1.83.1-chromeos-armv7l.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/leptonica/1.83.1_x86_64/leptonica-1.83.1-chromeos-x86_64.tar.zst'
})
binary_sha256({
aarch64: '1860d784a88c153650ab389c339dafa608e350a9790dd2e30e52f1c8b5654115',
armv7l: '1860d784a88c153650ab389c339dafa608e350a9790dd2e30e52f1c8b5654115',
i686: '52e64b338abe4cdae009176a7f55ddb5602cc05ef2c130eb6930708f9302aedc',
x86_64: '5ef3ed7eb5760e110eb58faeb678aa6bfd549b344d91efb7b7e185deb7410acd'
aarch64: '7f2cd928e003b7fa66511514185ceb38b4936329b901bb2aae9447a9798eaf45',
armv7l: '7f2cd928e003b7fa66511514185ceb38b4936329b901bb2aae9447a9798eaf45',
x86_64: '575415215fa8b9a569983c7f5eeea2800118dc3058d429fd9ab750a894c4c7e3'
})
depends_on 'giflib'
depends_on 'libjpeg'
depends_on 'harfbuzz'
depends_on 'libtiff'
depends_on 'libwebp'
depends_on 'openjpeg'
depends_on 'giflib' # R
depends_on 'glibc' # R
depends_on 'libdeflate' # R
depends_on 'harfbuzz' => :build
depends_on 'libdeflate' => :build
depends_on 'libjpeg' # R
depends_on 'libpng' # R
depends_on 'xzutils' # R
depends_on 'libtiff' # R
depends_on 'libwebp' # R
depends_on 'openjpeg' # R
depends_on 'xzutils' => :build
depends_on 'zlibpkg' # R
depends_on 'zstd' # R
depends_on 'zstd' => :build
def self.patch
# See https://github.com/DanBloomberg/leptonica/issues/693
system "sed -i 's,lib/cmake/leptonica,#{ARCH_LIB}/cmake/leptonica,g' CMakeLists.txt"
system "sed -i 's,lib/pkgconfig,#{ARCH_LIB}/pkgconfig,g' CMakeLists.txt"
system "sed -i 's,prefix}/lib,prefix}/#{ARCH_LIB},g' lept.pc.cmake"
system "sed -i 's,set(lib,set(#{ARCH_LIB},g' src/CMakeLists.txt"
system "sed -i 's,DESTINATION lib ARCHIVE DESTINATION lib,DESTINATION #{ARCH_LIB} ARCHIVE DESTINATION #{ARCH_LIB},g' src/CMakeLists.txt"
end
def self.build
system '[ -x configure ] || ./autogen.sh'
system "[ -f Makefile ] || ./configure #{CREW_OPTIONS}"
system 'mold -run make'
system "mold -run cmake -B builddir #{CREW_CMAKE_OPTIONS} \
-DBUILD_SHARED_LIBS=ON \
-Wno-dev \
-G Ninja"
system "#{CREW_NINJA} -C builddir"
end
def self.install
system "make DESTDIR=#{CREW_DEST_DIR} install"
system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install"
end
end

View File

@@ -3,85 +3,81 @@ require 'package'
class Tesseract < Package
description 'A neural net (LSTM) based OCR engine which is focused on line recognition & an older OCR engine which recognizes character patterns.'
homepage 'https://github.com/tesseract-ocr/tesseract'
@_ver = '5.2.0'
version "#{@_ver}-1"
@_ver = '5.3.1'
version @_ver
license 'Apache-2.0'
compatibility 'all'
compatibility 'x86_64 aarch64 armv7l'
source_url 'https://github.com/tesseract-ocr/tesseract.git'
git_hashtag @_ver
binary_url({
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.2.0-1_armv7l/tesseract-5.2.0-1-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.2.0-1_armv7l/tesseract-5.2.0-1-chromeos-armv7l.tar.zst',
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.2.0-1_i686/tesseract-5.2.0-1-chromeos-i686.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.2.0-1_x86_64/tesseract-5.2.0-1-chromeos-x86_64.tar.zst'
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.3.1_armv7l/tesseract-5.3.1-chromeos-armv7l.tar.zst',
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.3.1_armv7l/tesseract-5.3.1-chromeos-armv7l.tar.zst',
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/tesseract/5.3.1_x86_64/tesseract-5.3.1-chromeos-x86_64.tar.zst'
})
binary_sha256({
aarch64: '350272935abbf6bfab1cc3b018243d2e9fa08677d27c2f2feeaac4d57bd75145',
armv7l: '350272935abbf6bfab1cc3b018243d2e9fa08677d27c2f2feeaac4d57bd75145',
i686: 'b40e7e19174f21b38abc0695cd1821d31d1819f4d044d76d716ad724f22f0783',
x86_64: 'd5fe0ec1764be79709c7ee4103a0084c313fbaa433f2a0b2a2ad98a8c30527c6'
aarch64: '7822dc17500f27a28b76ac88637578a262d3e6f5061f7e5c086535d0162eb378',
armv7l: '7822dc17500f27a28b76ac88637578a262d3e6f5061f7e5c086535d0162eb378',
x86_64: '98d8715bf3f19ac7c32bafb76d6664117ecb964d71f0c20bfcf33c4e913917b6'
})
depends_on 'acl' => :build
depends_on 'asciidoc' => :build
depends_on 'cairo'
depends_on 'attr' => :build
depends_on 'brotli' => :build
depends_on 'bz2' => :build
depends_on 'cairo' => :build
depends_on 'c_ares' => :build
depends_on 'curl' # R
depends_on 'docbook_xsl' => :build
depends_on 'fontconfig'
depends_on 'giflib'
depends_on 'glib'
depends_on 'leptonica'
depends_on 'libarchive'
depends_on 'curl'
depends_on 'libjpeg'
depends_on 'openldap'
depends_on 'harfbuzz'
depends_on 'libtiff'
depends_on 'pango'
depends_on 'acl' # R
depends_on 'attr' # R
depends_on 'brotli' # R
depends_on 'bz2' # R
depends_on 'c_ares' # R
depends_on 'e2fsprogs' # R
depends_on 'expat' # R
depends_on 'e2fsprogs' => :build
depends_on 'expat' => :build
depends_on 'fontconfig' # R
depends_on 'freetype' # R
depends_on 'gcc' # R
depends_on 'giflib' # R
depends_on 'glib' => :build
depends_on 'glibc' # R
depends_on 'glib' # R
depends_on 'harfbuzz' # R
depends_on 'icu4c' # R
depends_on 'krb5' # R
depends_on 'libcyrussasl' # R
depends_on 'libdeflate' # R
depends_on 'libidn2' # R
depends_on 'libnghttp2' # R
depends_on 'krb5' => :build
depends_on 'leptonica' # R
depends_on 'libarchive' # R
depends_on 'libcyrussasl' => :build
depends_on 'libdeflate' => :build
depends_on 'libidn2' => :build
depends_on 'libjpeg' # R
depends_on 'libnghttp2' => :build
depends_on 'libpng' # R
depends_on 'libpsl' # R
depends_on 'libssh' # R
depends_on 'libunistring' # R
depends_on 'libpsl' => :build
depends_on 'libssh' => :build
depends_on 'libtiff' # R
depends_on 'libunistring' => :build
depends_on 'libwebp' # R
depends_on 'libxml2' # R
depends_on 'lz4' # R
depends_on 'libxml2' => :build
depends_on 'lz4' => :build
depends_on 'openjpeg' # R
depends_on 'openssl' # R
depends_on 'xzutils' # R
depends_on 'openldap' => :build
depends_on 'openssl' => :build
depends_on 'pango' # R
depends_on 'xzutils' => :build
depends_on 'zlibpkg' # R
depends_on 'zstd' # R
depends_on 'zstd' => :build
git_fetchtags
def self.build
system '[ -x configure ] || ./autogen.sh'
system 'filefix'
system "[ -f Makefile ] || #{CREW_ENV_OPTIONS} ./configure #{CREW_OPTIONS}"
# XML_CATALOG_FILES=#{CREW_PREFIX}/etc/xml/catalog does not get set
# in the Makefile without this, which results in errors at install
system "find . -name 'Makefile' -exec sed -i 's,XML_CATALOG_FILES = ,XML_CATALOG_FILES = #{CREW_PREFIX}/etc/xml/catalog,g' {} +"
system 'make || make'
system 'make training'
system "mold -run cmake -B builddir #{CREW_CMAKE_OPTIONS} \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=#{ARCH_LIB} \
-DENABLE_LTO=ON \
-Wno-dev \
-G Ninja"
system "#{CREW_NINJA} -C builddir"
end
def self.install
system "make DESTDIR=#{CREW_DEST_DIR} install"
system "make DESTDIR=#{CREW_DEST_DIR} training-install"
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/tessdata"
system "curl -Ls https://github.com/tesseract-ocr/tessdata/blob/c2b2e0df86272ce11be323f23f96cf656565ed41/eng.traineddata -o #{CREW_DEST_PREFIX}/share/tessdata/osd.traineddata"
system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install"
end
end