Merge branch 'core-updates'
[jackhill/guix/guix.git] / gnu / packages / textutils.scm
index 325386d..f2c60dd 100644 (file)
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; 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.
 ;;;
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system trivial)
+  #:use-module (guix build-system cmake)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages python))
 
 (define-public recode
   (package
@@ -43,7 +42,8 @@
              (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
@@ -77,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)))
 
@@ -95,7 +96,7 @@ libenca and several charset conversion libraries and tools.")
 (define-public utf8proc
   (package
     (name "utf8proc")
-    (version "1.1.6")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
@@ -104,25 +105,15 @@ libenca and several charset conversion libraries and tools.")
              version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wmsi672knii0q70wh6a3ll0gv7qk33c50zbpzasrs3b16bqy659"))))
+        (base32 "1k48as5kjkar4yj3dwxyll8ykj4k723ib5a6mnw1g86q3zi0zdl3"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ;no "check" target
-       #:make-flags '("CC=gcc")
+       #:make-flags (list "CC=gcc"
+                          (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
-       (alist-replace
-        'install
-        (lambda* (#:key outputs #:allow-other-keys)
-          (let ((lib (string-append (assoc-ref outputs "out") "/lib/"))
-                (include (string-append (assoc-ref outputs "out") "/include/")))
-            (mkdir-p lib)
-            (mkdir-p include)
-            (copy-file "utf8proc.h" (string-append include "utf8proc.h"))
-            (for-each (lambda (file)
-                        (copy-file file (string-append lib (basename file))))
-                      '("libutf8proc.a" "libutf8proc.so"))))
-        ;; no configure script
-        (alist-delete 'configure %standard-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
@@ -160,46 +151,69 @@ encoding, supporting Unicode version 7.0.")
 the Hannon Lab.")
     (license license:agpl3+)))
 
-(define-public markdown
+(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 "markdown")
-    (version "1.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "http://daringfireball.net/projects/downloads/"
-             (string-capitalize name) "_" version ".zip"))
-       (sha256
-        (base32 "0dq1pj91pvlwkv0jwcgdfpv6gvnxzrk3s8mnh7imamcclnvfj835"))))
-    (build-system trivial-build-system)
-    (arguments
-     '(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let ((source (assoc-ref %build-inputs "source"))
-               (out    (assoc-ref %outputs "out"))
-               (perlbd (string-append (assoc-ref %build-inputs "perl") "/bin"))
-               (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                      "/bin/unzip")))
-           (mkdir-p out)
-           (with-directory-excursion out
-             (system* unzip source)
-             (mkdir "bin")
-             (mkdir-p "share/doc")
-             (rename-file "Markdown_1.0.1/Markdown.pl" "bin/markdown")
-             (rename-file "Markdown_1.0.1/Markdown Readme.text"
-                          "share/doc/README")
-             (patch-shebang "bin/markdown" (list perlbd))
-             (delete-file-recursively "Markdown_1.0.1"))))))
-    (native-inputs `(("unzip" ,unzip)))
-    (inputs `(("perl" ,perl)))
-    (home-page "http://daringfireball.net/projects/markdown")
-    (synopsis "Text-to-HTML conversion tool")
+    (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
-     "Markdown is a text-to-HTML conversion tool for web writers.  It allows
-you to write using an easy-to-read, easy-to-write plain text format, then
-convert it to structurally valid XHTML (or HTML).")
-    (license (license:non-copyleft "file://License.text"
-                                   "See License.text in the distribution."))))
+     "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)))