diff options
-rw-r--r-- | pkgs/applications/graphics/tesseract/default.nix | 70 | ||||
-rw-r--r-- | pkgs/applications/graphics/tesseract/tesseract3.nix | 67 | ||||
-rw-r--r-- | pkgs/applications/graphics/tesseract/tesseract4.nix (renamed from pkgs/applications/graphics/tesseract/4.x.nix) | 0 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 5 |
4 files changed, 77 insertions, 65 deletions
diff --git a/pkgs/applications/graphics/tesseract/default.nix b/pkgs/applications/graphics/tesseract/default.nix index 7940079d09948..6da6931eea385 100644 --- a/pkgs/applications/graphics/tesseract/default.nix +++ b/pkgs/applications/graphics/tesseract/default.nix @@ -1,67 +1,11 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig -, leptonica, libpng, libtiff, icu, pango, opencl-headers -# Supported list of languages or `null' for all available languages -, enableLanguages ? null -# if you want just a specific list of languages, optionally specify a hash -# to make tessdata a fixed output derivation. -, enableLanguagesHash ? (if enableLanguages == null # all languages - then "1h48xfzabhn0ldbx5ib67cp9607pr0zpblsy8z6fs4knn0zznfnw" - else null) -}: +{ callPackage, lowPrio }: -let tessdata = stdenv.mkDerivation ({ - name = "tessdata"; - src = fetchFromGitHub { - owner = "tesseract-ocr"; - repo = "tessdata"; - rev = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d"; - # when updating don't forget to update the default value fo enableLanguagesHash - sha256 = "1v4b63v5nzcxr2y3635r19l7lj5smjmc9vfk0wmxlryxncb4vpg7"; - }; - buildCommand = '' - cd $src; - for lang in ${if enableLanguages==null then "*.traineddata" else stdenv.lib.concatMapStringsSep " " (x: x+".traineddata") enableLanguages} ; do - install -Dt $out/share/tessdata $src/$lang ; - done; - ''; - preferLocalBuild = true; - } // (stdenv.lib.optionalAttrs (enableLanguagesHash != null) { - # when a hash is given, we make this a fixed output derivation. - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - outputHash = enableLanguagesHash; - })); +let + tesseract3 = callPackage ./tesseract3.nix {}; + tesseract4 = callPackage ./tesseract4.nix {}; in +{ + tesseract = tesseract3; -stdenv.mkDerivation rec { - name = "tesseract-${version}"; - version = "3.05.00"; - - src = fetchFromGitHub { - owner = "tesseract-ocr"; - repo = "tesseract"; - rev = version; - sha256 = "11wrpcfl118wxsv2c3w2scznwb48c4547qml42s2bpdz079g8y30"; - }; - - enableParallelBuilding = true; - - nativeBuildInputs = [ pkgconfig autoreconfHook ]; - buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ]; - - LIBLEPT_HEADERSDIR = "${leptonica}/include"; - - postInstall = '' - for i in ${tessdata}/share/tessdata/*; do - ln -s $i $out/share/tessdata; - done - ''; - - meta = { - description = "OCR engine"; - homepage = https://github.com/tesseract-ocr/tesseract; - license = stdenv.lib.licenses.asl20; - maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux ++ darwin; - }; + tesseract_4 = lowPrio tesseract4; } diff --git a/pkgs/applications/graphics/tesseract/tesseract3.nix b/pkgs/applications/graphics/tesseract/tesseract3.nix new file mode 100644 index 0000000000000..7940079d09948 --- /dev/null +++ b/pkgs/applications/graphics/tesseract/tesseract3.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig +, leptonica, libpng, libtiff, icu, pango, opencl-headers +# Supported list of languages or `null' for all available languages +, enableLanguages ? null +# if you want just a specific list of languages, optionally specify a hash +# to make tessdata a fixed output derivation. +, enableLanguagesHash ? (if enableLanguages == null # all languages + then "1h48xfzabhn0ldbx5ib67cp9607pr0zpblsy8z6fs4knn0zznfnw" + else null) +}: + +let tessdata = stdenv.mkDerivation ({ + name = "tessdata"; + src = fetchFromGitHub { + owner = "tesseract-ocr"; + repo = "tessdata"; + rev = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d"; + # when updating don't forget to update the default value fo enableLanguagesHash + sha256 = "1v4b63v5nzcxr2y3635r19l7lj5smjmc9vfk0wmxlryxncb4vpg7"; + }; + buildCommand = '' + cd $src; + for lang in ${if enableLanguages==null then "*.traineddata" else stdenv.lib.concatMapStringsSep " " (x: x+".traineddata") enableLanguages} ; do + install -Dt $out/share/tessdata $src/$lang ; + done; + ''; + preferLocalBuild = true; + } // (stdenv.lib.optionalAttrs (enableLanguagesHash != null) { + # when a hash is given, we make this a fixed output derivation. + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = enableLanguagesHash; + })); +in + +stdenv.mkDerivation rec { + name = "tesseract-${version}"; + version = "3.05.00"; + + src = fetchFromGitHub { + owner = "tesseract-ocr"; + repo = "tesseract"; + rev = version; + sha256 = "11wrpcfl118wxsv2c3w2scznwb48c4547qml42s2bpdz079g8y30"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ]; + + LIBLEPT_HEADERSDIR = "${leptonica}/include"; + + postInstall = '' + for i in ${tessdata}/share/tessdata/*; do + ln -s $i $out/share/tessdata; + done + ''; + + meta = { + description = "OCR engine"; + homepage = https://github.com/tesseract-ocr/tesseract; + license = stdenv.lib.licenses.asl20; + maintainers = with stdenv.lib.maintainers; [viric]; + platforms = with stdenv.lib.platforms; linux ++ darwin; + }; +} diff --git a/pkgs/applications/graphics/tesseract/4.x.nix b/pkgs/applications/graphics/tesseract/tesseract4.nix index 2ebca09b831fd..2ebca09b831fd 100644 --- a/pkgs/applications/graphics/tesseract/4.x.nix +++ b/pkgs/applications/graphics/tesseract/tesseract4.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index df5e40734b62a..e1205b36b0a46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19485,8 +19485,9 @@ in termtosvg = callPackage ../tools/misc/termtosvg { }; - tesseract = callPackage ../applications/graphics/tesseract { }; - tesseract_4 = lowPrio (callPackage ../applications/graphics/tesseract/4.x.nix { }); + inherit (callPackage ../applications/graphics/tesseract {}) + tesseract + tesseract_4; tetraproc = callPackage ../applications/audio/tetraproc { }; |