guix_mirror_bot pushed a commit to branch master
in repository guix.

commit b34c008144708fb442da58a0b13e950fb5b7e7e6
Author: gnuphilic <>
AuthorDate: Fri Oct 10 01:39:12 2025 +0300

    gnu: apertium: Update to 3.9.12
    
    * gnu/packages/dictionaries.scm(apertium): Update to 3.9.12
      Also make the apertium script use store paths.
    
    Change-Id: Ic147f3219bc5bfcc0a907a5cbf06ac476de8b3f8
    Signed-off-by: Ekaitz Zarraga <[email protected]>
---
 gnu/packages/dictionaries.scm | 61 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 46 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 23c5f4b51d..55cd6fbf40 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -494,20 +494,20 @@ word (e.g. cats) into its lemma \"cat\" and the 
grammatical information
 (define-public apertium
   (package
     (name "apertium")
-    (version "3.5.2")
+    (version "3.9.12")
     (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/apertium/apertium/releases/download/v";
-             version "/apertium-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0lrx58ipx2kzh1pd3xm1viz05dqyrq38jbnj9dnk92c9ckkwkp4h"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+       (origin
+        (method git-fetch)
+        (file-name (git-file-name name version))
+        (uri
+         (git-reference
+          (url "https://github.com/apertium/apertium";)
+          (commit (string-append "v" version))))
+        (sha256 (base32 
"1wkb8dqcamk42y67plj77n8d27g5qlsnpkgxnkvm0wv2pr35gmzw"))))
     (build-system gnu-build-system)
     (inputs
-     (list libxml2 libxslt lttoolbox pcre))
+     (list libxml2 libxslt lttoolbox pcre icu4c utfcpp-2 zip unzip
+          (libc-utf8-locales-for-target)));; tests require UTF-8
     (native-inputs
      `(("apertium-get"
         ,(origin
@@ -518,10 +518,15 @@ word (e.g. cats) into its lemma \"cat\" and the 
grammatical information
            (sha256
             (base32
              "0kgp68azvds7yjwfz57z8sa5094fyk5yr0qxzblrw7bisrrihnav"))))
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
        ("flex" ,flex)
        ("pkg-config" ,pkg-config)
-       ;; python is only required for running the test suite
-       ("python" ,python)))
+       ;; Only required for running the test suite:
+       ("python" ,python)
+       ("python-lxml" ,python-lxml)
+       ("libzip" ,libzip)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -531,8 +536,34 @@ word (e.g. cats) into its lemma \"cat\" and the 
grammatical information
          (add-after 'unpack 'unpack-apertium-get
            (lambda* (#:key inputs #:allow-other-keys)
              (copy-recursively (assoc-ref inputs "apertium-get")
-                               "apertium/apertium-get")
-             #t)))))
+                               "apertium/apertium-get")))
+         (add-after 'unpack 'reconf
+           (lambda _
+            (invoke "autoreconf" "-vfi")))
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "apertium/Makefile.am"
+               (("xmllint") (search-input-file inputs "/bin/xmllint")))
+             (substitute* "apertium/apertium-header.sh"
+               (("locale -a")
+                (string-append (search-input-file inputs "/bin/locale") " -a"))
+               ;; 'locale -a' does not report properly in guix;
+               ;; a  `guix shell -C glibc glibc-locales - locale -a`
+               ;; will still only list C and POSIX
+               ;; alternatively we could replace the `locale -a` invocations
+               ;; with something along the lines of `{ locale -a ; echo 
$LC_ALL }`
+               ;; or `{ locale -a; locale | grep LC_CTYPE | cut -d= -f2 | tr 
-d '"' }.`
+               (("^locale_utf8\n$")
+                "# locale_utf8 # disabled by guix \n" )
+               ;; replace in everywhere but the shebang
+               (("bash([^\n])" _ suffix)
+                (string-append (search-input-file inputs "/bin/bash") suffix))
+               
(("\\b(grep|head|cat|rm|unzip|zip|gawk|awk|find|xmllint|lt-tmxproc)\\b" _ 
program)
+                (search-input-file inputs (format #f "/bin/~a" program))))))
+         ;; We want the shebang to be patched so that the invocation during
+         ;; tests does not need /usr/bin/env
+         (add-after 'build 'patch-apertium-shebang
+           (lambda _ (patch-shebang "apertium/apertium"))))))
     (home-page "https://www.apertium.org/";)
     (synopsis "Rule based machine translation system")
     (description "Apertium is a rule based machine translation system

Reply via email to