nixpkgs/pkgs/games/rotp/default.nix
2023-07-25 20:00:44 +02:00

88 lines
2.7 KiB
Nix

{ lib, stdenv, fetchFromGitHub, makeWrapper, jdk, jre }:
stdenv.mkDerivation {
pname = "remnants-of-the-precursors";
version = "1.04";
src = fetchFromGitHub {
owner = "rayfowler";
repo = "rotp-public";
rev = "e3726fc22c2c44316306c50c79779e3da1c4c140";
sha256 = "sha256-oMA8LRpBoBX7t4G+HuRz0a8g+UEwYO7Ya0Qq4j8AWec=";
};
nativeBuildInputs = [ jdk makeWrapper ];
# By default, the game tries to write to the java class path. If that fails
# (and it always does, since they are in the read-only nix store), it won't
# launch.
patches = [ ./0001-store-config-and-saves-in-XDG_CONFIG_HOME.patch ];
buildPhase = ''
runHook preBuild
javac -d "$out/share/" -sourcepath src src/rotp/Rotp.java
runHook postBuild
'';
installPhase = ''
runHook preInstall
# We need the assets, but don't want the source files.
find "src/rotp" -type f -name '*java' -exec rm "{}" \;
cp -r src/rotp/* "$out/share/rotp/"
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/rotp \
--add-flags "-cp $out/share rotp.Rotp"
runHook postInstall
'';
meta = with lib; {
description = ''Open-source modernization of the 1993 classic "Master of Orion", written in Java'';
homepage = "https://www.remnantsoftheprecursors.com/";
# See LICENSE file in source repo for more details.
license = with licenses; [
# All java files created by Ray Fowler:
gpl3Only
# All Java files in the src/rotp/apachemath folder:
asl20
# The /src/rotp/model/planet/PlanetHeightMap.java file:
#
# This file is a Java-rewrite of the "Planet Generator" code (originally in C)
# available from the following site:
#
# http://hjemmesider.diku.dk/~torbenm/Planet
#
# That page includes the following statement: "Both the program itself and
# maps created by the program are free for use, modification and reproduction,
# both privately and for commercial purposes, as long as this does not limit
# what other people may do with the program and the images they produce with
# the program"
{
free = true;
url = "http://hjemmesider.diku.dk/~torbenm/Planet";
}
# All image files are copyright by Peter Penev.
#
# All sound files are copyright by Remi Agullo.
#
# Various *.txt files that contain a license notice are copyright by Jeff Colucci. This
# includes English text and any foreign language translations.
#
# The manual.pdf file is copyright by Tom Chick. This includes any foreign language
# translations of the manual contained in this repository
cc-by-nc-nd-40
];
maintainers = with maintainers; [ jtrees ];
platforms = [ "x86_64-linux" ];
};
}