anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / audio / squishyball / default.nix
blob170cfe63ba255131a602c53360acb4bab413c18a
1 { lib, stdenv, autoreconfHook, fetchFromGitLab, fetchpatch, flac, libao, libvorbis, ncurses
2 , opusfile, pkg-config
3 }:
5 stdenv.mkDerivation rec {
6   pname = "squishyball";
7   version = "unstable-2020-11-23";
9   src = fetchFromGitLab {
10     domain = "gitlab.xiph.org";
11     owner = "xiph";
12     repo = "squishyball";
13     rev = "27590fe6bac545e2dd3eacf048edbd969682263a";
14     sha256 = "07zs8wx1ahf3q505fk9b6cgzlkhnayfsscch46yy9s1wgxgphj7s";
15   };
17   nativeBuildInputs = [ autoreconfHook pkg-config ];
19   buildInputs = [ flac libao libvorbis ncurses opusfile ];
21   patches = [
22     ./gnu-screen.patch
24     # Patch pending upstream inclusion for ncurses-6.3 support:
25     #  https://gitlab.xiph.org/xiph/squishyball/-/issues/1
26     (fetchpatch {
27       name = "ncurses-6.3.patch";
28       url = "https://gitlab.xiph.org/xiph/squishyball/uploads/5609ceaf85ebb6dc297c0efe61b9a1b7/0001-mincurses.c-use-ncurses-API-to-enter-raw-mode-ncurse.patch";
29       sha256 = "06llp7cd77f4vvhz8qdld551dnlpjxf98j7rmp3i1x1kng4f0iy3";
30     })
31   ];
33   postInstall = ''
34     # Why doesn’t this happen automagically?
35     mkdir -p $out/share/man/man1
36     cp squishyball.1 $out/share/man/man1
37   '';
39   meta = with lib; {
40     description = "Tool to perform sample comparison testing on the command line";
41     longDescription = ''
42        squishyball is a simple command-line utility for performing
43        double-blind A/B, A/B/X or X/X/Y testing on the command line.
44        The user specifies two input files to be compared and uses the
45        keyboard during playback to flip between the randomized samples
46        to perform on-the-fly compar‐ isons.  After a predetermined
47        number of trials, squishyball prints the trial results to
48        stdout and exits.  Results (stdout) may be redirected to a file
49        without affecting interactive use of the terminal.
51        squishyball can also be used to perform casual, non-randomized
52        comparisons of groups of up to ten samples; this is the default
53        mode of operation.
54     '';
55     homepage = "https://gitlab.xiph.org/xiph/squishyball";
56     license = licenses.gpl2Plus;
57     maintainers = with maintainers; [ michalrus ];
58     platforms = platforms.linux;
59     mainProgram = "squishyball";
60   };