summary refs log tree commit diff
path: root/pkgs/games/clonehero/default.nix
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2020-12-31 13:29:32 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2020-12-31 13:29:32 +0100
commite823016e6664d6ee1e0a8f7cfe419f32b43bc9dc (patch)
treef5a0baefbf2bf78f4cd6775eacb70fc4e1da0370 /pkgs/games/clonehero/default.nix
parentf6514239ee9b0739a6e884ba28e9302c0102f8c0 (diff)
parentb4b338eedc4faa4c9ef3120783634664e2347c48 (diff)
downloadnixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar.gz
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar.bz2
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar.lz
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar.xz
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.tar.zst
nixpkgs-e823016e6664d6ee1e0a8f7cfe419f32b43bc9dc.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/games/clonehero/default.nix')
-rw-r--r--pkgs/games/clonehero/default.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/games/clonehero/default.nix b/pkgs/games/clonehero/default.nix
new file mode 100644
index 00000000000..504e4811432
--- /dev/null
+++ b/pkgs/games/clonehero/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, alsaLib
+, gtk2
+, libXrandr
+, libXScrnSaver
+, udev
+, zlib
+}:
+
+let
+  name = "clonehero";
+in
+stdenv.mkDerivation rec {
+  pname = "${name}-unwrapped";
+  version = "0.23.2.2";
+
+  src = fetchurl {
+    url = "http://dl.clonehero.net/${name}-v${lib.removePrefix "0" version}/${name}-linux.tar.gz";
+    sha256 = "0k9jcnd55yhr42gj8cmysd18yldp4k3cpk4z884p2ww03fyfq7mi";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [
+    # Load-time libraries (loaded from DT_NEEDED section in ELF binary)
+    gtk2
+    stdenv.cc.cc.lib
+    zlib
+
+    # Run-time libraries (loaded with dlopen)
+    alsaLib # ALSA sound
+    libXrandr # X11 resolution detection
+    libXScrnSaver # X11 screensaver prevention
+    udev # udev input drivers
+  ];
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/share"
+    install -Dm755 ${name} "$out/bin"
+    cp -r clonehero_Data "$out/share"
+
+    mkdir -p "$doc/share/${name}"
+    cp README.txt "$doc/share/${name}"
+  '';
+
+  # Patch required run-time libraries as load-time libraries
+  #
+  # Libraries found with:
+  # > strings clonehero | grep '\.so'
+  # and
+  # > strace clonehero 2>&1 | grep '\.so'
+  postFixup = ''
+    patchelf \
+      --add-needed libasound.so.2 \
+      --add-needed libudev.so.1 \
+      --add-needed libXrandr.so.2 \
+      --add-needed libXss.so.1 \
+      "$out/bin/${name}"
+  '';
+
+  meta = with lib; {
+    description = "Clone of Guitar Hero and Rockband-style games";
+    homepage = "https://clonehero.net";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ metadark ];
+    platforms = [ "x86_64-linux" ];
+  };
+}