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
61
pkgs/games/uqm/3dovideo.nix
Normal file
61
pkgs/games/uqm/3dovideo.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ stdenv, lib, requireFile, writeText, fetchFromGitHub, haskellPackages }:
|
||||
|
||||
let
|
||||
makeSpin = num: let
|
||||
padded = (lib.optionalString (lib.lessThan num 10) "0") + toString num;
|
||||
in "slides.spins.${padded} = 3DOVID:" +
|
||||
"addons/3dovideo/spins/ship${padded}.duk:" +
|
||||
"addons/3dovideo/spins/spin.aif:" +
|
||||
"addons/3dovideo/spins/ship${padded}.aif:89";
|
||||
|
||||
videoRMP = writeText "3dovideo.rmp" (''
|
||||
slides.ending = 3DOVID:addons/3dovideo/ending/victory.duk
|
||||
slides.intro = 3DOVID:addons/3dovideo/intro/intro.duk
|
||||
'' + lib.concatMapStrings makeSpin (lib.range 0 24));
|
||||
|
||||
helper = with haskellPackages; mkDerivation rec {
|
||||
pname = "uqm3donix";
|
||||
version = "0.1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aszlig";
|
||||
repo = "uqm3donix";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-rK30u2PBysiSGSA9829F1Nom/wtoVN6rGTBneRKeWEw=";
|
||||
};
|
||||
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
|
||||
buildDepends = [ base binary bytestring filepath tar ];
|
||||
|
||||
description = "Extract video files from a Star Control II 3DO image";
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "uqm-3dovideo";
|
||||
|
||||
src = requireFile rec {
|
||||
name = "videos.tar";
|
||||
sha256 = "044h0cl69r0kc43vk4n0akk0prwzb7inq324h5yfqb38sd4zkds1";
|
||||
message = ''
|
||||
In order to get the intro and ending sequences from the 3DO version, you
|
||||
need to have the original 3DO Star Control II CD. Create an image from
|
||||
the CD and use uqm3donix* to extract a tarball with the videos from it.
|
||||
The reason for this is because the 3DO uses its own proprietary disk
|
||||
format.
|
||||
|
||||
Save the file as videos.tar and use "nix-prefetch-url file://\$PWD/${name}" to
|
||||
add it to the Nix store.
|
||||
|
||||
[*] ${helper}/bin/uqm3donix CDIMAGE ${name}
|
||||
'';
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -vp "$out"
|
||||
tar xf "$src" -C "$out" --strip-components=3
|
||||
cp "${videoRMP}" "$out/3dovideo.rmp"
|
||||
'';
|
||||
}
|
||||
109
pkgs/games/uqm/default.nix
Normal file
109
pkgs/games/uqm/default.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{ stdenv, lib, fetchurl, fetchFromGitHub, pkg-config, libGLU, libGL
|
||||
, SDL, SDL_image, libpng, libvorbis, libogg, libmikmod
|
||||
|
||||
, use3DOVideos ? false, requireFile ? null, writeText ? null
|
||||
, haskellPackages ? null
|
||||
|
||||
, useRemixPacks ? false
|
||||
}:
|
||||
|
||||
assert use3DOVideos -> requireFile != null && writeText != null
|
||||
&& haskellPackages != null;
|
||||
|
||||
let
|
||||
videos = import ./3dovideo.nix {
|
||||
inherit stdenv lib requireFile writeText fetchFromGitHub haskellPackages;
|
||||
};
|
||||
|
||||
remixPacks = lib.imap1 (num: sha256: fetchurl rec {
|
||||
name = "uqm-remix-disc${toString num}.uqm";
|
||||
url = "mirror://sourceforge/sc2/${name}";
|
||||
inherit sha256;
|
||||
}) [
|
||||
"1s470i6hm53l214f2rkrbp111q4jyvnxbzdziqg32ffr8m3nk5xn"
|
||||
"1pmsq65k8gk4jcbyk3qjgi9yqlm0dlaimc2r8hz2fc9f2124gfvz"
|
||||
"07g966ylvw9k5q9jdzqdczp7c5qv4s91xjlg4z5z27fgcs7rzn76"
|
||||
"1l46k9aqlcp7d3fjkjb3n05cjfkxx8rjlypgqy0jmdx529vikj54"
|
||||
];
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "uqm";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/sc2/uqm-${version}-source.tgz";
|
||||
sha256 = "08dj7fsvflxx69an6vpf3wx050mk0ycmdv401yffrrqbgxgmqsd3";
|
||||
};
|
||||
|
||||
content = fetchurl {
|
||||
url = "mirror://sourceforge/sc2/uqm-${version}-content.uqm";
|
||||
sha256 = "1gx39ns698hyczd4nx73mr0z86bbi4q3h8sw3pxjh1lzla5xpxmq";
|
||||
};
|
||||
|
||||
voice = fetchurl {
|
||||
url = "mirror://sourceforge/sc2/uqm-${version}-voice.uqm";
|
||||
sha256 = "0yf9ff5sxk229202gsa7ski6wn7a8hkjjyr1yr7mjdxsnh0zik5w";
|
||||
};
|
||||
|
||||
music = fetchurl {
|
||||
url = "mirror://sourceforge/sc2/uqm-${version}-3domusic.uqm";
|
||||
sha256 = "10nbvcrr0lc0mxivxfkcbxnibwk3vwmamabrlvwdsjxd9pk8aw65";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ SDL SDL_image libpng libvorbis libogg libmikmod libGLU libGL ];
|
||||
|
||||
postUnpack = ''
|
||||
mkdir -p uqm-${version}/content/packages
|
||||
mkdir -p uqm-${version}/content/addons
|
||||
ln -s "$content" "uqm-${version}/content/packages/uqm-0.7.0-content.uqm"
|
||||
ln -s "$music" "uqm-${version}/content/addons/uqm-0.7.0-3domusic.uqm"
|
||||
ln -s "$voice" "uqm-${version}/content/addons/uqm-0.7.0-voice.uqm"
|
||||
'' + lib.optionalString useRemixPacks (lib.concatMapStrings (disc: ''
|
||||
ln -s "${disc}" "uqm-$version/content/addons/${disc.name}"
|
||||
'') remixPacks) + lib.optionalString use3DOVideos ''
|
||||
ln -s "${videos}" "uqm-${version}/content/addons/3dovideo"
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
# Using _STRINGS_H as include guard conflicts with glibc.
|
||||
sed -i -e '/^#/s/_STRINGS_H/_UQM_STRINGS_H/g' src/uqm/comm/*/strings.h
|
||||
# See https://github.com/NixOS/nixpkgs/pull/93560
|
||||
sed -i -e 's,/tmp/,$TMPDIR/,' build/unix/config_functions
|
||||
'';
|
||||
|
||||
# uqm has a 'unique' build system with a root script incidentally called
|
||||
# 'build.sh'.
|
||||
configurePhase = ''
|
||||
echo "INPUT_install_prefix_VALUE='$out'" >> config.state
|
||||
echo "INPUT_install_bindir_VALUE='$out/bin'" >> config.state
|
||||
echo "INPUT_install_libdir_VALUE='$out/lib'" >> config.state
|
||||
echo "INPUT_install_sharedir_VALUE='$out/share'" >> config.state
|
||||
PREFIX=$out ./build.sh uqm config
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
./build.sh uqm
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
./build.sh uqm install
|
||||
sed -i $out/bin/uqm -e "s%/usr/local/games/%$out%g"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Remake of Star Control II";
|
||||
longDescription = ''
|
||||
The goals for the The Ur-Quan Masters project are:
|
||||
- to bring Star Control II to modern platforms, thereby making a lot of
|
||||
people happy
|
||||
- to make game translations easy, thereby making even more people happy
|
||||
- to adapt the code so that people can more easily make their own
|
||||
spin-offs, thereby making zillions more people happy!
|
||||
'';
|
||||
homepage = "http://sc2.sourceforge.net/";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = with lib.maintainers; [ jcumming aszlig ];
|
||||
platforms = with lib.platforms; linux;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue