;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages which)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix utils)
+ #:use-module (ice-9 match))
;;; Commentary:
;;;
".tar.gz"))
(sha256
(base32
- "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))))
+ "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))
+ (patches (list (search-patch "guile-1.8-cpp-4.5.patch")))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--disable-error-on-warning")
- #:patches (list (assoc-ref %build-inputs "patch/snarf"))
;; Insert a phase before `configure' to patch things up.
#:phases (alist-cons-before
(substitute* "ice-9/popen.scm"
(("/bin/sh") (which "sh"))))
%standard-phases)))
- (inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch"))
- ("gawk" ,gawk)
+ (inputs `(("gawk" ,gawk)
("readline" ,readline)))
;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be
(synopsis "Scheme implementation intended especially for extensions")
(description
-"GNU Guile 1.8 is an interpreter for the Scheme programming language,
-packaged as a library that can be embedded into programs to make them
-extensible. It supports many SRFIs.")
+ "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the
+official extension language of the GNU system. It is an implementation of
+the Scheme language which can be easily embedded in other applications to
+provide a convenient means of extending the functionality of the application
+without requiring the source code to be rewritten.")
(home-page "http://www.gnu.org/software/guile/")
(license lgpl2.0+)))
(define-public guile-2.0
(package
(name "guile")
- (version "2.0.9")
+ (version "2.0.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/guile/guile-" version
".tar.xz"))
(sha256
(base32
- "0nw9y8vjyz4r61v06p9msks5lm58pd91irmzg4k487vmv743h2pp"))))
+ "1qh3j7308qvsjgwf7h94yqgckpbgz2k3yqdkzsyhqcafvfka9l5f"))))
(build-system gnu-build-system)
(native-inputs `(("pkgconfig" ,pkg-config)))
(inputs `(("libffi" ,libffi)
(self-native-input? #t)
+ (outputs '("out" "debug"))
+
(arguments
`(#:phases (alist-cons-before
'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
- ;; By default we end up with GUILE_LOAD_PATH="" and
- ;; GUILE_LOAD_COMPILED_PATH="". But that is equivalent to
- ;; ".", and breaks the build system when cross-compiling.
- ;; Thus, make sure they are unset.
- ;; TODO: Eventually fix `set-path-environment-variable'
- ;; for that case.
- ,@(if (%current-target-system)
- '((unsetenv "GUILE_LOAD_PATH")
- (unsetenv "GUILE_LOAD_COMPILED_PATH"))
- '())
-
;; Tell (ice-9 popen) the file name of Bash.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "module/ice-9/popen.scm"
(("/bin/sh")
(string-append bash "/bin/bash")))))
- ,(if (%current-target-system)
- '%standard-cross-phases
- '%standard-phases))
-
- ,@(if (%current-target-system)
- '(#:configure-flags '("CC_FOR_BUILD=gcc"))
- '())))
+ %standard-phases)))
(native-search-paths
(list (search-path-specification
(synopsis "Scheme implementation intended especially for extensions")
(description
-"GNU Guile is an implementation of the Scheme programming language, with
-support for many SRFIs, packaged for use in a wide variety of environments.
-In addition to implementing the R5RS Scheme standard and a large subset of
-R6RS, Guile includes a module system, full access to POSIX system calls,
-networking support, multiple threads, dynamic linking, a foreign function
-call interface, and powerful string processing.")
+ "Guile is the GNU Ubiquitous Intelligent Language for Extensions, the
+official extension language of the GNU system. It is an implementation of
+the Scheme language which can be easily embedded in other applications to
+provide a convenient means of extending the functionality of the application
+without requiring the source code to be rewritten.")
(home-page "http://www.gnu.org/software/guile/")
(license lgpl3+)))
(arguments
'(#:configure-flags (list (string-append "--with-guilesitedir="
(assoc-ref %outputs "out")
- "/share/guile/site"))
+ "/share/guile/site/2.0"))
#:phases (alist-cons-after
'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(home-page "http://www.gnu.org/software/guile-ncurses/")
(synopsis "Guile bindings to ncurses")
(description
- "GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
-provides functions for creating text user interfaces. The text user interface
-functionality is built on the ncurses libraries: curses, form, panel, and
-menu.")
+ "guile-ncurses provides Guile language bindings for the ncurses
+library.")
(license lgpl3+)))
(define-public mcron
version ".tar.gz"))
(sha256
(base32
- "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))))
+ "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))
+ (patches (list (search-patch "mcron-install.patch")))))
(build-system gnu-build-system)
- (arguments
- '(#:patches (list (assoc-ref %build-inputs "patch/install"))))
(inputs
- `(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)
- ("patch/install" ,(search-patch "mcron-install.patch"))))
+ `(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)))
(home-page "http://www.gnu.org/software/mcron/")
(synopsis "Run jobs at scheduled times")
(description
- "The GNU package mcron (Mellor's cron) is a 100% compatible replacement
-for Vixie cron. It is written in pure Guile, and allows configuration files
-to be written in scheme (as well as Vixie's original format) for infinite
-flexibility in specifying when jobs should be run. Mcron was written by Dale
-Mellor.")
+ "GNU Mcron is a complete replacement for Vixie cron. It is used to run
+tasks on a schedule, such as every hour or every Monday. Mcron is written in
+Guile, so its configuration can be written in Scheme; the original cron
+format is also supported.")
+ (license gpl3+)))
+
+(define-public guile-lib
+ (package
+ (name "guile-lib")
+ (version "0.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/guile-lib/guile-lib-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1f9n2b5b5r75lzjinyk6zp6g20g60msa0jpfrk5hhg4j8cy0ih4b"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-before
+ 'configure 'patch-module-dir
+ (lambda _
+ (substitute* "src/Makefile.in"
+ (("^moddir[[:blank:]]*=[[:blank:]]*([[:graph:]]+)" _ rhs)
+ (string-append "moddir = " rhs "/2.0\n"))))
+ %standard-phases)))
+ (inputs `(("guile" ,guile-2.0)))
+ (home-page "http://www.nongnu.org/guile-lib/")
+ (synopsis "Collection of useful Guile Scheme modules")
+ (description
+ "guile-lib is intended as an accumulation place for pure-scheme Guile
+modules, allowing for people to cooperate integrating their generic Guile
+modules into a coherent library. Think \"a down-scaled, limited-scope CPAN
+for Guile\".")
+
+ ;; The whole is under GPLv3+, but some modules are under laxer
+ ;; distribution terms such as LGPL and public domain. See `COPYING' for
+ ;; details.
(license gpl3+)))
;;; guile.scm ends here