gnu: packages: Use 'search-patches' everywhere.
[jackhill/guix/guix.git] / gnu / packages / readline.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (gnu packages readline)
20 #:use-module (guix licenses)
21 #:use-module (gnu packages)
22 #:use-module (gnu packages ncurses)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu))
26
27 (define-public readline
28 (let ((post-install-phase
29 '(lambda* (#:key outputs #:allow-other-keys)
30 (let* ((out (assoc-ref outputs "out"))
31 (lib (string-append out "/lib")))
32 ;; Make libraries writable so that `strip' can work.
33 ;; Failing to do that, it bails out with "Permission
34 ;; denied".
35 (for-each (lambda (f) (chmod f #o755))
36 (find-files lib "\\.so"))
37 (for-each (lambda (f) (chmod f #o644))
38 (find-files lib "\\.a"))))))
39 (package
40 (name "readline")
41 (version "6.3")
42 (source (origin
43 (method url-fetch)
44 (uri (string-append "mirror://gnu/readline/readline-"
45 version ".tar.gz"))
46 (sha256
47 (base32
48 "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn"))
49 (patches (search-patches "readline-link-ncurses.patch"))
50 (patch-flags '("-p0"))))
51 (build-system gnu-build-system)
52 (propagated-inputs `(("ncurses" ,ncurses)))
53 (arguments `(#:configure-flags
54 (list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
55 (assoc-ref %build-inputs "ncurses")
56 "/lib")
57
58 ;; This test does an 'AC_TRY_RUN', which aborts when
59 ;; cross-compiling, so provide the correct answer.
60 ,@(if (%current-target-system)
61 '("bash_cv_wcwidth_broken=no")
62 '()))
63
64 #:phases (alist-cons-after
65 'install 'post-install
66 ,post-install-phase
67 %standard-phases)))
68 (synopsis "Edit command lines while typing, with history support")
69 (description
70 "The GNU readline library allows users to edit command lines as they
71 are typed in. It can maintain a searchable history of previously entered
72 commands, letting you easily recall, edit and re-enter past commands. It
73 features both Emacs-like and vi-like keybindings, making its usage
74 comfortable for anyone.")
75 (license gpl3+)
76 (home-page "http://savannah.gnu.org/projects/readline/"))))
77
78 (define-public readline-6.2
79 (package (inherit readline)
80 (version "6.2")
81 (source (origin (inherit (package-source readline))
82 (method url-fetch)
83 (uri (string-append "mirror://gnu/readline/readline-"
84 version ".tar.gz"))
85 (sha256
86 (base32
87 "10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr"))))))