diff mbox series

[bug#46393] gnu: Add ocrfeeder

Message ID CAJsg1E-Lm1znYh6N9vhP9Uaa4hEB07WhjpGHqtxS-ppX1kE6Bw@mail.gmail.com
State Accepted
Headers show
Series [bug#46393] gnu: Add ocrfeeder | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Andy Tai Feb. 14, 2021, 2:40 a.m. UTC
* gnu/packages/gnome.scm (ocrfeeder): New variable
* gnu/packages/python-xyz.scm (python-sane): New variable
---
 gnu/packages/gnome.scm      | 67 ++++++++++++++++++++++++++++++++++++-
 gnu/packages/python-xyz.scm | 25 ++++++++++++++
 2 files changed, 91 insertions(+), 1 deletion(-)

+    (license license:expat)))
\ No newline at end of file

Comments

Leo Famulari Feb. 21, 2021, 12:33 a.m. UTC | #1
On Sat, Feb 13, 2021 at 06:40:57PM -0800, Andy Tai wrote:
> * gnu/packages/gnome.scm (ocrfeeder): New variable
> * gnu/packages/python-xyz.scm (python-sane): New variable

In general, we add packages one commit at a time, so we prefer to
receive this as two patches. First, a patch that adds python-sane, and
then a second patch adding ocrfeeder.

> +(define-public ocrfeeder

Overall LGTM, thanks!

> +    (synopsis "A Complete OCR Suite")

I would write, simply, "Complete OCR Suite". For some reason, the linter
doesn't complain for me, but it should recommend against starting
synopses with an article. That is, with "a", "an", or "the".

https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html

> +    (description "OCRFeeder is a complete Optical Character
> Recognition and Document Analysis and Recognition program")

And make sure to end the sentence with a period "."

> +(define-public python-sane

Great!

> +    (synopsis "Python interface to the SANE scanner")
> +    (description "Python interface to the SANE scanner and frame
> grabber interface for Linux")

We prefer to use complete sentences in the description. You can always
make it simple:

"This package provides Python interface to the SANE scanner and frame
grabber interface for Linux."

> +    (license license:expat)))

I looked in the repo and it doesn't look like the expat license:

https://directory.fsf.org/wiki/License:Expat

I'm not sure what it is? Can you do a little research? That FSF license
directory might help.
Andy Tai Feb. 21, 2021, 6:37 a.m. UTC | #2
On Sat, Feb 20, 2021 at 4:34 PM Leo Famulari <leo@famulari.name> wrote:
>
> On Sat, Feb 13, 2021 at 06:40:57PM -0800, Andy Tai wrote:
> > * gnu/packages/gnome.scm (ocrfeeder): New variable
> > * gnu/packages/python-xyz.scm (python-sane): New variable
>
> In general, we add packages one commit at a time, so we prefer to
> receive this as two patches. First, a patch that adds python-sane, and
> then a second patch adding ocrfeeder.
>
I have made python-sane addition a separate patch,
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46675


>
> > +(define-public python-sane
> > +    (description "Python interface to the SANE scanner and frame
> > grabber interface for Linux")
>
> We prefer to use complete sentences in the description. You can always
> make it simple:
>
> "This package provides Python interface to the SANE scanner and frame
> grabber interface for Linux."
>

changed as suggested

> > +    (license license:expat)))
>
> I looked in the repo and it doesn't look like the expat license:
>
> https://directory.fsf.org/wiki/License:Expat
>
> I'm not sure what it is? Can you do a little research? That FSF license
> directory might help.


I double checked and the FSF uses expat to refer to MIT-style license.
I put a comment in the python-sane patch to that effect.

Thanks
Leo Famulari Feb. 22, 2021, 6:27 p.m. UTC | #3
On Sat, Feb 20, 2021 at 10:37:27PM -0800, Andy Tai wrote:
> On Sat, Feb 20, 2021 at 4:34 PM Leo Famulari <leo@famulari.name> wrote:
> > I looked in the repo and it doesn't look like the expat license:
> >
> > https://directory.fsf.org/wiki/License:Expat
> >
> > I'm not sure what it is? Can you do a little research? That FSF license
> > directory might help.
> 
> 
> I double checked and the FSF uses expat to refer to MIT-style license.
> I put a comment in the python-sane patch to that effect.

Sorry, but this is not the expat license. It's a completely different
text.

In terms of concrete differences, at least, the requirement not to use
the author's name for "advertising" is not part of the expat license.

It's basically a variation on these:

https://www.xfree86.org/4.0.2/LICENSE3.html

I pushed a followup commit, adjusting the package to use the generic
"non-copyleft" license.
Andy Tai Feb. 22, 2021, 6:29 p.m. UTC | #4
Thanks for clarifying the license:-)

On Mon, Feb 22, 2021 at 10:27 AM Leo Famulari <leo@famulari.name> wrote:
>
> On Sat, Feb 20, 2021 at 10:37:27PM -0800, Andy Tai wrote:
> > On Sat, Feb 20, 2021 at 4:34 PM Leo Famulari <leo@famulari.name> wrote:
> > > I looked in the repo and it doesn't look like the expat license:
> > >
> > > https://directory.fsf.org/wiki/License:Expat
> > >
> > > I'm not sure what it is? Can you do a little research? That FSF license
> > > directory might help.
> >
> >
> > I double checked and the FSF uses expat to refer to MIT-style license.
> > I put a comment in the python-sane patch to that effect.
>
> Sorry, but this is not the expat license. It's a completely different
> text.
>
> In terms of concrete differences, at least, the requirement not to use
> the author's name for "advertising" is not part of the expat license.
>
> It's basically a variation on these:
>
> https://www.xfree86.org/4.0.2/LICENSE3.html
>
> I pushed a followup commit, adjusting the package to use the generic
> "non-copyleft" license.
diff mbox series

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0f0b7c8157..be6e825ddd 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -56,7 +56,7 @@ 
 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
-;;; Copyright © 2020 Andy Tai <atai@atai.org>
+;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -149,6 +149,7 @@ 
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages node)
   #:use-module (gnu packages nss)
