endless sky: init at 0.9.4

This commit is contained in:
Linus Heckemann 2016-12-09 00:02:44 +00:00 committed by Robert Helgesson
parent f9281609ae
commit 9aca55e79d
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86
4 changed files with 94 additions and 1 deletions

View file

@ -242,6 +242,7 @@
leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
lethalman = "Luca Bruno <lucabru@src.gnome.org>";
lewo = "Antoine Eiche <lewo@abesis.fr>";
lheckemann = "Linus Heckemann <git@sphalerite.org>";
lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
lihop = "Leroy Hopson <nixos@leroy.geek.nz>";
linquize = "Linquize <linquize@yahoo.com.hk>";

View file

@ -0,0 +1,46 @@
{ stdenv, fetchFromGitHub
, SDL2, libpng, libjpeg, glew, openal, scons
}:
let
version = "0.9.4";
in
stdenv.mkDerivation rec {
name = "endless-sky-${version}";
src = fetchFromGitHub {
owner = "endless-sky";
repo = "endless-sky";
rev = "v${version}";
sha256 = "1mirdcpap0a280j472lhmhqg605b7glvdr4l93qcapk8an8d46m7";
};
enableParallelBuilding = true;
buildInputs = [
SDL2 libpng libjpeg glew openal scons
];
patches = [
./fixes.patch
];
buildPhase = ''
scons -j$NIX_BUILD_CORES PREFIX="$out"
'';
installPhase = ''
scons -j$NIX_BUILD_CORES install PREFIX="$out"
'';
meta = with stdenv.lib; {
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
];
maintainers = with maintainers; [ lheckemann ];
platforms = with platforms; allBut darwin;
};
}

View file

@ -0,0 +1,45 @@
diff --git a/SConstruct b/SConstruct
index 48fd080..419b40d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,7 +1,7 @@
import os
# Load any environment variables that alter the build.
-env = Environment()
+env = Environment(ENV = os.environ)
if 'CCFLAGS' in os.environ:
env.Append(CCFLAGS = os.environ['CCFLAGS'])
if 'CXXFLAGS' in os.environ:
@@ -55,7 +55,7 @@ sky = env.Program("endless-sky", Glob("build/" + env["mode"] + "/*.cpp"))
# Install the binary:
-env.Install("$DESTDIR$PREFIX/games", sky)
+env.Install("$DESTDIR$PREFIX/bin", sky)
# 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
--- 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__
- // 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/";
- static const string STANDARD_PATH = "/usr/";
- static const string RESOURCE_PATH = "share/games/endless-sky/";
- if(!resources.compare(0, LOCAL_PATH.length(), LOCAL_PATH))
- 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.

View file

@ -1550,7 +1550,6 @@ in
emscriptenStdenv = stdenv // { mkDerivation = buildEmscriptenPackage; };
efibootmgr = callPackage ../tools/system/efibootmgr { };
efivar = callPackage ../tools/system/efivar { };
@ -15662,6 +15661,8 @@ in
egoboo = callPackage ../games/egoboo { };
endless-sky = callPackage ../games/endless-sky { };
eternity = callPackage ../games/eternity-engine { };
extremetuxracer = callPackage ../games/extremetuxracer {