2022-02-10 20:34:41 +00:00
|
|
|
|
{ lib, stdenv, autoreconfHook, fetchFromGitLab, fetchpatch, flac, libao, libvorbis, ncurses
|
2021-02-05 17:12:51 +00:00
|
|
|
|
, opusfile, pkg-config
|
2020-04-24 23:36:52 +00:00
|
|
|
|
}:
|
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2022-02-10 20:34:41 +00:00
|
|
|
|
pname = "squishyball";
|
|
|
|
|
version = "unstable-2020-11-23";
|
|
|
|
|
|
|
|
|
|
src = fetchFromGitLab {
|
|
|
|
|
domain = "gitlab.xiph.org";
|
|
|
|
|
owner = "xiph";
|
|
|
|
|
repo = "squishyball";
|
|
|
|
|
rev = "27590fe6bac545e2dd3eacf048edbd969682263a";
|
|
|
|
|
sha256 = "07zs8wx1ahf3q505fk9b6cgzlkhnayfsscch46yy9s1wgxgphj7s";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
};
|
|
|
|
|
|
2021-02-05 17:12:51 +00:00
|
|
|
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
|
|
buildInputs = [ flac libao libvorbis ncurses opusfile ];
|
|
|
|
|
|
2022-02-10 20:34:41 +00:00
|
|
|
|
patches = [
|
|
|
|
|
./gnu-screen.patch
|
|
|
|
|
|
|
|
|
|
# Patch pending upstream inclusion for ncurses-6.3 support:
|
|
|
|
|
# https://gitlab.xiph.org/xiph/squishyball/-/issues/1
|
|
|
|
|
(fetchpatch {
|
|
|
|
|
name = "ncurses-6.3.patch";
|
|
|
|
|
url = "https://gitlab.xiph.org/xiph/squishyball/uploads/5609ceaf85ebb6dc297c0efe61b9a1b7/0001-mincurses.c-use-ncurses-API-to-enter-raw-mode-ncurse.patch";
|
|
|
|
|
sha256 = "06llp7cd77f4vvhz8qdld551dnlpjxf98j7rmp3i1x1kng4f0iy3";
|
|
|
|
|
})
|
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
|
|
postInstall = ''
|
|
|
|
|
# Why doesn’t this happen automagically?
|
|
|
|
|
mkdir -p $out/share/man/man1
|
|
|
|
|
cp squishyball.1 $out/share/man/man1
|
|
|
|
|
'';
|
|
|
|
|
|
2021-01-15 22:18:51 +00:00
|
|
|
|
meta = with lib; {
|
2020-04-24 23:36:52 +00:00
|
|
|
|
description = "A tool to perform sample comparison testing on the command line";
|
|
|
|
|
longDescription = ''
|
|
|
|
|
squishyball is a simple command-line utility for performing
|
|
|
|
|
double-blind A/B, A/B/X or X/X/Y testing on the command line.
|
|
|
|
|
The user specifies two input files to be compared and uses the
|
|
|
|
|
keyboard during playback to flip between the randomized samples
|
|
|
|
|
to perform on-the-fly compar‐ isons. After a predetermined
|
|
|
|
|
number of trials, squishyball prints the trial results to
|
|
|
|
|
stdout and exits. Results (stdout) may be redirected to a file
|
|
|
|
|
without affecting interactive use of the terminal.
|
|
|
|
|
|
|
|
|
|
squishyball can also be used to perform casual, non-randomized
|
|
|
|
|
comparisons of groups of up to ten samples; this is the default
|
|
|
|
|
mode of operation.
|
|
|
|
|
'';
|
2022-02-10 20:34:41 +00:00
|
|
|
|
homepage = "https://gitlab.xiph.org/xiph/squishyball";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
license = licenses.gpl2Plus;
|
|
|
|
|
maintainers = with maintainers; [ michalrus ];
|
|
|
|
|
platforms = platforms.linux;
|
2024-02-29 20:09:43 +00:00
|
|
|
|
mainProgram = "squishyball";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
};
|
|
|
|
|
}
|