Created
January 1, 2021 20:34
-
-
Save BrechtSerckx/e1db24b0780a0ee3e374fc13dec3634e to your computer and use it in GitHub Desktop.
etlegacy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ system ? builtins.currentSystem }: | |
let | |
pkgs = import <nixpkgs> { inherit system; }; | |
callPackage = pkgs.lib.callPackageWith (pkgs // self); | |
self = with pkgs; { | |
etlegacy = callPackage_i686 ./etlegacy.nix {}; | |
}; | |
in self.etlegacy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ stdenv | |
, lib | |
, makeWrapper | |
, fetchgit | |
, fetchFromGitHub | |
, fetchzip | |
, fetchurl | |
, cmake | |
, git | |
, glew | |
, SDL2 | |
, zlib | |
, minizip | |
, libjpeg | |
, curl | |
, lua5_3 | |
, libogg | |
, libtheora | |
, freetype | |
, libpng | |
, sqlite | |
, openal | |
, unzip | |
}: | |
let | |
version = "2.76"; | |
pkgname = "etlegacy"; | |
lua = lua5_3; | |
mirror = "https://mirror.etlegacy.com"; | |
fetchAsset = {asset, sha256}: fetchurl | |
{ url = mirror + "/etmain/" + asset; | |
inherit sha256; | |
}; | |
pak0 = fetchAsset | |
{ asset = "pak0.pk3"; | |
sha256 = "712966b20e06523fe81419516500e499c86b2b4fec823856ddbd333fcb3d26e5"; | |
}; | |
pak1 = fetchAsset | |
{ asset = "pak1.pk3"; | |
sha256 = "5610fd749024405b4425a7ce6397e58187b941d22092ef11d4844b427df53e5d"; | |
}; | |
pak2 = fetchAsset | |
{ asset = "pak2.pk3"; | |
sha256 = "a48ab749a1a12ab4d9137286b1f23d642c29da59845b2bafc8f64e052cf06f3e"; | |
}; | |
binaries = builtins.fetchTarball { | |
url = "https://www.etlegacy.com/snapshot/file/122"; | |
sha256 = "1wr0ghxq7xwbjlsvm6g0vmvssmk0hf7xncv3wcq8l4g66g57yw4x"; | |
}; | |
in stdenv.mkDerivation rec { | |
pname = pkgname; | |
inherit version; | |
src = fetchgit { | |
url= "https://github.com/etlegacy/etlegacy.git"; | |
rev= "cf0ea440074b548c695553ba854a92f363666722"; | |
sha256= "1mx9kqyl38418knx6i5q122v8072viig52bh2xfd68hxl644nvp6"; | |
fetchSubmodules= false; | |
}; | |
nativeBuildInputs = [ cmake git makeWrapper unzip ]; | |
buildInputs = [ | |
glew SDL2 zlib minizip libjpeg curl lua libogg libtheora freetype libpng sqlite openal | |
]; | |
cmakeFlags = [ | |
"-DCMAKE_BUILD_TYPE=Release" | |
"-DCROSS_COMPILE32=0" | |
"-DBUILD_SERVER=0" | |
"-DBUILD_CLIENT=1" | |
"-DBUILD_MOD=0" | |
"-DBUILD_MOD_PK3=0" | |
"-DBUILD_PAK3_PK3=0" | |
"-DBUNDLED_JPEG=0" | |
"-DBUNDLED_LIBS=0" | |
"-DINSTALL_EXTRA=0" | |
"-DINSTALL_OMNIBOT=0" | |
"-DINSTALL_GEOIP=0" | |
"-DINSTALL_WOLFADMIN=0" | |
"-DFEATURE_AUTOUPDATE=0" | |
"-DINSTALL_DEFAULT_BASEDIR=." | |
"-DINSTALL_DEFAULT_BINDIR=." | |
"-DINSTALL_DEFAULT_MODDIR=." | |
]; | |
postInstall = '' | |
ETMAIN=$out/etmain | |
mkdir -p $ETMAIN | |
ln -s ${pak0} $ETMAIN/pak0.pk3 | |
ln -s ${pak1} $ETMAIN/pak1.pk3 | |
ln -s ${pak2} $ETMAIN/pak2.pk3 | |
LEGACY=$out/legacy | |
mkdir -p $LEGACY | |
ln -s ${binaries}/legacy/etl_bin_v${version}.pk3 $LEGACY/ | |
ln -s ${binaries}/legacy/pak3_v${version}.pk3 $LEGACY/ | |
ln -s ${binaries}/legacy/qagame.mp.i386.so $LEGACY/ | |
''; | |
meta = with stdenv.lib; { | |
description = "ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license."; | |
homepage = https://etlegacy.com; | |
platforms = platforms.unix; | |
license = licenses.gpl3; | |
}; | |
} |
@ashleyghooper I am still quite noob with nixos. May I ask for a guide/code on how to get the 64 bit version of the latest etlegacy?
@ashleyghooper I am still quite noob with nixos. May I ask for a guide/code on how to get the 64 bit version of the latest etlegacy?
@garret, try my gist here:
https://gist.github.com/ashleyghooper/740f1c90cf69e6059b6fe0f650a424a6
@ashleyghooper Thank you very much!
FYI, there is now an etlegacy
package available in nixpkgs-unstable
for this, and it should also be in nixos-23.05
when that is released. By default it will install the 64-bit version, so if you want 32-bit, specify the package as pkgsi686Linux.etlegacy
.
@ashleyghooper thanks, I had noticed it!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Here's what I currently have in case it helps anybody (it supports several versions of etlegacy - switch by commenting/uncommenting references as appropriate):
...which I reference as below: