about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/typespeed/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/typespeed/default.nix')
-rw-r--r--nixpkgs/pkgs/games/typespeed/default.nix31
1 files changed, 31 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/typespeed/default.nix b/nixpkgs/pkgs/games/typespeed/default.nix
new file mode 100644
index 000000000000..483f631fcea9
--- /dev/null
+++ b/nixpkgs/pkgs/games/typespeed/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "typespeed";
+  version = "0.6.5";
+  buildInputs = [ ncurses ];
+  src = fetchurl {
+    url = "https://typespeed.sourceforge.net/typespeed-${version}.tar.gz";
+    sha256 = "5c860385ceed8a60f13217cc0192c4c2b4705c3e80f9866f7d72ff306eb72961";
+  };
+
+  patches = [ ./typespeed-config-in-home.patch ];
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: typespeed-typespeed.o:/build/typespeed-0.6.5/src/typespeed.h:69: multiple definition of
+  #     `opt'; typespeed-file.o:/build/typespeed-0.6.5/src/typespeed.h:69: first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  configureFlags = [ "--datadir=\${out}/share/" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  meta = with lib; {
+    description = "A curses based typing game";
+    mainProgram = "typespeed";
+    homepage = "https://typespeed.sourceforge.net/";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.auntie ];
+  };
+}