uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
84
pkgs/games/vessel/default.nix
Normal file
84
pkgs/games/vessel/default.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ lib, stdenv, requireFile, SDL, libpulseaudio, alsa-lib, runtimeShell }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vessel";
|
||||
version = "12082012";
|
||||
|
||||
goBuyItNow = ''
|
||||
We cannot download the full version automatically, as you require a license.
|
||||
Once you bought a license, you need to add your downloaded version to the nix store.
|
||||
You can do this by using "nix-prefetch-url file://\$PWD/vessel-${version}-bin" in the
|
||||
directory where you saved it.
|
||||
'';
|
||||
|
||||
src = if (stdenv.isi686) then
|
||||
requireFile {
|
||||
message = goBuyItNow;
|
||||
name = "vessel-${version}-bin";
|
||||
sha256 = "1vpwcrjiln2mx43h7ib3jnccyr3chk7a5x2bw9kb4lw8ycygvg96";
|
||||
} else throw "unsupported platform ${stdenv.hostPlatform.system} only i686-linux supported for now.";
|
||||
|
||||
phases = "installPhase";
|
||||
ld_preload = ./isatty.c;
|
||||
|
||||
libPath = lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ]
|
||||
+ ":" + lib.makeLibraryPath [ SDL libpulseaudio alsa-lib ] ;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/libexec/strangeloop/vessel/
|
||||
mkdir -p $out/bin
|
||||
|
||||
# allow scripting of the mojoinstaller
|
||||
gcc -fPIC -shared -o isatty.so $ld_preload
|
||||
|
||||
echo @@@
|
||||
echo @@@ this next step appears to hang for a while
|
||||
echo @@@
|
||||
|
||||
# if we call ld.so $(bin) we don't need to set the ELF interpreter, and save a patchelf step.
|
||||
LD_PRELOAD=./isatty.so $(cat $NIX_CC/nix-support/dynamic-linker) $src << IM_A_BOT
|
||||
n
|
||||
$out/libexec/strangeloop/vessel/
|
||||
IM_A_BOT
|
||||
|
||||
# use nix SDL libraries
|
||||
rm $out/libexec/strangeloop/vessel/x86/libSDL*
|
||||
rm $out/libexec/strangeloop/vessel/x86/libstdc++*
|
||||
|
||||
# props to Ethan Lee (the Vessel porter) for understanding
|
||||
# how $ORIGIN works in rpath. There is hope for humanity.
|
||||
patchelf \
|
||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath $libPath:$out/libexec/strangeloop/vessel/x86/ \
|
||||
$out/libexec/strangeloop/vessel/x86/vessel.x86
|
||||
|
||||
# we need to libs to find their deps
|
||||
for lib in $out/libexec/strangeloop/vessel/x86/lib* ; do
|
||||
patchelf \
|
||||
--set-rpath $libPath:$out/libexec/strangeloop/vessel/x86/ \
|
||||
$lib
|
||||
done
|
||||
|
||||
cat > $out/bin/Vessel << EOW
|
||||
#!${runtimeShell}
|
||||
cd $out/libexec/strangeloop/vessel/
|
||||
exec ./x86/vessel.x86
|
||||
EOW
|
||||
|
||||
chmod +x $out/bin/Vessel
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fluid physics based puzzle game";
|
||||
longDescription = ''
|
||||
Living liquid machines have overrun this world of unstoppable progress,
|
||||
and it is the role of their inventor, Arkwright, to stop the chaos they are
|
||||
causing. Vessel is a game about a man with the power to bring ordinary matter
|
||||
to life, and all the consequences that ensue.
|
||||
'';
|
||||
homepage = "http://www.strangeloopgames.com";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ jcumming ];
|
||||
};
|
||||
|
||||
}
|
||||
6
pkgs/games/vessel/isatty.c
Normal file
6
pkgs/games/vessel/isatty.c
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// We override isatty to help 'automate' installers.
|
||||
|
||||
// Some installers (mojoinstall) have a stdio GUI that refuses to run if you
|
||||
// feed it a file on stdin. This should help that.
|
||||
|
||||
int isatty(int fd) { return 1; }
|
||||
Loading…
Add table
Add a link
Reference in a new issue