X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/ca8de35e9060f0c8cdf4bb5cc2a3313e730af30d..11c3bb32858a5c02057a52861d02c50feefad467:/gnu/packages/gettext.scm diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 9b45e84559..b9070ae818 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -2,11 +2,13 @@ ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015, 2017 Ricardo Wurmus -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2019 Efraim Flashner ;;; Copyright © 2016 Alex Kost -;;; Copyright © 2017 Marius Bakke +;;; Copyright © 2017, 2019 Marius Bakke ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Eric Bavier +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2019 Miguel ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +34,8 @@ #:use-module (guix build-system perl) #:use-module (gnu packages docbook) #:use-module (gnu packages emacs) + #:use-module (gnu packages libunistring) + #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages tex) #:use-module (gnu packages xml) @@ -40,34 +44,42 @@ (define-public gettext-minimal (package (name "gettext-minimal") - (version "0.19.8.1") + (version "0.20.1") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gettext/gettext-" - version ".tar.gz")) - (sha256 - (base32 - "0hsw28f9q9xaggjlsdp2qmbp2rbd1mp0njzan2ld9kiqwkq2m57z")) - (modules '((guix build utils))) - (snippet - '(begin - ;; The gnulib test-lock test is prone to writer starvation - ;; with our glibc@2.25, which prefers readers, so disable it. - ;; The gnulib commit b20e8afb0b2 should fix this once - ;; incorporated here. - (substitute* "gettext-runtime/tests/Makefile.in" - (("TESTS = test-lock\\$\\(EXEEXT\\)") "TESTS =")) - (substitute* "gettext-tools/gnulib-tests/Makefile.in" - (("test-lock\\$\\(EXEEXT\\) ") "")) - #t)))) + (method url-fetch) + (uri (string-append "mirror://gnu/gettext/gettext-" + version ".tar.gz")) + (sha256 + (base32 + "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6")))) (build-system gnu-build-system) (outputs '("out" - "doc")) ;8 MiB of HTML + "doc")) ;9 MiB of HTML (inputs - `(("expat" ,expat))) + `(("libunistring" ,libunistring) + ("libxml2" ,libxml2) + + ;; TODO: ncurses is only needed for the 'libtextstyle' library. + ;; The next version of gettext can use a separate libtextstyle, + ;; but for now we include it here in 'gettext-minimal'. + ("ncurses" ,ncurses))) (arguments - `(#:phases + `(#:configure-flags '("--with-included-libunistring=no" + "--with-included-libxml=no") + #:phases (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'patch-fixed-paths + (lambda _ + (substitute* '("gettext-tools/config.h.in" + "gettext-tools/gnulib-tests/init.sh" + "gettext-tools/tests/init.sh" + "gettext-tools/system-tests/run-test") + (("/bin/sh") "sh")) + (substitute* '("gettext-tools/src/project-id" + "gettext-tools/projects/KDE/trigger" + "gettext-tools/projects/GNOME/trigger") + (("/bin/pwd") "pwd")) + #t)) (add-before 'check 'patch-tests (lambda* (#:key inputs #:allow-other-keys) (let* ((bash (which "sh"))) @@ -91,15 +103,7 @@ (("/bin/pwd") "pwd")) - #t)))) - (add-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\"")) - #t))) + #t))))) ;; When tests fail, we want to know the details. #:make-flags '("VERBOSE=yes"))) @@ -111,6 +115,8 @@ textual output of programs into multiple languages. It provides translators with the means to create message catalogs, and a runtime library to load translated messages from the catalogs. Nearly all GNU packages use Gettext.") + (properties `((upstream-name . "gettext") + (cpe-name . "gettext"))) (license gpl3+))) ;some files are under GPLv2+ ;; Use that name to avoid clashes with Guile's 'gettext' procedure. @@ -139,41 +145,52 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.") (native-inputs `(("emacs" ,emacs-minimal))) ; for Emacs tools (synopsis "Tools and documentation for translation"))) +(define-public libtextstyle + (package + (name "libtextstyle") + (version "0.21") + (source (origin + (inherit (package-source gnu-gettext)) + (uri (string-append "mirror://gnu/gettext/gettext-" + version ".tar.gz")) + (sha256 + (base32 + "04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "libtextstyle") + #t))))) + ;; libtextstyle bundles libxml2, glib (a small subset thereof), and + ;; libcroco, but it purposefully prevents users from using an external + ;; copy, to reduce the startup time of programs using libtextstyle. + (home-page "https://www.gnu.org/software/gettext/") + (synopsis "Text styling library") + (description + "GNU libtextstyle is a C library that provides an easy way to add styling +to programs that produce output to a console or terminal emulator window. It +allows applications to emit text annotated with styling information, such as +color, font attributes (weight, posture), or underlining.") + (license gpl3+))) + (define-public po4a (package (name "po4a") - (version "0.47") + (version "0.57") (source (origin (method url-fetch) - (uri (string-append "https://alioth.debian.org/frs/download.php" - "/file/4142/po4a-" version ".tar.gz")) + (uri (string-append "https://github.com/mquinson/po4a/releases/download/v" + version "/po4a-" version ".tar.gz")) (sha256 (base32 - "01vm0750aq0h2lphrflv3wq9gz7y0py8frglfpacn58ivyvy242h")))) + "15yd27krlpdvjhcnwys6i5k1ww62ifq2yx8k1zxyxiwy84myqmdv")))) (build-system perl-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-search-path - (lambda _ - ;; Work around "dotless @INC" build failure. - (setenv "PERL5LIB" - (string-append (getcwd) ":" - (getenv "PERL5LIB"))) - #t)) - ;; FIXME: One test fails as we don't have SGMLS.pm - (add-before 'check 'disable-sgml-test - (lambda _ - (delete-file "t/20-sgml.t") - #t)) - (add-after 'unpack 'fix-builder - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Po4aBuilder.pm" - ;; By default it tries to install into perl's manpath. - (("my \\$mandir = .*$") - (string-append "my $mandir = \"" (assoc-ref outputs "out") - "/share/man\";\n"))) - #t)) (add-after 'install 'wrap-programs (lambda* (#:key outputs #:allow-other-keys) ;; Make sure all executables in "bin" find the Perl modules @@ -192,15 +209,35 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.") (find-files (string-append (assoc-ref outputs "out") "/share/man") ".*\\.gz$")) + #t)) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." ".*\\.xml(-good)?") + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/"))) + #t)) + (add-before 'check 'disable-failing-tests + (lambda _ + ;; FIXME: ‘Files ../t-03-asciidoc/Titles.po and Titles.po differ’. + (delete-file "t/03-asciidoc.t") + + ;; FIXME: these tests require SGMLS.pm. + (delete-file "t/01-classes.t") + (delete-file "t/16-sgml.t") + #t))))) (native-inputs `(("gettext" ,gettext-minimal) ("perl-module-build" ,perl-module-build) ("docbook-xsl" ,docbook-xsl) - ("docbook-xml" ,docbook-xml) ;for tests - ("texlive" ,texlive-tiny) ;for tests ("libxml2" ,libxml2) - ("xsltproc" ,libxslt))) + ("xsltproc" ,libxslt) + + ;; For tests. + ("docbook-xml" ,docbook-xml-4.1.2) + ("perl-yaml-tiny" ,perl-yaml-tiny) + ("texlive" ,texlive-tiny))) (home-page "https://po4a.org/") (synopsis "Scripts to ease maintenance of translations") (description