diff --git a/pkgs/games/xjump/darwin.patch b/pkgs/games/xjump/darwin.patch new file mode 100644 index 00000000000..8221677658e --- /dev/null +++ b/pkgs/games/xjump/darwin.patch @@ -0,0 +1,21 @@ +--- xjump/src/main.c 2018-02-20 09:15:15.608807657 +0100 ++++ xjump-patched/src/main.c 2018-02-20 09:15:34.148949100 +0100 +@@ -604,18 +604,6 @@ + * optimistic privilege dropping function. */ + setgroups(0, NULL); + +- if (setresgid(-1, realgid, realgid) != 0) { +- perror("Could not drop setgid privileges. Aborting."); +- exit(1); +- } +- +- /* Dropping user privileges must come last. +- * Otherwise we won't be able to drop group privileges anymore */ +- if (setresuid(-1, realuid, realuid) != 0) { +- perror("Could not drop setuid privileges. Aborting."); +- exit(1); +- } +- + /* From now on we run with regular user privileges */ + + static XtActionsRec a_table[] = { diff --git a/pkgs/games/xjump/default.nix b/pkgs/games/xjump/default.nix index 29c89637c1d..df9ff30f210 100644 --- a/pkgs/games/xjump/default.nix +++ b/pkgs/games/xjump/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?"/var" }: +{ stdenv, buildPlatform, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?null }: stdenv.mkDerivation rec { name = "xjump-${version}"; @@ -12,7 +12,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoconf automake ]; buildInputs = [ libX11 libXt libXpm libXaw ]; preConfigure = "autoreconf --install"; - configureFlags = ["--localstatedir=${localStateDir}"]; + patches = if buildPlatform.isDarwin then [ ./darwin.patch ] else []; + configureFlags = + if localStateDir != null then + ["--localstatedir=${localStateDir}"] + else + []; meta = with stdenv.lib; { description = "The falling tower game";