[bug#33540,2/3] gnu: Add lttoolbox.

Message ID 20181130071612.6268-2-arunisaac@systemreboot.net
State Accepted
Headers show
Series [bug#33540,1/3] gnu: dictionaries: Use license prefix. | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied
cbaines/applying patch fail Apply failed
cbaines/applying patch fail Apply failed

Commit Message

Arun Isaac Nov. 30, 2018, 7:16 a.m. UTC
* gnu/packages/dictionaries.scm (lttoolbox): New variable.
---
 gnu/packages/dictionaries.scm | 43 ++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

Comments

Ludovic Courtès Dec. 2, 2018, 10:26 p.m. UTC | #1
Arun Isaac <arunisaac@systemreboot.net> skribis:

> * gnu/packages/dictionaries.scm (lttoolbox): New variable.

[...]

> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +             "https://github.com/apertium/lttoolbox/releases/download/v"
> +             version "/lttoolbox-" version ".tar.gz"))

Instead of relying on generated tarballs like this one whose content may
change over time, we’re now switching to using ‘git-fetch’.  Could you
change this one accordingly?

> +         (add-after 'unpack 'patch-autogen
> +           (lambda _
> +             (substitute* "autogen.sh"
> +               ((" && ./configure \"\\$@\"") ""))

Another option to deal with broken autogen.sh scripts is to remove
them.  :-)

> +    (synopsis "Lexical processing toolbox")
> +    (description "Lttoolbox is a toolbox for lexical processing, morphological
> +analysis and generation of words.  Analysis is the process of splitting a
> +word (e.g. cats) into its lemma \"cat\" and the grammatical information
> +<n><pl>.  Generation is the opposite process.")

Maybe @code{<n><pl>}.

OK with these changes, thanks!

Ludo’.
Arun Isaac Dec. 3, 2018, 7:36 a.m. UTC | #2
>> +     (origin
>> +       (method url-fetch)
>> +       (uri (string-append
>> +             "https://github.com/apertium/lttoolbox/releases/download/v"
>> +             version "/lttoolbox-" version ".tar.gz"))
>
> Instead of relying on generated tarballs like this one whose content may
> change over time, we’re now switching to using ‘git-fetch’.  Could you
> change this one accordingly?

I don't think
https://github.com/apertium/apertium/releases/download/v3.5.2/apertium-3.5.2.tar.gz
is an autogenerated tarball. That is at
https://github.com/apertium/apertium/archive/v3.5.2.tar.gz . Should I
still switch to using git-fetch?

That said, I tried building lttoolbox again now, and the hash does seem
to have changed. I don't understand what's going on.

> OK with these changes, thanks!

The other suggested changes are fine. I'll make them once we decide what
to do about the source tarball.
Ludovic Courtès Dec. 3, 2018, 9:36 a.m. UTC | #3
Arun Isaac <arunisaac@systemreboot.net> skribis:

>>> +     (origin
>>> +       (method url-fetch)
>>> +       (uri (string-append
>>> +             "https://github.com/apertium/lttoolbox/releases/download/v"
>>> +             version "/lttoolbox-" version ".tar.gz"))
>>
>> Instead of relying on generated tarballs like this one whose content may
>> change over time, we’re now switching to using ‘git-fetch’.  Could you
>> change this one accordingly?
>
> I don't think
> https://github.com/apertium/apertium/releases/download/v3.5.2/apertium-3.5.2.tar.gz
> is an autogenerated tarball. That is at
> https://github.com/apertium/apertium/archive/v3.5.2.tar.gz . Should I
> still switch to using git-fetch?
>
> That said, I tried building lttoolbox again now, and the hash does seem
> to have changed. I don't understand what's going on.

Ouch.  Indeed GitHub has an “asset” feature that some projects use,
which allows them to upload tarballs.  You could use that (esp. since
the project uses the Autotools), except if it turns out to be modified
in place too often…

Ludo’.

Patch

diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 57aac87fc..b97535979 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -30,15 +30,18 @@ 
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages tcl))
+  #:use-module (gnu packages tcl)
+  #:use-module (gnu packages xml))
 
 
 (define-public vera
@@ -286,3 +289,41 @@  Yandex.Translate and Apertium.  It gives you easy access to one of these
 translation engines from your terminal.")
     (license license:public-domain)))
 
+(define-public lttoolbox
+  (package
+    (name "lttoolbox")
+    (version "3.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/apertium/lttoolbox/releases/download/v"
+             version "/lttoolbox-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0p8yjjyx1jqhxj8n5afmmhb55h4xg8gn2pysx0k2mnp8ic1hnzri"))
+       (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libxml2" ,libxml2)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-autogen
+           (lambda _
+             (substitute* "autogen.sh"
+               ((" && ./configure \"\\$@\"") ""))
+             #t)))))
+    (home-page "http://wiki.apertium.org/wiki/Lttoolbox")
+    (synopsis "Lexical processing toolbox")
+    (description "Lttoolbox is a toolbox for lexical processing, morphological
+analysis and generation of words.  Analysis is the process of splitting a
+word (e.g. cats) into its lemma \"cat\" and the grammatical information
+<n><pl>.  Generation is the opposite process.")
+    (license (list license:gpl2 ; main license
+                   license:expat)))) ; utf8/*