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:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View 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
View 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;
};
}