gnu: mdadm: Add compilation fix for gcc-4.9.
[jackhill/guix/guix.git] / gnu / packages / gettext.scm
index 6b05605..9289946 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,7 +18,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages gettext)
-  #:use-module ((guix licenses) #:select (gpl3))
+  #:use-module ((guix licenses) #:select (gpl3+))
   #:use-module (gnu packages)
   #:use-module (guix packages)
   #:use-module (guix download)
 (define-public gnu-gettext
   (package
     (name "gettext")
-    (version "0.18.3.1")
+    (version "0.19.4")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gettext/gettext-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0p940zmmw1lndvdhck2vrazikjhr02affwy47mmpfxqvacrrm3qd"))))
+               "0gvz86m4cs8bdf3mwmwsyx6lrq4ydfxgadrgd9jlx32z3bnz3jca"))
+             (patches (list (search-patch "gettext-msgunfmt.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("expat" ,expat)))
     (arguments
      `(#:phases (alist-cons-before
-                 'configure 'link-expat
-                 (lambda _
-                   (substitute* "gettext-tools/configure"
-                     (("LIBEXPAT=\"-ldl\"") "LIBEXPAT=\"-ldl -lexpat\"")
-                     (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\"")))
-                (alist-cons-before
                  'check 'patch-tests
                  (lambda* (#:key inputs #:allow-other-keys)
-                   (let ((bash (which "sh")))
-                     (substitute* (find-files "gettext-tools/tests"
-                                              "^msgexec-[0-9]")
-                       (("#![[:blank:]]/bin/sh")
-                        (format #f "#!~a" bash)))
-                     (substitute* (find-files "gettext-tools/gnulib-tests"
-                                              "posix_spawn")
-                       (("/bin/sh")
-                        bash))))
-                 %standard-phases))))
+                   (let* ((bash (which "sh")))
+                     ;; Some of the files we're patching are
+                     ;; ISO-8859-1-encoded, so choose it as the default
+                     ;; encoding so the byte encoding is preserved.
+                     (with-fluids ((%default-port-encoding #f))
+                       (substitute*
+                           (find-files "gettext-tools/tests"
+                                       "^(lang-sh|msg(exec|filter)-[0-9])")
+                         (("#![[:blank:]]/bin/sh")
+                          (format #f "#!~a" bash)))
+
+                       (substitute* (cons "gettext-tools/src/msginit.c"
+                                          (find-files "gettext-tools/gnulib-tests"
+                                                      "posix_spawn"))
+                         (("/bin/sh")
+                          bash))
+
+                       (substitute* "gettext-tools/src/project-id"
+                         (("/bin/pwd")
+                          "pwd")))))
+                 (alist-cons-before
+                  'configure 'link-expat
+                  (lambda _
+                    ;; Gettext defaults to opening expat via dlopen on
+                    ;; "Linux".  Change to link directly.
+                    (substitute* "gettext-tools/configure"
+                      (("LIBEXPAT=\"-ldl\"") "LIBEXPAT=\"-ldl -lexpat\"")
+                      (("LTLIBEXPAT=\"-ldl\"") "LTLIBEXPAT=\"-ldl -lexpat\"")))
+                  %standard-phases))
+
+       ;; When tests fail, we want to know the details.
+       #:make-flags '("VERBOSE=yes")))
     (home-page "http://www.gnu.org/software/gettext/")
     (synopsis "Tools and documentation for translation")
     (description
-     "gettext is a set of tools and documentation that provide a framework
-for translating the textual output of programs into multiple languages.  It
-provides translators with the means to create message catalogs, as well as an
-Emacs mode to work with them, and a runtime library to load translated
-messages from the catalogs.")
-    (license gpl3))) ; some files are under GPLv2+
+     "GNU Gettext is a package providing a framework for translating the
+textual output of programs into multiple languages.  It provides translators
+with the means to create message catalogs, as well as an Emacs mode to work
+with them, and a runtime library to load translated messages from the
+catalogs.  Nearly all GNU packages use Gettext.")
+    (license gpl3+)))                             ;some files are under GPLv2+