lol
1{ fetchurl, stdenv, expect, makeWrapper }:
2
3stdenv.mkDerivation rec {
4 name = "dejagnu-1.5.3";
5
6 src = fetchurl {
7 url = "mirror://gnu/dejagnu/${name}.tar.gz";
8 sha256 = "069z3qrdv35cm2sbnfr5yjzplrqj9f61cchxis7j9mm19hv8x6q9";
9 };
10
11 patches = [ ./wrapped-runtest-program-name.patch ];
12
13 buildInputs = [ expect makeWrapper ];
14
15 doCheck = true;
16
17 # Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of
18 # the build daemon when building in a chroot. See
19 # <http://thread.gmane.org/gmane.linux.distributions.nixos/1036> for
20 # details.
21
22 # The test-suite needs to have a non-empty stdin:
23 # http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html
24 checkPhase = ''
25 # Provide `runtest' with a log name, otherwise it tries to run
26 # `whoami', which fails when in a chroot.
27 LOGNAME="nix-build-daemon" make check < /dev/zero
28 '';
29
30 postInstall = ''
31 wrapProgram "$out/bin/runtest" \
32 --prefix PATH ":" "${expect}/bin"
33 '';
34
35 meta = with stdenv.lib; {
36 description = "Framework for testing other programs";
37
38 longDescription = ''
39 DejaGnu is a framework for testing other programs. Its purpose
40 is to provide a single front end for all tests. Think of it as a
41 custom library of Tcl procedures crafted to support writing a
42 test harness. A test harness is the testing infrastructure that
43 is created to support a specific program or tool. Each program
44 can have multiple testsuites, all supported by a single test
45 harness. DejaGnu is written in Expect, which in turn uses Tcl --
46 Tool command language.
47 '';
48
49 homepage = http://www.gnu.org/software/dejagnu/;
50 license = licenses.gpl2Plus;
51
52 platforms = platforms.linux;
53 maintainers = with maintainers; [ wkennington ];
54 };
55}