endless-sky: 0.9.16.1 -> 0.10.4 (#273995)
This commit is contained in:
parent
9bcc22403c
commit
2960f5366b
@ -1,22 +1,39 @@
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, SDL2, libpng, libjpeg, glew, openal, scons, libmad, libuuid
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, SDL2
|
||||
, libpng
|
||||
, libjpeg
|
||||
, glew
|
||||
, openal
|
||||
, scons
|
||||
, libmad
|
||||
, libuuid
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "endless-sky";
|
||||
version = "0.9.16.1";
|
||||
version = "0.10.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "endless-sky";
|
||||
repo = "endless-sky";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-bohljxAtSVqsfnge6t4LF3pC1s1r99v3hNLKTBquC20=";
|
||||
sha256 = "sha256-VTg8H6umq9yMMP274StIJfEZZvUFDILiMKhioam58QE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fixes.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# the trailing slash is important!!
|
||||
# endless sky naively joins the paths with string concatenation
|
||||
# so it's essential that there be a trailing slash on the resources path
|
||||
substituteInPlace source/Files.cpp \
|
||||
--replace '%NIXPKGS_RESOURCES_PATH%' "$out/share/games/endless-sky/"
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
export AR="${stdenv.cc.targetPrefix}gcc-ar"
|
||||
'';
|
||||
@ -24,7 +41,14 @@ stdenv.mkDerivation rec {
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
SDL2 libpng libjpeg glew openal scons libmad libuuid
|
||||
SDL2
|
||||
libpng
|
||||
libjpeg
|
||||
glew
|
||||
openal
|
||||
scons
|
||||
libmad
|
||||
libuuid
|
||||
];
|
||||
|
||||
prefixKey = "PREFIX=";
|
||||
@ -33,9 +57,12 @@ stdenv.mkDerivation rec {
|
||||
description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
|
||||
homepage = "https://endless-sky.github.io/";
|
||||
license = with licenses; [
|
||||
gpl3Plus cc-by-sa-30 cc-by-sa-40 publicDomain
|
||||
gpl3Plus
|
||||
cc-by-sa-30
|
||||
cc-by-sa-40
|
||||
publicDomain
|
||||
];
|
||||
maintainers = with maintainers; [ lheckemann ];
|
||||
maintainers = with maintainers; [ lheckemann _360ied ];
|
||||
platforms = platforms.linux; # Maybe other non-darwin Unix
|
||||
};
|
||||
}
|
||||
|
@ -12,13 +12,19 @@ index 48fd080..419b40d 100644
|
||||
# Install the desktop file:
|
||||
env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop")
|
||||
diff --git a/source/Files.cpp b/source/Files.cpp
|
||||
index c8c8957..d196459 100644
|
||||
index de27023e..4225051f 100644
|
||||
--- a/source/Files.cpp
|
||||
+++ b/source/Files.cpp
|
||||
@@ -114,15 +114,9 @@ void Files::Init(const char * const *argv)
|
||||
if(resources.back() != '/')
|
||||
resources += '/';
|
||||
#if defined __linux__ || defined __FreeBSD__ || defined __DragonFly__
|
||||
@@ -108,32 +108,9 @@ void Files::Init(const char * const *argv)
|
||||
resources = str;
|
||||
SDL_free(str);
|
||||
}
|
||||
-#if defined _WIN32
|
||||
- FixWindowsSlashes(resources);
|
||||
-#endif
|
||||
- if(resources.back() != '/')
|
||||
- resources += '/';
|
||||
-#if defined __linux__ || defined __FreeBSD__ || defined __DragonFly__
|
||||
- // Special case, for Linux: the resource files are not in the same place as
|
||||
- // the executable, but are under the same prefix (/usr or /usr/local).
|
||||
- static const string LOCAL_PATH = "/usr/local/";
|
||||
@ -28,9 +34,20 @@ index c8c8957..d196459 100644
|
||||
- resources = LOCAL_PATH + RESOURCE_PATH;
|
||||
- else if(!resources.compare(0, STANDARD_PATH.length(), STANDARD_PATH))
|
||||
- resources = STANDARD_PATH + RESOURCE_PATH;
|
||||
+ // Workaround for NixOS. Not sure how to proceed with other OSes, feedback
|
||||
+ // is welcome.
|
||||
+ resources += "../share/games/endless-sky/";
|
||||
#elif defined __APPLE__
|
||||
// Special case for Mac OS X: the resources are in ../Resources relative to
|
||||
// the folder the binary is in.
|
||||
-#endif
|
||||
- // If the resources are not here, search in the directories containing this
|
||||
- // one. This allows, for example, a Mac app that does not actually have the
|
||||
- // resources embedded within it.
|
||||
- while(!Exists(resources + "credits.txt"))
|
||||
- {
|
||||
- size_t pos = resources.rfind('/', resources.length() - 2);
|
||||
- if(pos == string::npos || pos == 0)
|
||||
- throw runtime_error("Unable to find the resource directories!");
|
||||
- resources.erase(pos + 1);
|
||||
- }
|
||||
+
|
||||
+ resources = "%NIXPKGS_RESOURCES_PATH%";
|
||||
+
|
||||
dataPath = resources + "data/";
|
||||
imagePath = resources + "images/";
|
||||
soundPath = resources + "sounds/";
|
||||
|
Loading…
Reference in New Issue
Block a user