Merge branch 'core-updates'
[jackhill/guix/guix.git] / gnu / packages / textutils.scm
index 5a8f9f0..f2c60dd 100644 (file)
@@ -1,5 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +25,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages python))
 
 (define-public recode
              (url "https://github.com/pinard/Recode.git")
              (commit "2d7092a9999194fc0e9449717a8048c8d8e26c18")))
        (sha256
-        (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm"))))
+        (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm"))
+       (file-name (string-append name "-" version "-checkout"))))
     (build-system gnu-build-system)
     (native-inputs `(("python" ,python-2)))
     (arguments
      '(#:phases
        (alist-cons-before
-        'check 'fix-setup-py
+        'check 'pre-check
         (lambda _
           (substitute* "tests/setup.py"
             (("([[:space:]]*)include_dirs=.*" all space)
-             (string-append all space "library_dirs=['../src/.libs'],\n"))))
+             (string-append all space "library_dirs=['../src/.libs'],\n")))
+          ;; The test extension 'Recode.so' lacks RUNPATH for 'librecode.so'.
+          (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/src/.libs")))
         %standard-phases)))
     (home-page "https://github.com/pinard/Recode")
     (synopsis "Text encoding converter")
@@ -69,7 +77,8 @@ handy front-end to the library.")
        (uri (string-append
              "https://github.com/nijel/enca/archive/" version ".tar.gz"))
        (sha256
-        (base32 "1xik00x0yvhswsw2isnclabhv536xk1s42cf5z54gfbpbhc7ni8l"))))
+        (base32 "1xik00x0yvhswsw2isnclabhv536xk1s42cf5z54gfbpbhc7ni8l"))
+       (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (inputs `(("recode" ,recode)))
 
@@ -83,3 +92,128 @@ handy front-end to the library.")
 an encoding detection library, and enca, a command line frontend, integrating
 libenca and several charset conversion libraries and tools.")
     (license license:gpl2)))
+
+(define-public utf8proc
+  (package
+    (name "utf8proc")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/JuliaLang/utf8proc/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1k48as5kjkar4yj3dwxyll8ykj4k723ib5a6mnw1g86q3zi0zdl3"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;no "check" target
+       #:make-flags (list "CC=gcc"
+                          (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "http://julialang.org/utf8proc/")
+    (synopsis "C library for processing UTF-8 Unicode data")
+    (description "utf8proc is a small C library that provides Unicode
+normalization, case-folding, and other operations for data in the UTF-8
+encoding, supporting Unicode version 7.0.")
+    (license license:expat)))
+
+(define-public libgtextutils
+  (package
+    (name "libgtextutils")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/agordon/libgtextutils/releases/download/"
+             version "/libgtextutils-" version ".tar.gz"))
+       (sha256
+        (base32 "0jiybkb2z58wa2msvllnphr4js2hvjvh988pavb3mzkgr6ihwbkr"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-cons-after
+        'unpack 'autoreconf
+        (lambda _ (zero? (system* "autoreconf" "-vif")))
+        %standard-phases)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (home-page "https://github.com/agordon/libgtextutils")
+    (synopsis "Gordon's text utils library")
+    (description
+     "libgtextutils is a text utilities library used by the fastx toolkit from
+the Hannon Lab.")
+    (license license:agpl3+)))
+
+(define-public cityhash
+  (let ((commit "8af9b8c")
+        (revision "1"))
+    (package
+      (name "cityhash")
+      (version (string-append "1.1." revision "." commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/google/cityhash.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version ".tar.gz"))
+                (sha256
+                 (base32
+                  "0n6skf5dv8yfl1ckax8dqhvsbslkwc9158zf2ims0xqdvzsahbi6"))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/google/cityhash")
+    (synopsis "C++ hash functions for strings")
+    (description
+     "CityHash provides hash functions for strings.  The functions mix the
+input bits thoroughly but are not suitable for cryptography.")
+    (license license:expat))))
+
+(define-public libconfig
+  (package
+    (name "libconfig")
+    (version "1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.hyperrealm.com/libconfig/"
+                                  "libconfig-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xh3hzk63v4y8815lc5209m3s6ms2cpgw4h5hg462i4f1lwsl7g3"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.hyperrealm.com/libconfig/")
+    (synopsis "C/C++ configuration file library")
+    (description
+     "Libconfig is a simple library for manipulating structured configuration
+files.  This file format is more compact and more readable than XML.  And
+unlike XML, it is type-aware, so it is not necessary to do string parsing in
+application code.")
+    (license license:lgpl2.1+)))
+
+(define-public pfff
+  (package
+    (name "pfff")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/pfff/pfff/archive/v"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "00m553aa277iarxj6dalmklyb64r7ias49bfwzbacsfg8h3kar8m"))))
+    (build-system cmake-build-system)
+    (home-page "http://biit.cs.ut.ee/pfff/")
+    (synopsis "Probabilistic fast file fingerprinting tool")
+    (description
+     "pfff is a tool for calculating a compact digital fingerprint of a file
+by sampling randomly from the file instead of reading it in full.
+Consequently, the computation has a flat performance characteristic,
+correlated with data variation rather than file size.  pfff can be as reliable
+as existing hashing techniques, with provably negligible risk of collisions.")
+    (license license:bsd-3)))