distro: Add Tcl, Expect, and DejaGNU.

* distro/packages/dejagnu.scm, distro/packages/tcl.scm: New files.
* Makefile.am (MODULES): Add them.
This commit is contained in:
Ludovic Courtès 2013-01-07 21:11:19 +01:00
parent 233e76769a
commit 4a219a1a47
3 changed files with 185 additions and 0 deletions

View file

@ -57,6 +57,7 @@ MODULES = \
distro/packages/compression.scm \
distro/packages/cpio.scm \
distro/packages/bdb.scm \
distro/packages/dejagnu.scm \
distro/packages/ddrescue.scm \
distro/packages/ed.scm \
distro/packages/flex.scm \
@ -95,6 +96,7 @@ MODULES = \
distro/packages/rsync.scm \
distro/packages/shishi.scm \
distro/packages/system.scm \
distro/packages/tcl.scm \
distro/packages/texinfo.scm \
distro/packages/time.scm \
distro/packages/wget.scm \

View file

@ -0,0 +1,87 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (distro packages dejagnu)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
#:use-module (distro packages tcl))
(define-public dejagnu
(package
(name "dejagnu")
(version "1.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/dejagnu/dejagnu-"
version ".tar.gz"))
(sha256
(base32
"1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68"))))
(build-system gnu-build-system)
(inputs `(("expect" ,expect)))
(arguments
'(#:phases (alist-replace
'check
(lambda _
;; Note: The test-suite *requires* /dev/pts among the
;; `build-chroot-dirs' of the build daemon when
;; building in a chroot. See
;; <http://thread.gmane.org/gmane.linux.distributions.nixos/1036>
;; for details.
(if (and (directory-exists? "/dev/pts")
(directory-exists? "/proc"))
(begin
;; Provide `runtest' with a log name, otherwise
;; it tries to run `whoami', which fails when in
;; a chroot.
(setenv "LOGNAME" "guix-builder")
;; The test-suite needs to have a non-empty stdin:
;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>.
(zero?
(system "make check < /dev/zero")))
(begin
(display "test suite cannot be run, skipping\n")
#t)))
(alist-cons-after
'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Use the right `expect' binary.
(let ((out (assoc-ref outputs "out"))
(expect (assoc-ref inputs "expect")))
(substitute* (string-append out "/bin/runtest")
(("expectbin=expect")
(string-append "expectbin="
expect "/bin/expect")))))
%standard-phases))))
(home-page
"http://www.gnu.org/software/dejagnu/")
(synopsis "The DejaGNU testing framework")
(description
"DejaGnu is a framework for testing other programs. Its purpose
is to provide a single front end for all tests. Think of it as a
custom library of Tcl procedures crafted to support writing a
test harness. A test harness is the testing infrastructure that
is created to support a specific program or tool. Each program
can have multiple testsuites, all supported by a single test
harness. DejaGnu is written in Expect, which in turn uses Tcl --
Tool command language.")
(license gpl2+)))

96
distro/packages/tcl.scm Normal file
View file

@ -0,0 +1,96 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (distro packages tcl)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses))
(define-public tcl
(package
(name "tcl")
(version "8.6.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/tcl/Tcl/"
version "/tcl" version "-src.tar.gz"))
(sha256
(base32
"1pnabp3xsja4rc8c01l9q1avb65a3zhdzci3j54qa5krqjwj4i1m"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-before
'configure 'pre-configure
(lambda _
(chdir "unix"))
(alist-cons-after
'install 'install-private-headers
(lambda _
;; Private headers are needed by Expect.
(zero? (system* "make" "install-private-headers")))
%standard-phases))
#:tests? #f)) ; FIXME: use #:test-target "test"
(home-page "http://www.tcl.tk/")
(synopsis "The Tcl scripting language")
(description "The Tcl (Tool Command Language) scripting language.")
(license (bsd-style "http://www.tcl.tk/software/tcltk/license.html"
"Tcl/Tk license"))))
(define-public expect
(package
(name "expect")
(version "5.45")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/expect/Expect/"
version "/expect" version ".tar.gz"))
(sha256
(base32
"0h60bifxj876afz4im35rmnbnxjx4lbdqp2ja3k30fwa8a8cm3dj"))))
(build-system gnu-build-system)
(inputs
`(;; TODO: Add these optional dependencies.
;; ("libX11" ,libX11)
;; ("xproto" ,xproto)
;; ("tk" ,tk)
("tcl" ,tcl)))
(arguments
'(#:configure-flags
(list (string-append "--with-tcl="
(assoc-ref %build-inputs "tcl")
"/lib")
(string-append "--with-tclinclude="
(assoc-ref %build-inputs "tcl")
"/include")
(string-append "--exec-prefix="
(assoc-ref %outputs "out")))
#:tests? #f)) ; FIXME: use #:test-target "test"
(home-page "http://expect.nist.gov/")
(synopsis
"A tool for automating interactive applications")
(description
"Expect is a tool for automating interactive applications such as
telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this
stuff trivial. Expect is also useful for testing these same
applications. And by adding Tk, you can wrap interactive applications in
X11 GUIs.")
(license public-domain))) ; as written in `license.terms'