+  #:use-module (gnu packages ocr)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages password-utils)
@@ -12034,3 +12035,67 @@  for the GNOME 3.x platform with many
features.  It aims to be a very complete
 editing environment for translation issues within the GNU gettext/GNOME desktop
 world.")
     (license license:gpl3+)))
+
+
+(define-public ocrfeeder
+  (package
+    (name "ocrfeeder")
+    (version "0.8.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/ocrfeeder/"
+                                  (version-major+minor version) "/"
+                                  "ocrfeeder-" version ".tar.xz"))
+              (sha256
+               (base32
+                "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after
+          'install 'wrap-program
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((prog (string-append (assoc-ref outputs "out")
+                                       "/bin/" "ocrfeeder"))
+                  (pylib (string-append (assoc-ref outputs "out")
+                                        "/lib/python"
+                                        ,(version-major+minor
+                                          (package-version python))
+                                        "/site-packages")))
+              (wrap-program prog
+                `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
+                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+              #t)))
+         )))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")                   ; for glib-compile-resources
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")                   ; for gtk-update-icon-cache
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("enchant" ,enchant)
+       ("glib" ,glib)
+       ("goocanvas" ,goocanvas)
+       ("gtk" ,gtk+)
+       ("gtkspell3" ,gtkspell3)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libtiff" ,libtiff)
+       ("libraw" ,libraw)
+       ("ocrad" ,ocrad)
+       ("python" ,python-wrapper)
+       ("python-pygobject" ,python-pygobject)
+       ("python-odfpy" ,python-odfpy)
+       ("python-pillow" ,python-pillow)
+       ("python-pyenchant" ,python-pyenchant)
+       ("python-reportlab" ,python-reportlab)
+       ("python-sane" ,python-sane)
+       ("sane-backends" ,sane-backends)
+       ("tesseract-ocr" ,tesseract-ocr)))
+    (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
+    (synopsis "A Complete OCR Suite")
+    (description "OCRFeeder is a complete Optical Character
Recognition and Document Analysis and Recognition program")
+    (license license:gpl3+)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e879742e5f..1c9bb2f77d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -96,6 +96,7 @@ 
 ;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 EuAndreh <eu@euandre.org>
+;;; Copyright © 2021 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -179,6 +180,7 @@ 
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages search)
+  #:use-module (gnu packages scanner)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
@@ -23735,3 +23737,26 @@  implementations.")
       "Pivy provides python bindings for Coin, a 3D graphics library with an
 Application Programming Interface based on the Open Inventor 2.1 API.")
     (license license:isc)))
+
+
+
+(define-public python-sane
+  (package
+    (name "python-sane")
+    (version "2.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri name version))
+        (sha256
+          (base32
+            "1pi597z94n2mkd821ln52fq0g727n2jxfskf280ip3kf7jw8w294"))))
+    (build-system python-build-system)
+    (native-inputs
+      `(("python-pytest" ,python-pytest)))
+    (inputs
+      `(("sane-backends" ,sane-backends)))
+    (home-page "https://github.com/python-pillow/Sane")
+    (synopsis "Python interface to the SANE scanner")
+    (description "Python interface to the SANE scanner and frame
grabber interface for Linux")