From 6dd9ed79fe30ca15d4eb9543967fac7d0287db29 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 11 Feb 2020 21:32:39 +0100 Subject: [PATCH] alephone: init at 20150620 Packaging of the AlephOne engine and eight of its scenarios. --- pkgs/games/alephone/default.nix | 99 +++++++++++++++++++++++ pkgs/games/alephone/durandal/default.nix | 25 ++++++ pkgs/games/alephone/eternal/default.nix | 21 +++++ pkgs/games/alephone/evil/default.nix | 18 +++++ pkgs/games/alephone/infinity/default.nix | 25 ++++++ pkgs/games/alephone/marathon/default.nix | 25 ++++++ pkgs/games/alephone/pheonix/default.nix | 18 +++++ pkgs/games/alephone/red/default.nix | 18 +++++ pkgs/games/alephone/rubicon-x/default.nix | 23 ++++++ pkgs/top-level/all-packages.nix | 10 +++ 10 files changed, 282 insertions(+) create mode 100644 pkgs/games/alephone/default.nix create mode 100644 pkgs/games/alephone/durandal/default.nix create mode 100644 pkgs/games/alephone/eternal/default.nix create mode 100644 pkgs/games/alephone/evil/default.nix create mode 100644 pkgs/games/alephone/infinity/default.nix create mode 100644 pkgs/games/alephone/marathon/default.nix create mode 100644 pkgs/games/alephone/pheonix/default.nix create mode 100644 pkgs/games/alephone/red/default.nix create mode 100644 pkgs/games/alephone/rubicon-x/default.nix diff --git a/pkgs/games/alephone/default.nix b/pkgs/games/alephone/default.nix new file mode 100644 index 000000000000..1936c93ab843 --- /dev/null +++ b/pkgs/games/alephone/default.nix @@ -0,0 +1,99 @@ +{ stdenv, fetchurl, boost, curl, ffmpeg, icoutils, libmad, libogg, libpng +, libsndfile, libvorbis, lua, pkgconfig, SDL, SDL_image, SDL_net, SDL_ttf, smpeg +, speex, zziplib, zlib, makeWrapper, makeDesktopItem, unzip, alephone }: + +let + self = stdenv.mkDerivation rec { + outputs = [ "out" "icons" ]; + pname = "alephone"; + version = "20150620"; + + src = fetchurl { + url = + "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/AlephOne-${version}.tar.bz2"; + sha256 = "0cz18fa3gx8mz5j09ywz8gq0r4q082kh6l9pbpwn8qjanzgn1wy0"; + }; + + nativeBuildInputs = [ pkgconfig icoutils ]; + + buildInputs = [ + boost + curl + ffmpeg + libmad + libsndfile + libogg + libpng + libvorbis + lua + SDL + SDL_image + SDL_net + SDL_ttf + smpeg + speex + zziplib + zlib + ]; + + configureFlags = [ "--with-boost=${boost}" ]; + + enableParallelBuilding = true; + + postInstall = '' + mkdir $icons + icotool -x -i 5 -o $icons Resources/Windows/*.ico + pushd $icons + for x in *_5_48x48x32.png; do + mv $x ''${x%_5_48x48x32.png}.png + done + popd + ''; + + meta = with stdenv.lib; { + description = + "Aleph One is the open source continuation of Bungie’s Marathon 2 game engine"; + homepage = "https://alephone.lhowon.org/"; + license = with licenses; [ gpl3 ]; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; + }; + +in self // { + makeWrapper = { pname, desktopName, version, zip, meta + , icon ? alephone.icons + "/alephone.png", ... }@extraArgs: + stdenv.mkDerivation ({ + inherit pname version; + + desktopItem = makeDesktopItem { + name = desktopName; + exec = pname; + genericName = pname; + categories = "Game;"; + comment = meta.description; + inherit desktopName icon; + }; + + src = zip; + + nativeBuildInputs = [ makeWrapper unzip ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin $out/data/$pname $out/share/applications + cp -a * $out/data/$pname + cp $desktopItem/share/applications/* $out/share/applications + makeWrapper ${alephone}/bin/alephone $out/bin/$pname \ + --add-flags $out/data/$pname + ''; + + meta = with stdenv.lib; + { + maintainers = with maintainers; [ ehmry ]; + inherit (alephone.meta) platforms; + } // meta; + } // extraArgs); +} diff --git a/pkgs/games/alephone/durandal/default.nix b/pkgs/games/alephone/durandal/default.nix new file mode 100644 index 000000000000..cd5450d1c2e4 --- /dev/null +++ b/pkgs/games/alephone/durandal/default.nix @@ -0,0 +1,25 @@ +{ alephone, fetchurl }: + +alephone.makeWrapper rec { + pname = "durandal"; + desktopName = "Marathon-Durandal"; + version = "20150620"; + icon = alephone.icons + "/marathon2.png"; + + zip = fetchurl { + url = + "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon2-${version}-Data.zip"; + sha256 = "1gpg0dk3z8irvdkm4nj71v14lqx77109chqr2ly594jqf6j9wwqv"; + }; + + meta = { + description = "Second chapter of the Marathon trilogy"; + longDescription = '' + Fresh from your triumph on the starship Marathon, you are seized by the rogue computer Durandal to do his bidding in a distant part of the galaxy. Within the ruins of an ancient civilization, you must seek the remnants of a lost clan and uncover their long-buried secrets. Battle opponents ancient and terrible, with sophisticated weapons and devious strategies, all the while struggling to escape the alien nightmare… + + This release of Marathon 2: Durandal includes the classic graphics, and revamped high-definition textures and monsters from the Xbox Live Arcade edition. + ''; + homepage = "https://alephone.lhowon.org/games/marathon2.html"; + }; + +} diff --git a/pkgs/games/alephone/eternal/default.nix b/pkgs/games/alephone/eternal/default.nix new file mode 100644 index 000000000000..c21284150618 --- /dev/null +++ b/pkgs/games/alephone/eternal/default.nix @@ -0,0 +1,21 @@ +{ alephone, fetchurl, unrar }: + +alephone.makeWrapper rec { + pname = "marathon-eternal"; + version = "1.2.0"; + desktopName = "Marathon-Eternal"; + + zip = fetchurl { + url = "http://eternal.bungie.org/files/_releases/EternalXv120.zip"; + sha256 = "1qrvx0sp9xc8zbpp5yz8jdz458ajzmyv2si7hrppiyawc8dpcwck"; + }; + + sourceRoot = "Eternal 1.2.0"; + + meta = { + description = + "Picking up from the end of the Marathon trilogy, you find yourself suddenly ninety-four years in the future, in the year 2905"; + homepage = "http://eternal.bungie.org/"; + }; + +} diff --git a/pkgs/games/alephone/evil/default.nix b/pkgs/games/alephone/evil/default.nix new file mode 100644 index 000000000000..a0120348c14e --- /dev/null +++ b/pkgs/games/alephone/evil/default.nix @@ -0,0 +1,18 @@ +{ alephone, fetchurl, unrar }: + +alephone.makeWrapper rec { + pname = "marathon-evil"; + version = "0"; + desktopName = "Marathon-Evil"; + + zip = fetchurl { + url = "http://files3.bungie.org/trilogy/MarathonEvil.zip"; + sha256 = "08nizbjp2rx10bpqrbhb76as0j2zynmy2c0qa5b482lz1szf9b95"; + }; + + meta = { + description = "The first conversion for Marathon Infinity"; + homepage = "https://alephone.lhowon.org/scenarios.html"; + }; + +} diff --git a/pkgs/games/alephone/infinity/default.nix b/pkgs/games/alephone/infinity/default.nix new file mode 100644 index 000000000000..f4cea6c73435 --- /dev/null +++ b/pkgs/games/alephone/infinity/default.nix @@ -0,0 +1,25 @@ +{ alephone, fetchurl }: + +alephone.makeWrapper rec { + pname = "marathon-infinity"; + desktopName = "Marathon-Infinity"; + version = "20150620"; + icon = alephone.icons + "/marathon-infinity.png"; + + zip = fetchurl { + url = + "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/MarathonInfinity-${version}-Data.zip"; + sha256 = "0sgfahppanp9c0p115dg0makrdzghzmbz3iggl6x28fh62j03q64"; + }; + + meta = { + description = "Third chapter of the Marathon trilogy"; + longDescription = '' + Marathon Infinity takes the closed universe of the Marathon series and blows it wide open. The solo/co-op campaign, “Blood Tides of Lh’owon,” is a 20-level scenario sporting new textures, weapons, and aliens. More than that, the scenario sheds a surprising new light on the story’s characters and the meaning of events. Having defeated the Pfhor and reawakened the ancient remnants of the S’pht, the player now faces a world where friends become enemies and all is not what it seems… + + Marathon Infinity is the most popular Marathon game in online play, and is compatible with hundreds of community-made maps. This release includes the classic graphics, and revamped high-definition textures and weapons. + ''; + homepage = "https://alephone.lhowon.org/games/infinity.html"; + }; + +} diff --git a/pkgs/games/alephone/marathon/default.nix b/pkgs/games/alephone/marathon/default.nix new file mode 100644 index 000000000000..84831b6a2691 --- /dev/null +++ b/pkgs/games/alephone/marathon/default.nix @@ -0,0 +1,25 @@ +{ alephone, fetchurl }: + +alephone.makeWrapper rec { + pname = "marathon"; + desktopName = "Marathon"; + version = "20150620"; + icon = alephone.icons + "/marathon.png"; + + zip = fetchurl { + url = + "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/Marathon-${version}-Data.zip"; + sha256 = "0cagsigsjlsr8jqfaqjdxv8fs0f079cjzs26679aacyykc6b8k3p"; + }; + + meta = { + description = "First chapter of the Marathon trilogy"; + longDescription = '' + Alien forces have boarded the interstellar colony ship Marathon. The situation is dire. As a security officer onboard, it is your duty to defend the ship and its crew. + + Experience the start of Bungie’s iconic trilogy with Marathon. This release uses the original Marathon data files for the most authentic experience outside of a classic Mac or emulator. + ''; + homepage = "https://alephone.lhowon.org/games/marathon.html"; + }; + +} diff --git a/pkgs/games/alephone/pheonix/default.nix b/pkgs/games/alephone/pheonix/default.nix new file mode 100644 index 000000000000..90db1aa7c73d --- /dev/null +++ b/pkgs/games/alephone/pheonix/default.nix @@ -0,0 +1,18 @@ +{ alephone, fetchurl }: + +alephone.makeWrapper rec { + pname = "marathon-pheonix"; + desktopName = "Marathon-Pheonix"; + version = "1.3"; + + zip = fetchurl { + url = "http://simplici7y.com/version/file/998/Marathon_Phoenix_1.3.zip"; + sha256 = "1r06k0z8km7l9d3njinsrci4jhk8hrnjdcmjd8n5z2qxkqvhn9qj"; + }; + + meta = { + description = "A 35-level single player major Marathon conversion"; + homepage = "http://www.simplici7y.com/items/marathon-phoenix-2"; + }; + +} diff --git a/pkgs/games/alephone/red/default.nix b/pkgs/games/alephone/red/default.nix new file mode 100644 index 000000000000..f24c9010cd63 --- /dev/null +++ b/pkgs/games/alephone/red/default.nix @@ -0,0 +1,18 @@ +{ alephone, fetchurl, unrar }: + +alephone.makeWrapper rec { + pname = "marathon-red"; + version = "0"; + desktopName = "Marathon-Red"; + + zip = fetchurl { + url = "http://files3.bungie.org/trilogy/MarathonRED.zip"; + sha256 = "1p13snlrvn39znvfkxql67crhysn71db2bwsfrkhjkq58wzs6qgw"; + }; + + meta = { + description = "Survival horror-esque Marathon conversion"; + homepage = "https://alephone.lhowon.org/scenarios.html"; + }; + +} diff --git a/pkgs/games/alephone/rubicon-x/default.nix b/pkgs/games/alephone/rubicon-x/default.nix new file mode 100644 index 000000000000..b59fa4cfeb62 --- /dev/null +++ b/pkgs/games/alephone/rubicon-x/default.nix @@ -0,0 +1,23 @@ +{ alephone, fetchurl }: + +alephone.makeWrapper rec { + pname = "rubicon-x"; + version = "20150620"; + desktopName = "Marathon-Rubicon-X"; + + zip = fetchurl { + url = "http://files5.bungie.org/marathon/marathonRubiconX.zip"; + sha256 = "095si89wap76pvkvk90zqw7djhrhwb1anjm2s8i503jbcn5n4ipm"; + }; + + sourceRoot = "Rubicon X ƒ"; + + meta = { + description = "Unofficial forth chapter of the Marathon series"; + longDescription = '' + Rubicon X is a free, cross platform, first person shooter that continues the story of Bungie’s Marathon trilogy. First released as Marathon:Rubicon in 2001, Rubicon X is a complete overhaul of the original. It features all new high-resolution artwork, new and updated maps, and enough surprises to feel like a whole new game. + ''; + homepage = "http://www.marathonrubicon.com/"; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 20b2eeea7dd1..a49d3157237e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22903,6 +22903,16 @@ in airstrike = callPackage ../games/airstrike { }; + alephone = callPackage ../games/alephone { ffmpeg = ffmpeg_2; }; + alephone-durandal = callPackage ../games/alephone/durandal { }; + alephone-eternal = callPackage ../games/alephone/eternal { }; + alephone-evil = callPackage ../games/alephone/evil { }; + alephone-infinity = callPackage ../games/alephone/infinity { }; + alephone-marathon = callPackage ../games/alephone/marathon { }; + alephone-pheonix = callPackage ../games/alephone/pheonix { }; + alephone-red = callPackage ../games/alephone/red { }; + alephone-rubicon-x = callPackage ../games/alephone/rubicon-x { }; + alienarena = callPackage ../games/alienarena { }; amoeba = callPackage ../games/amoeba { };