about summary refs log tree commit diff
path: root/pkgs/games/dwarf-fortress/game.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/dwarf-fortress/game.nix')
-rw-r--r--pkgs/games/dwarf-fortress/game.nix169
1 files changed, 0 insertions, 169 deletions
diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix
deleted file mode 100644
index 6e8467e55df9..000000000000
--- a/pkgs/games/dwarf-fortress/game.nix
+++ /dev/null
@@ -1,169 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, SDL
-, SDL2
-, SDL2_image
-, SDL2_mixer
-, fmodex
-, dwarf-fortress-unfuck
-, autoPatchelfHook
-
-  # Our own "unfuck" libs for macOS
-, ncurses
-, gcc
-
-, dfVersion
-, df-hashes
-}:
-
-let
-  inherit (lib)
-    attrNames
-    elemAt
-    getAttr
-    getLib
-    hasAttr
-    licenses
-    maintainers
-    optional
-    optionals
-    optionalString
-    splitVersion
-    toInt
-    ;
-
-  # Map Dwarf Fortress platform names to Nixpkgs platform names.
-  # Other srcs are avilable like 32-bit mac & win, but I have only
-  # included the ones most likely to be needed by Nixpkgs users.
-  platforms = {
-    x86_64-linux = "linux";
-    i686-linux = "linux32";
-    x86_64-darwin = "osx";
-    i686-darwin = "osx32";
-    x86_64-cygwin = "win";
-    i686-cygwin = "win32";
-  };
-
-  dfVersionTuple = splitVersion dfVersion;
-  dfVersionBaseIndex = let
-    x = (builtins.length dfVersionTuple) - 2;
-  in if x >= 0 then x else 0;
-  baseVersion = toInt (elemAt dfVersionTuple dfVersionBaseIndex);
-  patchVersion = elemAt dfVersionTuple (dfVersionBaseIndex + 1);
-
-  isAtLeast50 = baseVersion >= 50;
-  enableUnfuck = !isAtLeast50 && dwarf-fortress-unfuck != null;
-
-  game =
-    if hasAttr dfVersion df-hashes
-    then getAttr dfVersion df-hashes
-    else throw "Unknown Dwarf Fortress version: ${dfVersion}";
-  dfPlatform =
-    if hasAttr stdenv.hostPlatform.system platforms
-    then getAttr stdenv.hostPlatform.system platforms
-    else throw "Unsupported system: ${stdenv.hostPlatform.system}";
-  sha256 =
-    if hasAttr dfPlatform game
-    then getAttr dfPlatform game
-    else throw "Unsupported dfPlatform: ${dfPlatform}";
-  exe = if stdenv.isLinux then
-    if baseVersion >= 50 then "dwarfort" else "libs/Dwarf_Fortress"
-  else
-    "dwarfort.exe";
-in
-
-stdenv.mkDerivation {
-  pname = "dwarf-fortress";
-  version = dfVersion;
-
-  src = fetchurl {
-    url = "https://www.bay12games.com/dwarves/df_${toString baseVersion}_${toString patchVersion}_${dfPlatform}.tar.bz2";
-    inherit sha256;
-  };
-
-  sourceRoot = ".";
-
-  postUnpack = optionalString stdenv.isLinux ''
-    directory=${
-      if stdenv.isLinux then "df_linux"
-      else if stdenv.isDarwin then "df_osx"
-      else throw "Unsupported system"
-    }
-    if [ -d "$directory" ]; then
-      mv "$directory/"* .
-    fi
-  '';
-
-  nativeBuildInputs = [ autoPatchelfHook ];
-  buildInputs = optionals isAtLeast50 [ SDL2 SDL2_image SDL2_mixer ]
-    ++ optional (!isAtLeast50) SDL
-    ++ optional enableUnfuck dwarf-fortress-unfuck
-    ++ [ stdenv.cc.cc.lib ];
-
-  installPhase = ''
-    runHook preInstall
-
-    exe=$out/${exe}
-    mkdir -p $out
-    cp -r * $out
-
-    # Lots of files are +x in the newer releases...
-    find $out -type d -exec chmod 0755 {} \;
-    find $out -type f -exec chmod 0644 {} \;
-    chmod +x $exe
-    [ -f $out/df ] && chmod +x $out/df
-    [ -f $out/run_df ] && chmod +x $out/run_df
-
-    # We don't need any of these since they will just break autoPatchelf on <version 50.
-    [ -d $out/libs ] && rm -f $out/libs/*.so $out/libs/*.so.*
-
-    # Store the original hash
-    md5sum $exe | awk '{ print $1 }' > $out/hash.md5.orig
-    echo "Original MD5: $(<$out/hash.md5.orig)" >&2
-  '' + optionalString stdenv.isDarwin ''
-    # My custom unfucked dwarfort.exe for macOS. Can't use
-    # absolute paths because original doesn't have enough
-    # header space. Someone plz break into Tarn's house & put
-    # -headerpad_max_install_names into his LDFLAGS.
-
-    ln -s ${getLib ncurses}/lib/libncurses.dylib $out/libs
-    ln -s ${getLib gcc.cc}/lib/libstdc++.6.dylib $out/libs
-    ln -s ${getLib fmodex}/lib/libfmodex.dylib $out/libs
-
-    install_name_tool \
-      -change /usr/lib/libncurses.5.4.dylib \
-              @executable_path/libs/libncurses.dylib \
-      -change /usr/local/lib/x86_64/libstdc++.6.dylib \
-              @executable_path/libs/libstdc++.6.dylib \
-      $exe
-  '' + ''
-    ls -al $out
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    recompute_hash() {
-      # Store the new hash as the very last step.
-      exe=$out/${exe}
-      md5sum $exe | awk '{ print $1 }' > $out/hash.md5
-      echo "Patched MD5: $(<$out/hash.md5)" >&2
-    }
-
-    # Ensure that this runs after autoPatchelfHook.
-    trap recompute_hash EXIT
-  '';
-
-  passthru = {
-    inherit baseVersion patchVersion dfVersion exe;
-    updateScript = ./update.sh;
-  };
-
-  meta = {
-    description = "Single-player fantasy game with a randomly generated adventure world";
-    homepage = "https://www.bay12games.com/dwarves/";
-    license = licenses.unfreeRedistributable;
-    platforms = attrNames platforms;
-    maintainers = with maintainers; [ a1russell robbinch roconnor abbradar numinit shazow ncfavier ];
-  };
-}