summary refs log tree commit diff
path: root/gnu/packages/language.scm
diff options
context:
space:
mode:
authorAlex Vong <alexvong1995@gmail.com>2019-08-08 13:42:46 +0800
committerAlex Vong <alexvong1995@gmail.com>2019-09-17 13:29:12 +0800
commit410387ad058f94be5e633a84642d2133b1c8f77a (patch)
treeceaae1d444a1551986a21d9d499438f1fb832c4c /gnu/packages/language.scm
parent16dd1fd044b3d47939707e0a863cb461c7455d25 (diff)
downloadguix-410387ad058f94be5e633a84642d2133b1c8f77a.tar.gz
gnu: Add python2-tegaki-wagomu.
* gnu/packages/language.scm
(python2-tegaki-wagomu, remove-pre-compiled-files-modules): New variables.
(remove-pre-compiled-files, tegaki-release-uri): New procedures.
Diffstat (limited to 'gnu/packages/language.scm')
-rw-r--r--gnu/packages/language.scm75
1 files changed, 74 insertions, 1 deletions
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 73376feecb..cc685437c9 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 ng0 <ng0@n0.is>
+;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,12 +21,17 @@
 
 (define-module (gnu packages language)
   #:use-module (gnu packages)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages perl-check)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages web)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
-  #:use-module ((guix licenses) #:select (gpl2 gpl3 perl-license))
+  #:use-module (guix build-system python)
+  #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3 perl-license))
   #:use-module (guix download))
 
 (define-public perl-lingua-en-findnumber
@@ -406,3 +412,70 @@ string can be easily inferred by a human just by reading the identifier.")
     (description "This module is a rather incomplete implementation of work
 done by Gudrun Putze-Meier.")
     (license perl-license)))
+
+(define* (tegaki-release-uri proj version
+                             #:optional (ext "tar.gz"))
+  (string-append "https://github.com/tegaki/tegaki/releases/download"
+                 "/v" version "/" proj "-" version "." ext))
+
+(define remove-pre-compiled-files
+  (lambda exts
+    "Return snippet for removing pre-compiled files matching one of the
+extensions in EXTS."
+    `(begin (for-each delete-file
+                      (find-files "."
+                                  (lambda (name _)
+                                    (any (cut string-suffix? <> name)
+                                         (map (cut string-append "." <>)
+                                              ',exts)))))
+            #t)))
+
+;;; modules required for the above snippet
+(define remove-pre-compiled-files-modules
+  '((guix build utils)
+    (srfi srfi-1)
+    (srfi srfi-26)))
+
+(define-public python2-tegaki-wagomu
+  (package
+    (name "python2-tegaki-wagomu")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (tegaki-release-uri "tegaki-wagomu" version))
+       (sha256
+        (base32
+         "1pzdiq4zy1nyylaj9i6v2h4h0r05klahskzpafpp367p4rysi1x9"))
+       (modules remove-pre-compiled-files-modules)
+       (snippet (remove-pre-compiled-files "pyc"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2 ; only Python 2 is supported
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-recognizer
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; fix missing module and function
+             (substitute* "tegakiwagomu.py"
+               (("import Results,")
+                "import ")
+               (("def _recognize")
+                "def recognize")
+               (("Results\\(candidates\\)")
+                "candidates"))
+             #t)))))
+    (inputs
+     `(("glib" ,glib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("swig" ,swig)))
+    (home-page "https://tegaki.github.io/")
+    (synopsis
+     "Chinese and Japanese Handwriting Recognition (Recognition engine)")
+    (description
+     "Tegaki is an ongoing project which aims to develop a free and open-source
+modern implementation of handwriting recognition software, specifically
+designed for Chinese (simplified and traditional) and Japanese, and that is
+suitable for both the desktop and mobile devices.")
+    (license gpl2+))) ; all files